Skip to content

WebCAD Ribbon Feature Audit (Current Implementation)

Scope and Method

  • Survey target:
    • frontend/src/components/Daedalus/Drafting/D_Daedalus.vue
    • frontend/src/components/Daedalus/Drafting/D_DaedalusRibbon.vue
    • frontend/src/components/Daedalus/Drafting/D_DaedalusMenuBar.vue
    • frontend/src/components/Daedalus/Drafting/D_DaedalusRightSidebar.vue
    • frontend/src/components/Daedalus/Drafting/D_cadAliasCommandExecutor.ts
    • frontend/src/components/Daedalus/Drafting/D_useLineEditCommandRunner.ts
    • frontend/src/components/Daedalus/Drafting/D_lineEditCommands.ts
    • frontend/src/components/Daedalus/Drafting/D_daedalusTools.ts
  • Policy:
    • Only list code-backed features already reachable from UI or command input.
    • Distinguish usable vs partial vs prototype/unwired.
    • Keep tab/group assignment MECE for ribbon planning.

Feature Inventory (MECE)

CategoryFeatureImplementation fileCalled fromCurrent UI pathCompletionDuplicate candidateRibbon tab/group
DrawingLine/Arc/Circle/Ellipse/Rect/Pen/PolygonD_daedalusTools.ts, D_Daedalus.vuepickQuickToolRibbon quick tools, CAD command input (L/ARC/C)UsableCommand alias and ribbon do same commandDraw / Quick Tools
DrawingConstruction line, Center line, XLINE presetD_Daedalus.vuepickConstructionLineTool, pickCenterLineToolRibbon construction groupUsableAlso command aliases CEN2/CENMARKDraw / Construction
AnnotationVertex dimension creation (9 modes)D_Daedalus.vuesetVertexDimensionCreateModeByCommandRibbon annotate group, command aliases DIM*UsableAlias and ribbon button duplicateAnnotate / Dimension
AnnotationDim update/style/baseline/reattachD_Daedalus.vuerefresh/apply/sync/reattach methodsRibbon annotate groupPartial (reattach is preview/apply workflow)Also command aliases DUL/DASA/DBS/DRAAnnotate / Dimension
EditMove/Copy/Rotate/Scale/Mirror/StretchD_cadAliasCommandExecutor.ts, D_cadPointCommandExecutor.tsbeginCadPointCommandCAD command inputUsableExposed now in ribbon modifyModify / Transform
EditTrim/Extend/Break/Join/Fillet/OffsetD_lineEditCommands.ts, D_useLineEditCommandRunner.tsrunLine* methodsCAD command inputUsableExposed now in ribbon modifyModify / Line Edit
EditChamferD_useLineEditCommandRunner.tsrunLineChamferByDistanceNo active UI routeUnwiredNoneModify / Line Edit (disabled)
ConstraintsHorizontal/Vertical/Parallel/Perpendicular + unset + cleanupD_Daedalus.vuerunLineConstraint* methodsRibbon constraint block, command aliases C*UsableAlias and ribbon duplicateModify / Constraints
SelectionSelect/Pan/Box/Add modeD_Daedalus.vuesetModeRibbon homeUsableNoneHome / Tools
SelectionQuick select expressionD_Daedalus.vueapplyQuickSelectExpressionCAD command input (QSELECT)UsableNoneModify / Transform (command)
ViewGrid size/toggle, zoom in/out/reset/fit, minimapD_Daedalus.vue, D_DaedalusMenuBar.vueview togglesMenu bar and ribbon viewUsableMenu and ribbon duplicateView / Grid+Zoom
Snap/AssistEndpoint/Mid/Vertex/Center/Intersection/Arc/Tangent togglesD_Daedalus.vuetoggleQuickDrawSnapModeFromRibbonRibbon snap, menu settingsUsableMenu and ribbon duplicateSnap/Assist / Object Snap
Snap/AssistSnap grid / Snap edgeD_Daedalus.vuetoggleSnapGrid/toggleSnapEdgeRibbon snap, menu viewUsableMenu and ribbon duplicateSnap/Assist / Core
Snap/AssistOTRACK, telemetry dataset A/B controlsD_Daedalus.vuetoggle/apply/reset telemetry methodsRibbon status + snap opsUsableNoneSnap/Assist / Ops
Layer/AttrCanonical layer visibility/lock/printableD_Daedalus.vue, D_DaedalusRightSidebar.vuelayer state mutatorsRight sidebar, menu viewUsableSidebar and ribbon duplicateLayer/Attributes / Layer Manager
Layer/AttrCAD layer CRUD/current layer/color/linetype/lineweightD_Daedalus.vue, D_DaedalusRightSidebar.vuecreate/rename/delete/update layerRight sidebarUsableSidebar and ribbon duplicateLayer/Attributes / Layer Manager
Layer/AttrSelected entity ByLayer/ByEntity styleD_Daedalus.vue, D_DaedalusRightSidebar.vuesetSelectedCad* methodsRight sidebarUsableSidebar and ribbon duplicateLayer/Attributes / Entity Style
File/HistoryNew/Open/Save/SaveAs/Manage layoutsD_Daedalus.vue (menuAction)menuActionMenu barUsableMenu and ribbon duplicateFile / File Ops
File/HistoryDXF import/exportD_Daedalus.vuerequestImportDxf/exportCurrentLayoutDxfSidebar actions, modal flowUsableSidebar and ribbon duplicateFile / File Ops
File/HistoryUndo/RedoD_Daedalus.vueundo/redoRibbon, menu, keyboardUsableMultiple pathways same commandHome / History

