Commit Graph

137 Commits

Author SHA1 Message Date
6ef866d1dc fix: 路径切换保留 lift 避免物体浮空,物体参数同步优先读 AABB 缓存
路径切换问题:
- 切换路径时 lift 被重置为 0,GetAnimatedObjectGroundContactHeight
  用 correction 投影算出错误高度(~4.27m),物体浮空
- 改为保留 lift(离地高度不变),路径切换后物体保持正确位置

可视化宽度问题:
- 路径切换后物体参数同步(SyncAnimationViewObjectParameters)
  调用 TryGetCurrentRouteRealObjectPlanarProjectedExtents,
  用 correction 投影算失真尺寸覆盖正确值
- 改为优先读 AnimationControlViewModel 的 _autoAabbSx 缓存
  (由 MeasureXAlignedAabbAndSetCache 实测得到)
- 新增 TryGetCachedAabbSizes 公开缓存给外部
2026-06-28 12:50:28 +08:00
ea0ea1c3ca refactor: remove old 2-click installation point code
- Remove ExecuteSelectAssemblyInstallationPointAsync
- Remove OnAssemblyInstallationMouseClicked
- Remove BeginAssemblyInstallationSelection
- Remove BuildAndRenderAssemblyInstallationReference
- Single-click '选安装面' is now the only way
2026-06-09 02:57:45 +08:00
d3b2906169 feat: add FailureReason to FaceInferResult for specific error messages
- FaceInferToolPlugin now returns specific reasons: '未命中模型' or '表面过窄'
- ViewModel handlers show FailureReason instead of generic '未命中有效表面'
- Catch exceptions still pass through BuildFromFaceNormal error messages
2026-06-09 02:53:41 +08:00
cd05553dd9 fix: remove all generic/instructional text from error dialogs
- Keep only the actual error reason, no '请先...' guidance
- Each condition shows its specific cause, exceptions pass through raw
2026-06-09 02:48:33 +08:00
5be6dfdaf3 fix: split ambiguous failure message in OnInstallationFaceInferred
- Separate 'no terminal object' from 'invalid pick' case
- Remove misleading '请先取端面' from surface pick failure
2026-06-09 02:42:51 +08:00
6a1318602e fix: pass through exception message directly instead of generic wrapper
- BuildFromFaceNormal already provides specific error like '面法向与光轴平行'
- Catch now shows raw ex.Message instead of prefixing with generic text
2026-06-09 02:40:35 +08:00
9e1056b92c feat: add DialogHelper.ShowStatusAndDialog for unified status+dialog feedback
- Replaces scattered UpdateMainStatus + ShowAutoClosingMessageBox calls
- Accepts Action<string> callback for ViewModel status bar update
- Applied to all end face and installation face failure handlers
2026-06-09 02:36:21 +08:00
6b78b851db refactor: rename to remove 'Quick' prefix after old method removal
- QuickAnalyzeAssemblyEndFaceCommand → AnalyzeAssemblyEndFaceCommand
- CanQuickAnalyzeAssemblyEndFace → CanAnalyzeAssemblyEndFace
- BeginAssemblyEndFaceQuickPick → BeginAssemblyEndFacePick
- OnQuickEndFaceInferred → OnEndFaceInferred
2026-06-09 02:06:44 +08:00
0fe7179494 refactor: replace 3-click end face detection with single-click FaceInferTool
- Remove '找端面' button and all 3-click logic
- Keep single-click '取端面' button only
- Remove: AnalyzeCurrentAssemblyEndFace, BeginAssemblyEndFaceSelection,
  OnAssemblyEndFaceMouseClicked, ExecuteAnalyzeAssemblyTerminalFaceAsync
