mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-27 05:01:05 -04:00
A nominal ring may close within NominalContourClosure.Tolerance, and replay already carried that admitted gap as slack when bridging it shortens the cut. When the gap instead lies across the following edge, the emitted path starts that edge at the ring's end point, so the cut is longer by the gap. Two checks still compared at the exact epsilon and refused it as "invalid input": - the retrace guard rejected any surplus length beyond 1e-8; - Follows matched the edge's leftover sliver against the next nominal entity and failed its direction check. Both now use the ring's admitted slack, the same bound the shortfall and the nominal side of Follows already use. Exactly closed rings keep the epsilon, and a second circuit still exceeds the slack by a whole ring. A0227-08's sprocket outline misses its start by 1e-6 and refused planning in both keep-order and reorder modes; it now plans Ready and applies. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>