1The screen
Carrosse is a single-window app. From top to bottom:
| Region | What it holds |
|---|---|
| Help tab | Right of Manage: the user manual, keyboard shortcuts, About and the third-party licenses. |
| Quick-access row | The File menu (its file actions, then the classic Edit / View / Insert / Format / Tools / Draw / Dimension / Modify / Window / Help menus as submenus; every item runs the same command the terminal would), then small New / Open / Save / Save As / Print / Undo / Redo buttons and the ribbon tabs. |
| Ribbon | Tabs Draw, Insert, Annotate, View, 3D (§11) and Manage, each showing its tool groups in one flat strip, a group's title beneath its buttons. Groups can be hidden from the Window menu (§12.4). |
| Document tabs | One tab per open drawing, + for a new one, × to close. Ctrl+Tab cycles. |
| Canvas | The drawing itself (GPU-rendered), with the crosshair, grips, snap markers, and dimension/text labels. |
| Properties panel | Right side. A property sheet: a line naming the selection, then collapsible sections (click a bar to fold it) of label/value rows that edit everything about the selection (§5.4). Unpin it and it collapses to a thin edge tab that expands on hover; the × folds it straight away. |
| Command line | A card floating at the bottom of the canvas: a yellow prompt line showing what the active tool expects next (or the last message), the input field with a run arrow, a history button and the palette button. F2 (or HISTORY) opens the scrolling history in a window. |
| Status bar | Left: ⊞ Model plus one tab per paper-space layout. Right: running object-snap toggles, polar increment, POLAR / ORTHO / GRID / LWT toggles, and the unit selector. |
There are two kinds of space: model space (the ⊞ Model tab, where you draw at real-world size) and paper space layouts (the sheet you compose and print, with viewports looking into the model — §10).
2Giving commands
Everything funnels into one command dispatcher, so the four ways to invoke a command are interchangeable:
The command line
Type into the command line at the bottom of the canvas. Enter submits — and so does Space whenever the input is non-empty, or the arrow at the field's right end. The input auto-focuses whenever nothing else has keyboard focus, so you can usually just start typing. The line above the field shows the active tool's prompt, or the last message; press F2 (or type HISTORY) to open the full history in a window — echoed input is dim, app output green, errors red.
With the command line empty, Space or Enter confirms the operation in progress — or, when nothing is pending, repeats the last command.
The command palette
Ctrl+P opens a fuzzy-search palette listing roughly a hundred commands with their aliases and live shortcut hints. ↑/↓ to navigate, Enter to run, Esc to close. It also has Panel: … entries to show or hide each ribbon group.
Menus and ribbon
Menu items show their typed alias on the right (e.g. Line L) — those hints are what you type, not keys you press. Ribbon buttons activate the same tools directly.
Keyboard shortcuts
Every action can be bound in Options → Keyboard (KEYS). Two kinds of bindings exist (§12.3): Ctrl/Alt chords fire immediately as accelerators, while bare-key sequences act as typed aliases — binding Q Q to Rectangle means typing qq⏎ runs it. Six chords ship bound by default: Ctrl+P palette, Ctrl+Z/Ctrl+Y undo/redo, Ctrl+N/Ctrl+O/Ctrl+S new/open/save.
Tool options while drawing
Many tools have options mid-command. A small badge near the cursor signals they exist; press ↓ to open the option menu (navigate with arrows, confirm with Enter), or just press the option's letter — C to close a polyline, A for arc segments, D to type a rectangle's dimensions, and so on. Esc is the universal cancel: it clears pending prompts, snap overrides, popups, grip drags, and the active tool.
Type HELP (or ?) in the terminal any time for the built-in command list, or MANUAL (Help → User Manual) to open this manual in your browser.
3Drawing
All geometry lives in millimetres internally; the display unit (§4.5) only changes how values are shown and parsed. The drawing tools, with their mid-command options:
| Tool | Command | How it works |
|---|---|---|
| Line | LINE · L | Pick point to point; keeps chaining until Esc or confirm. |
| Construction line | XLINE · XL | Infinite guide line. Options: Horizontal, Vertical, Angle, Bisect. Always drawn continuous; excluded from Zoom Extents. |
| Circle | CIRCLE · CIR | Centre, then a radius point. Four ways in: Center, Radius, Center, Diameter, 2-Point (the diameter's ends) and 3-Point (through three points) — pick one from the ribbon's Circle menu, the ↓ option menu, R/D, or type 2P, 3P, D at the prompt (CIRCLE 3P works too). A typed number sets the radius or diameter from the last point. |
| Arc | ARC · A | AutoCAD's eleven ways: 3-Point (the default), Start, Center, End / Angle / Length, Start, End, Angle / Direction / Radius, Center, Start, End / Angle / Length, and Continue (tangent from the end of the last line or arc drawn). Pick one from the ribbon's Arc menu or the ↓ option menu, or type its letters after the command (ARC SCE, ARC CO). Mid-command the AutoCAD keys work too: after the start point C asks for the centre next and E for the end; at the last step A angle, L chord length, D direction, R radius. A value step takes a click or a typed number (degrees for an angle or direction, your unit for a length or radius; a negative angle sweeps clockwise, a negative length or radius picks the major arc). Arcs from a centre run counter-clockwise, as in AutoCAD. |
| Ellipse | ELLIPSE · EL | Axis endpoints, then the other semi-axis. Elliptical arcs supported. |
| Polyline | POLYLINE · PL | Mixed straight/arc segments, open or closed, optional width (drawn as a filled band). Options: Arc / Line segments, Width, Close, Max-length budget, X clear max. |
| Rectangle | RECT · REC | Two corners — or press D after the first corner to type width, then height. Produces a closed polyline. |
| Revision cloud | REVCLOUD · RC | A closed polyline of outward bumps: Rectangular (two corners, the default) or Polygonal (click the points, right-click or Enter closes). R/P switch, A asks the arc length (one bump's chord), which stays for the next cloud. |
| Wipeout | WIPEOUT · WO | A polygon that hides whatever draws before it, on any layer (creation order; Bring to front / Send to back change what it covers), painted in the background colour on screen and white on the plot. Click its corners; right-click or Enter closes. Its frame follows the drawing-wide WIPEOUTFRAME setting, as in AutoCAD: 1 shown and plotted (default), 2 shown but not plotted, 0 hidden. Change it from the ↓ menu while drawing one, or the Frames row in Properties with a wipeout selected. With frames hidden a wipeout can't be clicked; pick it with a window or Quick Select (object type Wipeout), and once selected its frame shows again. Saved as a WIPEOUT in DWG. |
| Point | POINT · PO | A point entity at every click until Esc; drawn as a fixed-size cross, snapped to with NODE. |
| Polygon | POLYGON · POL | Regular n-gon, three ways: Inscribed (centre, then a vertex), Circumscribed (centre, then an edge midpoint) or Edge (both ends of one edge; the polygon sits to its left). Pick from the ribbon's Polygon menu, the ↓ option menu, or I/C/E at the prompt, even after the first point. Type a number for the side count. |
| Point | — | Node marker, drawn as a small cross of fixed screen size; snappable (NODe). |
| Divide | DIVIDE · DIV | Click a line, arc, circle, ellipse or polyline, then type the number of equal segments: point markers land at the divisions (interior points of an open curve, every division of a closed one), measured by true arc length. Press B first to insert a block at each division instead — it asks for the block name and whether to align the block with the curve. Markers go on the current layer; the source object is untouched. |
| Measure | MEASURE · ME | Same as Divide, but you type a segment length (in the current units, e.g. 3'-6") instead of a count. Measuring starts from the end of the object nearest where you clicked it and places a marker every full length, never on either end; a closed object is measured from its start point. B inserts a block instead of points. |
| Hatch | HATCH · HA | Opens the hatch dialog, then click internal points (§6.4). |
| Text | TEXT · TXT | Click an insertion point; the rich-text editor opens (§6.3). |
| Leader | LEADER · LE | Arrowhead tip first, then the callout points. |
Dimensions (§6.1), blocks (§8), images and PDF underlays (§9) round out what can be placed in a drawing.
4Precision input
4.1 · Coordinates and distances
- Absolute coordinates — type
x,y(e.g.100,50) at any point prompt. - Relative coordinates —
@x,ymeasures from the last point. - Direct distance entry — with a tool anchored (Line, Polyline, Copy, Move, Stretch, or a grip drag), aim the cursor and type a bare number: the point lands that far in the cursor direction, or along the locked angle.
- Angle lock — press Tab once a tool has an anchor, type an angle in degrees, then a length.
All values parse in the current unit system, and an explicit suffix always wins — so feet/inch input works in any unit mode: 10, 10mm, 2.5m, 3", 1.5ft, 10.5', 122.75", 3'6", 3'-6".
Fractional inches — separate the whole inches from the fraction with a dot or a dash: 35.5/8" and 35-5/8" both read as 35 5/8". The same forms work after the feet marker (10'4.5/16", 10'4-5/16", 122'1-15/16") and on their own (5/8"). Do not type a space before the fraction at the command line: Space is Enter there, so 35 5/8" would submit 35 on its own. The space form is only accepted in dialog fields.
4.2 · Object snaps
Running snaps are toggled on the status bar; each pick automatically lands on the nearest active snap point, with a marker oriented along the entity:
| Tag | Snap | Notes |
|---|---|---|
END | Endpoint | On by default. |
MID | Midpoint | |
CEN | Center | Circles and arcs. |
QUA | Quadrant | 0/90/180/270° points on circles and arcs. |
PER | Perpendicular | Foot of the perpendicular from the last point. |
TAN | Tangent | Tangent point from the last point to a circle or arc. |
INT | Intersection | Real crossings between two entities. |
APP | Apparent intersection | Where two entities would cross if extended. Complements INT — real intersections win. |
NEA | Nearest | Closest point on any entity. |
GRD | Grid | Grid intersections (snapping; F7 toggles grid display). |
Single-shot overrides beat the running snaps for the next pick only: open the override menu with Ctrl or Shift + right-click in any tool, or type the snap name (MID, INT, NEA… — see §14). M2P picks the midpoint between two points you click; NONSNAP disables snapping for one pick. The armed override shows as ⟨TAG⟩ at the far right of the status bar; Esc cancels it.
4.3 · Ortho and polar tracking
Ortho (F8) hard-locks the cursor to horizontal/vertical from the anchor. Polar tracking (F10) snaps to multiples of a configurable increment — click the NN° label in the status bar to set it (1–180°, presets 15/30/45/90°). The two are mutually exclusive; turning one on turns the other off.
4.4 · Grid
F7 toggles the grid display; GRD on the status bar toggles grid snapping. Minor and major spacing are set in Options → General, in your display unit. The visible grid auto-rescales in 1–2–5 steps so cells stay legible at any zoom.
4.5 · Units
UNITS sets or reports the display unit; the status-bar combo does the same. Changing units never rescales geometry — only how values display and parse.
| Unit | Token | Example |
|---|---|---|
| Millimetres | mm | 12.3456 mm |
| Centimetres | cm | 1.234 cm |
| Metres | m | 0.012345 m |
| Inches | in | 3.5" |
| Decimal feet | ft | 3.5000' |
| Feet + inches | ft-in | 3'-6" |
| Architectural | arch | 3'-6 1/16" |
In the feet/inch systems a bare number means inches. Areas read out in mm²/cm²/m²/in², or decimal ft² for all feet-based systems.
5Selecting & editing
5.1 · Selection
- Click an object to add it to the selection; Shift+click removes it; Esc clears everything (PICKADD-style: selections accumulate).
- Click empty space to start a selection box, completed by a second click. Left-to-right is a window (only fully enclosed objects, red box); right-to-left is a crossing (anything touched, green box). Shift makes the box subtractive.
- Blocks and attached drawings are tested against their real geometry, not just their frame. Picking prefers real geometry over nearby annotation. Selection uses the raw cursor — osnap applies to placement, never to picking.
- Ctrl+A selects everything in the active space; Delete erases the selection.
- Quick Select (QSELECT ·
QS) filters by object type (Wipeout included), layer, colour, linetype, dimension style, or text content, against the whole drawing or the current selection, with Select / Add / Remove actions.
5.2 · Modify commands
| Command | Aliases | What it does |
|---|---|---|
| MOVE | MV MO | Base point → destination. |
| COPY | CP C | Base point → destination, repeatable. |
| ROTATE | RO ROT | Base point, then click an angle or type degrees directly. |
| SCALE | SC | Base point, then a positive factor. |
| MIRROR | MI | Two-point axis; then asks Delete source objects? [Y/N]. |
| STRETCH | SS STR | Crossing window; enclosed vertices move, crossing edges stretch. |
| ALIGN | AL | Two source/destination point pairs; then asks whether to scale. |
| OFFSET | O | Type a distance, then click the side. |
| TRIM | TR | Q Quick mode (everything is a cutting edge) or S Standard (pick edges first). Remembers your mode. |
| EXTEND | EX | Click near an object's end to extend it to a boundary. |
| FILLET | FI | Type a radius (0 = sharp corner), pick two entities. |
| CHAMFER | CHA | Type the first distance, then the second (Enter = the same; Enter at the first prompt = the last pair), pick two lines: each is cut back by its distance and a line joins the cuts. Works on polyline corners in place. Both distances 0 = sharp corner. |
| ARRAY | — | Dialog: rectangular (rows/columns/spacing) or polar (count, fill angle, centre pick, rotate-with-array). |
| EXPLODE | X XP | Blocks → world geometry; polylines → segments. |
| ERASE | E DEL | Delete the selection. |
| MATCHPROP | MA | Click a source object, then paint its layer/colour/lineweight/linetype onto others. |
| FRONT / BACK | BF / SB | Draw order, drawing-wide as in AutoCAD: objects draw in creation order across every layer (new ones on top), and these move the selection in front of or behind everything. A wipeout hides what draws before it on any layer. DWG imports keep AutoCAD's own draw order. |
5.3 · Grips
Selected entities show grips: click one to arm a drag, click again to place it (typed distances and coordinates work too; Esc restores). Shapes mean things — squares are endpoints/vertices/centres, diamonds are segment midpoints (on polylines and hatches a midpoint grip inserts a new vertex), circles rotate, arrow pairs flip, arrowheads stretch dynamic blocks, and ▼ triangles pick a block's visibility state (§8.4). Hovering a polyline grip offers Make arc / Make line on segments and Add / Delete vertex on vertices. Dragging a dimension's measurement grip detaches it from the geometry it was measuring.
5.4 · The Properties panel
The right-hand palette edits whatever is selected, in your display units. The Appearance section covers layer, colour (ACI/RGB/ByLayer), lineweight, linetype and per-object linetype scale; each defaults to ByLayer. Below it, a per-type geometry editor exposes everything measurable — a circle's radius/diameter/circumference, an arc's span and length, a polyline's vertices, a text's alignment and rotation, a viewport's scale and lock, a block's scale, rotation, mirror flag, visibility state and attribute values, a hatch's pattern, angle and area.
With a mixed multi-selection, an Editing combo narrows the edit to one entity type; the panel always ends with the selection's Extents. Right-clicking an object opens a context menu with the most common actions (edit block/text/attributes, rotate 90°, flip, delete).
5.5 · Clipboard
Ctrl+C copies the selection, Ctrl+Shift+C copies with an explicit base point, Ctrl+V pastes (click to place, repeatable, Esc to finish). Paste works across document tabs and carries layers and styles along.
6Dimensions, text & hatches
6.1 · Dimensions are live
Dimension values are never stored — they are recomputed from the geometry and the current unit system every frame. Dimensions are also associative: they attach to the geometry they measure, so stretching a wall updates its dimension. Dragging a dimension's measurement grip breaks that association for that point.
Seven kinds: aligned, horizontal, vertical, radius, diameter, angular and ordinate. An ordinate dimension (DIMORDINATE, DOR) reads one coordinate of a feature point from the drawing origin at the end of a dogleg leader: click the feature, then the leader's end. A leader running mostly up or down gives the X coordinate, one running sideways the Y; X or Y at the prompt forces the datum. The value hangs off the leader's end and reads along it; its grip moves the text alone. DIMCONTINUE (DCO) chains dimensions: after a linear or ordinate dimension, each click adds the next one from the previous second point, on the same dimension line.
| Kind | Command |
|---|---|
| Aligned | DIM · DAL |
| Horizontal | DIMH · DH |
| Vertical | DIMV · DV |
| Radius (R prefix) | DIMR · DR |
| Diameter (Ø prefix) | DIMD · DD |
| Angular | DA · DIMANG |
Each dimension has grips on both measure points, the text (drag it anywhere), and the dimension line. A Reset text position button in Properties puts wandering text back.
Overriding the text
You can replace a dimension's displayed value with your own text — double-click the dimension (or right-click → Dimension Text…, or the Text field in Properties). Inside the override, <> stands for the live measurement, so <> TYP. displays as 3'-6" TYP. and keeps updating when the geometry changes; text without <> replaces the value entirely. \P starts a new line (the DXF paragraph break), so <>\PSEE NOTE 3 stacks the note below the measurement — on screen, on plots, and through DXF.
Overridden dimensions draw amber on the canvas so non-live values are visible at a glance (plots stay normal), and Properties shows an Overridden badge. Reset any time with the Reset to live button, right-click → Reset Text (live), or by clearing the field. While overridden, the alternate-units second line is hidden. Overrides travel through DXF both ways.
6.2 · Dimension & leader styles
DIMSTYLE (DS) manages named styles: text height and font, colour, precision, vertical placement (centered/above/below — above in the text's reading direction, so the left side of a vertical dimension whichever side of the geometry it sits on), text rotation (aligned/horizontal), arrowhead shape (closed filled, open, dot, oblique) and size, extension-line gap and overshoot, feet-inches zero padding, and an optional alternate-units second line with its own unit and precision, always placed below the primary in the text's reading direction (to the right of a vertical dimension, which reads bottom-to-top). A Standard style always exists, and Set current makes the selected style the one new dimensions adopt (saved with the drawing); a Size for print helper computes text height from a target printed size and viewport scale. Leader styles (LEADERSTYLE · LS) set arrowhead shape and size, with the same Set current button for new leaders.
6.3 · Rich text
The text editor (double-click any text) is a live rich-text window in three bands. The properties row sets the font, the height (typed in your drawing units — 5, 4 1/2, 4'-6", or 10mm in either system) and the colour: a split button whose left half opens a picker with an Index · ACI tab (the 255-colour grid, or an index typed in) and a True color · RGB tab (hue/saturation square, R G B and hex fields, plus the nearest ACI index); its right half, ByLayer, hands the selection back to the layer's colour. The formatting row holds bold/italic/underline/strikethrough (Ctrl+B/I/U), superscript/subscript, UPPER/lower case, bullets, horizontal alignment (left/center/right/justified), the vertical anchor, and Clear styling. Everything acts on the highlighted text, or on the whole text when nothing is selected.
The editor previews the text at a size that follows its height, and carries a wrap ruler along its top edge, graduated in your units: press or drag anywhere on it to set the wrap width (Shift for fine steps), double-click the diamond to reset it, or toggle wrapping with the button at its right end and type a width. The same width is the diamond grip on the canvas. The footer's print-size calculator turns a printed height at a plot scale into the model height (3/32" @ 1/4"=1'-0" → 4 1/2"); click the result to use it. Ctrl+Enter applies, Esc cancels. Bundled fonts — Liberation Sans, Serif, Mono, and the hand-lettered Architects Daughter — are the same TTFs used in PDF output, so print matches screen exactly.
6.4 · Hatches
HATCH (HA) opens the hatch panel: a live preview of the current fill on a sample region, a searchable pattern library drawn from the real pattern definitions (filter by name, or by the ANSI / ISO / AR families), the properties (an angle dial with presets, a spacing or scale stepper, cross-hatch, gap tolerance, associative), and the action footer. Pick internal points arms the pick tool — the button then reads Picking… until Esc or a second press ends it — and reads Apply to selection when hatches are selected; the boundary is traced automatically and islands become holes. Fill types: Solid, User lines (angle + spacing, optional cross-hatch), or named patterns — ANSI31–38, BRICK, EARTH, STEEL, GRID, DOTS, SAND, the architectural AR family (AR-CONC concrete, AR-SAND, AR-B816 and AR-B88 block, AR-BRELM and AR-BRSTD brick, AR-HBONE, AR-PARQ1, AR-RROOF and AR-RSHKE roofing) and the ISO line patterns built in, plus any .pat pattern file via the Import button. A drawing saves the definitions of the patterns it uses, so an imported .pat travels with the file; a DWG's hatches bring their own pattern definitions along too.
- Gap tolerance (default 0.25 mm) bridges small breaks in the boundary; when no region can be traced, red markers ring the gaps so you can see exactly where the leak is.
- Associative hatches re-trace themselves when the surrounding geometry changes; hand-editing a hatch vertex freezes the association.
- A boundary that runs round a circle or an arc keeps it as an arc: a hatched hole is a true circle with two vertex grips, not a polygon, and stays one through move, rotate, scale, mirror and the associative re-trace. Dragging a vertex keeps the arcs on either side bulging as they were; a midpoint grip on an arc splits it in two.
- Grips: vertices, midpoints (insert a vertex), and a centroid grip that moves the whole fill. The hatch's area shows in the Properties panel.
7Layers & display
7.1 · The Layer Manager
LAYER (LA) opens the manager; NEWLAYER (NL) adds a layer from the command line. The panel is one table: ungrouped layers first, then each group as a collapsible header row with its members. Each layer row has a diamond (click it to make the layer current; the current one is filled and carries a CURRENT chip), a colour swatch (opens the same Index · ACI / True color · RGB picker as the text editor), the name, the On (eye), Lock (amber padlock: visible but unselectable) and Plot (printer) toggles, lineweight and linetype dropdowns with a line preview, a transparency field (drag it sideways for 0–90% in steps of 5, double-click to reset), and the group dropdown (+ New group… creates one around that layer). A group row's toggles act on every member and show a mixed state; Ungroup dissolves the group and keeps its layers.
Clicking a row selects it. New layer adds a layer in the selection's group and starts renaming it; New group wraps the selected layer. Rename with a double-click on the name or F2; Enter commits, Esc cancels. Delete or Backspace removes the selected layer while the panel was the last thing clicked; Layer 0, the current layer and any layer that still holds objects are refused, and the Delete button's tooltip says why. The filter field narrows the table by name (groups without a match disappear, the rest open). The footer shows the current layer, counts, the global LT scale and the Paper-relative switch. Esc closes an open popover, then the panel.
The ribbon's compact layer control does the daily work: an active-layer dropdown with per-row visibility and lock toggles (pin it to keep it open as a floating window), a group filter, and LI/LU — LAYISO hides every layer not owning a selected object, LAYUNISO restores the saved state.
7.2 · Layer standards (.rlay)
Export your whole layer table — names, colours, states, lineweights, linetypes, groups, no geometry — as a reusable .rlay standard from the Layers window, and import it into any drawing. Import merges by name (case-insensitive): existing layers get their display properties updated, new ones are created, and referenced linetypes travel with the file.
7.3 · Linetypes and lineweights
Built-in linetypes match acad.lin naming: Continuous, DASHED, HIDDEN, CENTER, PHANTOM, DASHDOT, DOT. The pattern model is .lin-compatible (custom linetypes currently arrive via DXF import, paste, or a layer standard). LTSCALE (LTS) sets the global dash scale; each object can carry its own linetype-scale override, and the Paper-relative option (PSLTSCALE) measures dashes on the printed sheet so every viewport plots the same dash length.
Lineweights use the standard CAD lineweight ladder (0.05–2.11 mm; 0 = Default hairline). The LWT status toggle shows them on screen at an adjustable display scale; plots always use true millimetres.
8Blocks
8.1 · Create and insert
BLOCK (BL) opens the Create block panel over the selection. Name the block (the panel checks the name as you type: a forbidden character, or a name that already exists and would be redefined), set the base point — Pick in drawing clicks it on the canvas with the object snaps (the panel opens picking), the 3×3 extents grid takes a corner, an edge midpoint or the centre of the selection's extents, or type X Y — and choose what happens to the originals: Retain (left as they are), Convert (replaced by one instance at the base point, the default) or Delete. The preview shows the selection with the base point; Reselect hides the panel while you change the selection (Enter or Done brings it back). More options holds a description (shown in the Insert palette) and Allow exploding. Enter creates, Esc stops picking, then cancels; a toast confirms, with Reopen after a cancel. The block is in the Insert palette as soon as it is created; BLOCK <name> at the prompt still asks for the base point on the canvas and converts the selection.
Right-click a block reference for its own menu: a header with the block's thumbnail and how many instances are in the drawing; a strip of transforms about the base point — rotate 90° counter-clockwise (R) or clockwise (⇧R), flip horizontal (H) and vertical (V) — that keeps the menu open so transforms chain, each previewed as a dashed ghost while you hover and animated when applied; then Open in Block Editor (E), Edit attributes… when the block has some, Select all instances (A), Duplicate (D, a copy at +40, +40), Reset transform (0), Explode (X) and Delete (Del). The footer shows the insertion point and the current rotation and mirror. ↑/↓ and Enter work too; the letters act while the menu is open. Duplicate, Explode and Delete offer Undo in their toast.
INSERT (I) opens the Insert block window: a searchable browser of every definition on the left (list or grid, with live thumbnails, object counts, how many instances are in the drawing and the extents; anonymous blocks made by dimensions, hatches and arrays stay hidden unless you show them), and on the right a preview centred on the base point with the scale (stepper, presets, typed) and rotation (dial, degrees, presets), Repeat placement and Explode on insert. ↑/↓ select, Enter or a double-click places. Placement hides the window: the block ghosts at the snapped cursor, a bar at the bottom shows the block, its scale, rotation and count, and R / Shift+R turn it by 90°; click to place, Esc to finish (or one click when Repeat is off), Change block goes back to the window. A toast sums the session up. Editing a definition updates every instance. EXPLODE breaks an instance back into plain geometry, unless the block was created with exploding disallowed.
Instances carry uniform scale, rotation, and a true mirror flag — MIRROR on a block flips the instance exactly (arcs, text and nested blocks included) rather than exploding it.
8.2 · Attributes
ATTDEF (ATT) opens the Attribute definition panel. Type the tag (it is uppercased as you type and spaces become _; only A–Z 0–9 _ - are allowed, and a tag already placed in this session is refused), then a prompt and a default. The modes: Invisible (not drawn in an inserted block, still editable), Constant (a fixed value, never asked for or edited; the default becomes the value), Verify (after OK on insert, a second step lists these values to Confirm or go Back), Preset (not asked on insert: it takes its default, and stays editable in Edit Attributes) and Lock position. The text section sets the font (each name shown in its own face), Bold / Italic, the height with a two-way print-size calculator (edit the printed size or pick a plot scale and the height follows; edit the height and the printed size follows), and a 3×3 justification with a live preview. Enter or Place starts picking: the tag ghosts at the snapped cursor at its real size, and a click places it. After the first one, Align below stacks the next attribute under the last (1.6 × its height) with a single Enter; Pick point places it by hand instead. The modes and text settings carry over to the next attribute and the next session. Esc closes a list, then stops picking, then closes the panel; a toast offers New attribute…. Place the definitions inside the block geometry, then run BLOCK. Inserting an attributed block asks only for the attributes that are neither constant nor preset (no window at all when that leaves none); double-click an instance (or right-click → Edit Attributes…) to change them later. Double-click a loose definition to edit it in the same panel (Update); the Properties panel also edits its justification and modes.
8.3 · The Block Editor (BEDIT)
BEDIT (BE), double-click an un-attributed block, or Open in Block Editor from its right-click menu: the view springs to the definition, drawn at its base point, and the editor's chrome takes over. The top bar shows BLOCK EDITOR, the block's name with an amber dot while there are unsaved changes, its object / parameter / reference counts, Save block (Ctrl+S: writes the definition back and updates every reference, and keeps editing), Save as… (a copy under a new name; the editor switches to it) and Close editor, the one way out: with unsaved changes it asks first — Discard, Keep editing or Save. Esc only cancels (a placement, a tool, the selection), never the editor, so a run of Escapes cannot drop you out of it. The status bar at the bottom carries a BEDIT chip, the last message, the cursor in block coordinates and the snap note. Every drawing and modify tool works on the definition's geometry as usual. The Authoring palette (§8.4) floats at the left.
8.4 · Dynamic blocks
Blocks can carry authored parameters that become smart grips on every instance:
| Parameter | Grip | Behaviour on the instance |
|---|---|---|
| Move | square | Drag translates the instance from that point. |
| Rotation | circle | Drag spins the instance around the authored pivot. |
| Flip | ◄► arrows | A single click mirrors across the authored axis. |
| Linear / Stretch | arrowhead | Drag along the axis; the included geometry stretches. Each stretched instance quietly gets its own private definition, so the shared block is never altered. |
| Visibility | ▼ triangle | A single click pops the list of named states; pick one to show/hide parts of the block (a door with 3 swing angles, a window with/without trim…). |
The authoring palette has three step tabs. 1 · Parameters: pick a tool — Point (one click), Linear, Rotation, Flip (two clicks, with a dashed rubber band after the first) or Visibility (one click, one per block) — and click in the block; the palette shows the pick prompt and the click count, the object snaps apply, and the new parameter (Distance1, Position1, Angle1, Flip1, Visibility1) is selected and listed under IN THIS BLOCK with a status chip (NO ACTION in amber for a Linear parameter without objects, NEEDS STATES for a Visibility parameter with fewer than two states). Parameters draw over the block in blue, the selected one in the accent: click one to select it, Del removes it, the × on its row too. 2 · Actions: a chip per parameter (amber dot when it has no action), what the selected one does, and for a Linear parameter the AFFECTS checklist of the block's objects it stretches (hovering a row highlights the object). The tab's amber badge counts the parameters still without an action. 3 · Visibility: the named states — + New state starts a rename, double-click renames, the radio picks the state being authored, × deletes (never the last one) — and the VISIBLE IN list with an eye toggle per object; hidden objects carry a HIDDEN tag and are tinted in the editor. The first state is the default; instances also expose the state in the Properties panel and the right-click menu.
A block with no authored parameters shows only its insertion grip: add Rotation or Flip parameters in the Block Editor to give its instances those grips. The right-click menu still rotates and flips any block.
8.5 · Steel shapes (AISC)
STEEL (also AISC, SHAPE, SECTION) opens the Insert steel shape window over the full AISC shapes database — W/M/S/HP beams, C/MC channels, WT/MT/ST tees, L angles, 2L double angles, rectangular and round HSS/pipe. The left pane is the catalog: family tabs with counts, a search that matches the imperial and the metric designation (W12X26 or W310X39, spaces ignored), and a table sortable by depth, width or weight. The IMPERIAL / METRIC switch in the title bar changes the designation shown first, every dimension and property, and the snap chip's coordinates. The right pane draws the section to scale with its b and d dimensions, centroidal axes, centroid and insertion point, lists A, W, I, S and r from the catalog, and sets the placement: the insertion point (the centroid, or a corner, edge midpoint or centre of the bounding box), the rotation, Mirror (left-right) and Repeat placement. The footer shows the catalog file (~/.config/rustcad/steel_shapes.csv, seeded from the shipped database), Edit file… opens it in the system editor and Reload re-reads it, reporting the first bad row inline; STEEL RELOAD does the same from the prompt.
↑/↓ select, Enter or a double-click places. The window hides and the profile ghosts at the snapped cursor, in true size: click to place a copy (a block named after the designation, with real fillet radii), R / Shift+R turn it by 90°, M mirrors it, Esc finishes. The bar at the bottom shows the shape, its insertion point, rotation and count, and Change shape goes back to the window.
9References & import/export
9.1 · Native files
Drawings save as .rcad — a human-readable format holding the model, every paper-space layout, cameras, units, styles, display preferences, and cost data. Ctrl+N/Ctrl+O/Ctrl+S, plus SAVEAS.
9.2 · DXF
File → Import/Export DXF (ASCII, written as DXF R2000, with $INSUNITS honoured both ways).
- Exports: all core geometry, text and attributes, dimensions, leaders, images, the layer and linetype tables, block definitions and inserts — including per-instance attribute values, mirrored instances (negative Y scale), and visibility states (instances that hide geometry export against a filtered
NAME$STATEvariant block). Hatches, viewports and xrefs are counted as skipped, and the status line tells you exactly what didn't travel. - Imports: everything above plus MTEXT, splines (flattened to polylines), and HATCH with island loops.
File → Import DWG… (AutoCAD 2000 to 2025) always opens a new document tab: model space with its layers, linetypes, blocks and dimension styles (text height, arrowheads, precision, alternate units and the rest, with a leader style of the same name), and every paper-space layout as a layout tab of that document — the sheet's own geometry and text, and each viewport as a live viewport onto the model at the file's scale (locked ones stay locked). The drawing's xrefs come across as drawing references, resolved against the DWG's folder (a referenced .dwg or .dxf is read like the drawing itself); one that cannot be found draws as a dashed placeholder until you point it at its file from the References palette (§9.4). A summary window lists what was in the file and anything that did not travel; nothing is dropped silently.
9.3 · Images and PDFs
- IMAGE (
IMG) attaches PNG/JPG/BMP/GIF/TIFF/WEBP at native aspect ratio. Only the path is stored — relative to the drawing first, absolute as fallback — so project folders can move. - PDF attaches a PDF page as a raster underlay (choose page and DPI; requires Poppler).
- PDFIMPORT converts a vector PDF page into real entities at true size: strokes become polylines, fills become hatches, text arrives as outlines. Everything lands on the active layer. Scanned pages are rejected with a clear message.
9.4 · External references (xrefs)
XREF (ER) opens the External References palette, listing every image and drawing reference in the drawing, model space and every layout alike, with its resolve status and where it is used (Used in: Model and the layout names). Unload, Reload and Detach apply to every space that holds the reference. A DWG's references keep the author's paths (C:\Users\…); on import each is looked for by the end of its path under the drawing's folder and pinned to where it is found. Attach another drawing (.rcad, .dwg or .dxf) as a live drawing reference: it renders through its own layers and styles, never merges into your file, and updates on Reload. Unload keeps the attachment but stops reading/displaying/plotting it (saved with the drawing); Detach removes it; Locate… on a missing drawing picks the file it should point at (.rcad, .dwg or .dxf) and retargets every instance; the field beside it takes a pasted path instead (Enter applies it), handy from a terminal file manager. An Xref fade setting (Options, 0–90%) dims all reference content so it reads as background.
10Layouts, viewports & printing
10.1 · Model space splits (VPORTS)
Model space can tile into 2, 3, or 4 independent panes — VP1 / VP2V / VP2H / VP3 / VP4 or the ribbon buttons. Each pane keeps its own camera; the active pane is outlined, and the dividers drag to re-proportion.
10.2 · Paper-space layouts
The bottom tab strip holds ⊞ Model plus your layouts (+ adds, double-click renames). On a layout, draw the title block and notes at sheet size (1 unit = 1 mm on paper) and place viewports — windows into the model:
- Add VP (ribbon) rubber-bands a viewport; press D to type its exact width × height.
- The Properties panel sets the scale from a full preset list — architectural (
1/16"=1'-0"through6"=1'-0"), engineering (1"=10'…), metric (1:2…1:1000), enlargements — or a custom ratio/equation (1:50,1/4"=1'-0",1cm=1m). - Lock scale keeps the print scale fixed: zooming inside then pans instead of rescaling. Picking a preset locks automatically.
- Double-click a viewport to enter it — drag pans the model view, scroll zooms, Esc exits.
10.3 · Printing
Print to PDF (File menu) writes a true vector PDF of the layout: page geometry 1:1 in mm, each viewport's model content clipped to its frame, no-plot layers skipped, transparency honoured, lineweights at true size, and text embedded with the app's own fonts. Park viewport frames on a no-plot layer to print the content without the border. Output is monochrome black — screen colours are tuned for the dark canvas, not paper.
PRINT / PLOT sends the same PDF to a system printer (CUPS on Linux): pick printer, media and copies — scale, offset and rotation are deliberately absent, because the sheet belongs to the drawing. A Scale to fit checkbox is the one escape hatch; leave it off and a 1:50 drawing measures 1:50 on paper.
113D modelling
The 3D tab turns the model-space canvas into a 3D workspace over the same drawing: members on steel and timber profiles, solids, holes cut through them, equipment that groups them, and drawing views that put live 2D projections of the model on your layouts. The 2D drawing stays visible on the ground plane (Z = 0) and keeps its snaps; back in 2D, the model shows as its top-view edges. Everything is in millimetres internally and reads in the drawing's units.
11.1 · Turning 3D on, looking around
3D (ribbon: 3D on/off) switches the view; 3DTOP, 3DFRONT, 3DRIGHT, 3DISO and 3DHOME are the presets, 3DZE / 3DEXTENTS frames the model, 3DPROJ (3DPERSP, 3DORTHO) switches perspective and parallel projection. These run in the middle of a command without ending it.
- Middle button drags pan, Shift + middle drag orbits, the wheel zooms toward the point under the cursor, a double middle-click frames the model.
- Pressing the middle button on a solid drops the orbit pin there (a plain left double-click on a solid does too): orbiting turns about it until Esc. On a trackpad without a middle button, the pin and the cube below are the way in.
- The navigation cube (top right) names the view: click a face, edge or corner to turn to it, drag it to orbit, Home returns; the chips under it (Top / Front / Side) also turn the compass plane.
- Display modes (the pill at the top of the view, or Alt+1…Alt+5): wireframe, hidden line, shaded, shaded with edges, x-ray. VSCURRENT lists them, VSWIREFRAME, VSHIDDEN, VSSHADED, VSEDGES, VSXRAY pick one.
11.2 · The work plane and the compass
Points land on the work plane when nothing snaps: the ground by default, raised with WPELEV, put on a solid's face with WPFACE, back with WPRESET. The grid you see is that plane.
While a 3D command wants a point, a compass sits at the last point and owns the keyboard, so you type into it rather than into the command line:
- Digits (and a unit:
3mm,2.5cm,1'6",6in) fill its distance field live along the axis the cursor leans to; Enter places the point. - X, Y, Z lock an axis; Tab switches to angle entry (type the degrees) and back; Space swaps polar and rectangular; T, F, S, V turn the compass to the top, front and side planes and the view; E aligns it with the member or edge under the snap.
- O moves the compass origin to the hovered point, or by the typed distance along the locked axis without placing anything:
X25O,Z25O, Enter places a point 25 along and 25 up from where you started. During a Mid between 2 points override, O after the first pick puts the origin at the middle. - ; (or a click on the command line) hands the keyboard to the command line for one entry;
@and<go there on their own. A command option whose letter is also a compass key takes a dash:-t.
Snaps are the drawing's (§4.2): endpoints, midpoints, centres, perpendicular, intersections, nearest and faces of the solids, their edges and corners, a round hole's rim and centre, the grid, and the 2D drawing on the ground. The Ctrl/Shift + right-click override menu works here too.
11.3 · Members and columns
MEMBER sweeps the current profile along a line, chaining like LINE; COLUMN stands one up from a base point by a height or a top point. The Profile box on the ribbon (PROFILE) picks from the AISC catalogue and the lumber sizes, recent ones first; PROFILEFROMPL makes a profile of a closed 2D polyline. Options while drawing: P profile, R roll in degrees, C cardinal point (BL … TR, where the profile sits on the line). A member's end grips stretch it; its profile, roll and sizes are in Properties.
11.4 · Solids and holes
The Primitives group draws solids by their points, the compass guiding each stage: BOX, CYLI, SLCY (slanted cylinder), CONE, SNOU (snout), DISH, PYRA (T sets its top), CTOR and RTOR (circular and rectangular torus) — AVEVA E3D's names. 3DPOLY draws a 3D polyline (C closes, U undoes a point; clicking the first point closes too). Its edges can be arcs, as a 2D polyline's: A makes the next edges arcs, each tangent to the edge before (the first along the compass X) and ending where you click; R then a radius makes them arcs of that radius in the compass plane, bulging left of the chord (a negative radius, right; R 0 back to tangent arcs); L goes back to straight edges. Two points closed through arcs make a circle, so A, R 25, a point, C is a Ø50 circle. EXTRUDE pulls a closed flat one into a solid by a typed height or a snapped point, REVOLVE spins one about an axis of two points, SHELL hollows a box or cylinder to a wall thickness with the faces you choose left open.
Holes are negative solids cut from a solid: NBOX, NCYL, NSLC, NCON, NSNO, NDIS, NPYR, NCTO, NRTO, plus NXTR (an outline extruded through) and NREV (an outline revolved). With a solid selected the hole cuts it, and with several selected (an equipment, say) it is one hole cutting them all: it belongs to the first solid and the others are cut by it where it is, so editing or moving it on any of them changes every one; the explorer lists it under each (shared from …), where × takes that solid out of it. Otherwise the command asks you to click the solid. Holes belong to their solid and move with it. Double-click a hole (or Edit on its row in the explorer) for handles on its faces: drag one to resize, a round hole's side handles set its diameter. Properties lists every hole with its sizes, position, Turn X/Y/Z and Remove; past four holes the list folds under one heading.
A hole moved or copied into another solid goes under that solid; one that only touches a face cuts nothing, and MOVE3D / COPY3D / ARRAY3D say so (the usual cause: the base point on one face of a board and the destination on the other).
11.5 · Selecting and editing
- Click a solid to select it — a member of an equipment selects the whole group (Alt: that part alone); Shift/Ctrl add or remove. Drag a rectangle: left to right a window (what lies wholly inside), right to left a crossing (what it touches); a box that takes no solid takes the holes inside it. Esc clears.
- MOVE3D, COPY3D (repeats from the same base, Enter ends), ROTATE3D (about the compass Z through the base point; type the angle or click), ARRAY3D (how many in the row, the original counted, then the base and where the next one goes — a point, or a length along the compass as the spacing), ERASE3D / Delete, MIRROR3D (a point on the mirror plane, then a point its normal points to, or Enter for the compass plane through the base, so T, F and S choose the mirror; a copy unless D was pressed first; a profile that is not its own mirror image, an angle, becomes a custom one). Each is one undo step.
- DIST (
DI) over the 3D view measures between two 3D points — clicked with the snaps and the compass, or typed — and prints the distance, the angle in the XY plane and from it, and ΔX / ΔY / ΔZ in the drawing's units. It stays armed for the next pair; Enter or Esc ends it. - With holes selected (from the explorer, or a rectangle), those commands act on the holes and leave their solids alone: a row of shelf-pin holes is one ARRAY3D.
- HIDEOBJECTS, ISOLATEOBJECTS, UNISOLATEOBJECTS hide the selection, everything but it, and show all again. Hidden members are not drawn, picked or snapped to. Hiding is view state: it is not saved with the file, and drawing views still show the members.
- EQUI
[name]groups the selection as an equipment (CAB-24,PUMP-101), UNEQUI ungroups.
11.6 · The model explorer
EXPLORER (ribbon: Explorer) opens the Model panel on the left — pin it, or let it fold to an edge tab. It lists Equipment, loose Members, drawing Views and 3D polylines. Selection works as in Windows Explorer: click picks a row alone, Ctrl+click adds or removes it, Shift+click takes the rows from the last one clicked, double-click frames it. ▸ on a member lists its holes, which select the same way (several at once, across solids). Drag members onto an equipment to put them in it, onto the Members heading to take them out, onto the Equipment heading for a new one; drag a hole (or the holes selected with it) onto another solid to cut that one instead, Ctrl to let it cut that one too (one hole, shared).
Right-click a row: Edit (handles on a primitive or hole, grips on a member), Clip the view to it, Hide / Show, Hide all but this, Show all hidden, Rename…, Take out of the equipment, and on a hole Delete hole — with several holes selected, Clip and Delete take them all. The eye on a row toggles it hidden.
The link runs the other way too: right-click in the canvas (no command running) opens a card listing everything under the pointer, front to back, holes under their solid; the active row is brought forward in the view and the rest dimmed. ↓/Tab/↑ move, Enter or a row's number reveals it — selected, and the explorer opened to its row with a flash and a line from the click; Esc closes. Hovering an explorer row brings its member forward likewise. Options → Right-click pick stack sets the card's opacity, connector and dimming.
11.7 · The clip box
CLIPBOX clips the model to a box (the toolbar under the display modes has the same buttons): drag a face's handle to cut the model away, CLIPGHOST shows what was cut faintly, CLIPCAPS hatches the cuts, CLIPFRAME hides the box while staying clipped, CLIPRESET fits the whole model again. CLIPSEL eases the box around the selection (or the selected holes) and frames it, as the explorer's Clip the view to it does; CLIPVIEW takes a drawing view's box. Like hiding, the clip is view state, not saved.
11.8 · Drawing views
A drawing view is a named box in the model with a viewing direction; placed on a layout it becomes a true 2D projection with hidden lines, kept in step with the model by an explicit update, in the manner of steel-detailing software.
- VIEWDEF
[front|back|left|right|top|bottom]defines one around the selection (or everything): give a side, click a solid's face to look at it square-on, or Enter for the camera's own direction (an isometric is fine).VIEWDEF CLIPtakes the clip box. Drag the box's face handles to set what it shows; the front face cuts, and what it cuts through is drawn as a hatched section. VIEWEXCLUDE leaves the selection out, VIEWONLY keeps only it, VIEWALL clears both. The explorer's Views list selects, renames and deletes them. - VIEWPLACE
[1:20]puts a view on the current layout: pick or type the scale (1:10,1/4"=1'-0"), click where its middle goes. Visible lines go on VIEW-LINES, hidden ones dashed on VIEW-HIDDEN, sections on VIEW-SECTION, the frame on a no-plot layer, with a label naming the view and its scale. Round holes seen face-on come through as circles and arcs, so DIM RADIUS / DIAMETER take them; seen at an angle they stay lines. - Dimension the view as any geometry: a dimension on its lines reads model lengths through the view's scale, and its ends follow the lines through updates.
- VIEWUPDATE lists, per view on the layout, what changed since it was drawn — members moved or changed, new ones, gone ones, a changed box, a view drawn by an older version — and redraws the ones you accept: an entity showing the same thing keeps its identity, a dimension whose edge is gone turns red. VIEWSCALE rescales placed views, their annotations with them.
- Double-click a placed view (or VIEWENTER / MSPACE) to work inside it in model units — typed distances and coordinates are the model's, a badge says so; Esc, VIEWEXIT or PSPACE leaves.
.rcad file with the drawing (format 6). Open such a file in a version from before the 3D work and the model is dropped on save; keep the app current on every machine that shares files.12Cost estimating
Carrosse can price a drawing. You assign assemblies (a framed wall, a finished floor) to closed polyline footprints; the takeoff engine converts geometry into material quantities and labour, and the estimate updates live as you draw. Everything is saved inside the .rcad.
12.1 · Assigning assemblies
- COST (or ribbon → Cost → Assign) opens the Cost Assemblies dialog. It walks you through it: select one closed polyline, see its live perimeter/area readout, then click a wall or floor assembly to assign it. Hovering an assembly highlights the footprints using it on canvas.
- Command-line forms:
COSTWALL <assembly> [height](e.g.COSTWALL PAINT-INT-2COAT 8'),COSTFLOOR <assembly>, COSTCLEAR to remove. - COSTHEIGHT sets the per-footprint wall height used by area-based layers (paint, drywall, sheathing); stud counts come from spacing and perimeter, so height doesn't change them.
0clears. - Footprints must be closed polylines with straight segments (≥ 3 vertices).
12.2 · How quantities are computed
- Studs: ⌊length ÷ spacing⌋ + 1 per wall segment, plus the assembly's corner style (2-stud or 3-stud corners).
- Component rules: per stud, per LF of perimeter (plates, sill gasket — a double top plate is per-LF × 2), per SF of wall face (drywall, paint — this is where wall height matters), per corner, or flat per footprint.
- Purchasable units: sheet goods round up to whole sheets, coverage materials (paint pails, flooring boxes) to whole units, trim/baseboard to whole sticks over the run, and lumber with a stock length to whole pieces — the report shows piece counts like
7 pcs @ 12'. - Waste is applied to the quantity first, then rounded up — the estimator standard.
- Labour: hours per LF (walls) or per SF (floors) × crew rate.
12.3 · The catalog
Materials and assemblies live in ~/.config/rustcad/cost_catalog.ron, seeded on first run. Your file is an overlay: entries override built-ins by code/name, new entries are added, and deleting a built-in from your copy just reverts it. Edit by hand and COST RELOAD, or use the form-based Catalog Editor (COSTEDIT) — lengths in inches/feet, exact money, save repricing open estimates immediately. The catalog self-checks and warns about mis-wired rules.
12.4 · Estimates and exports
ESTIMATE prints the takeoff to the terminal; COSTPANEL opens the Live Estimate palette — per-category line items that expand to per-footprint detail, hover-highlighting of the contributing geometry, subtotals, markup and taxes (Québec TPS+TVQ, GST, HST presets, custom and compound rates), and a grand total. Export with ESTIMATE CSV or ESTIMATE PDF (a paginated, date-stamped report), or the panel's footer buttons.
13Options & configuration
13.1 · The Options window
OPTIONS (OP) opens a dialog with its pages listed down the left. Display: background colours for model and paper space, crosshair colour/size and pickbox size, lineweight display and its on-screen scale, the estimate highlight style, and xref fade. Grid: minor and major spacing in your display unit. Display preferences save with the drawing. The other pages are Dimension Style, Leader Style, and Keyboard.
13.2 · Config files
| File | Purpose | Refresh |
|---|---|---|
~/.config/rustcad/keybindings.ron | Your shortcut overrides only — upgrades never break an old config. | automatic |
~/.config/rustcad/steel_shapes.csv | Editable AISC steel catalog. | STEEL RELOAD |
~/.config/rustcad/cost_catalog.ron | Cost catalog overlay. | COST RELOAD |
~/.config/rustcad/layout.ron | Hidden ribbon groups, Properties panel pin. | automatic |
Everything else — styles, layers, layouts, display preferences, cost data — lives inside each .rcad drawing.
13.3 · Keyboard rebinding
Options → Keyboard (KEYS) lists every bindable action by section. Click a shortcut, press your keys (multi-chord sequences allowed, e.g. Q Q), then Set. Reassigning steals the sequence from its previous owner; per-row reset/unbind and a global Restore defaults are available. Remember the two binding kinds: Ctrl/Alt chords fire instantly, bare keys become typed aliases so they never interfere with the command line. Esc is reserved and can't be bound.
13.4 · Arranging the workspace
Hide or restore any ribbon group from the Window menu, the command palette's Panel: entries, or PANEL <name>. The Properties panel and the layer list can be pinned or left to auto-collapse.
13.5 · External dependencies
Poppler (pdfinfo, pdftoppm, pdftocairo) enables PDF attach and vector import; CUPS enables printing to a physical printer on Linux. Both are detected at runtime with clear messages when missing.
14Command reference
Every command, typed at the terminal or found in the palette (Ctrl+P). Case-insensitive.
File & output
| Command | Aliases | Description |
|---|---|---|
| NEW | NEWFILE | New drawing (Ctrl+N). |
| OPEN | OPENFILE | Open a drawing (Ctrl+O). |
| SAVE | — | Save (Ctrl+S). |
| SAVEAS | — | Save under a new name. |
PLOT | Plot the publish space to a printer. | |
| ABOUT | VERSION | Print the app version. |
| HELP | ? H | Print the built-in command list. |
| MANUAL | DOCS GUIDE | Open this manual in your browser (also Help → User Manual). |
Draw
| Command | Aliases | Description |
|---|---|---|
| LINE | L | Line, point to point. |
| XLINE | XL CONSTRUCTION | Infinite construction line (H/V/A/B options). |
| CIRCLE | CIR | Circle: centre + radius, or D, 2P, 3P. |
| ARC | A | Arc, eleven ways (3-Point default; ARC SCE, SCA, SCL, SEA, SED, SER, CSE, CSA, CSL, CO); C/E then A/L/D/R mid-command. |
| ELLIPSE | EL | Ellipse / elliptical arc. |
| POLYLINE | PL PLINE | Polyline with arc segments, width, close, max-length. |
| RECT | REC RECTANGLE | Rectangle; D = type width/height. |
| POINT | PO | A point at every click. |
| WIPEOUT | WO | A masking polygon over what was drawn before it. |
| WIPEOUTFRAME | Wipeout frames: 0 hidden, 1 shown and plotted, 2 shown, not plotted. | |
| REVCLOUD | RC | Revision cloud, rectangular or polygonal (R/P); A = arc length. |
| POLYGON | POL POLY | Regular polygon: inscribed, circumscribed or by edge (I/C/E). |
| DIVIDE | DIV | Points or a block at N equal intervals along an object (B = block). |
| MEASURE | ME | Points or a block every typed length along an object, from the end nearest the pick (B = block). |
| HATCH | HA BH | Hatch dialog + internal-point picking. |
| TEXT | TXT MTEXT MT | Rich annotation text. |
| LEADER | LE QLEADER QL | Leader with arrowhead. |
Dimension
| Command | Aliases | Description |
|---|---|---|
| DIM | DAL DIMALIGNED DIMLINEAR | Aligned dimension. |
| DIMH | DH DIMHOR | Horizontal dimension. |
| DIMV | DV DIMVER | Vertical dimension. |
| DIMR | DR DIMRAD | Radius dimension. |
| DIMD | DD DIMDIA | Diameter dimension. |
| DA | DIMANG DIMANGULAR | Angular dimension (vertex + two rays). |
| DIMORDINATE | DOR DIMORD | Ordinate: click the feature, then the leader end; reads the feature's X or Y from the origin. The datum follows the leader (vertical leader = X) unless X/Y is pressed or typed (DOR X). |
| DIMCONTINUE | DCO DIMCONT | Chain dimensions: each click adds one from the last dimension's second point, on the same dimension line (an ordinate keeps its leader ends in line). Starts from the last dimension placed, or click one to continue from. Esc ends. |
| DIMSTYLE | DS DIMSTYLES | Dimension style editor. |
| LEADERSTYLE | LS | Leader style editor. |
Modify
| Command | Aliases | Description |
|---|---|---|
| MOVE | MV MO | Move selection. |
| COPY | CP C | Copy selection. |
| ROTATE | RO ROT | Rotate; type a bare angle once the base is set. |
| SCALE | SC | Scale by factor. |
| MIRROR | MI | Mirror; asks Delete source? [Y/N]. |
| STRETCH | SS STR | Stretch via crossing window. |
| ALIGN | AL | Align by two point pairs; optional scale. |
| OFFSET | O | Parallel offset at a typed distance. |
| TRIM | TR | Trim (Quick / Standard modes). |
| EXTEND | EX | Extend to a boundary. |
| FILLET | FI | Fillet with typed radius (0 = corner). |
| CHAMFER | CHA | Chamfer with two typed distances (0/0 = corner). |
| ARRAY | AR | Rectangular / polar array dialog. |
| EXPLODE | X XP | Explode blocks / polylines. |
| ERASE | E DELETE DEL | Delete selection. |
| MATCHPROP | MA MATCH | Match display properties. |
| FRONT | BF TOFRONT | Bring to front (draw order). |
| BACK | SB TOBACK | Send to back. |
| UNDO | U | Undo (Ctrl+Z). |
| REDO | — | Redo (Ctrl+Y). |
Select
| Command | Aliases | Description |
|---|---|---|
| SELECT | S | Switch to the Select tool. |
| QSELECT | QS QSEL | Quick Select by property filters. |
| DIST | DI DISTANCE | Measure distance / angle / ΔX / ΔY between two points; over the 3D view, between 3D points with both angles and ΔZ (§11.5). |
View & viewports
| Command | Aliases | Description |
|---|---|---|
| ZOOM | Z | Zoom; options All/Center/Extents/Previous/Window/Object or a scale (2x, 0.5x). |
| ZA | ZE ZOOMALL ZOOMEXTENTS | Zoom to fit everything. |
| PAN | P | Pan tool (middle-mouse drag always pans). |
| VP1 | VPSINGLE | Single model viewport. |
| VP2V | — | Two viewports, vertical split. |
| VP2H | — | Two viewports, horizontal split. |
| VP3 | — | Three viewports. |
| VP4 | VPORTS | Four viewports. |
3D · view & navigation
| Command | Aliases | Description |
|---|---|---|
| 3D | — | The 3D view on or off (§11). |
| 3DTOP | 3DFRONT 3DRIGHT 3DISO 3DHOME | View presets; run mid-command without ending it. |
| 3DZE | 3DEXTENTS | Frame the whole model. |
| 3DPROJ | 3DPERSP 3DORTHO | Perspective or parallel projection. |
| VSCURRENT | VS VSWIREFRAME VSHIDDEN VSSHADED VSEDGES VSXRAY | Display modes (Alt+1…Alt+5). |
| WPELEV | WPFACE WPRESET | Work plane: raise it, put it on a face, reset it. |
| CLIPBOX | CLIPGHOST CLIPCAPS CLIPFRAME CLIPRESET | The clip box and its options (§11.7). |
| CLIPSEL | CLIPVIEW | Clip around the selection (or selected holes), framed; around a drawing view's box. |
| HIDEOBJECTS | ISOLATEOBJECTS UNISOLATEOBJECTS | Hide the selection; everything but it; show all again. |
| EXPLORER | MODELEXPLORER | The model explorer panel (§11.6). |
3D · modelling
| Command | Aliases | Description |
|---|---|---|
| MEMBER | MEM | Sweep the current profile along a line, chaining (§11.3). |
| COLUMN | COL | A vertical member from a base point, by height or top point. |
| PROFILE | — | The profile picker (catalogue, recent, drawing). |
| PROFILEFROMPL | — | A profile from a closed 2D polyline. |
| BOX | CYLI SLCY CONE SNOU DISH PYRA CTOR RTOR | Primitive solids by their points (§11.4). |
| NBOX | NCYL NSLC NCON NSNO NDIS NPYR NCTO NRTO | Holes of those shapes, cut from a solid. |
| NEGATIVE | — | The holes menu. |
| 3DPOLY | 3DP | A 3D polyline (A arcs, R radius, L lines, C close, U undo). |
| EXTRUDE | EXT NXTR | A closed polyline into a solid by a height; NXTR cuts one through. |
| REVOLVE | REV REVO NREV | A closed polyline spun about two points; NREV as a hole. |
| SHELL | — | Hollow a box or cylinder to a wall thickness, faces left open. |
| MOVE3D | COPY3D ROTATE3D ERASE3D | Move, copy, turn about the compass Z, delete (holes too, when selected). |
| ARRAY3D | 3DARRAY ARR3D | A row of copies: count, base, the next one's place or spacing. |
| MIRROR3D | 3DMIRROR MI | Reflect the selection across a plane: a base point and a normal point, or Enter for the compass plane; D deletes the source. |
| EQUI | EQUIPMENT UNEQUI | Group the selection as a named equipment; ungroup. |
| DIST | DI | Distance, angles and ΔX / ΔY / ΔZ between two 3D points (§11.5). |
3D · drawing views
| Command | Aliases | Description |
|---|---|---|
| VIEWDEF | DRAWINGVIEW | Define a view: a side, a clicked face, or Enter for the camera; CLIP takes the clip box (§11.8). |
| VIEWEXCLUDE | VIEWONLY VIEWALL | Leave the selection out of the active view; keep only it; show everything in the box. |
| VIEWPLACE | — | Place the view on the current layout at a scale. |
| VIEWUPDATE | — | What changed per placed view; redraw the ones you accept. |
| VIEWSCALE | — | Rescale placed views, annotations with them. |
| VIEWENTER | MSPACE MS | Work inside a placed view in model units. |
| VIEWEXIT | PSPACE PS | Back to the sheet. |
Layers
| Command | Aliases | Description |
|---|---|---|
| LAYER | LA LAYERS | Layer Manager. |
| NEWLAYER | NL | Add a layer; NL <name> names it. |
| LAYISO | LI | Isolate the selection's layers. |
| LAYUNISO | LU | Restore layers after an isolate. |
Blocks & references
| Command | Aliases | Description |
|---|---|---|
| BLOCK | BL MAKEBLOCK | The Create block panel over the selection; BLOCK <name> skips it and asks for the base point. |
| INSERT | I INS | The Insert block window: browser, preview, scale, rotation, repeat, explode; R rotates while placing. |
| BEDIT | BE BLOCKEDIT | Block editor; BEDIT <name> or with an instance selected. |
| ATTDEF | ATT AD | Define a block attribute. |
| STEEL | AISC SHAPE SECTION | The Insert steel shape window (catalog, to-scale preview, properties, placement); STEEL RELOAD re-reads the CSV. R / M while placing. |
| IMAGE | IMG IMAGEATTACH | Attach a raster image. |
PDFATTACH INSERTPDF | Attach a PDF page as a raster underlay. | |
| PDFIMPORT | IMPORTPDF PDFVECTOR | Import a vector PDF as real geometry at true size. |
| XREF | ER EXTERNALREFERENCES | External References palette. |
Cost estimating
| Command | Aliases | Description |
|---|---|---|
| COST | — | Cost Assemblies dialog; COST RELOAD re-reads the catalog. |
| COSTWALL | — | COSTWALL <assembly> [height] assigns a wall assembly. |
| COSTFLOOR | — | COSTFLOOR <assembly> assigns a floor assembly. |
| COSTHEIGHT | WALLHEIGHT | Per-footprint wall height; 0 clears. |
| COSTCLEAR | — | Remove cost assignments from the selection. |
| ESTIMATE | QTO TAKEOFF | Takeoff to terminal; ESTIMATE CSV / PDF exports. |
| COSTPANEL | ESTPANEL LIVECOST | Live Estimate palette. |
| COSTEDIT | COSTCATALOG | Catalog editor. |
Snap overrides (next pick only)
| Command | Aliases | Description |
|---|---|---|
| M2P | MTP MID2 | Midpoint between two picked points. |
| ENDP | — | Endpoint. |
| MID | MIDP | Midpoint. |
| CEN | CENTERSNAP | Center. |
| QUA | QUAD | Quadrant. |
| PER | PERP | Perpendicular. |
| TAN | — | Tangent. |
| INT | — | Intersection. |
| APPINT | — | Apparent intersection. |
| NEA | NEAR | Nearest. |
| NONSNAP | NOS | No snapping for the next pick. |
Settings & workspace
| Command | Aliases | Description |
|---|---|---|
| OPTIONS | OP OPT SETTINGS | Options window. |
| KEYS | KEYBOARD SHORTCUTS HOTKEYS | Options → Keyboard (rebinding). |
| UNITS | UNIT | Show or set display units (UNITS ft-in…). |
| LTSCALE | LTS | Show or set the global linetype scale. |
| PANEL | PANELS | PANEL <name> [show|hide] toggles a ribbon group. |
15Keyboard & mouse reference
Mouse
| Input | Action |
|---|---|
| Left click | Pick a point / select an object / place a grip. |
| Left click, empty space | Start a selection box (second click completes it). L→R window, R→L crossing; Shift subtracts. |
| Right click | Context menu on an object (Select tool); otherwise confirms the current tool. |
| Ctrl/Shift + right click | Snap-override menu (next pick only). |
| Middle button drag | Pan (also the forward thumb button). |
| Scroll wheel | Zoom at the cursor. Inside an entered layout viewport, zooms the model view (pans instead if the scale is locked). |
| Double-click | Text → editor · dimension → Dimension Text window · attributed block → Edit Attributes · plain block → Block Editor · layout viewport frame → enter the viewport · layout tab → rename. |
| 3D: middle drag · Shift + middle drag · wheel | Pan · orbit · zoom toward the cursor. Double middle-click frames the model; a middle press on a solid (or a left double-click) drops the orbit pin there. |
| 3D: left drag | Rectangle selection — left to right a window, right to left a crossing; solids first, else the holes inside. |
| 3D: right click | The pick stack: what is under the pointer, front to back; Enter or a number reveals it in the explorer. |
| 3D: double-click a hole | Its resize handles. |
Keyboard
| Keys | Action |
|---|---|
| Ctrl+P | Command palette. |
| Ctrl+Z / Ctrl+Y | Undo / redo. |
| Ctrl+N / Ctrl+O / Ctrl+S | New / open / save. |
| Alt+1 … Alt+5 | 3D display modes: wireframe, hidden line, shaded, shaded with edges, x-ray. |
| 3D compass: digits, X Y Z, Tab, Space, T F S V E, O, ; | While a 3D command wants a point: distance (with a unit), axis lock, angle entry, polar/rectangular, plane or edge, move the origin, hand the keyboard to the command line (§11.2). |
| Ctrl+A | Select all. |
| Ctrl+C / Ctrl+Shift+C / Ctrl+V | Copy / copy with base point / paste. |
| Ctrl+Tab / Ctrl+Shift+Tab | Cycle document tabs. |
| F2 | Command history window; renames the selected layer while the Layers panel was the last thing clicked. |
| F7 / F8 / F10 | Grid display / ortho / polar tracking. |
| Tab | Angle lock during a draw (type angle, then length). |
| ↓ | Open the active tool's option menu. |
| Space / Enter (empty prompt) | Confirm the operation, or repeat the last command. |
| Delete | Erase the selection; deletes the selected layer while the Layers panel was the last thing clicked (Backspace too). |
| Esc | Cancel everything: tool, prompts, snap override, popups, grip drag, viewport entry. |
All chords are rebindable in Options → Keyboard, and any command can be given a bare-key typed alias (§12.3).
16Known quirks
Honest notes on the current build:
NEWLAYER My Wall Layer pasted works), or rename in the Layer Manager.COSTFLOOR silently ignores a height argument — floors take no height by design.