1.9 KiB
1.9 KiB
实现方案:右侧实体切面预览
时间戳:2026-05-08-03-35-22
修改目标
在 Mask 展示 区域新增真实 STL 切割实体预览组件,替代旧的二维示意 Mask,并删除底部导出进度栏。
涉及路径
WebSite/src/components/ReverseWorkspace.tsx工程分析/经验记录.md
技术路线
- 新增
CutSectionPreview组件。 - 组件使用 Three.js 渲染 STL preview 顶点数据。
- 使用 DICOM
physicalSize.depth和total将displayStart/displayEnd映射到 Z 方向两张 clipping plane。 - 当“模型切分”启用时,对 STL 材质应用两张 clipping plane,保留中间实体区域;未启用时展示完整实体模型。
- 复用构件颜色、显示隐藏、模型位姿和高质量实体请求上限。
- 删除旧
mappings假 Mask 形状、MaskMapping类型引用、exportMessage和底部导出进度栏。
数据流或交互流程
- DICOM 范围条更新
displayStart/displayEnd。 FusionThreeView和CutSectionPreview都接收相同范围。CutSectionPreview请求 STL preview,居中、缩放并应用当前模型位姿。- 启用模型切分后,右侧实体预览显示裁切后的 STL 中间段。
兼容性与回滚方案
- 若实体预览性能不满足要求,可降低
detailLimit或回滚到旧 Mask 展示区域。 - 本次不改 API 和数据文件,回滚只涉及前端组件。
风险控制
- 使用
npm run lint验证类型。 - 使用
npm run build验证构建。 - 使用
rg确认旧导出进度、mappings、假 Mask 结构已移除。 - 重启服务并验证 4000 端口。
预计文件变更
- 修改
ReverseWorkspace.tsx。 - 新增本次需求、实现、测试文档。
- 追加经验记录。
人工审核状态
用户已在项目工作流历史中确认后续直接执行,本次不等待二次人工审核。