diff --git a/doc/bugfixes/数据库兼容性_剖面盒导出修复报告.md b/doc/bugfixes/数据库兼容性_剖面盒导出修复报告.md index 38b6cf5..adccd3d 100644 --- a/doc/bugfixes/数据库兼容性_剖面盒导出修复报告.md +++ b/doc/bugfixes/数据库兼容性_剖面盒导出修复报告.md @@ -5,6 +5,7 @@ 1. 打开旧版本数据库时崩溃(schema 不兼容) 2. NWF 多文档剖面盒导出时,无命中子树泄露到导出文件 3. 反复剖面盒导出后崩溃(COM 跨线程访问) +4. 导出后剖面盒被关闭,状态栏按钮不同步 --- @@ -84,3 +85,21 @@ Navisworks COM API 要求 STA 线程访问,跨线程调用在少量使用时 | `src/UI/WPF/ViewModels/LayerManagementViewModel.cs` | 去掉两处 `Task.Run` | | `deploy-plugin.bat` | `powershell` → `pwsh`(兼容环境) | | `AGENTS.md` | 补充编译/部署调用方式说明 | +| `src/Utils/SectionClipHelper.cs` | 新增 `RestoreClipBox` 公开方法 | + +--- + +## 问题四:导出后剖面盒被关闭,状态栏按钮不同步 + +### 现象 +导出剖面盒后,Navisworks `ExportToNwd` 内部会关闭剖分功能,但状态栏两个剖面盒图标按钮仍保持激活状态。 + +### 根因 +`ExportToNwd` 是 Navisworks 内部行为,绕过我们的 `SetClipBoxState`。ViewModel 的 `IsClipBoxEnabled`/`IsSelectionClipBoxEnabled` 未感知到变化。 + +### 修复 +**VisibilityHelper.ExecuteWithPrecomputedHiddenItems:** +导出前用 `SectionClipHelper.IsClipBoxEnabled` + `TryGetCurrentClipBox` 保存剖面盒状态,导出后检查并在被关闭时恢复。 + +**SectionClipHelper:** +新增 `RestoreClipBox(BoundingBox3D)` 公开方法。