mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-28 19:31:06 -04:00
Rapids may not cross holes already cut. On an instrument panel, mounting holes either side of a cutout become unreachable from each other once the cutout is cut, so the holes must come first. The contour-by-contour search backtracks chronologically through every entry combination of the last holes before it changes their order, and ran out of budget. Supplied-blank doors fell to an unverified safest route. Three changes: - Contour recovery, the part solver that memoizes failed states, now runs for display-perimeter parts too: their holes are the whole part, with no outside cut to finish on. - A door alone on its sheet gets the recovery pass first. Any other lone part keeps the plain search, whose routes are shorter. - Recovery learns, as whole-part ordering does: a hop onto a hole that crosses holes of the chain teaches "cut it before them" (skipping any rule that closes a cycle) and restarts the chain, with holes still waiting for a prerequisite ranked last. Rules only order candidates; no hole is skipped. Until a rule is learned the chain is unchanged.