Geometry
Drawing a cross-section: primitives, snapping, transforms, subdivision and DXF exchange.
Drawing primitives
A model's geometry is built from three shape types, each a toolbar button in the Geometry tab of the Model Tree's Tools section:
- Line — click a start point, then click an end point;
- Arc — three clicks: the centre, then a point that sets the radius and the start angle, then a third point (or a typed sweep angle) that sets the end angle;
- Circle — click the centre, then click a point on the circumference to set the radius (or type the radius, see Precise numeric entry below).
There is no separate "point" tool: a point only exists as a shape's endpoint, as a region or hole marker, or as one of the sample points subdivision generates along a shape. Regions and holes are placed the same way — arm Add Regions or Add Holes and click inside a closed boundary; Ctrl+click an existing marker to select it instead of dropping a new one. See Regions & materials.
A region or hole marker only records a point — it is re-triangulated to fill whatever closed loop of shapes surrounds it every time you edit the geometry. If that loop is not actually closed (a gap, a missing shape) the marker finds nothing to fill and silently covers no area, which shows up later as a region with no mesh under it rather than as an error at the moment you placed the marker. A shape that crosses itself or another shape is handled for you: meshing automatically inserts a vertex at every crossing and splits the shapes there, so a self-intersecting outline still produces clean, closed loops rather than being rejected.
Editing existing geometry
There is no vertex-drag or "move point" mode: a shape's endpoints cannot be dragged once drawn. To change a line, arc or circle, delete it (select it, press Delete) and draw the replacement, or use one of the transforms below to move, turn or mirror it as a whole. Deleting a shape does not delete a region or hole marker that depended on it for enclosure — see the note above.
Precise numeric entry
Clicking places a point at the exact cursor position, which is precise enough when you are snapping to an existing vertex or a grid intersection, but not when a dimension needs to be exact — a slot width from a datasheet, an arc radius to three decimal places. While a Line, Arc, Circle or Offset tool is active and waiting for its next click, type on the numeric keypad (digits and the decimal point) to build a value in a live tooltip next to the cursor instead of moving the mouse to set it:
- drawing a Line, the typed value is its length — direction still comes from where the mouse currently points;
- drawing a Circle or setting an arc's radius point, the typed value is the radius;
- on an arc's third click, the typed value is the sweep angle in degrees (capped at 360°), instead of clicking a third point;
- using Offset, the typed value is the offset distance (default 1 unit).
Backspace/Delete clears the buffer back to zero, and Enter (or the numeric keypad's Enter) commits it and advances the tool to its next stage, exactly as a click would. Esc backs the tool out one stage at a time (or cancels it entirely if no points are placed yet). There is no equivalent field for typing an absolute X/Y coordinate directly — combine Grid snap or Point snap with typed lengths/angles to reach an exact position relative to something already drawn.
Snapping
Four snap modes, chosen with radio buttons above the canvas:
- No snap — the cursor position is used exactly as clicked;
- Grid snap — snaps to the nearest grid intersection;
- Point snap — snaps to an existing vertex, the setting you want when closing a boundary so two shapes actually share a coincident endpoint rather than leaving a sliver gap Triangle will refuse (or a crack that leaves an element degenerate — see Troubleshooting — mesh generation fails or looks wrong);
- Shape snap — snaps to any point along an existing shape, not only its endpoints.
Grid snap's spacing is configurable (Options → Application Preferences → Geometry, 1–1000 in the current length unit); the grid's own visibility is a separate checkbox next to the snap-mode radio buttons, so you can snap without drawing it, or draw it without snapping.
Transforms
Transforms act on the current shape selection (see Interface — selection):
- Mirror — click two points to draw a mirror line; the selected shapes are reflected about it;
- Translate and Rotate — drag the selection to move or turn it interactively;
- Array — opens Create Shapes Array: set rows, cols, and the row/column spacing, and the selection is repeated on a rectangular grid;
- Circular Array — opens Create Circular Shapes Array: set the number of Items and the total Span in degrees (360 for a full ring), and the selection is repeated by rotation about a centre point — the natural way to turn one drawn slot into a whole stator, or one pole into a whole rotor;
- Offset — click a line, arc or circle, then move the mouse to preview a copy of it offset toward whichever side the cursor is on; click again (or type the distance, see Precise numeric entry) to create the new, offset shape. The original shape is kept, not modified — useful for building a second, concentric boundary at a fixed clearance from one you already drew (a sleeve around a magnet, a duct wall);
- Extend — click the target boundary first, then click the line to extend up to it. Only a straight line can be the shape that gets extended, to a target that is a line, an arc, or a circle; the original line is replaced by the longer one (there is no "trim" counterpart — shorten a line by deleting and redrawing it).
Both act on a single shape at a time, unlike Mirror/Translate/Rotate/Array which act on the whole current selection.
Subdivision
Subdivision splits a drawn shape into several equal sub-segments before meshing, giving you local control over mesh density along a specific boundary without changing the global mesh size. Three settings, in the Mesh tab, control whether Triangle is allowed to add its own extra points along a boundary on top of what you subdivided it into:
- Don't apply subdivision — Triangle may insert additional points anywhere it judges necessary (its default Steiner-point behaviour);
- Apply subdivision for exterior shapes — Triangle may not add points on the model's outer boundary, only inside it;
- Apply subdivision for any shapes — Triangle may not add points on any boundary at all; the mesh follows your subdivision exactly.
A separate, more specific subdivision setting exists for the sliding-band air-gap boundary in machine models — see Meshing — mesh size.
DXF import and export
Bring geometry in from, or send it out to, a CAD package via File → Import
.dxf and File → Export .dxf. A DXF is also written
automatically next to your model every time you save, as a geometry mirror of the current
.nbl — see File formats.
Import reads LINE, CIRCLE, ARC and LWPOLYLINE entities (polylines are decomposed into their constituent lines and arcs, including bulge-defined arc segments). Any other entity type — splines, ellipses, old-style polylines, blocks/inserts, text — is silently skipped. If an imported cross-section meshes very differently from how it looked in your CAD package, this is the first thing to check: open the DXF in a text editor or your CAD tool and look for entity types outside that list, and redraw those features as lines and arcs before importing, or after import inside Nabla.
Export writes only lines, circles and arcs too — a curve you built from an unsupported entity type on the way in was already converted or dropped, so there is nothing further lost by exporting again.
Units
Coordinates and lengths are in the unit set under Options → Application Preferences → Length Units (millimetres, centimetres, metres, inches or feet; millimetres by default) and angles are always in degrees. Changing the unit only relabels the numeric fields you type into — it does not rescale geometry you have already drawn — so decide on a unit before you start a new model rather than partway through.