Existing UI-to-Command Mapping

  • Ribbon -> command system:
    • onOpenCadCommandInput('M'|'CO'|'RO'|'MI'|'SC'|'ST'|'TR'|'EX'|'OF'|'BR'|'J'|'F')
  • Ribbon -> direct action handlers:
    • Dimension/constraint/snap/grid/zoom/layer toggles call existing functions from D_Daedalus.vue.
  • Menu bar -> same actions:
    • menuAction dispatches file/edit/arrange/snap/settings commands.
  • Right sidebar -> deep layer/attribute and export actions:
    • rightSidebarActions exposes CAD layer CRUD and style setters.

Duplicate Consolidation Policy

  • Keep one canonical command implementation in D_Daedalus.vue and command executors.
  • Allow multiple UI entry points (Ribbon/Menu/Sidebar/Command line) for the same command.
  • Prefer ribbon for high-frequency CAD actions; keep menu/sidebar for advanced and detail operations.

Unwired or Partial Features

  • Chamfer: implementation helper exists but no command alias/UI route. Ribbon marks it disabled.
  • Dimension reattach: usable but workflow is preview/apply, handled as partial in audit.

CAD-like Ribbon Plan (Implemented)

  • Tabs:
    • Home
    • Draw
    • Modify
    • Annotate
    • View
    • Layer/Attributes
    • Snap/Assist
    • File
  • Groups:
    • Home: Tools, History
    • Draw: Quick Tools, Construction
    • Modify: Transform, Line Edit, Constraints
    • Annotate: Dimension, Annotation Style
    • View: Grid+Zoom, Minimap
    • Layer/Attributes: Layer Manager, Entity Style
    • Snap/Assist: Object Snap, Core Snap, Snap Ops
    • File: File Ops

Notes for Future Expansion

  • Add command alias + execution path before exposing a new ribbon item as enabled.
  • Keep D_ribbonConfig.ts as the single place to define tabs/groups ordering.
  • Prefer disabling unwired controls over fake wiring.

Last updated:

この記事の著者

MECHPHAISTOS | センサーを使わない保全

Yoshitaka Notoです。保全業務に携わり、AI時代の3Kと呼ばれるメンテナンス保全をもっと楽にしたい。 そういった保全ツール開発してます。