mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-11-05 02:21:36 -05:00
fix(verify): resolve adjacent curves before any native query runs
A fillet whose circle is tangent inside the arc it continues, as a keyhole's slot ends are, gives the supporting-circle query of the pair no real root: the circles' distance is the radii's difference up to rounding, so the intersection comes back NaN, and the unfiltered check that runs before any adjacency handling refused the whole part as "nonfinite program coordinates". On the production corpus 17 plates failed this way. Adjacent curves are now resolved from their shared vertex before the native query would run, so no query runs for them. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
60d235c8ce
commit
c122e64edd
3 files changed
+71
-44
No files matched your search
@@ -71,7 +71,9 @@ end (within the check epsilon, 1e-8) are not put to the native intersection quer
|
||||
all: it is ill-conditioned at such a joint (two circles meeting at a shallow angle, as a
|
||||
fillet continuing into a larger arc, or a line meeting its fillet), and lands its root up
|
||||
to 1e-5 off the vertex, which no joint tolerance can tell from a cut that touches beside
|
||||
the joint. `PostVerificationGeometry.Curve.Contacts` reports the shared vertex itself and
|
||||
the joint; a fillet whose circle is tangent inside the arc it continues, as a keyhole's slot
|
||||
ends are, gives the supporting-circle query no real root at all, which read as nonfinite
|
||||
coordinates and refused the whole part. `PostVerificationGeometry.Curve.Contacts` reports the shared vertex itself and
|
||||
derives the pair's other intersection from it (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 when it lies on both finite spans. Every consumer of contacts
|
||||
|
||||
Reference in new issue
Block a user