3.3 KiB
3.3 KiB
实现方案 - 2026-05-07-18-11-12
修改目标
- 修复项目库构件层级眼睛按钮。
- 为构件层级增加可编辑 ID。
- 左侧导航新增
模型库。 - 逆向工作区将
分割 Mask替换为可视化工具栏,并加入模型显示、整体位姿保存/选择、构件层级。
涉及路径
WebSite/src/types.tsWebSite/src/App.tsxWebSite/src/components/Sidebar.tsxWebSite/src/components/ProjectLibrary.tsxWebSite/src/components/ReverseWorkspace.tsx
技术路线
1. 左侧新增模型库
- 在
ViewType中新增MODELS。 - Sidebar 增加
模型库导航项。 - App 中点击
模型库时复用ProjectLibrary,但通过initialViewMode="model"默认进入 3D 模型页。
2. 项目库构件层级眼睛修复与 ID
ModuleStyle增加partId。- 初始化构件层级时按文件顺序写入
partId=index+1。 toggleModuleVisibility()明确保留partId/color/opacity,只切换visible。- 构件眼睛按钮阻止冒泡,避免父级点击干扰。
- 每个构件显示
ID输入框,输入值限制为 1 到 255 的整数。
3. 逆向工作区可视化工具栏
- 将标题
分割 Mask改为可视化工具栏。 - 增加模型显示档位:标准、精细、超精细、实体。
- 增加整体位姿保存/选择:
- 默认预设:默认、俯视、侧视。
- 用户可保存当前位姿为
位姿N。 - 选择后更新
modelPose。
- 增加构件层级:
- 眼睛显示/隐藏。
- 颜色。
- 透明度。
- ID 1 到 255。
- 将逆向工作区 Three.js 模型加载逻辑接入构件样式和显示档位。
数据流或交互流程
- 用户进入
模型库或项目库 3D 模型页。 - 构件样式状态按 STL 文件初始化。
- 用户点击眼睛按钮,前端更新对应构件
visible,Three.js 重新加载/渲染可见构件。 - 用户修改 ID,前端 clamp 到 1 到 255 并显示。
- 用户进入逆向工作区,工具栏显示模型显示、位姿预设、构件层级。
- 用户保存或选择整体位姿,融合视角模型位姿更新。
兼容性与回滚方案
模型库复用项目库,不新增后端路由。- 构件 ID 仅在前端状态中使用,若后续需要持久化可再扩展后端项目状态。
- 若逆向工作区工具栏过长,可后续拆成 tabs 或折叠区。
预计文件变更
types.ts:新增 ViewType。Sidebar.tsx:新增导航项。App.tsx:支持模型库视图和 ProjectLibrary 初始 tab。ProjectLibrary.tsx:构件 ID、眼睛修复、初始 viewMode 参数。ReverseWorkspace.tsx:可视化工具栏与模型样式/位姿预设。
人工审核状态
- 本次免二次确认,方案写入后直接执行。
执行结果
- 已新增左侧导航
模型库,默认进入项目库的 3D 模型页。 - 已为项目库构件层级增加
ID输入,默认 1 到 N,输入限制为 1 到 255。 - 已修正项目库构件眼睛按钮切换时保留颜色、透明度、ID 状态。
- 已将逆向工作区
分割 Mask改为可视化工具栏。 - 已在可视化工具栏加入模型显示档位、整体位姿保存/选择、构件层级。
- 已将逆向工作区融合视角的 STL 加载接入构件显示、颜色、透明度和模型显示档位。