fix(posts): never post a display perimeter

The posts treat every non-lead feed move as a cut, so an applied blank's
display tail, or the outline of a blank posted without a plan, would have
been cut along the blank's edge. The pre-post review counted that outline
as an ordinary cutting contour.

Cincinnati, CI Fiber and the engraver now read part programs through
DisplayPerimeterTail.ForPosting: an applied program posts exactly what the
same program posts with its tail removed by hand, and an unplanned display
perimeter is refused with a message that names the part and points to Plan
Cutting. The pre-post review reports the unplanned outline by name.
This commit is contained in:
aj committed 2026-10-22 20:15:58 -04:00
1 parent 684207039a
commit 6201065034
6 files changed
+122 -4

No files matched your search

@@ -135,7 +135,7 @@ public sealed class CincinnatiPartSubprogramWriter
if (part.BaseDrawing.IsCutOff)
continue;
var pgm = PostedCopy(part.Program);
var pgm = PostedCopy(FeatureUtils.PostedProgram(part));
var bbox = pgm.BoundingBox();
pgm.Offset(-bbox.Location.X, -bbox.Location.Y);
@@ -222,7 +222,7 @@ public sealed class CincinnatiPartSubprogramWriter
foreach (var part in plate.Parts)
{
if (!part.BaseDrawing.IsCutOff)
Register(part.Program);
Register(FeatureUtils.PostedProgram(part));
}
}