mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-11-03 13:31:39 -05:00
A closed contour around its center with at least 270 degrees of arc on one center and radius now counts as a keyed hole, in its own row after round holes of that diameter. Curved slots stay out: their long arcs wrap around solid material, so the center is outside the contour. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
77 lines
4.7 KiB
Markdown
77 lines
4.7 KiB
Markdown
# Dimensions
|
|
|
|
A drawing can carry dimensions, shown in the CAD Converter:
|
|
|
|
- Overall dimensions: the part's size along X and along Y. In the **Dimensions** panel,
|
|
**Add Overall Dimensions** adds whichever of the two is missing, below and to the right of
|
|
the part. Drag a dimension line to move it, across the part to its other side if wanted.
|
|
- Radius and diameter dimensions on circles and arcs. Select one or more circles or arcs,
|
|
right-click and choose **Add Radius Dimension** or **Add Diameter Dimension**. Each curve
|
|
gets at most one of each. Drag the leader to swing the label around the curve and move it
|
|
in or out; a radius on an arc stays on the arc's sweep.
|
|
|
|
**Remove** in the Dimensions panel deletes the selected dimension.
|
|
|
|
## Contract
|
|
|
|
Dimensions are annotations. They never affect the program, nesting, cut time or posts, and
|
|
they do not appear on plates, in PDFs or in DXF export.
|
|
|
|
- `Drawing.Dimensions` stores only placement, so a value cannot go stale:
|
|
- Overall: the kind and the signed offset from the part's extents. Positive is above
|
|
(horizontal) or right (vertical).
|
|
- Radius and diameter: the kind, the measured curve's entity ID, the leader angle from the
|
|
curve's center (radians) and the signed offset from the curve to the label along the
|
|
leader, positive outside.
|
|
- Zero is never a valid offset.
|
|
- `DimensionBuilder` (`OpenNest.Core/Dimensions`) measures overall dimensions from the
|
|
entities as they will be cut: visible, with roles, breakoffs and tabbed cutouts applied, as
|
|
the Program tab builds them. `FileListItem.Bounds` is not used because it includes hidden
|
|
layers.
|
|
- Marks do not count toward overall dimensions: anything `ScribeLayerRepair.IsMarkLayer`
|
|
matches (scribe, etch and engrave, by layer name) and anything `SpecialLayers.IsMaterial`
|
|
rejects (rapids, break cuts). `IsMaterial` compares layer objects, so it alone would count
|
|
source marks on their own layers. Tabs and a breakoff's scrap count: both are material of
|
|
the part as cut.
|
|
- Radius and diameter find their curve by ID among the visible entities with roles applied,
|
|
before breakoffs and tabbed cutouts, which split a curve into new pieces. A cut or etched
|
|
curve can be dimensioned; an excluded, hidden or display-only one is not shown. Adding one
|
|
to a display-only curve explains that it must be set to Cut or Etch first. An arc that is
|
|
a full circle is measured as a circle.
|
|
- New radius and diameter labels sit outside the curve by half its radius, or a twentieth of
|
|
the part's larger size when that is more. On a circle the radius leader points up and right
|
|
and the diameter leader up and left, so the two do not overlap; on an arc both point
|
|
through the middle of its sweep. Dragging keeps the label a few pixels clear of both the
|
|
curve and the center; a curve too small for that keeps the label outside.
|
|
- A dimension with nothing to measure, a part with no size along its axis, or a curve that
|
|
is gone or no longer cut is listed as not shown and keeps its placement until the geometry
|
|
returns.
|
|
- Values show three decimals with no unit, in the drawing's units; radius labels are drawn
|
|
with an `R` prefix and diameter labels with `Ø`.
|
|
- Split pieces start with no dimensions, like breakoffs and tabbed cutouts.
|
|
|
|
## Hole table
|
|
|
|
**Holes...** in the CAD Converter's bottom bar opens a small Hole Table window beside the
|
|
view. It lists the drawing's round and keyed holes by diameter, smallest first, with the
|
|
quantity of each and a color swatch. While it is open, every hole on the view is drawn in its size's color
|
|
with a heavier line; closing the window restores the normal colors. The table follows the
|
|
selected file and updates when entities are cut, etched, set to display, excluded or
|
|
simplified.
|
|
|
|
- A round hole is a cut circle, or a closed contour made only of arcs on one center and
|
|
radius, that lies inside another cut contour. The outline of a round part is not a hole.
|
|
- A keyed hole is a closed contour around its center with at least 270 degrees of arc on one
|
|
center and radius, and anything else for the rest: a keyway, a flat. It must also lie inside
|
|
another cut contour. It takes the arc's diameter and its own row, marked `keyed`, after
|
|
round holes of that diameter.
|
|
- Slots, curved slots and other shapes are not listed.
|
|
- Holes are read from the entities as they will be cut (visible, with roles applied), before
|
|
breakoffs and tabbed cutouts. Etched, display-only, excluded and hidden circles are not
|
|
listed.
|
|
- Diameters are rounded to four decimals, in the drawing's units; holes that agree to four
|
|
decimals share a row. `HoleTable` (`OpenNest.Core/Dimensions`) builds the rows.
|
|
- The table is a view only: it stores nothing in the drawing and never affects the program.
|
|
|
|
File format: see [drawing dimensions](nest-file-format.md#drawing-dimensions).
|