- Retain CleanupAssemblyEndFaceSelection (shared with quick pick)
2026-06-09 02:04:54 +08:00
01195434b7 fix: use ancestor chain check for pick item matching terminal object
- PickItemFromPoint returns leaf geometry, not the parent container
- Check if pickItem is terminalObject or its descendant via AncestorsAndSelf
2026-06-09 01:58:09 +08:00
16bf5cc10e feat: integrate FaceInferToolPlugin with Rail assembly end face detection
- Add '快速取端面' button in Rail assembly workflow
- Single click → FaceInferToolPlugin → AssemblyEndFaceAnalyzer.Analyze(hitPoint, normal)
- Replaces 3-click manual seed point workflow
2026-06-09 01:53:36 +08:00
6b8bae2afc fix: clear all IsSelected flags after export to prevent stale selections
- Added finally block to reset IsSelected on all PathRoutes
- Prevents multi-select state from leaking into subsequent single exports
2026-06-04 21:36:52 +08:00
897280bb3f fix: show concatenated path names as dialog filename for multi-select export
- Single: path name as default filename (unchanged)
- Multi: semicolon-separated names as hint, each file still saved individually
2026-06-03 21:16:52 +08:00
1beaa7b24d Revert "fix: use folder dialog for multi-select export, file dialog for single"
This reverts commit 6d14d1d26f.
2026-06-03 21:16:28 +08:00
6d14d1d26f fix: use folder dialog for multi-select export, file dialog for single
- Single selection: SaveFileDialog with path name as default filename
- Multi selection: FolderBrowserDialog to pick output directory
- Export format: XML for multi (simpler UX), selectable for single
2026-06-03 21:11:41 +08:00
ac2de23e32 feat: support multi-select and batch export in path list
- DataGrid: SelectionMode Extended with RowStyle IsSelected binding
- PathRouteViewModel: add IsSelected property
- Export: iterates selected paths, saves each to separate file
- Ctrl/Shift+click to multi-select, then Export button batches them
2026-06-03 21:06:32 +08:00
0967f7a9bc feat: show renamed count in import result dialog
- Add RenamedCount to ImportPathResult
- Track per-file and aggregate across multi-file imports
- Dialog now shows '重名自动重命名: N 个路径' when applicable
2026-06-03 20:29:28 +08:00
27ab485558 fix: use DialogHelper.ShowAutoClosingMessageBox for import result dialog
- 5s auto-close, test automation mode skips dialog
- Consistent with existing project patterns
2026-06-03 20:25:15 +08:00
ab0b5760d8 feat: show import result dialog after multi-file import 2026-06-03 20:22:58 +08:00
5692fde956 feat: rename export button, support multi-file import
- Rename '导出选中路径' to '导出', move before '导出全部'
- Import dialog: enable MultiSelect, loop through all selected files
- Aggregate import results across files
2026-06-03 20:17:19 +08:00
56a1ef55f4 0.15.3: misc fixes - rail helper cleanup, screenshot + button, database version 2026-05-30 19:15:34 +08:00
454f1e6584 Fix auto path grid restore and validation 2026-04-26 19:11:03 +08:00
e21e934705 Add rail preferred normal repair script 2026-04-04 10:58:29 +08:00
7058e5fd23 Add hoisting layer height editing 2026-04-02 22:37:16 +08:00
4ec4cf77ee Refine path viewpoint behavior and config editing 2026-04-02 22:14:26 +08:00
e71ea81cdf Fix rail assembly normals and tighten rail camera 2026-04-01 20:12:57 +08:00
2e0b26e032 Refine rail assembly workflow and viewpoint strategies 2026-04-01 10:47:34 +08:00
c3b103c159 Add explicit exit for rail assembly workflow 2026-03-31 23:38:47 +08:00
c9744699b1 Separate rail creation and edit assembly flows 2026-03-31 13:41:15 +08:00
1d71d36e5f 修复rail路径的编辑状态问题 2026-03-30 22:13:16 +08:00
115d70db66 Add rail start point repositioning 2026-03-28 14:45:24 +08:00
e4788c17a3 Improve rail path installation point editing 2026-03-28 13:54:48 +08:00
95500c9717 修改部分日志级别为Debug 2026-03-28 12:42:54 +08:00
7db5a7a201 Add path duplication workflow 2026-03-28 12:36:24 +08:00
a5d1db6416 Refine collision analysis dialog and rail assembly markers 2026-03-26 22:49:45 +08:00
2b6f54898a Fix rail assembly anchor alignment 2026-03-26 13:37:33 +08:00
3a5693a453 Add rail mount placement controls and persistence 2026-03-26 01:01:01 +08:00
921dc07856 Fix ground real-object forward axis and compensation 2026-03-25 17:19:21 +08:00
1cf4fe5967 Align terminal rail normals and object space rendering 2026-03-23 12:25:00 +08:00
93ad55c725 Refine assembly installation workflow UI 2026-03-22 23:58:11 +08:00
70aaff10bf Add assembly end-face guided optical axis 2026-03-22 19:45:09 +08:00
5e7f9bdf51 Finish assembly route generation cleanup 2026-03-22 13:06:08 +08:00
8f55b5e9a1 Fix YUp hoisting path rendering and finish sync 2026-03-22 12:21:25 +08:00
c53db7a6fd Finalize canonical rail coordinate integration 2026-03-21 19:19:13 +08:00
3fd184934b Establish canonical coordinate framework with tests 2026-03-21 06:10:34 +08:00
c9a926356c 修改终端安装仿真UI,升级数据库版本号 2026-03-20 15:22:58 +08:00
5847ba9ab3 Fix rail assembly pose and animation flow 2026-03-20 11:13:43 +08:00
9adf9b5baf Fix assembly reference rod and start-point path creation 2026-03-19 23:12:49 +08:00
a55ef42f71 Add linear assembly reference path and rod alignment 2026-03-19 22:00:04 +08:00
0c83c73917 feat: add linear assembly rail path workflow 2026-03-19 00:18:24 +08:00