mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-11-06 10:05:46 -05:00
Six-decimal incremental PEP programs round arc centers, so an arc's end tangent misses its neighbor's by about gap / radius (1.6e-5 rad on the offset 5/32" fillet in the reported nest). Two parts resting one spacing apart then gave the slide contact a Minkowski cone a hair wider than a half-plane, which the classifier read as the whole plane: every direction blocked, so the top part could not be pushed sideways along the part below. SlideContact now reads a cone up to TangentSlack (1e-4 rad) past a half-plane as a noisy half-plane and widens its boundary and concave-ray comparisons by the excess, so near-tangential slides read as tangential. A direction admitted that way can enter material by at most travel x excess at that contact, and every other contact is still classified on its own; wider cones remain real overlap and block. Raising JointTolerance was not needed for this case and is left at 1e-6. Whole-job benchmarks (synthetic nests plus the PEP job at 3 and 60 parts, --parallel 1) are identical before and after for every engine. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>