Table of Contents

Tool House Page

The page triggers by Main Panel.

The key model is MachiningToolHouse. The model UserService is delivered by the host GUI.

Layout

  • Tool House Page
    • Tool List Panel The panel has CRUD (and Duplicate) of the tools. Read and Update the selected tool by the Selected Tool Editor Panel.
      • Head Line
      • Batch Action Menu
        • Select All Button
        • De-Select All Button
        • (splition bar)
        • Duplication Button
        • Remove Button
      • Create Tool Button
      • Tool List
        • Selection Checkbox (for batch action)
        • Editable Tool ID TextField
        • Editable Note/Abstract TextField
    • Selected Tool Editor Panel
    • Viewer Panel
Tip
  • Do not apply new window for tool creation. Assume the workflow is user create a default content tool and then user setup it in by the edit panel.
  • Add a resizable splition bar between Tool List Panel, Selected Tool Editor Panel and Viewer Panel.
  • The options of MillingCutterEditorDisplayee and HolderEditorDisplayee is enabled only if the upper level options are enabled, i.e. ShowCutter and ShowHolder.
  • Use less layer of EditorDisplayee Options ToolBar for user convenient. Flatten the options of the children displayee except the ratio button group.

The Tool ID can not be repeated. When create new tool, assign a new tool ID (maybe the largest ID plus 1).

When a tool is entered, call the renderingCanvas.DispEngine.SetViewToHomeView().

Duplication Button

Use Duplicate(params object[]) to duplicate the tool.

Note/Abstract TextField

The Note/Abstract TextField shows note if note existed and is not empty string; otherwise it shows the AbstractNote. The tooltip is the abstract note.

Source Code Path

See this page for git repository.

WPF Application Source Code Path

  • Mech/ToolHouse/ToolHousePage
  • Mech/ToolHouse/ToolHouseWindow

Web Page Application Source Code Path

HiNC-2025-webservice (Quasar CLI SPA):

  • wwwroot-src/src/pages/ToolHousePage.vue — routed page: left Tool List (with inline double-click Tool ID rename) + middle Selected Tool Editor + right Viewer, three <q-splitter> panes with Display Options dropdown (Show Cutter / Show Holder + 3 anchor flags + Holder Rendering Mode).
  • wwwroot-src/src/components/toolhouse/StickToolEditor.vue — Cutter / Holder / Clamping / Int. Holder / Info tabs.
  • wwwroot-src/src/components/toolhouse/IntelligentHolderDiv.vue — Intelligent Holder (Observation Location) editor: ObservationAnchorReference enum dropdown + relative Z + ring radius.
  • wwwroot-src/src/components/toolhouse/CutterManagementPanel.vue — cutter-type select + inner tabs (General / Flute Profile / Flute Contours / Optimization).
  • wwwroot-src/src/components/toolhouse/contourTray/ContourTrayDiv.vue — Uniform / Free tray switch + FreeContourTray child CRUD.
  • wwwroot-src/src/components/toolhouse/contourTray/FluteContourDiv.vue — SetupAngle + SideContour selector + BottomContour selector.
  • wwwroot-src/src/components/toolhouse/contourTray/ConstHelixSideContourDiv.vue — Helix / Radial Rake / Radial Relief angles.
  • wwwroot-src/src/components/toolhouse/contourTray/SlideBottomContourDiv.vue — OuterRadius / CutterLength / Eccentric / Disk / AxialRake.
  • wwwroot-src/src/components/toolhouse/MillingCutterOptLimitDiv.vue — EnableOpt + MinFeed / MaxFeed / YieldingUtilizationFactor.
  • wwwroot-src/src/components/toolhouse/HolderPanel.vue — None / CylindroidHolder / FreeformHolder switch; CylindroidHolder edits its backing Cylindroid via the reusable CylindroidEditor.vue.
  • wwwroot-src/src/api/toolHouse.ts — typed wrapper over ToolHouseController (CRUD + Initialize / SelectTool / EnsureCutter / shaper profile / contour tray / holder / FreeContour CRUD / opt-limit / general) and ToolHouseDisplayController (Show flags + Holder rendering mode + Cutter shape mode).
  • Mech/ToolHouseController.cs — REST endpoints: GET /, GET /{id}, GET/PUT /{id}/observation, PUT /{id}/note | exposed-height | preserved-distance | shaper-profile | contour-tray | general | opt-limit, POST /Initialize | SelectTool | CreateTool | DuplicateTool | RenameTool | EnsureCutter | ClearCutter | SetHolderType | GetHolder | ClearToolCache, DELETE /DeleteTool, and FreeContourTray child CRUD at /{id}/contour-tray/contours[/{index}].
  • Mech/ToolHouseDisplayController.cs — REST endpoints at /api/mech/tool-house-display/* for display options (initialize, select-tool, show-cutter / show-holder / show-geom-anchor / show-spindle-buckle / show-cutter-buckle, holder-rendering-mode, cutter-shape-mode, clear-cache).

Not yet ported to the Quasar page (deferred; edit via the WPF client in the meantime):

  • FreeformRemover cutter type.
  • FreeformHolder geometry / transformer editing.
  • FreeformSideContour per-flute CSV position list editing. Existing FreeformSideContour values are preserved on save but read-only in the web UI.
  • Physics-only cutter sub-tabs (Material, InsertCutter, FluteInnerBeam, UpperBeam).
  • CustomSpinningProfile shaper profile type.