mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-15 18:01:37 -04:00
Phase 2 offered every removal variant to all residual demand in one solve, each variant as unlimited stock. A sheet could take more clamps off than its own parts needed (C11), and a finite pool could yield extra physical sheets (C12). One root cause, one repair: each variant is now solved separately, fewest removals first, with its own blocked parts plus unblocked residual demand; a sheet is kept only when it holds a part that needed exactly that removal; kept sheets come out of the base stock's remaining pool and the plate cap. The expanded job reduces each finite base by what its variants took, so validation sees the true inventory. Variants are cloned from the exact sheet-frame zones instead of a translate round trip. PM f91e054a-6f62-4080-91ed-2e1ce1f6eb7e; PM 245a555f-4f16-40b0-a3c9-430c661ad6a6