mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-23 11:41:39 -04:00
fix(core): check equivalent existing cutoffs against clamp spans
The automatic cutoff planner tested only the proposed X against active clamp spans, then certified a tolerance-close existing line at its own X. A manual line just inside a clamp edge could therefore be reported as a verified tail separator. Test the proposed X and every equivalent existing definition before regenerating. Also keep a same-line limited manual cut blocking the whole plan when it lies on a clamp, as it did before clamp checks were added. Project Memory: opennest 51597040-cff6-4304-87dc-3c2a13edf45a
This commit is contained in:
1 parent
d7187f65c7
commit
bde332fb10
3 files changed
+79
-18
No files matched your search
@@ -21,7 +21,7 @@ Only real parts contribute to the occupied envelope; existing cutoff parts do no
|
||||
|
||||
Cutoff trimming measures clearance from the part contour, excluding tagged lead-in and lead-out moves when building the closed outline. Leads must not turn a recessed outline into a convex hull and leave oversized gaps elsewhere. Genuinely open contours still use the conservative hull/bounds fallback. The conservative curve/offset approximation can leave a small extra gap (about 0.0003 in on a straight edge at the default 0.02-in clearance), not an extra quarter inch.
|
||||
|
||||
If no safe separator fits inside the sheet, there is no retained-tail claim and the nominal cuts may cover the full sheet length. A proposed tail is not reported as separated unless its generated program spans the full sheet width. An active clamp blocks any proposed full-width line whose X coordinate falls in the clamp's whole footprint plus bottom-edge clearance, including a nominal grid line or an equivalent existing line. Blocked lines are skipped with a clamp diagnostic; a blocked tail also reports `NoSafeTailSeparator` rather than claiming separation. Removed clamps on a sheet are absent from its active zones and do not block cuts. Obstructed or minimum-length-filtered lines produce diagnostics; they are not proof of a completed partition.
|
||||
If no safe separator fits inside the sheet, there is no retained-tail claim and the nominal cuts may cover the full sheet length. A proposed tail is not reported as separated unless its generated program spans the full sheet width. An active clamp blocks any proposed full-width line whose X coordinate falls in the clamp's whole footprint plus bottom-edge clearance, including a nominal grid line or an equivalent existing line. A tolerance-close existing line is tested at its own X as well as the proposed X, because that existing line is what would be certified. A same-line manual cut with different limits still blocks the whole plan, even on a clamp. Blocked lines are skipped with a clamp diagnostic; a blocked tail also reports `NoSafeTailSeparator` rather than claiming separation. Removed clamps on a sheet are absent from its active zones and do not block cuts. Obstructed or minimum-length-filtered lines produce diagnostics; they are not proof of a completed partition.
|
||||
|
||||
For a 120-by-81-inch sheet whose parts extend through 80 inches, the nominal skeleton lines are at 35 and 70 inches, followed by a separator beyond 80 inches at the required margin. There is no line at 105 inches through the retained tail.
|
||||
|
||||
|
||||
Reference in new issue
Block a user