Carrosse Manual

The complete guide to Carrosse — a native 2D CAD program built in Rust, following AutoCAD drafting conventions. Every command, tool, panel, and subsystem, from the first line you draw to the printed sheet and the cost estimate.

2D DRAFTING DXF R2000 DYNAMIC BLOCKS COST TAKEOFF PDF PLOT BUILD 2026-08-31

1The screen

Carrosse is a single-window app. From top to bottom:

RegionWhat it holds
Menu barClassic File / Edit / View / Insert / Format / Tools / Draw / Dimension / Modify / Window / Help menus. Every item runs the same command the terminal would.
RibbonTab 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 tabsOne tab per open drawing, + for a new one, × to close. Ctrl+Tab cycles.
CanvasThe drawing itself (GPU-rendered), with the crosshair, grips, snap markers, and dimension/text labels.
Properties panelRight side. Shows and edits everything about the selection (§5.4). Unpin it and it collapses to a thin edge tab that expands on hover.
TerminalThe command line at the bottom — resizable, with scrolling history and a yellow prompt line showing what the active tool expects next.
Status barLeft: ⊞ 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:

ToolCommandHow it works
LineLINE · LPick point to point; keeps chaining until Esc or confirm.
Construction lineXLINE · XLInfinite guide line. Options: Horizontal, Vertical, Angle, Bisect. Always drawn continuous; excluded from Zoom Extents.
CircleCIRCLE · CIRCentre, then radius.
ArcARC · ACentre → start → end, counter-clockwise. A lets you type the sweep angle instead.
EllipseELLIPSE · ELAxis endpoints, then the other semi-axis. Elliptical arcs supported.
PolylinePOLYLINE · PLMixed 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.
RectangleRECT · RECTwo corners — or press D after the first corner to type width, then height. Produces a closed polyline.
PolygonPOLYGON · POLRegular n-gon. Type a number for the side count, I/C for inscribed/circumscribed.
PointNode marker; snappable.
HatchHATCH · HAOpens the hatch dialog, then click internal points (§6.4).
TextTEXT · TXTClick an insertion point; the rich-text editor opens (§6.3).
LeaderLEADER · LEArrowhead 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,y measures 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:

TagSnapNotes
ENDEndpointOn by default.
MIDMidpoint
CENCenterCircles and arcs.
QUAQuadrant0/90/180/270° points on circles and arcs.
PERPerpendicularFoot of the perpendicular from the last point.
TANTangentTangent point from the last point to a circle or arc.
INTIntersectionReal crossings between two entities.
APPApparent intersectionWhere two entities would cross if extended. Complements INT — real intersections win.
NEANearestClosest point on any entity.
GRDGridGrid 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.

UnitTokenExample
Millimetresmm12.3456 mm
Centimetrescm1.234 cm
Metresm0.012345 m
Inchesin3.5"
Decimal feetft3.5000'
Feet + inchesft-in3'-6"
Architecturalarch3'-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

CommandAliasesWhat it does
MOVEMV MOBase point → destination.
COPYCP CBase point → destination, repeatable.
ROTATERO ROTBase point, then click an angle or type degrees directly.
SCALESCBase point, then a positive factor.
MIRRORMITwo-point axis; then asks Delete source objects? [Y/N].
STRETCHSS STRCrossing window; enclosed vertices move, crossing edges stretch.
ALIGNALTwo source/destination point pairs; then asks whether to scale.
OFFSETOType a distance, then click the side.
TRIMTRQ Quick mode (everything is a cutting edge) or S Standard (pick edges first). Remembers your mode.
EXTENDEXClick near an object's end to extend it to a boundary.
FILLETFIType a radius (0 = sharp corner), pick two entities.
ARRAYDialog: rectangular (rows/columns/spacing) or polar (count, fill angle, centre pick, rotate-with-array).
EXPLODEX XPBlocks → world geometry; polylines → segments.
ERASEE DELDelete the selection.
MATCHPROPMAClick a source object, then paint its layer/colour/lineweight/linetype onto others.
FRONT / BACKBF / SBDraw 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.

KindCommand
AlignedDIM · DAL
HorizontalDIMH · DH
VerticalDIMV · DV
Radius (R prefix)DIMR · DR
Diameter (Ø prefix)DIMD · DD
AngularDA · 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/LULAYISO 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 flagMIRROR 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:

