Skip to content

Reading settings

Theme
Text size
Line spacing
Reading width
Code text size
Dyslexia-friendly font · Motion

Command status table

Completemade from Musa CAD's own dataChecked against Musa CAD 0.8.0Verified

This is the living specification of Musa CAD’s AutoCAD-style commands. Each row has a Status: Implemented, or Planned (Phase N). Every future phase implements a slice and flips rows to Implemented. Phase numbers beyond the current one are a tentative roadmap and may shift.

Conventions: type the Alias or full name at the command line (autocomplete suggests both); aliases are case-insensitive.

Every command carries a one-line description and an icon in its registry row (CommandRegistry::make_default, the single source of truth). The ribbon reads these to build each button’s icon and its hover tooltip (NAME (ALIAS) — description); the same descriptions are available for future help / command-search. Catalog of the 38 registered commands (Ribbon Phase A):

Command (alias)Description
LINE (L)Create a series of straight-line segments.
CIRCLE (C)Draw a circle by centre and radius or diameter, two or three points, or tangent to objects.
PLINE (PL)Draw a connected sequence of line and arc segments as one object.
ARC (A)Draw an arc by three points, or from a start, centre or end with an angle, chord, direction or radius.
RECTANGLE (REC)Draw a rectangle from two opposite corners.
ERASE (E)Delete objects: Select objects: gathers picks, windows and keywords until Enter (a pre-selection is erased at once); OOPS brings the set back.
OOPSBring back the objects the last ERASE removed, keeping everything done since.
SELECTSelect objects with AutoCAD’s keywords (Window, Crossing, BOX, ALL, Fence, WPolygon, CPolygon, Group, Last, Previous, Add, Remove, Undo, SIngle); the set stays for the next command.
SELECTSIMILARSelect every object of the same kind and properties as the selected ones (SELECTSIMILARMODE says which properties count; default layer and name).
QSELECT / FILTER (FI)The Quick Select dialog: by object type and one property (FILTER: several conditions, all of which must hold).
MEASUREGEOM (MEA)Measure Distance, Radius, Angle, ARea or Volume, repeating until eXit; Quick mode measures the object clicked.
MASSPROPThe area, perimeter, bounding box, centroid, moments and product of inertia, radii of gyration and principal moments of the selected closed shapes.
TIMEThe current time, the drawing’s creation and last-saved times, its total editing time and the elapsed timer (Display/ON/OFF/Reset).
STATUSThe object count, the space’s extents, the drafting modes and the current layer, colour, linetype, lineweight and units.
CALOne expression: arithmetic, sin/cos/tan (degrees), sqrt, ln, log, [x,y] points, dist, ang, vec, nor, abs, cvunit(v, from, to).
QUICKCALC (QC)The calculator palette: a number pad, scientific functions, unit conversion, history, paste to the command line.
DWGPROPSThe drawing’s properties: General, Summary (title, subject, author, keywords, comments, hyperlink base), Statistics and Custom fields, saved with the drawing.
ISOLATEOBJECTS / HIDEOBJECTS / UNISOLATEOBJECTSHide everything but the selection, hide the selection, show everything again. Hidden objects are neither drawn nor pickable; the flag is saved with the drawing.
PICKBOX, PICKFIRST, PICKADD, PICKAUTO, PICKDRAG, HIGHLIGHT, SELECTIONPREVIEW, SELECTIONCYCLINGThe selection system variables, Enter new value for X <current>:.
COLOR (COL) / -COLOR / CECOLORThe colour new objects take. COLOR opens the Select Color window: the Index Color palette (1 to 255, ByLayer) and True Color. -COLOR and CECOLOR ask Enter default object color [Truecolor/COlorbook] <BYLAYER>: — BYLAYER, a number or a name (red … white), or Truecolor (Red, Green, Blue:).
LWEIGHT (LW) / -LWEIGHT / CELWEIGHTThe lineweight new objects take. LWEIGHT opens Lineweight Settings: ByLayer, Default and AutoCAD’s 24 lineweights listed in mm or inches, Display Lineweight; -LWEIGHT asks Enter default lineweight for new objects or [?]: (a typed value goes to the nearest of them); CELWEIGHT takes -1 ByLayer, -3 Default or hundredths of a millimetre.
LINETYPE (LT) / -LINETYPE / CELTYPEThe linetype new objects take. LINETYPE opens the Linetype Manager: the linetypes, Current, and the global and current object scale factors; -LINETYPE asks Enter an option [?/Create/Load/Set]:. Load brings linetypes from a .lin file or Musa CAD’s own, Create makes one.
-LINETYPE Load / Create; Linetype Manager ▸ Load…-LT
NEW / OPEN / QSAVE / SAVEAS (SAVE) / CLOSE / CLOSEALL / QUIT (EXIT)The file commands, typed as in AutoCAD: a new drawing, open one, save it (under its name, or Save As the first time), save it under another name, close the drawing in front or all of them, and quit, asking to save what is not saved.
IMPORT (IMP, DXFIN) / EXPORT (EXP, DXFOUT)Bring a DXF file in; write the drawing to a DXF file.
RENAME (REN) / -RENAMEEnter object type to rename [Block/Dimstyle/LAyer/LType/Material/multileadeRstyle/Plotstyle/textStyle/Tablestyle/Ucs/VPort/View]:, Enter old layer name:, Enter new layer name: — a block, dimension style, layer (not 0), text style or table style (not Standard) or a named view.
SETVAR (SET)Enter variable name or [?]:, then the variable’s own prompt; ? lists the variables there are.
REDRAW (R, RA, REDRAWALL), DIMREGENRedraw the drawing (as REGEN does).
DBLISTEvery object in the drawing listed, as LIST lists one.
DATAEXTRACTION (DX, EATTEXT)The block references counted by name and attribute values — Extract from [Drawing/Selection] <Drawing>:, Output to [Table/File/Both] <Table>: — one row for each block and set of values, Count, Name and a column per attribute tag, as a CSV file and/or a table placed in the drawing. Insert > Data > Extract Data. (AutoCAD’s wizard, its other object properties and .dxe templates are not here.)
PLANEnter an option [Current ucs/Ucs/World] <Current>: — the drawing seen from above with its extents in view (the World UCS is the only one).
LWDISPLAYEnter new value for LWDISPLAY <ON>: — lineweights on screen, as LWT on the status bar.
TRANSPARENCYDISPLAYLayer transparency on screen: 1 shown, 0 every object opaque; TPY on the status bar. Plots stay opaque.
GRIPS, GRIPSIZE, GRIPCOLOR, GRIPHOTThe grip variables: grips shown (1) or not (0), their size in pixels from centre to edge, and their colour and the hot grip’s as AutoCAD colour numbers.
UNDO (U)Reverse the most recent action.
HELP (?, F1)Open this command reference in the browser.
PREVIEW (PRE)The plot as it will come out, with the last plot’s settings: zoom, pan by dragging, Plot.
EXPORTPDFThe layout in front (its sheet, 1:1) or the model (the last plot’s settings) saved as a PDF file. Output > Export > PDF.
ISODRAFT / ISOPLANEIsometric drafting: ISODRAFT Enter isometric drafting option [Orthographic/isoplane Left/isoplane Top/isoplane Right]: turns it on in a plane or off; ISOPLANE Enter isometric plane setting [Left/Top/Right] <next>: changes the plane, as F5 and Ctrl+E do. The snap (SNAP Style Isometric, Specify vertical spacing:) falls on the isometric lattice, the grid and the crosshair follow the 30, 90 and 150 degree axes, and ORTHO keeps to the plane’s two axes (Left 90/150, Top 30/150, Right 90/30); ELLIPSE gains Isocircle (Specify center of isocircle:, Specify radius of isocircle or [Diameter]:). ISO on the status bar.
NAVBAREnter an option [ON/OFF] <ON>: — the navigation bar at the drawing’s right edge: Pan, Zoom Extents, Zoom Window, Zoom Previous, Zoom In and Zoom Out. View > Viewport Tools > Navigation Bar.
UPDATEFIELDSelect objects:; the fields in their text, attributes and table cells counted and worked out again (2 field(s) found. 2 field(s) updated.). Insert > Data > Update Fields.
PAGESETUPThe Page Setup Manager: the drawing’s page setups; New… names one and sets it in the Plot window (OK in place of Plot), Modify… changes one, Delete, and Set Current makes it what PLOT starts from in model space. Output > Plot > Page Setup Manager.
PUBLISHThe Publish window: the model and every layout, ticked to publish; Publish… asks for a file and plots each sheet ticked as a page of one PDF, each page its own paper size. Output > Plot > Batch Plot.
ZOOM (Z)Zoom in or out to change the view magnification.
PAN (P) / -PAN (-P)Move the view with a drag, or by a displacement.
MOVE (M)Move selected objects a specified distance and direction.
COPY (CO)Duplicate selected objects at a specified offset.
MIRROR (MI)Create a mirror-image copy of objects across an axis.
OFFSET (O)Create a parallel copy of a curve at a specified distance: lines, arcs, circles, polylines, construction lines and rays; ellipses and splines give a spline. The offset follows the cursor at the side prompt.
OFFSETGAPTYPEWhat joins a polyline’s straight segments where an offset has parted them: 0 carried on to their crossing, 1 an arc, 2 a bevel.
TRIM (TR)Trim objects to meet the edges of other objects: pick the part to remove, or drag a path across many and each is trimmed where the path crosses it. Shift extends instead.
JOIN (J)Join collinear or connected objects into a single object.
ROTATE (RO)Rotate selected objects around a base point.
SCALE (SC)Resize selected objects uniformly about a base point.
ARRAY (AR), -ARRAYCreate a rectangular, path or polar pattern of copies.
ARRAYRECTCreate a rectangular pattern of copies in rows and columns.
ARRAYPOLARCreate a circular pattern of copies about a centre point.
ARRAYPATHDistribute copies evenly along a path curve.
POLYGON (POL)Draw a regular polygon by centre or by one edge.
REVCLOUDDraw a revision cloud, or turn an object into one.
EXPLODE (X)Break compound objects into their components.
PURGE (PU)The Purge dialog: the unused blocks, dimension styles, groups, layers, table styles, images and text styles by name, checked off; Confirm each item; zero-length geometry and empty text objects.
-PURGEPurge from the command line: the type, Enter name(s) to purge <*>: (wild cards), Verify each name to be purged? [Yes/No] <Y>: and one question per name.
POLARANG / POLARADDANG / POLARMODE / POLARDIST / SNAPTYPE / AUTOSNAP / TEMPOVERRIDESThe tracking settings as system variables: the polar increment angle, the additional angles (15;75, . for none), relative angles (1) / tracking along every polar angle (2) / additional angles (4), the PolarSnap distance, grid snap (0) or PolarSnap (1), polar (8) and object snap (16) tracking, the temporary override keys.
DSETTINGS (DS, SE, RM, DDRMODES), OSNAP (OS, DDOSNAP) / -OSNAP / OSMODEThe Drafting Settings dialog: Snap and Grid (snap on, X / Y spacing, polar distance, Grid snap or PolarSnap; grid on, X / Y spacing — 0 follows the zoom — the major line, adaptive and subdivision, beyond the limits), Polar Tracking (on, the increment and additional angles, tracking orthogonally or along every polar angle, absolute or relative to the last segment), Object Snap (on, tracking on, the running snaps) and Dynamic Input; it opens where it was left; -OSNAP takes a mode list (END, MID, CEN, GCEN, NOD, QUA, INT, EXT, INS, PER, TAN, NEA, APP, PAR, NONE, ALL) and offers the modes in force as its default; OSMODE is their bit sum (4133 to begin with: Endpoint, Center, Intersection, Extension).
WIPEOUTMask polygon from points or a closed polyline ([Polyline], with optional erase); [Frames] ON/OFF shows or hides the boundaries, or Display but not plot shows them on screen only. Hides lines, curves and hatches beneath it; text stays visible.
FIELDText carrying %<Date>%, %<Time>%, %<Filename>% or %<Login>%, expanded at layout and refreshed on every regen.
PEDIT (PE)Edit a polyline, or several (Multiple): Close/Open, Join, Width (one width for every segment), Edit vertex (an X on the current vertex: Next/Previous/Break/Insert/Move/Regen/Straighten/Tangent/Width), Fit (arcs through the vertices), Spline (a B-spline on the vertices, which stay its frame: SPLINETYPE, SPLINESEGS), Decurve (back to the vertices placed), Reverse, Undo; a picked line or arc is turned into a polyline first, if you say so.
PELLIPSE1 makes ELLIPSE draw a polyline of arcs, 0 a true ellipse.
BLOCK (B, -BLOCK)Make the selection a block definition (name, base point, select objects); the originals are replaced by one insert in place.
INSERT (I, -INSERT)Insert a block by name, carried at the cursor: Specify insertion point or [Scale/X/Y/Z/Rotate]:, Enter X scale factor, specify opposite corner, or [Corner/XYZ] <1>: (the block sized by the corner as it moves), the Y scale, then Specify rotation angle <0>: turned with the cursor (? lists blocks).
ATTDEF (ATT, -ATTDEF)Define a block attribute: modes (Invisible/Constant/Verify/Preset), tag, prompt, default value, then the text placement. Shows its tag until BLOCK folds it into a definition.
ATTDISPAttribute visibility: Normal (each attribute’s own Invisible mode), ON or OFF for all.
ATTEDIT (-ATTEDIT)Change one attribute value (by tag, or all) on a block reference.
EATTEDITEnhanced Attribute Editor: pick a block reference (or double-click one) and edit every attribute value in a dialog — Tag / Prompt / Value, with a Value field bound to the selected row; OK or Apply writes them as one undo step. Insert tab ▸ Block Definition ▸ Edit Attribute.
BATTMANBlock Attribute Manager: choose a block, then edit its attribute definitions in place (tag, prompt, default, modes as I/C/V/P letters, text height), Move Up / Move Down / Remove, and see how many references the active space holds; with “Apply changes to existing references” every reference’s values are carried over by tag (a new attribute takes its default, a removed one drops). Insert tab ▸ Block Definition ▸ Manage Attributes.
DRAWORDER (DR)Select objects:, Enter object ordering option [Above objects/Under objects/Front/Back] <Back>: — Above and Under ask Select reference objects: and put the objects just over or under them. Every object has its place in the draw order: a new one goes over the rest, a copy over its source, an edit keeps its place. Fills, hatches, wipeouts and images hide what is under them, on screen and on paper. Home ▸ Modify ▸ Draw Order.
TEXTTOFRONT / HATCHTOBACKBring to front [Text/Dimensions/Leaders/All] <All>: — those objects over everything; HATCHTOBACK puts every hatch under everything.
CETRANSPARENCYThe transparency new objects take: ByLayer, ByBlock, or 0 to 90 percent. An object’s own is the Properties palette’s Transparency; CECOLOR, CELTYPE and CELWEIGHT take BYBLOCK, as the palette’s colour, linetype and lineweight do — an object in a block drawn in the reference’s. Kept in the drawing and in DXF (440, colour 0, BYBLOCK, lineweight -2).
ATTSYNCGive a block’s references its attributes as they are now: Enter an option [?/Name/Select] <Select>: — Select a reference, or a Name (* and wild cards sync several), then ATTSYNC block X? [Yes/No] <Yes>:; each reference keeps its values, takes the default for an attribute it lacks and loses one past the last. Insert tab ▸ Block Definition ▸ Synchronize.
XREF (XR, -XREF)External references: Attach a .musa or .dxf as a block named after the file (its own blocks come along as name|block), placed at a point, scale and rotation; Detach erases its references and definition; Reload re-reads the file; ? lists them. Xrefs are re-read whenever the drawing opens.
IMAGEATTACH (IAT)Attach a raster image: file (or the file dialog), keep a copy inside the drawing or reference it from the drawing’s folder, insertion point, scale (as AutoCAD sizes it: one unit wide at scale 1, or its true size from the resolution the file records when the drawing has a unit; Base image size said, the scale and the angle dragged from the insertion point), rotation.
IMAGECLIP (ICL)Clip an image to a rectangular or polygonal boundary (Close with Enter); Delete, ON, OFF drop or keep the boundary.
IMAGEFRAMEImage frames: 0 hidden, 1 shown and plotted, 2 shown on screen only.
LAYOUT (LO)Paper-space sheets: New, Copy (objects included), Delete (an empty one), Rename, Set, ?. The tab strip does the same by click and right-click.
MODEL / PSPACE (PS)Switch to model space / to paper space (the first layout).
MVIEW (MV)A viewport on the layout showing model space: two corners, or Fit (the sheet inside a 10 mm margin), fitted to the whole model; ON / OFF, Scale (paper mm per model unit), Center (the model point at the viewport’s centre). Corner grips resize, the centre grip moves.
MSPACE (MS)Edit model space through a viewport: pick one (or double-click inside it). The model fills the window at the viewport’s scale; draw and edit as in model space; PSPACE (or a double-click on nothing) returns to the sheet, and the view you left becomes the viewport’s view, so ZOOM and PAN inside set its scale and centre.
VPORTS (-VPORTS, VIEWPORTS)Tiled model-space viewports, as AutoCAD’s Model Viewports: 2 (Horizontal / Vertical), 3 (Horizontal / Vertical / Above / Below / Left / Right) and 4 split the current viewport; SIngle returns to one viewport keeping the current view; Join merges two that share an edge (the dominant’s view wins); Save / Restore / Delete / ? manage named configurations, saved in the drawing. The View tab’s Viewport Configuration list applies a standard layout to the whole window. Click a viewport to make it current (a bright blue border; the click is not a pick, and a running command carries on there); the wheel zooms the viewport under the cursor; every viewport pans and zooms on its own while showing the same model, so a selection or an edit shows in all of them.
VPLAYERLayer visibility per viewport: Freeze / Thaw layers (typed names, or the layers of objects you pick) in the Current viewport (the one you are in through MSPACE), All viewports, or a Selected one; Reset puts a viewport back to the layers’ defaults; Newfrz creates layers frozen in every viewport; Vpvisdflt sets a layer’s default for viewports created later; ? lists what each viewport freezes. The Layer Properties Manager shows the same as its “New VP Freeze” column and, while a viewport is current, a “VP Freeze” column. Model space itself and the other viewports are unaffected; the lists are saved natively and as the DXF VIEWPORT’s frozen-layer handles (331) and LAYER flag 2.
REFEDITEdit a block definition in place: the picked reference’s members become ordinary objects (the working set) to edit with any command.
REFSETAdd objects to, or remove them from, the working set of the reference being edited.
REFCLOSESave the working set back into the block definition (every reference updates) or discard the changes.
WBLOCK (W)Write a block (base point at the origin) or the whole drawing to a .musa file.
REGEN (RE), REGENALL (REA)Rebuild and redraw the scene.
STYLE (ST, -STYLE)Named text styles: font, fixed height, width factor, obliquing angle; TEXT uses the current style and the palette’s Style dropdown changes it.
UNITS (UN)The Drawing Units dialog: length and angle type and precision, clockwise, the insertion scale (INSUNITS), the sample output and the Direction Control dialog.
-UNITSThe same from the command line: AutoCAD’s numbered format tables, Enter choice, 1 to 5 <2>:, the fraction denominator, the angle base and direction, Do you want angles measured clockwise?.
INSUNITSThe drawing unit blocks and images are scaled to on insertion (0 unitless … 4 millimeters, 6 meters).
CELTSCALE / PSLTSCALE / MSLTSCALEThe linetype scale new objects are created with; whether linetypes seen through layout viewports follow the viewport scale (dashes the same length on the sheet); whether model-space linetypes follow the annotation scale (recorded; there is no annotation scale yet).
AUDITValidate layer/style/font/block/image references and entity shape; Yes fixes them.
VIEW (V)Save, Restore, Delete and list (?) named views; Window saves a framed view.
GROUP (G)Make the selection a named group (Name/Description; ? lists the groups); picking a member selects the group.
-GROUP (-G)Group options from the command line: ?, Order, Add, Remove, Explode, REName, Selectable, Create.
GROUPEDITPick a member (or Name) then Add objects, Remove objects or REName. Ctrl+H (Ctrl+Shift+A) toggles group selection.
UNGROUPDissolve a group by pick or by name.
PICKSTYLE0/1: whether picking a member selects its whole group.
ALIGN (AL)Move, rotate and optionally scale a selection onto two destination points.
LENGTHEN (LEN)Measure or change the length of a line, arc, open polyline, elliptical arc or spline.
BREAK (BR)Break a curve between two points.
BREAKATPOINTSplit a curve at one point, leaving no gap.
ELLIPSE (EL)Draw an ellipse or elliptical arc (axis endpoints, Center, Rotation, Arc).
SPLINE (SPL)Draw a spline through fit points (Method Fit, Knots Chord/Square root/Uniform) or by control vertices (Method CV, Degree). Undo, Close.
DONUT (DO)Filled ring or disc from inside/outside diameters (typed, or shown by two points): a closed polyline of two arcs, as wide as the ring.
FILL / FILLMODEWhether wide polylines, solids and hatches are filled (ON / 1) or wide polylines outlined and hatches hidden (OFF / 0). Saved with the drawing.
PLINEWIDThe width new polylines start with.
XLINE (XL)Draw an infinite construction line.
RAYDraw a semi-infinite construction line.
POINT (PO)Place a point; the ribbon’s Multiple Points (MULTIPLE POINT) places one after another.
MULTIPLERepeat a command until Esc (MULTIPLE POINT places point after point).
PDMODEHow points are drawn: 0 a dot, 1 nothing, 2 a plus, 3 a cross, 4 a tick; +32 in a circle, +64 in a square.
PDSIZEThe size of point markers: in drawing units, or 0 or less for a size on screen.
PTYPEThe point display mode and size (PDMODE and PDSIZE).
LIMITSThe drawing’s limits, and whether points outside them are refused.
DIVIDE (DIV)Mark a curve into a number of equal segments with points.
MEASURE (ME)Mark a curve at set intervals with points.
EXTEND (EX)Extend objects to meet the edges of other objects; a dragged path extends every object it crosses. Shift trims instead.
FILLET (F)Round corners between two intersecting lines, arcs, circles, polylines, ellipses or splines.
CHAMFER (CHA)Bevel corners between two intersecting lines.
MATCHPROP (MA)Copy properties from a source object to one or more target objects.
HATCH (H) / -HATCH (-H)Fill an enclosed area with a pattern or solid color: Pick internal point or [Select objects/Undo/seTtings]:; seTtings asks the pattern (Enter a pattern name or [?/Solid/User defined/Gradient] <ANSI31>:), its scale and angle, kept for the next hatch; -HATCH asks Specify internal point or [Properties/Select objects/...]:.
TEXT (DT)Single-line text, line after line: [Justify/Style], AutoCAD’s fifteen justifications (Align and Fit between two points), the height and rotation remembered; an empty line ends it.
JUSTIFYTEXTChange the justification of the selected text without moving it.
SCALETEXTScale the selected text, each about a point of its own (its insertion point, or a justification’s point): a new height, a scale factor (or Reference), or the height of another text.
TXT2MTXTConvert the selected single-line text to one multiline text, top line first.
DIMLINEAR (DLI)A horizontal, vertical or rotated linear dimension: two points or Enter to select an object; [Mtext/Text/Angle/Horizontal/Vertical/Rotated].
DIMALIGNED (DAL)A dimension aligned with two points or a selected object; [Mtext/Text/Angle].
DIMRADIUS (DRA)Create a radius dimension for a circle or arc.
DIMDIAMETER (DDI)Create a diameter dimension for a circle or arc.
DIMANGULAR (DAN)An angular dimension of two lines, an arc, a circle or three points, its arc placed where you click; [Mtext/Text/Angle/Quadrant].
DIMORDINATE (DOR)Ordinate (X or Y datum) dimension with a leader; Xdatum/Ydatum or automatic from the leader direction.
DIMJOGGED (DJO)Jogged radius dimension: arc or circle, centre location override, dimension line location, jog location.
DIMARC (DAR)Arc length dimension of an arc or a polyline arc segment.
DIMCreate dimensions one after another, each suited to the object picked; Angular, Baseline, Continue, Ordinate, aliGn, Distribute, Layer.
DIMLAYERThe layer new dimensions go on; . for the current layer.
QDIMDimension the selected geometry at once: a chain, staggered, from a baseline, ordinates, radii or diameters.
DIMEDIT (DED)Put dimensions’ text home, replace or rotate it, or slant their extension lines (Oblique).
DIMTEDIT (DIMTED)Move or rotate a dimension’s text, or slide it Left, Right or to the Center.
DIMSPACESpace parallel dimensions evenly from a base dimension, or line them up with it.
DIMJOGLINEAdd a jog to a linear or aligned dimension’s line, or remove it.
DIMINSPECTMake dimensions inspection dimensions: a frame, a label and an inspection rate.
DIMCENTER (DCE)Mark the centre of an arc or circle, with centre lines if asked.
DIMOVERRIDE (DOV)Give dimensions settings of their own (DIMTXT, DIMASZ …), or clear theirs.
LAYER (LA)Open the Layer Properties Manager.
-LAYER (-LA)Layers at the command line: make, set, add, rename, and switch them on, off, frozen, locked.
ORTHOTurn orthogonal drawing on or off (F8).
SNAP (SN)Set the snap spacing, or turn grid snap on or off (F9).
GRIDShow or hide the grid (F7).
REVERSEMake lines, polylines and splines run the other way.
OVERKILL (-OVERKILL)Delete duplicate objects and combine overlapping collinear lines.
COPYTOLAYERCopy objects to another layer, in place or moved.
LAYMCHPut objects on the layer of another object, or a layer named.
CHPROPChange objects’ colour, layer, linetype, linetype scale or lineweight at the command line.
BLENDA spline joining the ends of two objects, tangent (or smooth) to both.
REDORedo the last step undone.
MREDORedo several undone steps, or all of them.
TRACEDraw wide line segments (a polyline with a width).
SKETCHDraw freehand: each stroke becomes lines, a polyline or a spline.
BREAKLINEDraw a break line with a zigzag break symbol.
FINDFind text in the drawing and replace it.
TCASEChange the case of text.
SOLID (SO)Draw filled triangles and quadrilaterals.
CENTERMARK (CM)Mark the centres of circles and arcs, with centre lines.
CENTERLINE (CL)Draw the centre line between two lines.
BOUNDARY (BO, -BOUNDARY)Closed polylines round the area enclosing a point, and its islands.
MLINE (ML)Draw a multiline: parallel lines along a path, in a multiline style.
MLSTYLEThe Multiline Style window: the styles multilines are drawn in.
MLEDIT, -MLEDITEdit multilines: crosses, tees, a corner joint, vertices, cuts and welds.
DIMSTYLE (D, DST, DDIM)The Dimension Style Manager: the drawing’s dimension styles, Set Current, New and Modify (lines, arrows, text, primary units).
-DIMSTYLEDimension styles at the command line: [Save/Restore/STatus/?].
DIMTXT, DIMASZ, DIMBLK, DIMDEC, DIMDSEP, DIMZIN, DIMEXO, DIMEXE, DIMTAD, DIMATFIT, DIMTMOVE, DIMLWD, DIMCLRD, DIMCLRE, DIMCLRT, DIMLUNIT, DIMFRAC, DIMRND, DIMLFAC, DIMAUNIT, DIMADEC, DIMALT, DIMALTU, DIMALTD, DIMALTF, DIMALTRNDSet one value of the current dimension style (Enter new value for DIMTXT <2.5000>:).
LEADERDraw a leader line with an arrowhead and annotation.
MLEADER (MLD)Draw a multileader: arrowhead, leader line, landing and text.
MTEXT (MT)Create a multiline (paragraph) text object.
QLEADER (LE)Specify first leader point, or [Settings] <Settings>:, Specify next point: up to the number of points set (3), Specify text width <0.0000>:, Enter first line of annotation text <Mtext>: and the next lines until Enter. Settings opens the Leader Settings window: the annotation (MText or None), Prompt for width, Always left justify, the arrowhead, the number of points (or No limit) and the angle constraints of the first two segments.
TEXTEDIT (ED)Edit the contents of text objects, one after another ([Undo/Mode]; TEXTEDITMODE 1 edits one and ends).
PROPERTIES (PR)Open the Properties palette to view and edit object properties.
DWGINImport geometry from a DWG file.
DWGOUTExport the drawing to a DWG file.
PLOTPlot or print the drawing to paper or PDF.
OPTIONS (OP)Change application settings: update checks and the performance overlay.
LTSCALE (LTS)Set the global linetype scale factor.
CommandAliasStatus
LINELImplemented — Specify next point or [Close/Undo]:; Close joins back to the first point; Enter at the first prompt continues from the last line or arc (tangent to an arc: Specify length of line:)
PLINE (polyline)PLImplemented — Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:; Arc mode [Angle/CEnter/CLose/Direction/Halfwidth/Line/Radius/Second pt/Undo/Width] with each sub-step (an arc is tangent to the previous segment unless told otherwise; Ctrl bends it the other way); Length continues along the last segment; Width / Halfwidth ask for a starting and an ending value (typed, or a point’s distance from the last vertex): the next segment tapers between them and the ending width stays in force, for later polylines too (PLINEWID); the band shows the arc and the width the click will make; Dynamic Input offers length and angle fields on a next-point pick
Polyline widths—Two widths per vertex (start and end of the segment leaving it), drawn as filled bands (mitred between straight segments of one width), outlined with FILLMODE 0; picked anywhere on the band. MOVE / COPY / ROTATE / MIRROR / SCALE (the width scales) / STRETCH / ARRAY carry them; TRIM, BREAK, EXTEND, FILLET, CHAMFER and OFFSET hand them to the pieces (a taper keeps its slope); JOIN keeps each source’s; EXPLODE drops them and says so. LIST, the Properties palette (Global width, Elevation, Thickness) and MATCHPROP (Polyline) know them. Saved in .musa (format 37) and DXF (40 / 41 / 43, 38, 39; the legacy POLYLINE’s too); a wide polyline inside a block is filled where the block is inserted
CIRCLECImplemented — Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:; centre + radius / [Diameter] with the last radius as the default (CIRCLERAD); 3P through three points; 2P by the ends of a diameter; Ttr tangent to two objects with a radius; TTT tangent to three objects (lines, circles, arcs, construction lines, polyline segments; the branch nearest the picks)
ARCAImplemented — Specify start point of arc or [Center]:, Specify second point of arc or [Center/End]:; the Center branch (end, [Angle/chord Length]) and the End branch (centre, [Angle/Direction/Radius]), the centre first, Continue (Enter at the first prompt: tangent from the last line or arc), Ctrl at a pick switches the direction; the rubber band shows the arc the click will make
RECTANGLERECImplemented
RECTANG (the command echoes as RECTANG) — Specify other corner point or [Area/Dimensions/Rotation]:; length / width / area remembered as the next defaults; Rotation by an angle or [Pick points], in force for later rectangles; Current rectangle modes: Fillet=… echoed; Area means the finished shape (corner cut-outs included); the band shows the rounded / chamfered cornerstyped mid-commandImplemented
RECTANGLE options: Dimensions (D → length → width → quadrant-flip placement click), Area (A → area → [Length/Width] → side → placement), Rotation (R → angle)typed mid-commandImplemented (option keywords, same state machine as CIRCLE [Diameter])
RECTANGLE first-corner options: [Chamfer/Elevation/Fillet/Thickness/Width]C / E / F / T / WImplemented (Width is the polyline width; Elevation and Thickness are kept and saved, DXF 38 / 39, the view being 2D; all stay in force and are echoed in Current rectangle modes:)
SPLINESPLImplemented (#23) — Fit and CV methods
ELLIPSEELImplemented (#23) — axis-end, Center, Rotation, Arc
POLYGON (side count and Inscribed / Circumscribed remembered, 3..1024 sides, a typed radius stands the polygon on a flat bottom edge, an Edge-mode band)POLImplemented (#23) — inscribed / circumscribed / Edge
POINT — Current point modes: PDMODE=0 PDSIZE=0.0000, Specify a point:, one point; MULTIPLE (Enter command name to repeat:) runs any command again until Esc, and the ribbon’s Multiple Points is MULTIPLE POINT. PDMODE / PDSIZE / PTYPE set how points are drawn (0 a dot, 1 nothing, 2 a plus, 3 a cross, 4 a tick up; +32 in a circle, +64 in a square) and how big (drawing units; 0 or less a size on screen, about forty pixels at any zoom); kept in the drawing and in DXFPOImplemented (#23, #40)
XLINE / RAYXLImplemented (#23) — Hor / Ver / Ang / Bisect / two-point
HATCH / BHATCH — SOLID fill of a region (Part A). Two boundary modes: pick an internal point (the engine traces the enclosing boundary from surrounding geometry — lines, arcs, circles, polylines — building a planar arrangement so a partitioning line correctly splits the region; closed entities inside become islands/holes) or pre-select closed polylines (noun-verb). “Valid hatch boundary not found.” when no closed boundary encloses the pick. Fill is derived, not baked (rendered via the fill pipeline, so it plots as PDF vectors). Pickable (point-in-region, islands respected), PR-editable (Pattern/Scale/Angle/Origin), MATCHPROP-matchable, native + DXF round-trip. Selected hatch shows a highlight tint over the fill + a grip at every boundary vertex (drag to reshape)H / BHATCHImplemented (Part A: SOLID; line patterns = Part B)
HATCH line patterns (Part B) — .PAT parser + a built-in stock library (ANSI31–ANSI38, NET/NET3/GRID, BRICK, BOX, HEX/HONEY, ANGLE, DOTS, CROSS, SQUARE, TRIANG, GRASS, EARTH, STEEL, CONC, INSUL, …; authored from the public .PAT format, not copied from acad.pat — load that file for the vendor set). Line families are generated + clipped to the boundary at render time (derived-not-baked, even-odd so islands carve out) and plot as vectors. Choose via the command’s [Pattern/Scale/Angle] options or the PR. SOLID stays the special fill name — one render path, patterns are not a forkH ▸ PatternImplemented (Part B)
HATCH GRADIENT fills (entity colour to a second colour along an angle; 24 flat bands, so it plots as vectors; DXF gradient block both ways)H ▸ GradientImplemented
-HATCH Advanced — Enter an option [Boundary set/Retain boundary/Island detection/Style/Associativity/Gap tolerance/separate Hatches]:: the hatching style [Ignore/Outer/Normal], island detection (No asks the ray casting), the boundaries kept as polylines, a boundary set [New/Everything], HPASSOC, a gap tolerance (0 to 5000) and separate hatches; unless separate hatches are asked for, the areas picked in one HATCH are one hatch-H ▸ AImplemented (#41)
HPSEPARATE — Enter new value for HPSEPARATE <0>:: 0, the areas one HATCH picks or selects are one hatch; 1, a hatch each (kept between runs). MEASUREMENT 0 or 1: a new hatch’s standard pattern as acad.pat or acadiso.pat (25.4 times as large) has it — kept by the hatch, and read again when its pattern, scale or angle changes; MEASUREINIT: a new drawing’s MEASUREMENT (kept between runs)HPSEPARATE, MEASUREMENT, MEASUREINITImplemented (#41, #81)
HPASSOC — Enter new value for HPASSOC <1>:: 1, new hatches follow their boundaries (MOVE, ROTATE, SCALE, MIRROR, grip edits, TRIM, EXTEND, LENGTHEN, BREAK, FILLET, CHAMFER of the boundary take the hatch along); 0, they stay as madeHPASSOCImplemented (#41)
HATCH User defined — at the pattern prompt (seTtings, -HATCH Properties, HATCHEDIT Properties), U: Specify angle for crosshatch lines <0>:, Specify spacing between the lines <1.0000>:, Double hatch area? [Yes/No] <No>: — parallel lines that far apart at that angle, crossed at right angles when double; in DXF as AutoCAD’s user-defined type with its line familiesH ▸ seTtings ▸ UImplemented (#41)
GRADIENT — HATCH with the gradient fill (its second colour and angle as last set; seTtings changes them): Pick internal point or [Select objects/Undo/seTtings]:GDImplemented (#41)
TRACE — Specify trace width <1.0000>: (kept for the session), Specify start point:, Specify next point: until Enter: one polyline of that widthTRACEImplemented (#45; a polyline, so it is mitred and edited as one)
SKETCH — Specify sketch or [Type/increment/toLerance]:: press and drag to sketch; each stroke becomes lines, a polyline or a spline (Enter sketch type [Line/Polyline/Spline]), its points the increment apart, until Enter; one undo stepSKETCHImplemented (#45)
ADDSELECTED — Select object:: the command that draws that kind of object starts, and what it draws takes the object’s layer, colour, linetype and lineweight (the current ones come back after)ADDSELECTEDImplemented (#45; the type’s own settings such as a text style or a hatch pattern are not copied yet)
BREAKLINE (Express Tools) — Specify first point for breakline or [Block/Size/Extension]:, the second point, Specify location for break symbol <Midpoint>:: one polyline past both points by the extension with a zigzag break of the given sizeBREAKLINEImplemented (#77; the standard symbol only)
MOCORO (Express Tools) — Base point:, then Second point or [Copy/Base/Rotate/Scale/Undo] <eXit>: again and again: the selection moved, rotated (Rotation angle or [...]) and scaled (Scale factor or [...]) in one command, the base going with a move; Copy makes the next ones copies, Undo takes the last backMOCOROImplemented (#77)
DIMEX / DIMIM (Express Tools) — DIMEX: Dimension styles to export <*>: (* and ? wild cards), then a file to write (.dim); DIMIM: a file DIMEX wrote, then Existing styles of the same name [Keep/Overwrite] <Keep>: — the dimension styles carried from one drawing to anotherDIMEX / DIMIMImplemented (#77; the file is Musa CAD’s text format, not AutoCAD’s .dim layout)
NCOPY (Express Tools) — Select nested objects to copy: one pick after another, Specify base point or displacement, or [Multiple]: (Enter: in place), Specify second point of displacement, or <use first point as displacement>: — the objects inside block references copied out into the drawing, the references left as they areNCOPYImplemented (#55, #77; one level down: an object in a nested block comes out as that block’s reference)
TFRAMES (Express Tools) — the frames of wipeouts and images off together, or on together when the wipeout frames are offTFRAMESImplemented (#77)
TCOUNT (Express Tools) — Select objects:, Sort selected objects by [X/Y/Select-order] <Select-order>: (left to right, top to bottom, or as selected), Specify starting number and increment (Start,increment) <1,1>:, Placement of numbers in text [Overwrite/Prefix/Suffix/Find&replace..] <Prefix>:: each text and multiline text gets its number instead of its text, before or after it (a space between), or in place of a search string (Enter search string:). The answers are offered again. One undo stepTCOUNTImplemented (#77)
TEXTFIT (Express Tools) — Select Text to stretch or shrink:, Specify end point or [Start point]:: the text’s width factor set so it ends at the point, its start where it was or at a new starting point; Aligned and Fit text keep their own two pointsTEXTFITImplemented (#77)
GATTE (Express Tools) — Select block or attribute [Block name]: (or Enter block name:), the known tags listed, Select attribute or type attribute name:, Enter new text:, Process all of them? [Yes/No] <Yes>:: the attribute’s value on every reference of the block, or only the one picked. One undo stepGATTEImplemented (#77; an attribute is named by its tag, not picked)
VPSCALE (Express Tools) — Select the viewport to list the scale:: PS:MS == 1:2.5 Viewport Scale = 0.4VPSCALEImplemented (#77)
TXTEXP (Express Tools) — Select objects:: each text, multiline text and attribute definition among them becomes polylines — along its letters’ strokes in the built-in font, the underline and overline too, or closed round each glyph’s outlines in a TrueType font — on its layer and in its colour, as it is drawn (width factor, obliquing, Backwards and Upside down included). One undo stepTXTEXPImplemented (#77)
FLATTEN (Express Tools) — Select objects to convert to 2d:, Remove hidden lines? <No>:: the polylines’ elevation and thickness set to 0FLATTENImplemented (#77)
BURST (Express Tools) — EXPLODE for blocks whose attributes become text with the values the reference had (the hidden ones go)BURSTImplemented (#77)
TEXTMASK (Express Tools) — Select text objects to mask or [Masktype/Offset]:: a wipeout behind each text, multiline text and attribute definition selected, the offset (text heights, 0.35 to begin with) clear of itTEXTMASKImplemented (#77; the mask is a wipeout, not grouped with its text)
CHANGE — Specify change point or [Properties]:: lines’ nearer ends moved to the point, circles through it; with texts selected Specify new text insertion point <no change>:, the style, height, rotation angle and text; with blocks the insertion point and rotation angle — each for all of them at once; Properties runs CHPROPCHANGE / -CHImplemented (#55; AutoCAD asks the text and block settings object by object, showing each one’s values)
HATCHEDIT — Select hatch object:, Enter hatch option [... Properties ... recreate Boundary ...] <Properties>:: Properties sets the pattern (? lists them), scale and angle; recreate Boundary draws a closed polyline round each loop; ADd boundaries — Pick internal point or [Select objects/remove Boundaries]:, each area picked joins the hatch; Remove boundaries — Select Objects or [Add boundaries]:, the hatch’s boundary picked is taken out (one always stays); Origin — [Use current origin/Set new origin/Default to boundary extents] <Use current origin>:, a point or a corner (or the centre) of the boundary’s extents; Disassociate, separate Hatches, hatch COlor and LAyerHE / HATCHEDITImplemented (#41, #55; Style, DRaw order, ASsociative, ANnotative and Transparency not yet)
SPLINEDIT — Select spline:, Enter an option [Close/Join/Fit data/Edit vertex/convert to Polyline/Reverse/Undo/eXit] <eXit>:: Edit vertex adds a control point into the nearest leg of the control polygon, deletes one (a spline keeps degree + 1) or moves one; convert to Polyline (Specify a precision <10>:); Reverse; UndoSPEImplemented (#55; Close, Join, Fit data, Elevate order and Weight not yet)
-MTEXT — the MTEXT corners and options, then the text line by line at MText: until an empty line-MTEXT / -TImplemented (#43)
VIEW (V) opens the View Manager: the saved views by category, Set Current (or a double-click), New (named, in a category, its layer snapshot, and its boundary: the display as it is, or a window picked in the drawing with Define View Window), Delete; -VIEW asks at the command line; NEWVIEW — Enter view name: saves the view on screenV / -VIEW / NEWVIEWImplemented (#72)
LAYERSTATE (LAS) opens the Layer States Manager: the named layer states, New, Restore (or a double-click), Rename, Delete, Import… and Export… (AutoCAD’s .las files); -LAYERSTATE asks at the command line, Import and EXport tooLAS / -LAYERSTATEImplemented (#69)
FIND — the Find and Replace window: find what, replace with, the entire drawing or the selection, match case, whole words only; Find selects the objects found, Replace All changes them in one undo step. Text, multiline text, leaders, multileaders, table cells, block attributes and dimension text overrides. Without the window: Enter the text to find:, Enter the replacement text, or Enter to find only:, Match case [Yes/No] <No>:, Find whole words only [Yes/No] <No>:FINDImplemented (#62)
TCASE (Express Tools) — Enter case [Sentence/Lower/Upper/Title/tOggle] <Upper>: for the selected textTCASEImplemented (#77)
SOLID — Specify first point:, second, third, Specify fourth point or <exit>:; the third and fourth points are across from the first two (four in a Z make a bow tie, as AutoCAD), and go on as the first two of the next; Enter after three makes a triangleSOImplemented (#45; each a solid hatch)
BOUNDARY — Pick internal point: until Enter: closed polylines round the area HATCH’s pick point would fill, and round its islandsBO / -BOUNDARYImplemented (#45; curved edges come out as short straight segments; no dialog or Region type)
MLINE — Current settings: Justification = Top, Scale = 20.00, Style = STANDARD, Specify start point or [Justification/Scale/STyle]:, Specify next point:, [Undo], [Close/Undo], Enter; the multiline is drawn at the cursor as it will be. Justification [Top/Zero/Bottom], Scale (the style’s offsets times it; negative turns it round), STyle (? lists them) set CMLJUST, CMLSCALE and CMLSTYLE. One object: grips on its vertices, MOVE / COPY / ROTATE / SCALE / MIRROR / STRETCH, LIST, EXPLODE into lines and arcs; each element in its colour and linetype (ByLayer, or ByBlock: the multiline’s own). Kept in .musa and DXF (MLINE, MLINESTYLE)ML / MLINEImplemented (#45; not inside blocks yet)
MLSTYLE — the Multiline Style window: the styles, Set Current, New (from the style picked), Modify, Rename, Delete; a style’s description, its caps at each end (a line, the outer arc, the inner arcs, the angle), the fill colour, Display joints, and its elements (offset, colour, linetype; Add, Delete)MLSTYLEImplemented (#45)
MLEDIT — the Multilines Edit Tools (Closed / Open / Merged Cross, Closed / Open / Merged Tee, Corner Joint, Add Vertex, Delete Vertex, Cut Single, Cut All, Weld All), then Select first mline: and Select second mline:, or Select mline: (and Select second point: for the cuts and the weld), again until Enter, [Undo] taking the last one back. -MLEDIT asks Enter mline editing option [CC/OC/MC/CT/OT/MT/CJ/AV/DV/CS/CA/WA]:. The crosses and tees open the lines where the multilines meet; a tee’s first multiline runs to the second’s near line; Corner Joint makes one multiline round the corner when the two are drawn alikeMLEDIT / -MLEDITImplemented (#45)
CENTERMARK — Select circle or arc to add centermark: until Enter: a cross at the centre and centre lines past the circle in the Center linetype. CENTERLINE — Select first line:, Select second line:: the centre line from the midpoint of their starts to the midpoint of their ends, 3.5 past each, in the Center linetypeCM / CLImplemented (#45; plain lines, not associative)
WIPEOUT (points, or [Polyline] from a closed polyline with optional erase; [Frames] ON/OFF/Display but not plot = WIPEOUTFRAME 1/0/2, saved with the drawing). Masks what is under it in the draw order — line work, hatches and text alike — and nothing over it (TEXTMASK puts its mask just under the text). An object of its own: Wipeout in the Properties palette, LIST and Quick Select (and not a hatch to HATCHEDIT, Select Similar or Match Properties); EXPLODE leaves the lines of its frame. DXF: AutoCAD’s WIPEOUT both ways, with WIPEOUTFRAMEWIPEOUTImplemented
FIELD (Date, Time, Filename, Login) as %<Date>%-style codes in any text, expanded at layout and refreshed on every regenFIELDImplemented
CommandAliasStatus
ERASE (Select objects: with every keyword; a pre-selection erased at once; OOPS restores the set)EImplemented (#53)
UNDOUImplemented
REDO— (Ctrl+Y)Implemented; MREDO — Enter number of actions or [All/Last]:
REVERSE — Select objects:; lines, polylines (their arcs and widths with them) and splines run the other wayREVERSEImplemented (#55)
OVERKILL — Select objects:, then Current settings: Tolerance=1e-06, Combine partial overlap=Yes, Combine end to end=No and Enter an option to change [Done/tOlerance/combine parTial overlap/combine Endtoend] <done>:: duplicates (points, lines either way round, circles, arcs, polylines, single-line text of the same properties, within the tolerance) are deleted, and collinear lines that overlap — with Endtoend, that meet too — become one line. One undo step; the settings are kept for the session-OVERKILLImplemented (#55; no dialog, Ignore property or polyline optimising yet)
COPYTOLAYER — Select objects to copy:, Select object on destination layer or [Name] <Name>: (a layer named that does not exist is made), Specify base point or [Displacement/eXit] <eXit>: and the second point: the copies, on that layer, movedCOPYTOLAYERImplemented (#55)
CHPROP — Select objects:, then Enter property to change [Color/LAyer/LType/ltScale/LWeight]: as often as you like (a colour by number, name, BYLAYER or Truecolor Red, Green, Blue:; Continuous, Dashed, Center or Hidden; a lineweight in mm); Enter makes the changes, one undo stepCHPROPImplemented (#55; Thickness, Transparency, Material and Plotstyle are not modelled)
BLEND — Current setting: Continuity = Tangent, Select first object or [CONtinuity]:, Select second object:: a spline from the end of each object nearer the pick, leaving along the object’s own direction — Tangent a cubic, Smooth a quintic straight where it leaves; lines, arcs, open polylines, splines and elliptical arcsBLENDImplemented (#55)
MOVEMImplemented — Specify base point or [Displacement] <Displacement>:, Specify second point or <use first point as displacement>:; the last displacement is the next default
COPYCO / CPImplemented — Current settings: Copy mode = Multiple, [Displacement/mOde], Specify second point or [Array] <use first point as displacement>: then [Array/Exit/Undo] <Exit>:; Array (Enter number of items to array:, [Fit]), Undo takes the last copy back, every copy its own undo step; mOde Single / Multiple kept for the session
MIRROR (mirrored text stays readable, MIRRTEXT 0; MIRRTEXT 1 reflects it)MIImplemented
OFFSET (line/circle/arc)OImplemented — Current settings: Erase source=No Layer=Source OFFSETGAPTYPE=0, Specify offset distance or [Through/Erase/Layer] <last>: (a value, two points, or Through), Select object to offset or [Exit/Undo] <Exit>:, Specify point on side to offset or [Exit/Multiple/Undo] <Exit>:; Multiple steps out from the offset just made, Undo takes one back, every offset its own undo step; Erase removes the source, Layer Current / Source; the settings are kept for the session. The offset takes the source’s layer, colour, linetype, lineweight and linetype scale (the current layer with Layer = Current), and is shown under the cursor at the side prompt
OFFSET (construction line, ray) — a parallel one of the same kindOImplemented
OFFSET (ellipse, elliptical arc, spline) — a spline a constant distance from the source, as AutoCAD makes it; a distance past the curve’s tightest radius on the inside is refused (“the offset would cross itself”)OImplemented
OFFSETGAPTYPE 0 / 1 / 2 (extend / fillet / chamfer the gaps at a polyline’s outside corners)OFFSETGAPTYPEImplemented
OFFSET (polyline, incl. closed rectangles + bulged/filleted corners) — each segment offset (lines parallel, arcs concentric with the bulge preserved) and corners re-mitered as the intersection of adjacent offset curves (line/line, line/arc, arc/arc via the shared line_line / line_circle / circle_circle primitives), so edges stay at distance d with clean corners (no trapezoid). Over-large offsets that would fold the shape fail gracefully (“Offset distance too large for this polyline.”) leaving the geometry unchangedOImplemented
ROTATEROImplemented — Specify rotation angle or [Copy/Reference] <0>:; the selection turns with the cursor (an engine-side band: every kind, at the current zoom) with the live angle shown at the cursor; Reference by a value or two points, then Specify the new angle or [Points] <0>:
SCALESCImplemented — Specify scale factor or [Copy/Reference]:; dragging scales by the cursor’s distance from the base point in drawing units (AutoCAD’s rule: one unit away is a factor of 1), previewed by the engine with the live factor at the cursor; Reference by a value or two points, then Specify new length or [Points] <1.0000>:
ARRAY (asks the type: Rectangular / PAth / POlar)AR, -ARRAYImplemented
ARRAYRECT (rows, columns, spacings, angle of axes)ARRAYRECTImplemented
ARRAYPOLAR (centre, count, fill angle, rotate items)ARRAYPOLARImplemented
ARRAYPATH (Divide / Measure, align to path)ARRAYPATHImplemented
ARRAYEDIT / ARRAYCLOSE-Not applicable (arrays are non-associative — see below)
POLYGON (centre: Inscribed/Circumscribed; Edge)POLImplemented
RECTANGLE [Chamfer] / [Fillet] corner options (session defaults, last set wins)RECImplemented
RECTANGLE [Width] / [Elevation] / [Thickness]RECImplemented
REVCLOUD (Arc length, Object + Reverse direction, Rectangular, Polygonal, Freehand by a drag or a clicked path) — Minimum arc length: ... Style: Normal Type: Freehand; the type is remembered and the prompt follows it (Specify first corner point / Specify start point / Specify first point or [Arc length/Object/Rectangular/Polygonal/Freehand/Style/Modify] <Object>:); Style Calligraphy draws each lobe from nothing to a fifth of its chord wide; with Freehand, a press and drag from the start point draws the cloud along the cursor, closed when the drag ends back near its start and open otherwise; Modify redraws a stretch of a cloud or polyline (Select polyline: — the vertex nearest the pick starts the section replaced — Specify next point or [Undo]: until Enter, which brings it back at the vertex nearest the last point, Pick a side to erase: on a closed one, Reverse direction [Yes/No] <No>: turning every arc the other way)REVCLOUDImplemented (#40)
EXPLODE (polyline -> lines/arcs; block one level; dimension/leader -> lines, solids, text; hatch -> lines or boundary; MTEXT -> TEXT per line; table -> lines + text)XImplemented
PURGE (unused layers)PUImplemented
PURGE (every table: layers, dimstyles, text styles, blocks, fonts, table styles, images; the dialog with Confirm each item; -PURGE with names, wild cards and Verify; zero-length geometry and empty text objects)PU / -PURGEImplemented (#30, #53)
ALIGN (one pair moves; two pairs align with the scale question; Specify third source point or <continue>:; rubber lines from each source point)ALImplemented
LENGTHEN — Select an object to measure or [DElta/Percent/Total/DYnamic] <Total>: (a pick reports Current length: ..., and an arc’s included angle); DElta / Total take a length or Angle (an arc’s), Percent a percentage, DYnamic Specify new end point:; then Select an object to change or [Undo]: one object after another, the end nearer the pick moving. Lines, arcs, open polylines (the end segment takes the change, straight or round its arc) and elliptical arcs; the mode and amounts are kept for the sessionLENImplemented (splines not yet)
BREAK (line, arc, circle, open + closed polyline, ellipse and elliptical arc, spline)BRImplemented (#52: an ellipse loses the part counter-clockwise from the first point; a spline’s pieces keep its shape; a closed spline opens)
BREAKATPOINT (split, no gap)BREAKATPOINTImplemented
ELLIPSE (axis-end / Center / Rotation / Arc by angle, parameter, included)ELImplemented; the Rotation step previews the ellipse turned by the cursor’s angle. PELLIPSE 1 makes it a closed polyline of 32 arcs (an elliptical arc an open one), tangent to the ellipse at 16 points
SPLINE (Fit with Knots; CV with Degree; Undo; Close; start and end Tangency; toLerance; Object)SPLImplemented (#39; a spline from an AutoCAD drawing keeps its own knots; a spline by fit points keeps them — its grips are on them and dragging one fits it again — in the drawing and in DXF, an AutoCAD spline’s fit points too)
XLINE (Hor / Ver / Ang / Bisect / two-point)XLImplemented (Offset deferred)
DONUTDOImplemented (a closed two-arc wide polyline, as AutoCAD makes it; FILLMODE decides the fill)
FILL / FILLMODE / PLINEWID—Implemented
VIEW Save/Restore/Delete/?/WindowVImplemented (Orthographic/Ucs are 3D-only)
GROUP / UNGROUP / PICKSTYLE 0..3 / -GROUP (?, Order, Add, Remove, Explode, REName, Selectable, Create) / GROUPEDIT / Ctrl+HGImplemented (#53; group membership persists in .musa; not on the undo stack; PICKSTYLE’s hatch bit waits for associative hatches, #41)
UNITS (the Drawing Units dialog; -UNITS with AutoCAD’s numbered tables; INSUNITS; degrees/DMS/grads/radians/surveyor) — lengths are typed as decimals, fractions (12 3/8, 3/8) or feet and inches (1'-6", 1'6, 6", 1'-6 1/2"; a foot is twelve drawing units) at every length and point prompt; DXF carries $INSUNITS, $LUNITS, $LUPREC, $AUNITS, $AUPREC, $ANGDIR, $ANGBASE and $MEASUREMENT both waysUN / -UNITSImplemented (#67, #81; dimension text keeps the dimstyle precision, as DIMLUNIT does; blocks and pastes are not yet scaled by the units)
-DWGUNITS — Unit for length <3>: (Inches, Feet, Millimeters, Centimeters, Decimeters, Meters), the display format and precision, then Scale objects in current drawing to reflect change in units? [Yes/No] <Yes>:: every model-space object and the limits scaled to the new unit, one undo step-DWGUNITSImplemented (#81)
LTSCALE shows the current value and says Regenerating model.; CELTSCALE, PSLTSCALE (viewport dashes follow the viewport scale), MSLTSCALE (recorded)LTSImplemented (#67)
STYLE (text-style table; width factor and oblique applied to TEXT; DXF STYLE table both ways) — STYLE opens the Text Style window (the styles, font, height, width factor, oblique angle, Upside down and Backwards; Set Current, New, Apply); -STYLE asks at the command lineST / -STImplemented (vertical deferred; MTEXT keeps fonts directly)
BLOCK / INSERT / WBLOCK (lines, circles, arcs, polylines, text, mtext, nested inserts)B / I / WImplemented
Block attributes: ATTDEF entities become attributes on BLOCK; INSERT prompts for each value (Constant/Preset skipped); ATTDISP; ATTEDIT; EXPLODE gives the definitions back; native v28 and DXF ATTDEF / INSERT+ATTRIB+SEQEND both waysATT / ATTDISP / ATTEDITImplemented (multi-line attributes are not)
Attribute dialogs: EATTEDIT (a reference’s values, also on double-click) and BATTMAN (a definition’s attributes, synced to its references by tag); the Insert tab’s Block and Block Definition panelsEATTEDIT / BATTMANImplemented
REFEDIT / REFSET / REFCLOSE: in-place block editing through a working set, mapped back into the definition’s frame on save (needs a positive, uniform scale); Discard restores the reference; undo takes back the save as one stepREFEDITImplemented (no fading of the rest of the drawing during the edit)
Layouts / paper space: a layout table with page setups, per-entity space (model or a layout), only the active space drawn / picked / edited, the sheet drawn under a layout, layout tabs (click, right-click New/Rename/Delete), PLOT of a layout = its sheet at 1:1, native v30, DXF paper-space flag (67) both waysLAYOUT / MODEL / PSPACEImplemented
Viewports (MVIEW): a paper-space entity showing model space at a scale, derived at snapshot time (model geometry mapped into the sheet and clipped to the frame; text, hatches, wipeouts and whole images included), plotted with the sheet, grips, native v31 and DXF VIEWPORT both waysMVIEWImplemented (per-viewport layer freezing: VPLAYER, below)
Tiled model-space viewports (VPORTS): the window split into tiles each with its own camera, the active one outlined, tile-local picking and dynamic input, the wheel on any tile, Join, named configurations, native v35 and the DXF VPORT table (*Active entries) both waysVPORTSImplemented
Per-viewport layer freezing: a viewport’s own frozen-layer list applied when the model is built for it (and while editing through it with MSPACE), the Layer Properties Manager’s VP Freeze / New VP Freeze columns, native v34, DXF VIEWPORT 331 + LAYER flag 2VPLAYERImplemented
MSPACE / PSPACE through a viewport: double-click in / out, the camera hand-off keeps the viewport’s on-screen size, the view left on PSPACE becomes the viewport’s viewMSPACEImplemented (the sheet is not shown around the model while inside; a tab switch drops the edit without a write-back)
PEDIT (Close/Open/Join/Width/Edit vertex/Fit/Spline/Decurve/Reverse/Undo) — a line or arc picked asks Object selected is not a polyline / Do you want to turn it into one? <Y>; Fit puts two arcs on each segment, through every vertex and smooth at each, leaving a vertex along its Tangent when one is set; Spline draws the quadratic or cubic B-spline (SPLINETYPE 5 or 6) the vertices are the frame of, in SPLINESEGS pieces a segment; a fitted polyline keeps the vertices placed — its grips, the vertex editor, Close, Open, Reverse and the vertex Insert, Move and Delete work on them and it is fitted again — and Decurve goes back to them; Multiple (Select objects:) applies Close, Open, Width, Fit, Spline, Decurve and Reverse to every polyline selected, lines and arcs made polylines without asking, and its Join asks Enter fuzz distance <0.0000>:; Edit vertex — Enter a vertex editing option [Next/Previous/Break/Insert/Move/Regen/Straighten/Tangent/Width/eXit] <N>: with an X on the current vertex: Next and Previous walk it, Insert puts a vertex after it, Move moves it, Width sets the next segment’s, Break and Straighten mark it and [Next/Previous/Go/eXit] go to a second vertex — Go breaks the polyline between the two or makes their run one straight segmentPEImplemented (#52; the frame and the tangents are kept in the drawing and in DXF, a fitted polyline there a POLYLINE with its frame vertices; SPLINE Object makes a spline-fit polyline the same curve as a SPLINE, its frame the control points). Ltype gen — Enter polyline linetype generation option [ON/OFF] <Off>:: off, the dash pattern starts again at each vertex; on (a new polyline here), it runs on across them; DXF 70 bit 128
Object snaps: Insertion, Apparent intersection, Parallel, Extension, Geometric Center; OSNAP settings dialog; -OSNAP; OSMODEOSImplemented (the running snaps start as AutoCAD’s default set)
One-time object snaps typed at a point prompt (END MID CEN GCEN NOD QUA INT EXT INS PER TAN NEA APP PAR NON), FROM, M2P / MTP, TT, TK; the Shift + right-click object snap menutyped mid-commandImplemented (#66)
ROTATE/SCALE [Copy]/[Reference]; Rotate/Scale value dialogs with live ghostRO / SCImplemented
Properties palette: feature control frame cells and datum letter editablePRImplemented
Properties palette: editable Start/End/Center X-Y, Radius, Position X-YPRImplemented
DXF TOLERANCE: feature control frames both ways (cells joined by %%v, GD&T symbols as {\Fgdt;x}); datum symbols written as one-cell framesDXFOUT/DXFINImplemented (a datum’s leader triangle has no DXF form)
AUDITAUDITImplemented
PURGE by type and by name (blocks, dimstyles, table styles, image defs, groups, layers, text styles)PUImplemented
RAY (start + through points)RAYImplemented
POINTPOImplemented
DIVIDE (n equal segments) — Enter the number of segments or [Block]:; Block (Enter name of block to insert:, Align block with object? [Yes/No] <Y>:) puts block references at the marks, turned to the curve when alignedDIVImplemented
MEASURE (fixed interval) — Specify length of segment or [Block]:, from the end nearer the pick (a closed curve from its start); Block as DIVIDEMEImplemented
TRIM a line (cut by line/circle/arc edges)TRImplemented
TRIM an arc/circle entityTRImplemented (a trimmed circle becomes an arc)
TRIM a polyline entity (open or closed, arc segments cut exactly)TRImplemented
EXTEND a line (to line/circle/arc boundary)EXImplemented
EXTEND an arc entityEXImplemented
EXTEND an open polyline entity (straight end segment; polylines also act as boundaries)EXImplemented (an arc end segment is refused)
TRIM / EXTEND Quick mode (TRIMEXTENDMODE 1): every object is a cutting edge or boundary; Current settings: Projection=UCS, Edge=None, Mode=Quick, Select object to trim or shift-select to extend or [cuTting edges/Crossing/mOde/Project/eRase]: (EXTEND: [Boundary edges/Crossing/mOde/Project])TR / EXImplemented — press on empty space and drag: the freehand path trims (or extends) everything it crosses, where it crosses, as one undo step; two clicks on empty space draw a straight fence; Fence takes typed points until Enter; an object with nothing to trim it to is deleted, as in AutoCAD; Shift swaps trim and extend for that pick or path; Undo takes the last one back
TRIM / EXTEND Standard mode (mOde, TRIMEXTENDMODE 0): Select cutting edges ... / Select boundary edges ..., Select objects or <select all>:, then [cuTting edges/Fence/Crossing/mOde/Project/Edge/eRase/Undo]TR / EXImplemented — Enter takes every object; objects selected beforehand are the edges; nothing is deleted; two clicks on empty space draw a crossing window; Edge [Extend/No extend] (EDGEMODE) lets a chosen line edge cut along its whole infinite line and an arc edge round its circle; a trimmed edge stays an edge in its pieces
TRIM / EXTEND on more kindsTR / EXImplemented — ellipses and elliptical arcs (a whole ellipse trims to an elliptical arc; an arc extends round its ellipse); construction lines and rays (trimmed to rays, or a ray to a line and a ray; as cutting edges and boundaries everywhere, the path and window included); a polyline’s arc end extends round its circle. Hovering an object at the prompt draws the part a pick would trim away (Quick mode: the whole object when nothing cuts it) or the extension it would add; Shift shows the other. Splines are not trimmed or extended yet
TRIM / EXTEND / LENGTHEN on splines: trimmed at the edges that cross it, each piece the same curve over its part (a closed spline needs two crossings and opens); extended and lengthened straight on along the direction its end leaves by, as AutoCAD extends a spline; shortened along the curveTR / EX / LENImplemented (#48)
TRIM / EXTEND optionsTR / EXCrossing: Specify first corner: / Specify opposite corner: — each object crossing the window is taken once, where the window’s edge first meets it walking clockwise from the first corner, and what lies wholly inside is taken at its middle; eRase (TRIM): Select objects to erase or <exit>:, its own undo step; Project [None/Ucs/View] (PROJMODE; a 2D drawing is the same in all three); TRIMEXTENDMODE, EDGEMODE and PROJMODE typed as commands
FILLET (line/line; radius 0 or tangent arc)FImplemented — Current settings: Mode = TRIM, Radius = …, Select first object or [Undo/Polyline/Radius/Trim/Multiple]:, Select second object or shift-select to apply corner or [Radius]:; the radius and Trim mode are remembered; Multiple repeats with one undo step per corner, Undo takes the last one back, No trim adds only the arc, Polyline rounds every corner, Shift at the second pick makes a sharp corner; the trimmed objects keep their layer, colour and linetype
FILLET parallel lines, construction lines, polylines with linesFImplemented — a line and an open polyline’s straight end segment, or two polylines’ end segments, are joined at their corner into one polyline with the corner rounded (No trim: only the arc is added); two parallel lines are joined by a half circle as wide as the gap at the end of the first line nearer its pick, the second trimmed or extended to meet it (the radius does not apply); a construction line or ray fillets with a line as the line it runs along, and what stays of it is a ray. At the second-object prompt of FILLET and CHAMFER the hovered object shows what a pick would make — both objects as they would be and the arc or bevel (Shift: the sharp corner)
FILLET (polyline corner → a true arc segment / bulge, dimensionable)FImplemented (incl. RECTANGLE corners — a rectangle IS a closed polyline; verified end-to-end through the full F-command path, including the closing-edge wrap corner)
Polyline arc segments (per-vertex bulge, AutoCAD LWPOLYLINE)—Implemented
FILLET line/arc, line/circle, arc/arc, arc/circle, circle/circle (radius > 0; nearest to the picks)FImplemented
FILLET with an ellipse or a spline (and a line, arc, circle, ellipse or spline): the arc tangent to both, each cut back to it on the side picked; a whole ellipse, like a circle, is left wholeFImplemented (#49)
CHAMFER (line/line; Distance or Angle method)CHAImplemented — (TRIM mode) Current chamfer Dist1 = …, Dist2 = …, Select first line or [Undo/Polyline/Distance/Angle/Trim/mEthod/Multiple]:, Select second line or shift-select to apply corner or [Distance/Angle/Method]:; distances, length and angle, method and Trim mode remembered; Multiple, Undo, No trim, Polyline (every corner), Shift for a clean corner; the trimmed lines keep their properties
CHAMFER (polyline corner)CHAImplemented
JOIN — Select source object or multiple objects to join at once: then Select objects to join: (picks and windows), or objects selected beforehand. Lines along one line become ONE line (gaps and all), arcs on one circle one arc (counter-clockwise from the source; round the whole circle, a circle), elliptical arcs on one ellipse one elliptical arc; for an arc or elliptical arc source, cLose makes it whole; splines of one degree whose ends meet become one spline. Mixed lines/arcs/open polylines merge every chain of ends that meet exactly into ONE polyline each (arcs become bulged segments), inheriting the source’s layer/properties; a chain whose ends meet becomes a closed polyline. One undo groupJImplemented (#52)
ARRAY dialog (parametric grid / polar / path with a live preview)ARImplemented (Ph11 ParameterDialog)
STRETCH — AutoCAD’s flow, prompt for prompt: Select objects: (pick, window or crossing drags accumulate with “N found”; Enter or right-click ends it; a pre-selected set skips it) → Specify base point or [Displacement] <Displacement>: → Specify second point or <use first point as displacement>:, with the selection stretched live under the cursor (ortho-aware). AutoCAD’s rule decides what moves: an object crossed by a crossing window has only the vertices inside it moved; one fully enclosed, or selected by a pick or an ordinary window, moves whole; a line that merely passes through the window is left alone. An arc endpoint moves with the arc’s height above its chord preserved; circles and single-point kinds (text, insert, image, table, GD&T) move if their centre/anchor is caught and are never deformed; a dimension whose def points move re-measures. One undo group; reports what it did or why nothing movedSImplemented (issue #24)
DIST (DI) — distance, angle and delta X/Y between two points. Answered from the picked points alone, so it never reaches the storeDIImplemented (issue #30)
ID — the coordinates of a pointIDImplemented (issue #30)
AREA (AA) — area and perimeter of a closed object (exact for circles, shoelace over the SAME tessellation the renderer draws for everything else). An OPEN object reports its length and says it has no area, rather than the area of the polygon you would get by closing itAAImplemented (issue #30)
LIST (LI) — an object’s type, layer and defining parameters. A dimension reports its MEASURED value, which by construction cannot have been authoredLIImplemented (issue #30)
EXPLODEXImplemented (#25) — a block reference one level, a polyline into segments
JOINJImplemented (see the row above)

The ARRAY family, and why ARRAYEDIT is absent

Section titled “The ARRAY family, and why ARRAYEDIT is absent”

AutoCAD ships seven array commands. Four of them create an array and are implemented here in full: ARRAY/-ARRAY (which ask for the type), ARRAYRECT, ARRAYPOLAR and ARRAYPATH. As in AutoCAD, PA selects Path and PO selects Polar; a bare P is ambiguous and is refused rather than guessed at.

ARRAY keeps AutoCAD’s legacy four rectangular prompts (rows, columns, row spacing, column spacing) unchanged. The axis angle is offered by the modern ARRAYRECT, which matches where AutoCAD puts it and leaves existing muscle memory alone. The angle rotates the row/column axes, not the items: a rotated rectangular array is a skewed lattice of upright copies.

ARRAYPATH supports both of AutoCAD’s distribution methods:

  • Divide — spread N items over the whole path. On an open path the first and last items sit on the endpoints; on a closed path the items divide by N rather than N-1, so nothing is doubled at the seam.
  • Measure — place an item every given distance, optionally capped by an item count. Stations never run past the end of the path.

Aligned items turn to follow the path tangent, measured relative to the tangent at the first station, so item 1 keeps the orientation you drew and the rest follow the curve. The path curve is left in the drawing and may not itself be part of the selection.

The remaining two, ARRAYEDIT and ARRAYCLOSE, edit an associative array — a parametric entity that remembers its source objects and parameters so the pattern can be re-driven later. Musa CAD’s arrays are non-associative: they produce ordinary independent copies, exactly as AutoCAD’s own -ARRAY does. There is therefore no association for ARRAYEDIT to reopen and no array-editing state for ARRAYCLOSE to leave. Adding them means adding associative arrays first, which is a data-model change (a new parametric entity kind), not a command.

CommandAliasStatus
TEXT (single-line)DT / TEXTImplemented — Current text style: "Standard" Text height: 2.5000 Annotative: No Justify: Left; Specify start point of text or [Justify/Style]: (a justification may be typed there too); Justify [Left/Center/Right/Align/Middle/Fit/TL/TC/TR/ML/MC/MR/BL/BC/BR], each asking for its own point, Align and Fit for the two ends of the baseline (Align scales the height to reach, Fit keeps it and squeezes the width); Style by name (? lists); Specify height <last>: and Specify rotation angle of text <last>: take a value or a point and are remembered, with the justification; then the text line after line, each Enter starting the next line under the last (its own undo step), an empty line ending the command. The line shows on the canvas where it will stand while it is typed (spaces and capitals as typed)
Text justification—The text entity keeps AutoCAD’s fifteen justifications, the second point of Aligned / Fit and a width factor of its own; drawing, bounds, picking, grips (both ends of an aligned text) and the edit box share one layout. Saved in .musa (format 38) and DXF (72 / 73, 11 / 21, 41); a text justified on its second point in a DXF from elsewhere is read where it stands
JUSTIFYTEXT / SCALETEXT / TXT2MTXT / TEXTEDITMODE—Implemented
MTEXT (paragraph text; two-corner box → wraps within the width) — Specify opposite corner or [Height/Justify/Line spacing/Rotation/Style/Width/Columns]:: the height (the current text style’s by default), the justification the text hangs from in the box, line spacing as a factor (1.5x) or a distance, rotation, a text style, or a width in place of the cornerMT / MTEXT / TImplemented (multi-line + paragraph fields; inline per-char formatting Planned)
MTEXT fields: defined width, height, width factor, line spacing, attachment (TL..BR), rotation, ByLayer/override colour—Implemented (discrete, queryable — Properties palette ready)
MTEXT grips: insertion (move) + width (re-wraps live)—Implemented
QLEADER (arrow → leader vertices → attached MTEXT label)LE / QLEADER / QLImplemented (label is owned → moves with the leader)
QLEADER grips: arrow tip + each vertex + text position—Implemented
Double-click a TEXT / MTEXT / QLEADER label → edit its content (dark modal editor, pre-filled)(double-click)Implemented (Ph21)
TEXTEDIT / DDEDIT (Select an annotation object or [Undo/Mode]: → type new content; repeats until Enter, each edit its own undo step; Mode Single / Multiple)ED / TEXTEDIT / DDEDITImplemented
Text edit = one undo group, preserves layer/properties/position (not delete+recreate)—Implemented (Ph21)
AutoCAD control codes in TEXT & MTEXT — %%d→°, %%p→±, %%c→⌀, %%b→⌴ counterbore, %%h→↧ depth, %%v→⌵ countersink, %%%→literal %, %%nnn→char by code, %%o/%%u→overline/underline toggles, \U+XXXX→any Unicode code point (universal, not MTEXT-only). Codes are stored raw and expanded at render time (editing shows the raw codes; save/load + DXF round-trip them). Shared with the Leader/MLeader labels(type in any text)Implemented
Drafting symbols in the stroke font — hole callouts (⌴ counterbore/spotface, ↧ depth, ⌵ countersink), the 14 GD&T characteristics (straightness, flatness, circularity, cylindricity, profile of a line/surface, angularity, perpendicularity, parallelism, position, concentricity, symmetry, circular/total runout), the 7 material-condition modifiers (Ⓜ Ⓛ Ⓢ Ⓟ Ⓕ Ⓣ Ⓤ), plus □ square, conical taper and slope. Same 6×8 cell and same monospace advance as the letters, so layout/bounds/pick are unchanged; works in TEXT, MTEXT, LEADER and dimension text alike. Hand-authored, not traced from any font%%b/%%h/%%v or \U+XXXXImplemented (issue #9)
Leader / MLeader label properties in PR + MATCHPROP — selecting a Leader or MLeader shows a Text section (Contents, Height, Font; MLeader also Width factor / Line spacing / Attachment); MATCHPROP copies the label font/height across the whole text family (TEXT ↔ MTEXT ↔ Leader ↔ MLeader)PR / MAImplemented
Leader / MLeader arrow properties in PR + MATCHPROP — a Leader section with Arrowhead (type) + Arrow size, each ByStyle or a per-leader override (override-first-else-dimstyle, like dimension overrides); native round-trip; MATCHPROP copies the arrow leader↔leaderPR / MAImplemented
Leader / MLeader label Text color — a per-leader override so the label colours independently of the leader line + arrow (General colour); ByStyle = the entity colour; native round-trip; MATCHPROP leader↔leaderPR ▸ Text colorImplemented
Properties palette (PR): dockable, context-sensitive panel for the selectionPR / PROPERTIES / PROPS / CHImplemented (Ph22)
PR multiplicity: nothing / one / many-same / many-mixed, with *VARIES* where values differ; edits set all—Implemented (Ph22)
PR universal props: Layer / Color / Linetype / Lineweight (ByLayer or override) editable single + multi + mixed—Implemented (Ph22)
PR Geometry group (editable since issue #32): line length/ends, circle/arc center+radius, text position—Implemented (#32)
PR full Text / MTEXT group: contents, height, rotation, justify, width factor, line spacing, defined width, attachment, font—Implemented (Ph22; font dropdown real in Ph29)
Font dropdown (Standard stroke font + system TrueType/OpenType faces); switching re-renders the selected text as one undo group (varies/set-all)PR FontImplemented (Ph29)
Imported text fonts: TTF-by-name resolves to the installed face (filled glyphs); single-stroke SHX fonts (romans/simplex/isocp/txt…) render with the built-in single-stroke font (faithful match); missing → stroke fallback (true SHX binary parsing staged)—Implemented (Ph29)
PR deep Dimension group: per-dimension overrides — arrowhead type/size, dim-line & ext-line color, text height/color/placement, precision (each ByStyle or Overridden, with reset-to-style)—Implemented (Ph24)
PR Dimension text decoration — text prefix / suffix (raw, so %%c and 6X work) and a tolerance mode (none / symmetric / limits / basic / reference) with upper & lower deviations. The measured VALUE stays computed from the def points and is never authorable; only the decoration around it is. Not MATCHPROP-matchable by design — a fit class is semantics about THIS feature, not presentation—Implemented (issue #7)
PR Dimension Text override — AutoCAD’s <> field: <> expands to the measurement so the override tracks the geometry (<> H7, 2x<>); an override without <> replaces the value, shown explicitly rather than silently. Supersedes prefix/suffix and the deviation-deriving tolerance modes; Basic/Reference still frame it. Feeds the ISO 129-1 fit like any other label—Implemented (issue #20)
ISO 129-1 narrow-dimension fit — when the value and/or the arrowheads do not fit between the extension lines, the value is placed outside past the extension line and the arrowheads flip to point inward from beyond it. Text and arrows are tested independently (so arrows can stay inside while the value moves out). The test measures the fully decorated, code-substituted label (widest line when Limits stacks two). PR row Text fit = ByStyle / Auto / Always inside / Always outside; MATCHPROP-matchable (placement is presentation). Default Auto at both style and override level, so existing drawings simply stop colliding. Linear/Aligned; radial forms deferredPR ▸ Dimension ▸ Text fitImplemented (issue #12)
TOLERANCE / TOL — a GD&T feature control frame: an ordered cell list (characteristic, tolerance value, up to three datum references), drawing its own borders and dividers with uniform cell height derived from the DIMSTYLE text height (ASME Y14.5 proportions). The Geometric Tolerance window has two rows, the second making a composite frame. Cells are ordinary text, so \\U+2316 and %%c reach the stroke font’s GD&T glyphs. Selectable as a unit (click anywhere inside), grip-movable, PR-editable (text height / colours), MATCHPROP-matchable with dimensions, native round-trip. DXF: not written — stated gapTOLImplemented (issue #8)
DATUM / DIMDATUM — a datum feature symbol: boxed datum letter + leader + filled triangle at the feature. Shares DIMSTYLE/overrides with dimensions; the leader attaches to whichever box edge faces the feature. Grips on both the box and the tipDATUMImplemented (issue #8)
TABLE (TB) opens the Insert Table window: the table style, the columns and their width, the data rows and their height in lines, and whether the first row is a Title and the next a Header; then Specify insertion point:. -TABLE asks it all on the command line (below)TB / TABLEImplemented (#44; Auto, from a data link and the window’s preview not yet)
TABLEEDIT — Pick a table cell:: the cell’s text editor, as a double-click opens it (Enter new text: on the command line)TABLEEDITImplemented (#44)
TABLESTYLE — the Table Style window: the drawing’s table styles with the current one named; Set Current, New… (a name, starting from the selected style), Modify… (the title, header and data text heights, the cell margin and the lineweight; every table in that style is laid out again) and Delete (not Standard, the current style or one a table uses). Without the window, Enter table style name to make current or [?] <Standard>:. The current style is kept with the drawing; Annotate > Tables has the Table Style comboTSImplemented (#44; colours are set in the drawing only, not yet in the window)
-TABLE — Enter number of columns or [Auto] <5>:, Enter number of data rows or [Auto] <1>:, Specify insertion point or [Style/Width/Height]: (column width, row height in lines), with a title and a header row above the data rows; a real table entity: rows x columns with stored column widths and row heights, cell text (with the usual %%/\\U+ codes), per-cell alignment and merged cells. Borders, grid and text placement are derived from a TABLESTYLE (title / header / data text heights, margin, lineweight, colours), so a style edit re-lays out every table. Selectable as a unit (a click in any cell), grips move it and resize columns, native round-trip. DXF ACAD_TABLE: not written — stated gap; cell editing and row/column insert are stagedTBImplemented (issue #22)
Raster IMAGE entity — an image-definition table (parallel to layers/dimstyles/blocks, deduped) plus placements carrying insertion point, size, rotation and an optional clip rectangle. Payload is an external path relative to the drawing or base64 embedded in the .musa. Selectable (point-in-quad, clip respected), scaled by its corner grips, bounds-correct, native round-trip, and plots (rasterised at output resolution, drawn under the vector geometry). Decoding goes through the core IImageDecoder seam so core stays Qt-free— (no command yet)Implemented: entity, native + plot, viewport display (textures decoded on the render thread and cached per definition), IMAGEATTACH / IMAGECLIP (rectangular and polygonal) / IMAGEFRAME, 8 MB embed limit, DXF IMAGE / IMAGEDEF both ways (embedded images are written beside the DXF)
Per-dimension overrides: resolve override-first-else-style (the Ph12 pattern) in compute_dim_geometry; one undo group; native round-trip; DXF override-vs-style distinction is native-only (stated gap)—Implemented (Ph24)
PR numeric geometry editing — the Geometry group’s Start/End, Center/Radius and Position fields edit the entity—Implemented (issue #32)
LEADER — Specify leader start point:, Specify next point or [Annotation/Format/Undo] <Annotation>: until Enter, Enter first line of annotation text or <options>: and the next lines (options [Tolerance/Copy/Block/None/Mtext]); two points make a leader with its text, more a multileaderLEADERImplemented (#61; spline leaders, Tolerance, Copy and Block annotations not yet)
DIM — Select objects or specify first extension line origin or [Angular/Baseline/Continue/Ordinate/aliGn/Distribute/Layer/Undo]:, one dimension after another until Enter; the dimension a hovered object would get is previewed at the cursor. A line picked is dimensioned aligned (Specify dimension line location or second line for angle [Mtext/Text/Angle]: — another line picked makes the angle between them), a circle by its diameter, an arc by its radius, two points linearly, each with its command’s options. Angular, Baseline, Continue, Ordinate run those commands inside DIM; aliGn (Select base dimension:, Select dimensions to align:) puts parallel dimensions on the base’s line, concentric angular ones on its arc and ordinate ones of the same datum level with its leader; Distribute [Equal/Offset] spaces parallel dimensions evenly between the outermost two, or stacks them at a distance from a base; Layer sets DIMLAYER; Undo takes the last dimension backDIMImplemented (#57)
DIMLINEAR — Specify first extension line origin or <select object>: (Enter: Select object to dimension: a line, a polyline segment, an arc’s two ends or a circle’s diameter; O / Object still works), then Specify dimension line location or [Mtext/Text/Angle/Horizontal/Vertical/Rotated]:. Angle (Specify angle of dimension text:, every dimension command) stands the text at its own angle; 0 lays it out as the dimension does; kept in .musa and DXF (53). As in AutoCAD the line’s position decides: above or below the points it measures across, beside them it measures up, so a vertical dimension of a mostly horizontal pair is a drag away; the preview turns as the cursor goes round. Horizontal / Vertical fix it, Rotated takes an angle (Specify angle of dimension line <0>:, a value or two points). Text / Mtext Enter dimension text <measured>: (<> stands for the measurement, Enter keeps it). The angle is the dimension’s own, kept in .musa and DXF (50), so grip edits and DIMCONTINUE / DIMBASELINE follow itDLIImplemented
DIMALIGNED — the same two prompts (<select object>, [Mtext/Text/Angle])DALImplemented (Angle: the text runs along the line)
DIMRADIUS (select a circle/arc, or a filleted polyline arc segment → R)DRAImplemented
DIMDIAMETER (select a circle/arc → ⌀ from its own geometry)DDIImplemented
DIMANGULAR — Select arc, circle, line, or <specify vertex>:: two lines (Select second line:), an arc (its own angle), a circle (the picked point, then Specify second angle endpoint:) or, with Enter, three points (Specify angle vertex:, the two endpoints). Then Specify dimension arc line location or [Mtext/Text/Angle/Quadrant]: — the arc goes where it is clicked and, as in AutoCAD, the angle is the one that point stands in: one of the four two lines make, or for three points and a circle the angle or the rest of the turn (a reflex angle can be dimensioned). Extension lines carry the rays out to the arc. Quadrant chooses the angle with a point of its own, the arc then going anywhere. The arc has a grip for its radius; ROTATE, MIRROR and SCALE keep it. DXF: written as before, without the arc’s radius (read back as the smaller angle)DANImplemented (Angle: the text stands upright)
DIMORDINATE (X/Y datum, leader dogleg)DORImplemented (Mtext/Text/Angle deferred)
DIMJOGGED (centre override + jog)DJOImplemented (exports to DXF as a radius dimension)
DIMARC (arc or polyline arc segment) — Specify arc length dimension location, or [Mtext/Text/Angle/Partial/Leader]:; Partial (Specify first point for arc length dimension: / second point) dimensions the part of the arc between two points; Leader draws a radial leader from the text in to the arc (No leader takes it off)DARImplemented (exports to DXF as an aligned dimension carrying the arc-length text; the leader is native only)
Arrowheads: filled / open / tick / dot (solid filled geometry)DIMSTYLEImplemented
DIMSTYLE — the Dimension Style Manager, laid out as AutoCAD’s: the styles (List: all, or those in use; the current one in bold), a live Preview of the selected style — a sample part with linear, aligned, angular and radius dimensions drawn by the drawing’s own dimension code — and its Description; Set Current, New… (a name, starting from the selected style), Modify…, Rename… and Delete (unused styles only), also on the list’s right-click menu. New / Modify open the style on AutoCAD’s tabs with the preview beside them, following every change: Lines (dimension and extension line colours, lineweight from the standard list, extend beyond, offset from origin), Symbols and Arrows (arrowhead with its picture, size, colour — leaders use them too), Text (height, colour, above or centred), Fit (what moves outside when the text does not fit; where moved text goes: beside the dimension line, over it with a leader, or over it without one — DIMTMOVE), Primary Units (unit format — Scientific, Decimal, Engineering, Architectural, Fractional — with the precision shown as the numbers will read, fraction format, decimal separator, round off, prefix and suffix, measurement scale factor, leading / trailing zero suppression; angles in decimal degrees, degrees minutes seconds, gradians or radians with their own precision), Alternate Units (shown in brackets after the value: unit format, precision, multiplier, round off, prefix and suffix), Tolerances (the method — None, Symmetrical, Deviation with +upper over -lower beside the value, Limits, Basic — its precision and the upper and lower values, for every dimension without a tolerance of its own; DIMTOL, DIMLIM, DIMTP, DIMTM and DIMTDEC in DXF). New dimensions, leaders and GD&T frames are drawn in the current styleD / DST / DDIM / DIMSTYLE, Dimension Style buttonsImplemented
-DIMSTYLE — Enter a dimension style option [Save/Restore/STatus/?] <Restore>:: Restore makes a style current, Save copies the current one under a new name (or redefines one, redefine it? <N>) and makes it current, STatus lists the current style’s values, ? the styles-DIMSTYLEImplemented
Dimension variables — DIMTXT, DIMASZ, DIMBLK (0 filled, 1 tick, 2 open, 3 dot), DIMDEC, DIMDSEP (. or ,), DIMZIN (4 leading, 8 trailing), DIMEXO, DIMEXE, DIMTAD, DIMATFIT (0 auto, 1 inside, 2 outside), DIMTMOVE (0 with the dimension line, 1 with a leader, 2 alone), DIMLWD, DIMCLRD / DIMCLRE / DIMCLRT (ACI, BYLAYER), DIMLUNIT (1 scientific, 2 decimal, 3 engineering, 4 architectural, 5 fractional), DIMFRAC, DIMRND, DIMLFAC, DIMAUNIT (0 degrees, 1 deg/min/sec, 2 grads, 3 radians), DIMADEC (-1: as DIMDEC), DIMALT, DIMALTU, DIMALTD, DIMALTF, DIMALTRND: each sets the current style’s value, so a script can set up a drawing’s dimensions in one go. (AutoCAD keeps such changes as an override of the style; here they change the style itself.) Kept in .musa; DXF writes DIMEXO, DIMEXE, DIMTAD, DIMZIN, DIMDSEP, DIMLWD, the units variables with DIMPOST and DIMAPOST, and $DIMSTYLE tooDIMTXT …Implemented
QDIM — Select geometry to dimension:, then Specify dimension line position, or [Continuous/Staggered/Baseline/Ordinate/Radius/Diameter/datumPoint/Edit/seTtings] <Continuous>: (the kind is remembered): the ends of lines, arcs and polyline segments, points and circles’ centres, dimensioned horizontally when the position is above or below them and vertically beside them — a chain (Continuous), pairs nested from the outside in (Staggered), each from the first (Baseline; these two stack 1.5 text heights apart), each point’s X or Y (Ordinate); Radius and Diameter dimension every circle and arc with the text toward the position. datumPoint — Select new datum point:, where Baseline dimensions start and Ordinate ones measure from (an ordinate keeps its origin, DXF 10); Edit — Indicate dimension point to remove, or [Add/eXit] <eXit>: (Add: Indicate dimension point to add, or [Remove/eXit] <eXit>:); seTtings — Associative dimension priority [Endpoint/Intersection] <Endpoint>:, Intersection taking where the objects cross first (remembered). One undo stepQDIMImplemented (#60)
DIMEDIT — Enter type of dimension editing [Home/New/Rotate/Oblique] <Home>:, then Select objects: (a selection made beforehand is edited at once). Home puts the text back where it is laid out and at its own angle; New (Enter dimension text (<> for the measurement) <<>>:) replaces it, <> standing for the measurement; Rotate (Specify angle for dimension text:) stands it at an angle; Oblique (Enter obliquing angle (press ENTER for none):) slants a linear or aligned dimension’s extension lines to that angle, the measurement unchanged. One undo stepDEDImplemented (#60; the oblique angle is kept in .musa and in DXF, code 52)
DIMTEDIT — Select dimension:, then Specify new location for dimension text or [Left/Right/Center/Home/Angle]:: a point puts the text there as dragging its grip does; Left / Right slide a linear or aligned dimension’s text along its line to the first or second extension line, Center to the middle; Home and Angle as DIMEDIT’s Home and RotateDIMTEDImplemented (#60; the text does not follow the cursor while you choose)
DIMSPACE — Select base dimension:, Select dimensions to space:, Enter value or [Auto] <Auto>:: parallel linear and aligned dimensions stacked out from the base at that spacing — Auto twice the base’s text height — or, at 0, put on the base’s lineDIMSPACEImplemented (#60)
DIMJOGLINE — Select dimension to add jog or [Remove]:, Specify jog location (or press ENTER):: a zigzag across a linear or aligned dimension’s line where it is placed (on Enter midway between the first extension line and the text, or in the middle of the line when the text is off it), one and a half text heights tall, kept with the drawing; Remove takes it awayDJLImplemented (#60; native only, not yet in DXF)
DIMINSPECT — Select dimensions: (or those selected), then the Inspection Dimension window: the Shape (Round, Angular or None), a Label shown left of the value and an Inspection rate right of it (100% to begin with), each with its check box, and Remove Inspection. The frame is drawn round the label, the value and the rate with a divider between them; None leaves them side by side unframed. -DIMINSPECT asks Add inspection data or [Remove] <Add>:, Enter shape option [Round/Angular/None] <Round>:, the label and the rate (. for none) on the command line. The last settings are offered the next time. One undo step—Implemented (#60; kept in .musa, not yet in DXF)
DIMCENTER — Select arc or circle or [Lines] <mark only>:: a centre mark of two lines, half the current style’s arrow size out from the centre each way (the mark a radius dimension draws); Lines adds centre lines from a gap past the mark to beyond the circle, and is remembered for the sessionDCEImplemented (#60; there is no DIMCEN variable — the mark’s size follows the arrow size)
DIMOVERRIDE — Enter dimension variable name to override or [Clear overrides]:, Enter new value for dimension variable <2.5000>: for as many as you like, Enter, then Select objects:: the dimensions take those values as their own, over their style’s. DIMTXT, DIMASZ, DIMBLK, DIMDEC, DIMTAD, DIMATFIT, DIMCLRD, DIMCLRE and DIMCLRT can be a dimension’s own (the colours as ACI 1 to 255); the other variables are the style’s. Clear overrides drops all of a dimension’s ownDOVImplemented (#60)
Object-aware dims capture def points at creation (no entity ref)—Implemented (deleting the source entity never dangles the dim)
Moving dimension text (the text grip) — as AutoCAD with DIMTMOVE 0: a linear / aligned dimension’s line moves with its text, which slides along it between the extension lines or beside them, the line extended under it; radius / diameter text stands where the dimension is placed (outside on a leader with a landing, inside on the line broken around it) and its grip swings the leader round the circle; angular text slides along the arc, which follows it out and grows to reach it. DIMTMOVE 1 / 2: the text moves alone, with or without a leader back to the linetext gripImplemented
Placement preview: the full dimension (with live value) rubber-bands to the cursor, commits on click—Implemented (all dim types + DIM; angular arc is fixed by its two lines)
Associativity: value recomputed from def points each rebuild—Implemented (moving the referenced entity does not auto-update)
DIMCONTINUE (DCO) — Specify a second extension line origin or [Select/Undo] <Select>:, the next dimension from the previous one’s second extension line, on the same dimension line. DIMBASELINE (DBA) — [Select/Offset/Undo], stacked from the first extension line, a spacing further out (Offset: Specify the baseline offset distance <3.7500>:). Enter or Select asks Select continued dimension: / Select base dimension: — the extension line nearer the pick is the one gone on from — and Enter there ends. Linear, aligned, angular (the same vertex and arc, from the previous ray) and ordinate (the next feature on the same datum) dimensions chain; each takes the previous one’s style and overrides; each pick is its own undo step and Undo comes back to the one gone on fromDCO / DBAImplemented (#28, #57)
MTEXT (multi-line)MTImplemented (Ph20); its format codes are drawn (#43): \H height, \W width, \Q obliquing, \T tracking, \C / \c colour, \f font, \L \O \K under-, over- and strike-through, \S stacked fractions and tolerances, { } groups — an AutoCAD drawing’s MTEXT keeps them
MLEADER — Specify leader arrowhead location or [leader Landing first/Content first/Options] <Options>:, the landing, the text beside a horizontal landing; Options: Maxpoints, Content type (Mtext / None), leader lAnding (Yes / No); Annotate ▸ Leaders ▸ Multileader. A multileader follows the multileader style it was drawn with: the style modified, its arrowhead, text height, landing and leader type change with it (one undo step); a style multileaders are drawn with is not deletedMLDImplemented (#61; MLEADERCOLLECT and block content not yet)
MLEADERALIGN — Select multileaders:, Select multileader to align to or [Options]:, Specify direction:: their text (with its landing) moved onto the line through the chosen one’s, each keeping its place along it; the arrowheads stay. Options (Enter an option [Distribute/make leader segments Parallel/specify Spacing/Use current] <Use current>:): Distribute spaces the text evenly between two points (Specify first point or [Options]:, Specify second point:), Parallel turns each last leader segment parallel to the chosen one’s, Spacing puts the text a distance apart along the direction (between the extents of their text); the choice is kept for the next timeMLAImplemented (#61)
MLEADEREDIT — Select a multileader:, Specify leader arrowhead location or [Remove leaders]: (each point a leader of its own, straight to the landing) or Specify leaders to remove or [Add leaders]:; Annotate ▸ Leaders ▸ Add Leader / Remove LeaderMLE, AIMLEADEREDITADD, AIMLEADEREDITREMOVEImplemented (#61)
DIMASSOC — Enter new value for DIMASSOC <2>:: 2, new dimensions follow what they measure; 1, they stay as made; 0, they are drawn explodedDIMASSOCImplemented (#59)
DIMDISASSOCIATE / DIMREASSOCIATE — Select dimensions to disassociate: / ...reassociate:: the dimensions stop following, or follow again what their points are on; DIMREASSOCIATE then asks dimension by dimension for each point, a rubber band from the one there is now (Specify first extension line origin or [Select object] <next>: — a line or an arc picked gives both — Specify second extension line origin <next>:; Specify angle vertex <next>: and the two endpoints; Select arc or circle <next>:; Specify feature location <next>:), Enter keeping itDDA / DREImplemented (#59)
TABLEEXPORT — Select a table:, then a file: the table’s cells written as CSVTABLEEXPORTImplemented (#44)
STYLE (text style)STImplemented (#29)
CommandAliasStatus
ZOOM — Specify corner of window, enter a scale factor (nX or nXP), or [All/Center/Dynamic/Extents/Previous/Scale/Window/Object] <real time>:: a window (a first corner typed at once starts one), Center with a magnification (2x) or a height, Previous (the last ten views ZOOM and PAN left), Scale nX against the view or n against the limits, All / ExtentsZImplemented (#72; Dynamic and Object fall back to a window)
PAN / -PAN — the view follows a drag until Esc or Enter; -PAN Specify base point or displacement:, Specify second point:P / -PImplemented (#72)
PAN (middle-drag)PImplemented (mouse)
Zoom about cursor (wheel)—Implemented (mouse)
Smooth curves at any zoom (adaptive tessellation; re-tessellate on zoom, not pan)—Implemented
REGENREImplemented (#33)
Named views (VIEW)VImplemented (#33) — Save / Restore / Delete / Window / ?
CommandAliasStatus
Layer Manager (create/delete/rename, on/freeze/lock, colour/linetype/lineweight, set current)ribbonImplemented
Current-layer dropdown (ribbon)—Implemented
ByLayer / per-entity override resolution—Implemented
Move selection to layerLayer Mgr ▸ AssignImplemented
Set selection colour overrideribbon ▸ Set ColourImplemented
MATCHPROP / MA — pick a source object (or run MA with an object already selected → it becomes the source, noun-verb), then pick destination object(s) (or [Settings]); each destination immediately adopts the source’s properties via the Ph22 SetProperty descriptor path (the SAME write path the PR palette uses — no MA-specific entity-write code). Universal properties (colour / layer / lineweight / linetype — ByLayer state preserved, not the resolved literal) copy across ANY source/target kinds; family-scoped (text: height/font/justify/width-factor; dimension: per-dim overrides) copy only within a shared family; non-applicable properties are silently skipped. A paintbrush cursor shows while picking; each matched target is its own undo entry (undo in reverse). Settings (type S) opens a dark modal listing the categories (all on by default; persisted in QSettings for the session)MA / PAINTERImplemented
Off / Frozen layers skip rendering—Implemented
Locked layers (drawn, not selectable/modifiable)—Implemented
Linetype property (Continuous/Dashed/Center/Hidden)—Implemented (model + round-trip + dashed rendering, Ph23)
Linetype pattern rendering (dashes drawn on lines, polylines, and curves by arc-length; ByLayer + override)—Implemented (Ph23)
LTSCALE (drawing linetype scale, per document; prompts <current>, rejects ≤0; re-dashes live; native + DXF $LTSCALE round-trip)LTSCALE / LTSImplemented (Ph23)
CELTSCALE (per-entity linetype scale; PR “Linetype scale” field on line/circle/arc/polyline; MATCHPROP-matchable; native + DXF code 48 round-trip). Effective dash scale = LTSCALE × CELTSCALEPR ▸ Linetype scaleImplemented
Dynamic Input (canvas-only by default) — all command input is drawn ON the canvas at the crosshair: command entry + autocomplete, mid-command sub-prompts, and on-geometry dimension fields. F12 toggles canvas-only ⇄ the classic bottom command-line bar (F12 ON = canvas, bar hidden; F12 OFF = bar visible, no canvas DYN). State persists; the bar always returns on F12 / the status DYN toggle (no-stuck fallback)F12 / status DYN toggleImplemented (Ph25–27; state persisted)
DYN canvas command entry — start typing on an idle canvas and a command-entry box appears at the cursor with the registry autocomplete dropdown (Down/Up/Tab select, Enter runs, Esc clears); routed by the app-wide event filter; bounded glyph batches regardless of suggestion count—Implemented (Ph27)
DYN canvas sub-prompts — any mid-command value/keyword step (FILLET radius, CHAMFER distances, RECTANGLE Dimensions length/width, Area, Rotation, option keywords) renders as an at-cursor prompt cell; type → Enter commits/advances, Esc cancels. Same primitive as entry + dimension fields—Implemented (Ph27)
DYN live dimensional input: type an exact length/angle (line), radius (circle), width/height (rectangle) during the rubber-band; Tab between fields—Implemented (Ph25; honors ORTHO/POLAR/snap)
DYN on-geometry value fields — value boxes drawn ON the canvas (in the GL viewport overlay, NOT OS windows) anchored to the rubber-band geometry, so they are always glued to it and cannot drift on multi-monitor (length under one edge, width by the other for RECTANGLE; length + angle for LINE and PLINE’s next point; radius for CIRCLE), nudged just outside the edge so they never overlap. Type WITHOUT a click (the viewport captures dimension keystrokes); Tab/Shift-Tab switch fields; Enter/Space commit; Esc cancels; the mouse still drives the rubber-band. A typed value locks that dimension while the cursor drives the other(s)F12Implemented (RECTANGLE/LINE/PLINE/CIRCLE; other commands staged)
Grip dimensions (DYNDIGRIP, DYNDIVIS) — a hot grip’s stretch shows, as AutoCAD’s do, the length change and the resulting length from the line’s other end, the polyline vertex before or the centre (a radius grip: the radius change and the radius); DYNDIVIS 0 shows the length change alone, 1 both (the default), 2 everything DYNDIGRIP asks for (1 resulting length, 2 length change, 4 absolute angle, 8 angle change, 16 arc radius; 31). A value typed there puts the grip at that length (the cursor’s direction) or angle; Tab moves between themDYNDIGRIP / DYNDIVISImplemented (#65)
DYN command-control keys (Esc / Enter / Space) — with DYN on, these always reach the command (never swallowed by the on-canvas fields). Esc always cancels the active command — even with a half-typed value — clearing the rubber-band and fields. Enter / Space are AutoCAD’s two-step: a pending typed value commits (keep drawing), otherwise the step ends (Enter at a LINE next-point prompt ends LINE). Tab/Shift-Tab still cycle fields. One carve-out in the app-wide event filter; F12-OFF (classic bar) unchangedEsc / Enter / SpaceImplemented
Single input surface per step: every step has exactly ONE place to type — the on-canvas entry (idle), sub-prompt cell (mid-command scalar/keyword), or dimension fields (rubber-band). The legacy cursor box is retired. State lives in the CommandProcessor (prompt + history), so hiding the bottom bar loses nothing; everything submits through the same pipeline (compose_dyn_submit / submit_line)—Implemented
DYN autocomplete: the Ph6 command-suggestion dropdown anchored at the cursor entry box (one suggestion source: the registry)—Implemented (Ph26–27)
Draw/transform ribbon buttons start the interactive command (pick on screen, like typing — never a fixed-position dialog): Line/Circle/Arc/Rectangle/Rotate/ScaleribbonImplemented (AutoCAD model)
Starting a new command cancels the one in progress — clicking a ribbon command (or otherwise dispatching a new command) while one is active cleanly cancels the current command first (its rubber-band/preview is dropped) and starts the new one; the selection is preserved. One dispatch site (CommandProcessor::start_command)ribbon / dispatchImplemented
CIRCLE radius/[Diameter] option — type D at the radius prompt (command line or DYN) to enter a diameter insteadC → DImplemented (Ph26)
Parametric multi-parameter dialog (collect values → submit existing Command): ARRAYribbonImplemented (Ph11)
POLYGON commandPOLImplemented (#23; the prompts, no dialog)
Import DWG — runs an external converter (DWG→DXF) off-thread, then the existing DXF importer (fail-safe); writes a <file>.dwg.import.log gap catalogribbon / DWGINImplemented (Ph27; needs an installed converter — ODA File Converter or LibreDWG)
Export DWG — existing DXF export, then the external converter (DXF→DWG, default ACAD2018)ribbon / DWGOUTImplemented (Ph27; two-stage lossy, see ARCHITECTURE)
DWG Setup dialog — Download ODA File Converter (fetched from opendesign.com into the app’s data directory after you accept its terms; “Remove downloaded” deletes it), or detect / Browse / auto-detect a converter you installed; saves the path setting (offered, with the download, when a DWG finds no converter)ribbon “DWG Setup”Implemented
DWG converter path (configurable)io/dwg_converter_path setting / DWG Setup dialogImplemented (Ph27; auto-detects ODA/LibreDWG on PATH otherwise)
Per-entity linetype scale (CELTSCALE)PR “Linetype scale”Implemented (native v12, DXF 48)
Lineweight property (hundredths-mm)LWT toggleImplemented (model, round-trip, on-screen weight with LWDISPLAY)
LAYER command-line alias / PROPERTIES palette / MATCHPROPLA / PR / MAImplemented

Block definitions + INSERT references (transform-at-snapshot, not exploded). This phase covered import, display, and selection; authoring followed under issue #25.

CommandAliasStatus
Block import (BLOCKS + INSERT, nested, scale/rotation) from DWG/DXFFile ▸ ImportImplemented (Ph28)
Display block instances (definition × transform, resolved at snapshot; per-instance colour/layer; batched — N instances add no draw calls)—Implemented (Ph28)
Select / hover / window-crossing a block as one object; move / erase / copy the instance (not the definition); insertion-point grip; INS osnapclick / grips / ModifyImplemented (Ph28)
BLOCK / WBLOCK — define a block from selected geometryB / WImplemented (#25)
REFEDIT — edit a definition; all instances updateREFEDIT / REFSET / REFCLOSEImplemented (#25)
EXPLODE — instance → its geometryXImplemented (#25)
ATTDEF / ATTRIB — block attribute textATTImplemented (issue #25: ATTDEF, INSERT value prompts, ATTDISP, ATTEDIT; DXF ATTDEF and INSERT+ATTRIB)
XREFXRImplemented (issue #25): attach / detach / reload / ?, re-read on open, native v32, DXF block flag 4 with the path; a drawing in other units (INSUNITS) comes in scaled to this one’s (#81)
BEDIT — the Edit Block Definition window, then the Block Editor: the block’s objects alone on screen, edited with every command; the Block Editor ribbon tab; BSAVE keeps the changes in the definition (every reference follows, attribute values kept by tag), BCLOSE leaves, asking to saveBE / -BEDIT / BSAVE / BCLOSEImplemented (#75)
BLOCKREPLACE — the block to replace and the block to replace it with (from the drawing’s blocks): every reference of the one, nested references too, becomes the other, attribute values kept by tag; -BLOCKREPLACE asks at the command line. The old definition stays until PURGEBLOCKREPLACE / -BLOCKREPLACEImplemented (#75)
The block gallery: Insert’s drop-down on Home ▸ Block and Insert ▸ Block, the drawing’s blocks as pictures; a pick inserts that blockribbonImplemented (#78)
CommandAliasStatus
Native format v15 (adds dimension text decoration)—Implemented (v1–v14 load)
Native format v5 (adds polyline arc bulges)—Implemented (v1–v4 load)
DXF LWPOLYLINE bulges (code 42, read/write)—Implemented (LibreCAD-verified)
DXF TEXT + DIMENSION (all subtypes) + LEADER + DIMSTYLE table—Implemented (leader label imports as separate TEXT)
LWDISPLAY (lineweight display on/off)LWT ribbon toggleImplemented
Lineweight display: DPI-anchored px = mm × DPI/25.4, zoom-independent, Default = 1px hairline (AutoCAD-accurate)—Implemented
NEW — opens a new untitled drawing in a new tab (existing tabs untouched)Ctrl+N / ”+” tab buttonImplemented
OPEN (native .musa) — always opens into a new tab; unsaved work in the current tab is never overwrittenCtrl+OImplemented
SAVE / SAVE AS — operate on the active document (its own path)Ctrl+S / Ctrl+Shift+SImplemented
Multiple documents as tabs — N drawings open at once; each tab shows its name + a * dirty marker. ONE engine swaps the active document on switch; ONE viewport renders the active document’s snapshottab stripImplemented (Phase A)
Switch tab — click a tab, or cycle with Ctrl+Tab / Ctrl+Shift+Tab. Each tab restores its own camera (zoom/pan), selection, and undo/redo historyCtrl+Tab / Ctrl+Shift+TabImplemented
Close tab — the × on each tab, or Ctrl+W. A dirty tab prompts Save / Discard / Cancel; closing the last tab leaves one empty “DrawingN” (never zero tabs)× / Ctrl+WImplemented
Undo/redo is per document — Ctrl+Z on tab A rewinds tab A’s last op even after edits in tab BCtrl+Z / Ctrl+YImplemented
Quit guard — closing the window prompts to save every dirty document (Cancel aborts the quit)—Implemented
COPYCLIP / CUTCLIP — copy / cut the selection (asked for when nothing is selected). The objects go to the system clipboard too: as Musa CAD objects another Musa CAD window pastes, and as a picture on white (white lines drawn black, as on paper) for documents, mail and image editorsCtrl+C / Ctrl+XImplemented
COPYBASE / CUTBASE — the same with a base point first: the point a paste puts on the insertion pointCOPYBASE / CUTBASEImplemented
PASTECLIP — Specify insertion point: with the copied objects following the cursor; layers, dimension styles, blocks, fonts and images are matched by name in the target drawing (created where missing); one undo step. From another program: an image is embedded with its lower-left corner at the point (a pixel to a drawing unit), text becomes a multiline text at the current text style’s heightCtrl+V / PASTECLIPImplemented
PASTEORIG — the copied objects at their own coordinates, nothing asked (into another tab or another window)PASTEORIGImplemented
PASTEBLOCK — the copied objects as one block (named A$C and eight hex digits) inserted at Specify insertion point:, one undo stepPASTEBLOCKImplemented (#55)
Tab-to-tab drag — drag a selection onto another document’s tab to transfer it there (copy → switch → paste, original coordinates)drag to tabImplemented (Phase B)
DXF export (R2000 / AC1015; LAYER table + ByLayer colour 256)File ▸ Export DXFImplemented
DXF import (LINE/LWPOLYLINE/CIRCLE/ARC/POINT/TEXT/MTEXT/DIMENSION/LEADER; BLOCK defs + INSERT refs; reads the LAYER table + ACI colours)File ▸ Import DXFImplemented
DXF import (SPLINE / legacy POLYLINE)—Implemented (issue #31): uniform-knot and fit-point splines come in as splines, other knot vectors as polylines; the R12-era POLYLINE/VERTEX/SEQEND form comes in as a polyline (bulges, closed flag, inside blocks too), while 3D polylines and meshes are reported as skipped
Dirty tracking (modified * in title, prompt before discard)—Implemented
PLOT / PRINT (PDF + installed printers; paper/orientation/area Display·Extents·Window/scale fit·ratio/centre·offset/lineweights/CTB None·Mono·Grayscale/copies; window-pick; print-preview; off-thread; vector output)Ctrl+P / PLOT / PRINTImplemented (Phase 30)
Saved page setups (named, persisted in the drawing; recall in the PLOT dialog)PLOT ▸ Page setupImplemented (Phase 30)
LAYER (LA) opens the Layer Properties Manager; -LAYER (-LA) — Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Freeze/Thaw/LOck/Unlock/stAte/Description/rEconcile/Xref]: until Enter: ? lists the layers matching a pattern with their state, colour, linetype and lineweight; Make adds a layer and makes it current; Set makes one current (or the layer of an object picked); New adds a comma list; Rename (not layer 0, not to a name in use); ON / OFF / Freeze / Thaw / LOck / Unlock take a comma list with * and ? wild cards (Enter: the current layer; the current layer is not frozen); Color (a number, a name or red,green,blue), Ltype (Continuous, Dashed, Center, Hidden) and LWeight (mm) ask the value, then the layers; Plot (Enter a plotting preference [Plot/No plot] <Plot>:), Description (Enter layer description:) and TRansparency (Enter transparency value (0-90):) likewise. The Layer Properties Manager has Plot, Description, Transparency and Plot Style columns (the plot styles are colour-dependent: Color_N, greyed, as AutoCAD shows them); a layer not plotted is left off every plot. Both are kept in the drawing and in DXF (group 290, and the description where AutoCAD keeps it)LA / -LAImplemented (#69; MATerial, stAte, rEconcile and Xref say what to use instead)
Layer tools — LAYOFF / LAYFRZ (Select an object on the layer to be turned off: / ... frozen:, one object after another, [Undo]; the current layer cannot be frozen), LAYLCK / LAYULK (Select an object on the layer to be locked: / unlocked:), LAYMCUR (Select object whose layer will become current:), LAYCUR (Select objects to be changed to the current layer:), LAYISO (Select objects on the layer(s) to be isolated:; every other layer off, the current layer moved to an isolated one) and LAYUNISO, LAYON, LAYTHW; LAYMCH (Select objects to be changed:, Select object on destination layer or [Name]:)LAYOFF / LAYFRZ / LAYLCK / LAYULK / LAYMCUR / LAYCUR / LAYISO / LAYUNISO / LAYON / LAYTHW; Home ▸ LayersImplemented (Settings not yet: viewports and block nesting levels)
LAYERP — the layer settings back as they were before the last change (on, frozen, locked, colour, linetype, lineweight, plot, the current layer; new and renamed layers stay), one change at a time; LAYERPMODE Enter LAYERP mode [ON/OFF]:LAYERP / LAYERPMODE; Home ▸ Layers ▸ PreviousImplemented (#69)
LAYERSTATE (LAS, -LAYERSTATE) — Enter an option [?/Save/Restore/Delete/Name]:: named layer states with every layer’s settings and the current layer, kept with the drawing (native v40)LAYERSTATE / LASImplemented (#69; the Layer States Manager window, Import / Export and DXF not yet)
LAYWALK — the LayerWalk window: only the layers selected in its list are shown (Ctrl and Shift for several); Restore on exit puts every layer back as it wasLAYWALKImplemented (#55; filters and Purge in the window not yet)
Crash reports — if Musa CAD stops unexpectedly it writes a report (version, system, graphics driver, the drawing’s file name, the last 96 command-line lines, the call stack); the next start shows it with Save Report As…, Copy and Open Folder to attach to an issue. Save Bug Report… in the application menu writes the same report on demandapplication menu ▸ Save Bug Report…Implemented
OPTIONS — Updates: check automatically (once a day; on by default for packaged installs, off for source builds) and Check Now; Display: the performance overlay (frame rate / frame time in the drawing area, frame rate and build date in the title; off by default). Persisted per userOP / application menu ▸ OptionsImplemented
Update check — asks Flathub (the Flatpak) or the GitHub release (AppImage, Windows installer, macOS) for the latest version; a newer one shows as a status-bar note that opens the update step for this install (the flatpak update command, or the file to download); Skip This Version; MUSACAD_NO_UPDATE_CHECK=1 turns it off for packagers and CIapplication menu ▸ Check for UpdatesImplemented
Command line — musacad <drawing> opens a file (via the existing OpenDocumentCommand); musacad --check <drawing> validates it and exits non-zero on a parse error; --help / --version. Parsed before any Qt object exists, so it needs no displayshellImplemented (issue #11)
Headless plot — musacad --plot <drawing> <out.pdf> [--paper A4] [--portrait|--landscape] [--scale 1:5|--fit] [--window x0,y0,x1,y1|--extents] [--monochrome]. Same loaders, snapshot builder, paper table, tessellation rule and PDF writer as the GUI’s PLOT; offscreen Qt platform forced, so it runs from cron/CI/ssh. Exit codes 0/1/2/3shellImplemented (issue #11)
ModeStatus
EndpointImplemented
MidpointImplemented
CenterImplemented
IntersectionImplemented
NearestImplemented
Quadrant (circle/arc N/E/S/W)Implemented
Node (Point entities)Implemented
Perpendicular (deferred; line + circle/arc)Implemented
Tangent (deferred; circle/arc)Implemented
Geometric Center (GCEN): the centroid of a closed polylineImplemented
Apparent intersection / Insertion / ParallelImplemented (issue #32)
Extension (EXT): pass the cursor over the end of a line, an arc or an open polyline to acquire it (a small cross marks it), then move along the line carried on past that end, or round the arc’s circle; a dashed path runs from the end to the snap point, and two acquired lines give their crossingImplemented (issue #66)

A polyline’s arc segments snap at their true midpoint and at their centre.

OSNAP precedence (highest→lowest, within the aperture): Endpoint, Midpoint, Center, Node, Quadrant, Intersection, Perpendicular, Tangent, Geometric Center, Insertion, Apparent intersection, Parallel, Extension, Nearest. Each type is individually toggleable via the running-osnap mask (OSNAP status-bar button dropdown, the settings dialog, -OSNAP, OSMODE). A fresh session runs AutoCAD’s default set: Endpoint, Center, Intersection and Extension.

At any prompt that asks for a point, a snap mode typed instead of the point holds for that one pick, whatever the running snaps are and even with OSNAP off: END, MID, CEN, GCEN, NOD, QUA, INT, EXT, INS, PER, TAN, NEA, APP, PAR (several may be given, END,MID), and NON for no snap at all. The prompt shows it (Specify next point or [Undo]: _end of). A pick with nothing of the kind under the cursor is refused (No Endpoint found for specified point.) and the prompt asks again. Shift + right-click opens the same list as a menu.

TypedWhat it gives
FROMBase point: then <Offset>: — a point at an offset (@dx,dy, @dist<angle) from a base point, the base usually taken with a snap
M2P / MTPFirst point of mid: / Second point of mid: — the point half way between two points
TTSpecify temporary OTRACK point: — the cursor then locks onto the horizontal and the vertical through that point (with ORTHO, where the ortho direction crosses them) until the next point is given
TKFirst tracking point: then Next point (Press ENTER to end tracking): — a chain of moves, each along one axis; Enter gives the point reached

AutoCAD’s selection conventions are the base every edit command stands on (issue #46):

FeatureStatus
Verb-noun: MOVE, COPY, MIRROR, ROTATE, SCALE, ALIGN, ARRAY, ERASE, EXPLODE, STRETCH, MATCHPROP’s destinations, GROUP, ISOLATEOBJECTS and SELECT prompt Select objects: when nothing is selected and gather picks, windows, crossings and lassos until Enter or right-click; a pre-selection (noun-verb) skips the prompt; Enter with nothing chosen ends the command quietlyImplemented
The keywords at every Select objects: prompt: Window, Crossing, BOX (by direction), ALL, Fence, WPolygon, CPolygon, Group, Last, Previous, Add, Remove (Remove objects:), Multiple, Undo, AUto, SIngle; “N found” / “N found, M total” / “N found, M removed, K total” as AutoCAD echoes themImplemented
Single-click pick (pick-box, PICKBOX px); Shift + click removes a selected object (PICKADD 2; PICKADD 0 = a click replaces)Implemented
Window select (left→right, enclosed, blue tint); crossing select (right→left, touched, green tint); click-click boxes from an empty click (PICKAUTO)Implemented
Lasso by press-and-drag (PICKDRAG 2): leftwards a crossing, rightwards a window; Space cycles window / crossing / fence while draggingImplemented
SELECTIONPREVIEW: the objects a box or lasso would select highlight while it is dragged (1 idle, 2 at a prompt, 3 both)Implemented
Selection cycling (SELECTIONCYCLING, Ctrl+W): a pick over several objects offers the list at the cursorImplemented (the badge is not drawn)
Ctrl+A selects all; Esc clears; HIGHLIGHT 0 turns the selection highlight off; PICKFIRST 0 makes idle clicks inertImplemented
SELECT, SELECTSIMILAR (SELECTSIMILARMODE), QSELECT and FILTER (the Quick Select dialog; FILTER adds several conditions), the idle right-click menu (Repeat, Recent Input, Clipboard, Isolate, Erase, Select Similar, Quick Select, Deselect All, Undo / Redo, Properties)Implemented
Selected-entity highlight (orange)Implemented
Rollover (hover) highlight (light blue)Implemented
Live cursor preview (Line/Circle/Rect/PLine/Arc)Implemented
Move/Mirror ghost previewImplemented
Ortho/Polar/grid-snap honored by previewImplemented
FeatureStatus
Grips (blue squares) show on a selected entity; grabbed/hovered grip goes hot (red)Implemented
Drag a grip → live preview; release commits as one undo step; Esc cancels (entity unchanged)Implemented
Hot grips — click a grip (rather than drag it): ** STRETCH ** Specify stretch point or [Base point/Copy/Undo/eXit]:; Enter or Space cycles STRETCH, MOVE, ROTATE, SCALE and MIRROR about the grip (or a Base point), on the selection; Copy leaves the originals and places copies until eXitImplemented (#54; Copy with STRETCH, Reference, several hot grips with Shift and the hover menus not yet)
Zero store mutation / op-log churn during the drag (transient preview)Implemented
ORTHO/POLAR/OSNAP honored on the dragged gripImplemented
Line (2 endpoints + midpoint-move)Implemented
Circle (centre-move + 4 quadrant-radius)Implemented
Arc (centre-move + 2 endpoints + mid-radius)Implemented
Polyline / Rectangle (per-vertex move)Implemented
Hatch (per-boundary-vertex move → reshape the filled region)Implemented
Text (insertion-point move)Implemented
Dimension: full grip set — both ext-line origins, both dim-line ends, offset midpoint (grab anywhere, place anywhere)Implemented (Linear/Aligned)
Dimension: dim-line offset (move the dim line, value unchanged)Implemented
Dimension: def-point drag (re-measures, live value)Implemented (Linear/Aligned/Radius/Diameter/Angular)
HiDPI: lineweights + grip/snap/crosshair sizes are the same physical size on 1×/2× displays (DPR-corrected)Implemented
Dimension: independent text-reposition grip (all five types) + connector leader + PR “home text”Implemented (issue #21)
Add/remove polyline vertex via gripsImplemented (issue #32): a midpoint grip per segment (drag moves a straight segment, reshapes an arc); right-click a grip for Add Vertex / Remove Vertex / Convert to Arc / Convert to Line

The ribbon follows AutoCAD’s Drafting & Annotation workspace: the same tabs, panels, groupings and shapes, over Musa CAD’s commands. A tool Musa CAD does not have yet stands in AutoCAD’s place as a disabled button (its issue is linked from the audit issues).

TabPanels (large tools; stacked small tools; slide-out behind the title’s ▾)
HomeDraw: Line, Polyline, Circle ▾ (Center-Radius, Center-Diameter, 2-Point, 3-Point, Tan Tan Radius, Tan Tan Tan), Arc ▾ (the eleven methods); Rectangle ▾ (Polygon), Ellipse ▾ (Center, Axis End, Elliptical Arc), Hatch ▾ (Gradient); slide-out: Revision Cloud, Wipeout, Donut, Spline ▾ (Fit / CV), Point ▾ (Multiple Points, Divide, Measure), Polygon, Construction Line, Ray, Region. Modify: Move, Copy, Stretch / Rotate, Mirror, Scale / Trim ▾ (Extend), Fillet ▾ (Chamfer), Array ▾ (Rectangular, Path, Polar) / Erase, Explode, Offset; slide-out: Lengthen, Edit Polyline, Break, Break at Point, Join, Align, Match Properties, Blend Curves, Delete Duplicate Objects. Annotation: Text ▾ (Multiline, Single Line), Dimension; Linear ▾ (Aligned, Angular, Arc Length, Radius, Diameter, Jogged, Ordinate), Leader ▾, Table; slide-out: Dimension Style, Text Style, Edit Text, Continue, Baseline, Tolerance; launcher: Dimension Style. Layers: Layer Properties, the current layer, Off / Isolate / Freeze / Make Current. Block: Insert; Create ▾ (Write Block), Edit, Edit Attributes ▾. Properties: Match Properties; the colour, linetype and lineweight controls (the selection’s, or the current entity properties for new objects); slide-out: Linetype Scale, List, Lineweight Display; launcher: the Properties palette. Groups: Group; Ungroup, Group Edit, Group Selection On/Off. Utilities: Measure ▾ (Distance, Area, ID Point, List); Quick Select, Quick Calculator, ID Point. Clipboard: Paste; Cut, Copy Clip, Copy with Base Point
InsertBlock; Block Definition; Reference (Attach ▾ Xref / Image, Clip, Frames ▾, External References ▾); Import ▾; Data (Field, Table, Update Fields, Data Link)
AnnotateText (Multiline Text ▾, Text Style, Edit Text, Find Text); Dimensions (Dimension, Linear ▾, Continue ▾, Dimension Style; slide-out Tolerance, Datum, Center Mark); Leaders; Tables; Markup (Revision Cloud, Wipeout)
ParametricGeometric, Dimensional, Manage — AutoCAD’s constraint tools, all placeholders (#70)
ViewNavigate 2D (Zoom ▾: Extents, All, In, Out, Scale; Pan); Named Views ▾ (Save, Restore, Delete, List; New View); Model Viewports (Viewport Configuration ▾, Named, Join); Palettes (Properties, Layer Properties, Tool Palettes)
ManageCleanup (Purge, Audit); Customization (User Interface, Tool Palettes)
OutputPlot (Plot, Batch Plot, Preview, Page Setup Manager); Export ▾ (DXF, DWG, PDF), DWG Setup

The application menu on the Musa mark carries New, Open, Save, Save As, Import, Export, Plot, DWG Setup, About and Exit; the Quick Access Toolbar beside it has New, Open, Save, Save As, Undo, Redo and Plot. A large split button (Circle ▾) runs its command from the icon and opens its menu from the label; a small one (Rotate ▾) opens the menu from the chevron at its right. A method entry such as “Circle ▸ 2-Point” runs the command and feeds it the option (AutoCAD’s ribbon macros). Home’s stacked tools are bare icons with the names in their tooltips, as in AutoCAD; panels collapse in three stages as the window narrows (labels off the small tools, then a fly-out per panel), and the Musa palette (navy, orange, teal) marks the active tab, hover and pressed states.

The ribbon is registry-driven (icons + tooltips from each command’s registration) and responsive: as the window narrows, panels degrade FULL → COMPACT (secondary buttons become icon-only) → COLLAPSED (the panel folds to one fly-out button that pops out the full panel inline), lowest-priority panels first; a horizontal scroll bar is the final fallback.

Contextual tabs appear automatically when the whole selection matches an entity family, and disappear (returning to the last fixed tab) when it doesn’t. Mixed selections show none.

Contextual tabAppears whenControlsStatus
Hatch Editor (green accent)all selected objects are hatchesPattern picker, Solid-fill toggle, Scale, Angle, Re-hatchImplemented
Text Editor (blue accent)all selected objects are the Text family (TEXT/MTEXT/leaders)Font, Height, Edit TextImplemented
Block Editor (amber accent)a single block reference (INSERT) is selectedEdit Reference (REFEDIT), Edit Attributes (EATTEDIT), Manage Attributes (BATTMAN)Present
ModeKeyStatus
Object SnapF3Implemented; each mode key echoes its state, as AutoCAD does (<Osnap on>, <Ortho off>, <Object Snap Tracking on> …)
3D Object SnapF4Switched (<3D Object Snap on>), kept as 3DOSMODE (bit 1 off; 2 vertex, 4 midpoint on edge, 8 centre of face, 16 knot, 32 perpendicular, 64 nearest to face); a 2D drawing has no 3D objects for it to snap to
Dynamic UCSF6Switched (<Dynamic UCS on>), kept as UCSDETECT; it follows the faces of solids, which a 2D drawing has none of
Grid displayF7Implemented
OrthoF8Implemented; ORTHO Enter mode [ON/OFF] <OFF>: at the command line
Snap (grid snap)F9Implemented; SNAP Specify snap spacing or [ON/OFF/Aspect/Legacy/Style/Type] <10.0000>: (a spacing turns snap on; Aspect asks the horizontal and the vertical spacing; Type Polar / Grid; Style Isometric and Legacy are not there yet and say so). GRID Specify grid spacing(X) or [ON/OFF/Snap/Major/aDaptive/Limits/Follow/Aspect] <0.0000>: — a spacing (or 2x, twice the snap spacing; 0, the grid following the zoom as it does by default) turns the grid on at that spacing; Snap takes the snap spacing; Major a major line every so many; aDaptive fewer lines zoomed out and, with subdivision, more zoomed in; Limits No stops the grid at the drawing limits; Aspect a horizontal and a vertical spacing. Follow is accepted (there is no dynamic UCS). LIMITS — Specify lower left corner or [ON/OFF] <0.0000,0.0000>:, Specify upper right corner <420.0000,297.0000>:; with checking on a point outside is refused at every prompt (**Outside limits); kept in the drawing and in DXF ($LIMMIN, $LIMMAX, $LIMCHECK)
Polar trackingF10Implemented — alignment paths at the polar angles from the last point; the cursor locks onto one within the aperture of it (a dashed path and a tooltip, Polar: 12.3456 < 45°). Increment angles from the POLAR dropdown or POLARANG (90 to begin with), additional angles (POLARADDANG, used with POLARMODE 4), angles relative to the last segment (POLARMODE 1), PolarSnap (SNAPTYPE 1 with SNAP on: steps of POLARDIST along the path)
Object snap trackingF11Implemented — rest the cursor on an object snap point to acquire it (a small cross; rest on it again to let it go; seven at most), then track along the horizontal and vertical through it (every polar angle with POLARMODE 2), onto the crossing of two paths or of a path and a polar path (Endpoint: < 90°, Polar: < 0°). AUTOSNAP bits 8 and 16 switch the two tracking modes
Temporary override keys, held at a point promptShift …Implemented — Shift: ORTHO the other way; Shift + A: OSNAP; Shift + X: POLAR; Shift + Q: OTRACK; Shift + D (or L): no snapping or tracking; Shift + E (or P) / V (or M) / C: Endpoint / Midpoint / Center alone. TEMPOVERRIDES 0 switches them off
Undo / RedoCtrl+Z / Ctrl+YImplemented
Delete selectionDelete / BackspaceImplemented
Clear selectionEscImplemented
FormExampleStatus
Absolute10,20Implemented
Relative@30,0Implemented
Polar relative@30<45Implemented
Polar from the origin30<45Implemented
Absolute, in Dynamic Input#10,20Implemented
Dynamic Input’s second and next points: relative unless DYNPICOORDS is 1 (10,5 is @10,5; # absolute, @ relative)10,5Implemented (#65)
FeatureStatus
Table-driven aliasesImplemented
Autocomplete dropdown (registry-driven)Implemented
Up/Down history, ENTER repeats lastImplemented
Honest command results (engine echoes what actually happened)Implemented
Parametric input dialog (ARRAY: rectangular + polar)Implemented
Input dialogs for Rotate/Scale + live ghost previewImplemented (#32)
Dynamic input tooltips at cursorImplemented (full canvas DYN: command entry + autocomplete, mid-command sub-prompts, on-geometry dimension fields for RECTANGLE/LINE/CIRCLE; F12 toggles canvas-only ⇄ classic bottom bar)