The part cut first no longer makes a separate uncompensated centerline cut with its own lead-in and lead-out, then re-pierces for its remainder. It cuts its outside compensated, which puts its shared edge on the kerf centerline, starting on the common line: a straight lead-in from the scrap along the shared edge, then the line and on round its perimeter with no lead-out. A member with spans already cut stops in that kerf and cuts its last stretch from it, ending beside the part it is cut before. Partners still cut only their remainders. Replay's tabbed-ring accounting now accepts pieces that tile each span exactly once, and the pre-post review counts a span as cut by a member's compensated edge (or an older centerline cut). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4.8 KiB
Tabbed cutouts
A tabbed cutout is a hole whose slug stays attached to the part by small uncut tabs, so it cannot drop or tip up while the sheet is cut and is knocked out afterwards. In the CAD Converter's Tabbed Cutouts panel, Add Tabbed Cutout, then click a circle or any line or arc of a closed hole. The clicked entity grows into the loop that continues as a single path and closes on itself (within 0.001); it must lie inside another closed outline drawn with it, so the part's perimeter is refused.
The dialog sets the tab count (at least 1) and tab width; tabs start evenly spaced, one centered on the middle of the hole's first edge, and can be dragged around the hole. Edit re-spaces the tabs only when the count or width changes. The view shades the slug, draws the cut pieces and tabs, and marks where each piece is pierced.
Geometry contract
TabbedCutoutBuilder (OpenNest.Core/TabbedCutouts) resolves each
Drawing.TabbedCutouts entry against the entities being cut, after breakoffs:
- The hole is chained into one loop with its joints made exact (a circle becomes two half arcs), oriented counterclockwise and started at its lowest-left vertex (smallest X, then Y). Tab centers are distances along that loop and wrap around it.
- The loop is replaced, in contour order, by open pieces between tabs (keeping the hole's
layer) and the tab spans themselves on the
Tablayer (LayerType.Tab,SpecialLayers.Tab). Each tab follows the piece before it, so pieces and tabs close the hole exactly. - Tabs must not overlap and the loop must be longer than twice the total tab width.
Tabs are material, never cut
Tab spans bound material like Cut motions: SpecialLayers.IsMaterial keeps them, so
area, material capture (LeadMaterialSnapshot) and the material-overlap check all see a
closed hole. They are never cut. The plate view fills them but does not draw them as cuts.
Nesting is the exception: the slug stays attached while the sheet is cut, so nothing may
be placed in the hole. Nesting and layout paths read material through
NestingMaterial.ForNesting, which drops any closed contour with tab spans so the slug
counts as part: part outlines and collision lines (PartGeometry, Part), the cutout
router (JobPartGeometry, whose material area then includes the slug), fill expansion,
best-fit, NestLayoutCheck and the GPU bitmaps. Programs without tab spans read exactly as
before. A planned program has open pieces instead of a closed hole, so it bounds no hole
either way.
Both Plan Cutting (PreparedContours) and the manual lead-in tool
(ContourCuttingStrategy.Apply/ApplySingle) take a closed contour with tab spans out of
the contour choices. Every full or prefix emission cuts its pieces after the break cuts
and before the contours, never in single-contour probes:
- Each piece is cut in the hole's own direction from the tab before it, entered from the
slug with the internal lead-in;
NoLeadInpierces on the contour. There is no lead-out: the piece ends at a tab, which a run-out would cut into. - A lead-in that would reach back over the tab behind its piece is mirrored about the entry normal, so it approaches from the piece's side. On an arc, a lead ending in an arc would meet the cut tangentially, a contact verification cannot resolve, so the piece is pierced straight in from the same distance instead.
Verification
Plan Cutting certifies tabbed cutouts. Its contour accounting
(ContourProgramVerifier) requires each piece to follow one span between tabs without
crossing a tab, and the pieces to tile every span with no gap or overlap; the ring counts as cut
when every span is. A tabbed cutout's pieces each cover their span whole; only a
common-line member that starts on its common line cuts one span in two.
Lead validation treats a piece's start like any contour joint. The released-contour check
proves the open pieces retain their slug with the same open-cut proof pre-post review uses
(see pre-post verification); planning still refuses its own tabs
followed by a lead-out.
Pre-post review passes a planned tabbed cutout through that proof. A program that still
has tab motions (the clean drawing program, never planned) is reported as incomplete,
since a post may cut through them: Gravograph IS skips the Tab layer, while CI Fiber and
Cincinnati cut any non-lead, non-scribe layer.
Persistence
Definitions persist on the drawing, as tabbedCutouts in the
nest file, with the program already applied; tab motions are saved
tagged :TAB. CadImporter.BuildDrawing applies them and copies them to the drawing;
SourceEntities keep the original hole so a reopened drawing can be edited. Cutouts that
do not resolve (hidden or missing hole, overlapping tabs) are listed with the reason and
not applied, but stay on the drawing.