Skip to content

Reading settings

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

Roadmap

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

A survey of what is not yet implemented, grouped by theme, with the AutoCAD behaviour each item is measured against. docs/COMMANDS.md is the per-command status table and docs/TODO.md holds the fine-grained deferrals with rationale; this file is the map above both, and each group below corresponds to a GitHub issue.

Status legend: P0 blocks ordinary drafting · P1 expected by a professional user · P2 completeness / parity.


The dimension model is strong (value computed from def points, never baked, one shared compute_dim_geometry). What is missing is the editing surface AutoCAD gives.

ItemAutoCAD behaviourPriority
Text overrideDone (#20) — <> expands to the measurement.✅
Text reposition gripDone (#21) — text grip on all five types, connector leader, “home text”.✅
DIMBASELINE / DIMCONTINUEDone (#28) — DBA / DCO chain from the last dimension’s extension line.✅
DIMJOGGED / DIMARC / DIMORDINATEDone (#28) — DJO / DAR / DOR, native and DXF.✅
Narrow-dimension fit for radial/angularThe ISO 129-1 fallback covers linear/aligned only.P2
Short-leader variant for outside textISO 129-1 permits the value on a short leader.P2
ItemAutoCAD behaviourPriority
TABLE entity + TABLESTYLEDone (#22) — merged cells, per-cell alignment, style-driven text heights. Cell editing staged.✅
Text STYLE tableDone (#29) — STYLE / -STYLE, a current style, PR style picker, native + DXF STYLE table.✅
FIELDDate, time, filename, login Done (#33), refreshed on regen. Still open: sheet number and object-property fields.P2

The store already has arenas for splines and points; the commands are missing.

ItemPriority
SPLINE, ELLIPSE, POLYGON, POINT, XLINE / RAY commandsDone (#23) ✅
DONUT, REVCLOUD, WIPEOUTDone (#23, #33) ✅
RECTANGLE first-corner options (Chamfer / Fillet / Width)Done (#23) ✅
HATCH gradient fillsDone (#33) — two colours along an angle, DXF gradient block both ways. ✅
ItemPriority
STRETCHDone (#24)
BREAK, LENGTHEN, ALIGNDone (#27) ✅
DIVIDE / MEASUREDone (#27) — points at intervals; the Block option is still open. ✅
PEDITDone (#27) — Close/Open, Join, Edit vertex (Insert/Delete/Move), Spline, Decurve, Reverse, Undo. ✅
TRIM / EXTEND / FILLET on curve entitiesDone (#27) ✅

Blocks can be imported and placed; they cannot be created in-app.

ItemPriority
BLOCK / WBLOCK — define a block from a selectionDone (#25) ✅
EXPLODE — instance → geometryDone (#25) ✅
REFEDIT — edit a definition in placeDone (#25) — REFEDIT / REFSET / REFCLOSE. ✅
ATTDEF / ATTRIB — block attribute textDone (#25) — ATTDEF, INSERT prompts, ATTDISP, ATTEDIT, DXF ATTRIB. ✅
XREF — external referencesDone (#25) — attach, detach, reload, re-read on open. ✅
EATTEDIT / BATTMAN — attribute dialogsDone (#25) — the Enhanced Attribute Editor (also on double-click) and the Block Attribute Manager with sync by tag. ✅
Multi-line attributes; a Block Editor mode of its own (BEDIT)REFEDIT edits in place today.

Done: model, decoder seam, persistence, plot, viewport display (a textured-quad pipeline with a per-definition texture cache), IMAGEATTACH / IMAGECLIP (rectangular and polygonal) / IMAGEFRAME, the 8 MB embed limit, and DXF IMAGE/IMAGEDEF both ways (the writer now gives every record a handle and carries CLASSES and the image dictionary).

ItemPriority
Layouts / paper space + viewportsDone (#26) — layouts, paper-space entities, tabs, sheet plot, MVIEW viewports, MSPACE / PSPACE through a viewport. ✅
Named views (VIEW), REGEN, VPORTSDone (#33) — VPORTS: tiled model-space viewports with named configurations. ✅
Per-viewport layer freezing (VPLAYER)Done (#26) — Freeze / Thaw / Reset / Newfrz / Vpvisdflt, the layer manager’s VP Freeze columns, native and DXF. ✅
PSLTSCALE (dash scale by viewport zoom)Dashes read the same across scaled viewports.
ItemPriority
DIST / AREA / ID / LISTDone (#30) ✅
PURGE / AUDITDone (#30) ✅
UNITS (drawing units + precision)Done (#30) ✅
GROUPDone (#33) — GROUP / UNGROUP / PICKSTYLE. ✅

(All stated honestly in the import result string today, never silently dropped.)

ItemPriority
DXF SPLINE / legacy POLYLINE importDone (#31) ✅
DXF TOLERANCE (GD&T) export/importDone (#31) ✅
DXF IMAGE / IMAGEDEFDone (#31) — with object handles, CLASSES and the image dictionary. ✅
True SHX shape-file parsing (today: faithful substitution)P2
ItemPriority
PR numeric geometry editingDone (#32) — Start/End, Center/Radius and Position fields edit the entity. ✅
OSNAP settings dialog; apparent intersection / insertion / parallel snapsDone (#32) ✅
Input dialogs for Rotate/Scale + live ghost previewDone (#32) ✅
ItemStatus
MSVC /W4 clean, warnings as errors on WindowsDone (#5) ✅
DWG inside the FlatpakDone (#4) — an opt-in to a converter installed on the host. ✅
Flathub submissionManifest (org.musacad.MusaCAD, the reverse of musacad.org), metainfo and linter run prepared (packaging/flatpak/BUILD_FLATPAK.md); the PR asks for the home-filesystem exception. P2
macOSThe workflow publishes a .dmg and the command line works; the viewport needs OpenGL 4.5, which macOS does not have, and the app says so at startup — a Metal or GL 4.1 render path is the prerequisite (packaging/macos/BUILD_MACOS.md). P2

P0 first, and within P0 the dimension-editing pair leads, because a drafter hits “I need this dimension to read <> H7” and “I need to move this text off the geometry” on essentially every real sheet, and neither has a workaround that keeps the dimension trustworthy. Tables come next (every fabrication sheet has a BOM or revision block), then block authoring and paper space, which are larger structural pieces.