1The screen
Carrosse is a single-window app. From top to bottom:
| Region | What it holds |
|---|---|
| Menu bar | Classic File / Edit / View / Insert / Format / Tools / Draw / Dimension / Modify / Window / Help menus. Every item runs the same command the terminal would. |
| Ribbon | Tab row (Home, Draw, View) with Undo/Redo, then the tool groups for the active tab. Groups can be hidden, floated, or docked to any screen edge (§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. Shows and edits everything about the selection (§5.4). Unpin it and it collapses to a thin edge tab that expands on hover. |
| Terminal | The command line at the bottom — resizable, with scrolling history and a yellow prompt line showing what the active tool expects next. |
| 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 terminal at the bottom. Enter submits — and so does Space, AutoCAD-style, whenever the input is non-empty. The input auto-focuses whenever nothing else has keyboard focus, so you can usually just start typing. 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 radius. |
| Arc | ARC · A | Centre → start → end, counter-clockwise. A lets you type the sweep angle instead. |
| 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. |
| Polygon | POLYGON · POL | Regular n-gon. Type a number for the side count, I/C for inscribed/circumscribed. |
| Point | — | Node marker; snappable. |
| 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 1/2", and AutoCAD's dash-separated fractions 10'4-5/16", 122'1-15/16", 4-5/16" are all valid.
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 §13). 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, layer, colour, linetype, 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. |
| 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 — bring to front / send to back (notably for images). |
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.
| 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 (AutoCAD's 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), 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. A Standard style always exists; 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.
6.3 · Rich text
The text editor (double-click any text) is a live rich-text window: bold/italic/underline/strikethrough (Ctrl+B/I/U), superscript/subscript, per-run colour and size, bullets, UPPER/lower case conversion, horizontal alignment (left/center/right/justified), vertical anchor, rotation, and a wrap width you can also drag on-canvas via the text's diamond grip. 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 pattern dialog, then you click internal points; 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 and more built in, plus any AutoCAD .pat file via the Import button.
- 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.
- 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. Each layer has: name, colour (ACI or true RGB), On (visible), Lock (visible but unselectable), Plot, lineweight, linetype, transparency (0–90%), and an optional group. Groups render as collapsible folders with group-wide On/Lock/Plot toggles. Columns sort; a radio button sets the active layer.
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 AutoCAD 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) turns the selection into a named definition — pick the base (insertion) point and the geometry is stored relative to it. INSERT (I) opens a fuzzy-search palette with live vector thumbnails of every definition plus scale and rotation fields; click repeatedly to place several instances. Editing a definition updates every instance. EXPLODE breaks an instance back into plain geometry.
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) defines a tag / prompt / default with its own text styling; place it inside the block geometry before running BLOCK. Inserting an attributed block prompts for each value; double-click an instance (or right-click → Edit Attributes…) to change them later.
8.3 · The Block Editor (BEDIT)
BEDIT (BE), or double-click an un-attributed block, opens the definition in place. A banner bar shows ✎ Editing block with Save Block (updates every instance), Save As… (clone under a new name), and Close (discard). While the editor is open, the Block Authoring palette appears (§8.4).
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 tabs: Parameters (click in the editor to place them), Actions (assign Move/Rotate/Flip/Stretch/Visibility per parameter; Stretch has a Use selection button for its object set), and Visibility (add/rename/remove named states, then Hide selection/Show selection to author each state — hidden entities 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 still gets a universal rotate + flip grip pair, sized from its bounds.
8.5 · Steel shapes (AISC)
STEEL (also AISC, SHAPE, SECTION) opens a picker 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. Fuzzy-search by designation (W12X26); the chosen shape is generated as a true-scale cross-section with real fillet radii, registered as a named block, and armed for insertion. The catalog is a CSV seeded to ~/.config/rustcad/steel_shapes.csv — edit or extend it, then STEEL RELOAD.
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 AutoCAD 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.
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 with its resolve status. Attach another .rcad 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. 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.
11Cost 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.
11.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).
11.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.
11.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.
11.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.
12Options & configuration
12.1 · The Options window
OPTIONS (OP) has four tabs. General: background colours for model and paper space, crosshair colour/size and pickbox size, grid spacing, lineweight display and its on-screen scale, the estimate highlight style, and xref fade. Display preferences save with the drawing. The other tabs are Dimension Style, Leader Style, and Keyboard.
12.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 | Ribbon docking layout, hidden panels, pin states. | automatic |
Everything else — styles, layers, layouts, display preferences, cost data — lives inside each .rcad drawing.
12.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, AutoCAD-style; 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.
12.4 · Arranging the workspace
Drag any ribbon group by its grip to dock it top/bottom/left/right or float it anywhere; hover a group and click its ✕ to hide it. Restore hidden groups 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.
12.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.
13Command 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 by centre + radius. |
| ARC | A | Arc: centre → start → end CCW; ↓ menu = type the angle. |
| ELLIPSE | EL | Ellipse / elliptical arc. |
| POLYLINE | PL PLINE | Polyline with arc segments, width, close, max-length. |
| RECT | REC RECTANGLE | Rectangle; D = type width/height. |
| POLYGON | POL POLY | Regular polygon, inscribed or circumscribed. |
| 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). |
| 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). |
| 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 MEASURE | Measure distance / angle / ΔX / ΔY. |
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. |
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 | Create a block; BLOCK <name> skips the dialog. |
| INSERT | I INS | Insert-block palette with thumbnails. |
| BEDIT | BE BLOCKEDIT | Block editor; BEDIT <name> or with an instance selected. |
| ATTDEF | ATT AD | Define a block attribute. |
| STEEL | AISC SHAPE SECTION | AISC steel-shape picker; STEEL RELOAD re-reads the CSV. |
| 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. |
14Keyboard & 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, AutoCAD-style. |
| 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. |
Keyboard
| Keys | Action |
|---|---|
| Ctrl+P | Command palette. |
| Ctrl+Z / Ctrl+Y | Undo / redo. |
| Ctrl+N / Ctrl+O / Ctrl+S | New / open / save. |
| 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. |
| 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. |
| 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).
15Known 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.