fix(engine): find the fewest clamps to remove, not only neighbouring runs

Recovery only tried contiguous runs of clamps, so a part with a notch over
a middle clamp had all three clamps removed although the two outer ones
were enough (D8: 'the fewest clamps that let it fit'). One probe per clamp
now finds the clamps every removal must include (a part that cannot fit with
only that clamp left needs it off; removal is monotone), and the search
tries every set by size, mandatory clamps plus the optional ones nearest the
origin first. Full-sheet parts resolve with one probe per clamp.

PM 3df03af2-35a6-49c2-9082-fc6208f5b708
This commit is contained in:
aj committed 2026-10-13 18:15:50 -04:00
1 parent 6908e00969
commit 4226c0f902
3 files changed
+87 -13

No files matched your search

+3 -2
View File
@@ -77,8 +77,9 @@ clamp covers the program start point.
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
lane finds a clamped placement - Auto Nest takes the fewest clamps off one sheet
that let it fit (not necessarily neighbours: a notch may let a clamp between
them stay; the clamps 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