mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-26 14:11:09 -04:00
fix(cutting): check every lead against all other material again
The second delta review compared the filtered checks with the previous implementation on 5,400 generated cases. Rapid checks matched in every case, but 114 lead checks differed: a long lead passing a small circle or arc well over 0.001 away was reported clear, while the native line/circle query, through rounding in its squared terms, reports a contact there. A coordinate limit and a fixed margin cannot bound that cancellation. Lead checks therefore examine every other part's material again, exactly as before the filter; LeadMaterialSnapshot no longer keeps an extent. Rapid checks, including the pre-post review's, keep skipping completed contours more than 0.001 clear of the rapid. The 900000-long lead beside a radius-0.0001 circle is a regression test. Planning a dense 144-part grid now takes about 19 s again (lead checks dominate); a new part order is still found where the old search gave up.
This commit is contained in:
1 parent
8c21c62ec3
commit
ea1270e1e7
4 files changed
+36
-18
No files matched your search
@@ -101,10 +101,13 @@ motions, never the nominal entry point alone. Existing lead styles are not
|
||||
shortened, disabled or substituted as a search fallback.
|
||||
|
||||
Every candidate rapid is checked against contours already completed, including
|
||||
earlier holes in the same part. Future contours are not yet obstacles. Rapid and
|
||||
lead checks skip contours and material whose extents are more than 0.001 clear
|
||||
of the motion, ten times the widest band any native contact query allows beyond an
|
||||
extent; anything closer, touching included, gets the full native check. An arc's
|
||||
earlier holes in the same part. Future contours are not yet obstacles. Rapid
|
||||
checks skip completed contours whose extents are more than 0.001 clear of the
|
||||
rapid, ten times the widest band any native contact query allows beyond an
|
||||
extent; anything closer, touching included, gets the full native check. Lead
|
||||
checks examine every other part's material: native line/circle queries can report
|
||||
rounding contacts for long leads far from small circles, and leads keep those
|
||||
results. An arc's
|
||||
extent is its whole supporting circle widened to the distance at which the native
|
||||
contact query still counts it as touched (for a very small arc up to 0.0001 beyond
|
||||
its radius). Nothing is skipped when either extent has a nonfinite bound or reaches
|
||||
|
||||
Reference in new issue
Block a user