diff --git a/docs/automatic-nesting.md b/docs/automatic-nesting.md index e0830f78..9982cdcf 100644 --- a/docs/automatic-nesting.md +++ b/docs/automatic-nesting.md @@ -66,8 +66,30 @@ resizing or rotating a plate re-resolves its clamps. Auto Nest offers each stock size with the rail resolved for that size, and every committed sheet keeps exactly the clamps its layout was validated against. Clamps are drawn as hatched amber rectangles over the sheet; they cannot be selected, -moved or sequenced and never count as parts. Interactive fill/push, the overlap -check and cutoffs do not yet avoid clamps. +moved or sequenced and never count as parts. Interactive fill, pack and push +keep parts clear of clamps, Check Overlaps reports parts on a clamp and manual +cut-offs crossing one, automatic cutoffs never place a cut through a clamp, and +pre-post verification warns (with per-attempt consent) about parts, cut-offs +and direct rapids crossing an active clamp - including the first rapid when a +clamp covers the program start point. + +### Last-resort clamp removal + +When a part cannot be placed on an empty sheet of any offered size with every +clamp in place - neither the selected engine nor the Irregular or Rectangles +lane finds a clamped placement - Auto Nest takes the fewest neighbouring clamps +off one sheet that let it fit (the run nearest the origin on ties) and nests it +on extra sheets with those clamps removed; other unplaced parts may share the +freed sheets. It never removes a clamp to save material, never re-plans a sheet +the normal nest already used, draws only on stock that is left, and only +removes clamps resolved from the machine rail. The completion summary lists +"Sheet N: remove clamp K (+M min)", the sheet shows each removed clamp dashed +with "remove", and each removed clamp on the sheet adds the rail's removal +minutes (default 5, set in **Nest > Clamps...**) to that sheet's cut time. + +Limits: the search stops after 1000 single-part trial solves and then keeps the +normal result, removing nothing; and a part whose material clears a clamp by +less than the engines' 0.0001" grid may still be reported as needing a removal. ## Integration constraints diff --git a/docs/nesting-engines.md b/docs/nesting-engines.md index 92aef37f..6a024884 100644 --- a/docs/nesting-engines.md +++ b/docs/nesting-engines.md @@ -90,15 +90,16 @@ are enclosed on the existing clipping grid before NFP preparation, retaining at grid interval per axis so positive sub-grid clamps cannot disappear. Existing arc/grid safety margins, covered-hole certification and cancellation apply without relaxed tolerances. -Known clamp edge cases remain in the earlier shared/Rectangles implementation: -large part spacing can make Rectangles overlap a clamp; rectangles below the clipping -grid can make layout validation (including Default's candidate scoring) throw. Irregular's -static-obstacle preparation does not repair these separate paths. The ordinary clamp -fixtures pass for both lanes and Default; this is not an all-input clamp-safety guarantee. +Rectangles blocks each clamp's keep-out out of its free list. When part spacing is so +large that the spacing-adjusted block would invert, it blocks a zero-width line at the +clamp edge facing the sheet interior instead: parts on that side keep the exact clearance +and the unavoidable extra exclusion falls toward the nearer sheet edge. Keep-outs narrower +than 0.001" on either axis are judged by a tolerance-free rectangle test +(`KeepOutOverlap`) in layout validation, interactive fill and the overlap check, so they +can neither crash validation nor be called clear. -This is whole-job engine support, not interactive fill/push or cutoff/post-verification -support; those consumers are separate work. Desktop clamp editing and the stock-size -resolution of a nest's clamp rail are described in +Desktop clamp editing, the stock-size resolution of a nest's clamp rail, last-resort clamp +removal and the other clamp-aware tools are described in [automatic nesting](automatic-nesting.md#machine-edge-clamps). Other engines and plug-ins have not gained clamp-aware placement from this change.