mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-27 12:41:06 -04:00
Proves the source-to-program mapping the pins rely on (plan policy: prove it or stop): the program frame is the source frame moved by -Source.Offset, never rotated in place; a placement rotates it about the program origin and adds the part location. Source.Angle is canonical metadata and plays no part. The oracle does not use Source.Offset or part rotation bookkeeping. It recovers the rigid source-to-plate transform from the placed geometry itself, using two holes of different sizes, and checks every pin at 0, 90 and 37 degrees, placed directly and the way engines place parts (CreateAtOrigin), after: - import (BuildDrawing re-origins at the first rapid); - a converter edit that hides the first-cut hole and so moves Source.Offset; - a converter edit of a drawing without source entities (the derived entities are moved back by Source.Offset); - save and reload; - a drawing package round trip. To exercise the real converter paths headlessly, the desktop's entity load and in-place apply move into CadImporter.EditableEntities and CadImporter.ApplyEdit, unchanged; the in-place apply keeps the library link and cut pins as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>