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
- Object Management Menu Button
- file extension is MachiningToolHouse
- The pointed Editor Panel is Tool List
- Title Label
- Object Management Menu Button
- 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
- Head Line
- Selected Tool Editor Panel
- Viewer Panel
- Viewer ToolBar
- Title Label
- RenderingCanvas Tool Bar
- EditorDisplayee Options ToolBar
- EditorDisplayee Options Menu Dropdown
- Head Label: Cutter
- Show Cutter CheckBox
- (Options of MillingCutterEditorDisplayee)
- Shape Mode SubMenu
Set ShapeMode to Solid Bounding Shape if EnablePhysics is false on GUI initialization.
- Solid Bounding Shape Ratio Button
- Detail Physics Shape Ratio Button Visible if EnablePhysics is true.
- Shape Mode SubMenu
Set ShapeMode to Solid Bounding Shape if EnablePhysics is false on GUI initialization.
- (spliter)
- Head Label: Holder
- Show Holder CheckBox
- (Options of HolderEditorDisplayee)
- Show Geometry Anchor CheckBox
- Show Spindle Buckle CheckBox
- Show Cutter Buckle CheckBox
- Rendering Mode SubMenu
- Solid CheckBox
- Edge CheckBox
- Hide CheckBox
- EditorDisplayee Options Menu Dropdown
- RenderingCanvas
- Viewer ToolBar
- Tool List Panel
The panel has CRUD (and Duplicate) of the tools. Read and Update the selected tool by the Selected Tool Editor 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:ObservationAnchorReferenceenum 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 +FreeContourTraychild 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 backingCylindroidvia the reusableCylindroidEditor.vue.wwwroot-src/src/api/toolHouse.ts— typed wrapper overToolHouseController(CRUD + Initialize / SelectTool / EnsureCutter / shaper profile / contour tray / holder /FreeContourCRUD / opt-limit / general) andToolHouseDisplayController(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, andFreeContourTraychild 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.