mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-11-04 13:41:37 -05:00
Two curves that meet end to end share that vertex, but every contact check asked the native intersection query about them, and it is ill-conditioned there: two circles meeting at a shallow angle (a fillet continuing into a larger arc) or a line meeting its fillet put their root up to 1e-5 off the joint when the DXF arcs were rounded apart from their neighbors by 1e-9. Material validation then refused the part as self-touching, and the open-cut proof read a tabbed perimeter's fillet joint as a loop, so with support tabs on every such part lost its retention proof and its plate came back blocked. On a corpus of 1260 production plates this was the largest planner failure class: 61 of 67 NoSolutionWithinBudget plates, all planning once the joint is exact. Contacts now report an adjacent pair's shared vertex itself and derive the pair's other intersection from it analytically (two circles meet again at the vertex's mirror image across the line through their centers; a line meets a circle again at the far end of its chord), keeping it only on both finite spans. No tolerance grows: a genuine second crossing beside the joint is still reported, and overlapping spans still refuse. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>