fix(gpt6astra): rank lower Priority first and drop etch marks from geometry

Priority was sorted descending, the reverse of the host (StockLadder and
NestJobCandidateComparer treat a lower number as more important), so a
priority-9 part beat a priority-0 part for scarce stock. The existing test
encoded the inverted rule and now asserts the host's direction.

Part geometry filtered only rapids, so scribe/etch moves counted as
material - the bug OpenNest fixed in 1b5e1b1. Use SpecialLayers.IsMaterial.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
aj
2026-09-25 07:45:12 -04:00
co-authored by Claude Opus 5.5
parent f973c1c15c
commit ffa3590b46
5 changed files with 36 additions and 8 deletions
+2 -2
View File
@@ -20,8 +20,8 @@ concave interlocking, and insertion into straight-edged and curved holes.
envelope area is within 8% of the minimum; retain additional orientations when needed to fit
a candidate stock. Fixed and bounded rotation policies remain enforced. Bounded sweeps use
up to 721 integer step indices, including permitted half-turn equivalents.
3. Process high-priority parts first, then parts fitting fewer available stock types, then larger
envelopes. Larger frames precede inserts. Search every retained orientation for each instance.
3. Process high-priority parts first (a lower `Priority` number ranks higher, as in the host),
then parts fitting fewer available stock types, then larger envelopes. Larger frames precede inserts. Search every retained orientation for each instance.
4. Build cached Minkowski/no-fit regions. Convex pairs use Core's linear convex NFP primitive;
concave pairs use Clipper's integer Minkowski sum. Arc-heavy concave contact outlines use
a coarser mesh with both approximation bounds added to clearance; fine material geometry