mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-27 08:21:05 -04:00
With a pierce diameter set, a perimeter none of whose configured lead-ins keeps its pierce clear (a lead shorter than the zone radius, or neighbours closer than it) was only rejected. Plan Cutting now looks for a pierce in the open scrap around the part instead. - ScrapPierceSearch (Engine): the window four zone radii around the part, minus every nearby part's clean material grown by the zone radius and a margin (ClipperBridge, conservative flattening); the clear point nearest each ranked perimeter entry is a candidate. Other parts' cutouts count as scrap, the part's own holes do not. With no clear scrap, the PolyLabel pole of the free scrap is the best effort, and its shortfall is reported. - ContourChoice.Pierce / PreparedContours.ScrapPierceEntry: the planner's choice carries the pierce; the emitter cuts a straight lead from it to the nearest perimeter point and still reads nothing but the contour and the choice. - Every candidate passes the lead validator like any planner-chosen entry; pinned perimeters keep their pins and warn. Without a pierce diameter nothing changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>