ParameterGripBehaviour on the instance
MovesquareDrag translates the instance from that point.
RotationcircleDrag spins the instance around the authored pivot.
Flip◄► arrowsA single click mirrors across the authored axis.
Linear / StretcharrowheadDrag along the axis; the included geometry stretches. Each stretched instance quietly gets its own private definition, so the shared block is never altered.
Visibility▼ triangleA 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$STATE variant 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" through 6"=1'-0"), engineering (1"=10'…), metric (1:21: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. 0 clears.
  • 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

FilePurposeRefresh
~/.config/rustcad/keybindings.ronYour shortcut overrides only — upgrades never break an old config.automatic
~/.config/rustcad/steel_shapes.csvEditable AISC steel catalog.STEEL RELOAD
~/.config/rustcad/cost_catalog.ronCost catalog overlay.COST RELOAD
~/.config/rustcad/layout.ronRibbon 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

CommandAliasesDescription
NEWNEWFILENew drawing (Ctrl+N).
OPENOPENFILEOpen a drawing (Ctrl+O).
SAVESave (Ctrl+S).
SAVEASSave under a new name.
PRINTPLOTPlot the publish space to a printer.
ABOUTVERSIONPrint the app version.
HELP? HPrint the built-in command list.
MANUALDOCS GUIDEOpen this manual in your browser (also Help → User Manual).

Draw

CommandAliasesDescription
LINELLine, point to point.
XLINEXL CONSTRUCTIONInfinite construction line (H/V/A/B options).
CIRCLECIRCircle by centre + radius.
ARCAArc: centre → start → end CCW; ↓ menu = type the angle.
ELLIPSEELEllipse / elliptical arc.
POLYLINEPL PLINEPolyline with arc segments, width, close, max-length.
RECTREC RECTANGLERectangle; D = type width/height.
POLYGONPOL POLYRegular polygon, inscribed or circumscribed.
HATCHHA BHHatch dialog + internal-point picking.
TEXTTXT MTEXT MTRich annotation text.
LEADERLE QLEADER QLLeader with arrowhead.

Dimension

CommandAliasesDescription
DIMDAL DIMALIGNED DIMLINEARAligned dimension.
DIMHDH DIMHORHorizontal dimension.
DIMVDV DIMVERVertical dimension.
DIMRDR DIMRADRadius dimension.
DIMDDD DIMDIADiameter dimension.
DADIMANG DIMANGULARAngular dimension (vertex + two rays).
DIMSTYLEDS DIMSTYLESDimension style editor.
LEADERSTYLELSLeader style editor.

Modify

CommandAliasesDescription
MOVEMV MOMove selection.
COPYCP CCopy selection.
ROTATERO ROTRotate; type a bare angle once the base is set.
SCALESCScale by factor.
MIRRORMIMirror; asks Delete source? [Y/N].
STRETCHSS STRStretch via crossing window.
ALIGNALAlign by two point pairs; optional scale.
OFFSETOParallel offset at a typed distance.
TRIMTRTrim (Quick / Standard modes).
EXTENDEXExtend to a boundary.
FILLETFIFillet with typed radius (0 = corner).
ARRAYARRectangular / polar array dialog.
EXPLODEX XPExplode blocks / polylines.
ERASEE DELETE DELDelete selection.
MATCHPROPMA MATCHMatch display properties.
FRONTBF TOFRONTBring to front (draw order).
BACKSB TOBACKSend to back.
UNDOUUndo (Ctrl+Z).
REDORedo (Ctrl+Y).

Select

CommandAliasesDescription
SELECTSSwitch to the Select tool.
QSELECTQS QSELQuick Select by property filters.
DISTDI MEASUREMeasure distance / angle / ΔX / ΔY.

View & viewports

CommandAliasesDescription
ZOOMZZoom; options All/Center/Extents/Previous/Window/Object or a scale (2x, 0.5x).
ZAZE ZOOMALL ZOOMEXTENTSZoom to fit everything.
PANPPan tool (middle-mouse drag always pans).
VP1VPSINGLESingle model viewport.
VP2VTwo viewports, vertical split.
VP2HTwo viewports, horizontal split.
VP3Three viewports.
VP4VPORTSFour viewports.

Layers

CommandAliasesDescription
LAYERLA LAYERSLayer Manager.
NEWLAYERNLAdd a layer; NL <name> names it.
LAYISOLIIsolate the selection's layers.
LAYUNISOLURestore layers after an isolate.

Blocks & references

CommandAliasesDescription
BLOCKBL MAKEBLOCKCreate a block; BLOCK <name> skips the dialog.
INSERTI INSInsert-block palette with thumbnails.
BEDITBE BLOCKEDITBlock editor; BEDIT <name> or with an instance selected.
ATTDEFATT ADDefine a block attribute.
STEELAISC SHAPE SECTIONAISC steel-shape picker; STEEL RELOAD re-reads the CSV.
IMAGEIMG IMAGEATTACHAttach a raster image.
PDFPDFATTACH INSERTPDFAttach a PDF page as a raster underlay.
PDFIMPORTIMPORTPDF PDFVECTORImport a vector PDF as real geometry at true size.
XREFER EXTERNALREFERENCESExternal References palette.

Cost estimating

CommandAliasesDescription
COSTCost Assemblies dialog; COST RELOAD re-reads the catalog.
COSTWALLCOSTWALL <assembly> [height] assigns a wall assembly.
COSTFLOORCOSTFLOOR <assembly> assigns a floor assembly.
COSTHEIGHTWALLHEIGHTPer-footprint wall height; 0 clears.
COSTCLEARRemove cost assignments from the selection.
ESTIMATEQTO TAKEOFFTakeoff to terminal; ESTIMATE CSV / PDF exports.
COSTPANELESTPANEL LIVECOSTLive Estimate palette.
COSTEDITCOSTCATALOGCatalog editor.

Snap overrides (next pick only)

CommandAliasesDescription
M2PMTP MID2Midpoint between two picked points.
ENDPEndpoint.
MIDMIDPMidpoint.
CENCENTERSNAPCenter.
QUAQUADQuadrant.
PERPERPPerpendicular.
TANTangent.
INTIntersection.
APPINTApparent intersection.
NEANEARNearest.
NONSNAPNOSNo snapping for the next pick.

Settings & workspace

CommandAliasesDescription
OPTIONSOP OPT SETTINGSOptions window.
KEYSKEYBOARD SHORTCUTS HOTKEYSOptions → Keyboard (rebinding).
UNITSUNITShow or set display units (UNITS ft-in…).
LTSCALELTSShow or set the global linetype scale.
PANELPANELSPANEL <name> [show|hide] toggles a ribbon group.

14Keyboard & mouse reference

Mouse

InputAction
Left clickPick a point / select an object / place a grip.
Left click, empty spaceStart a selection box (second click completes it). L→R window, R→L crossing; Shift subtracts.
Right clickContext menu on an object (Select tool); otherwise confirms the current tool, AutoCAD-style.
Ctrl/Shift + right clickSnap-override menu (next pick only).
Middle button dragPan (also the forward thumb button).
Scroll wheelZoom at the cursor. Inside an entered layout viewport, zooms the model view (pans instead if the scale is locked).
Double-clickText → editor · dimension → Dimension Text window · attributed block → Edit Attributes · plain block → Block Editor · layout viewport frame → enter the viewport · layout tab → rename.

Keyboard

KeysAction
Ctrl+PCommand palette.
Ctrl+Z / Ctrl+YUndo / redo.
Ctrl+N / Ctrl+O / Ctrl+SNew / open / save.
Ctrl+ASelect all.
Ctrl+C / Ctrl+Shift+C / Ctrl+VCopy / copy with base point / paste.
Ctrl+Tab / Ctrl+Shift+TabCycle document tabs.
F7 / F8 / F10Grid display / ortho / polar tracking.
TabAngle 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.
DeleteErase the selection.
EscCancel 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:

command lineBecause Space submits the command line, multi-word layer names can't be typed at the prompt — paste them (NEWLAYER My Wall Layer pasted works), or rename in the Layer Manager.
costCOSTFLOOR silently ignores a height argument — floors take no height by design.
dxfHatches, layout viewports and xrefs do not export to DXF yet (the export status line counts them as skipped). Hatches do import.