5.3 KiB
5.3 KiB
Task 4: 最终验证指令
前置条件检查
在开始验证前,确保:
- Demo 已启动:
npm run dev:demo - 浏览器打开 localhost(通常是 http://localhost:5173)
- 3D 引擎已初始化:控制台检查
window.bimEngine?.engine不为 null - 模型已加载:3D 场景中可见 BIM 模型
验证步骤(16 项验收标准)
场景 1: 打开弹窗时(4 项)
操作:点击工具栏的"轴向剖切"按钮
预期结果:
- 弹窗正常显示在容器右下角
- 控制台输出:
[Engine] Activating section axis: x - 视觉确认:模型被 X 轴平面剖切(可见内部结构)
- X 轴是前后方向,模型应该被一个垂直平面切开
- 能看到模型内部的墙、梁、柱等结构
- UI 状态:X 按钮显示为激活状态(高亮或不同颜色)
如果失败:
- 如果控制台输出
[SectionAxisDialogManager] Engine not initialized,说明未调用initEngine() - 如果没有剖切效果,检查模型是否加载完成
场景 2: 切换到 Y 轴(3 项)
操作:点击 Y 按钮
预期结果:
- 控制台输出(按顺序):
[SectionAxisDialogManager] 切换轴向: y [Engine] Deactivating section axis: x [Engine] Activating section axis: y - 视觉确认:模型截面从 X 轴方向变为 Y 轴方向
- Y 轴是上下方向,模型应该被水平平面切开
- 可以看到楼层的横截面
- UI 状态:Y 按钮激活,X 按钮恢复普通状态
控制台验证:
window.bimEngine?.engine.getCurrentSectionAxis() // 应返回 'y'
场景 3: 切换到 Z 轴(3 项)
操作:点击 Z 按钮
预期结果:
- 控制台输出(按顺序):
[SectionAxisDialogManager] 切换轴向: z [Engine] Deactivating section axis: y [Engine] Activating section axis: z - 视觉确认:模型截面变为 Z 轴方向
- Z 轴是左右方向,模型应该被侧面垂直平面切开
- UI 状态:Z 按钮激活,Y 按钮恢复普通状态
控制台验证:
window.bimEngine?.engine.getCurrentSectionAxis() // 应返回 'z'
场景 4: 幂等性测试(1 项)
操作:当前 Z 轴激活,再次点击 Z 按钮
预期结果:
- 控制台输出:
[SectionAxisDialogManager] 切换轴向: z [Engine] Section axis z already active, skipping. - 无额外 API 调用(没有 "Deactivating" 或 "Activating" 日志)
- 视觉效果不变
场景 5: 隐藏按钮(1 项)
操作:点击"隐藏"按钮(眼睛图标)
预期结果:
- 控制台输出:
[SectionAxisDialogManager] 隐藏切换(暂不支持): true/false - 无报错:不应该有 JavaScript 错误
- 视觉效果不变(因为功能未实现)
场景 6: 反向按钮(1 项)
操作:点击"反向"按钮(双向箭头图标)
预期结果:
- 控制台输出:
[SectionAxisDialogManager] 反向剖切(暂不支持) - 无报错:不应该有 JavaScript 错误
- 视觉效果不变(因为功能未实现)
场景 7: 关闭弹窗(2 项)
操作:点击弹窗关闭按钮(X)
预期结果:
- 控制台输出:
[Engine] Deactivating all section axis - 视觉确认:模型恢复完整显示(不再被剖切)
- 工具栏按钮恢复普通状态(不再激活)
控制台验证:
window.bimEngine?.engine.getCurrentSectionAxis() // 应返回 null
场景 8: 边界情况 - 快速切换(1 项)
操作:重新打开弹窗,快速连续点击 X → Y → Z → X
预期结果:
- 每次切换都有正确的控制台日志输出
- 最终状态:X 轴激活
- 视觉效果:模型被 X 轴平面剖切
- 无 JavaScript 错误
控制台验证:
window.bimEngine?.engine.getCurrentSectionAxis() // 应返回 'x'
场景 9: 边界情况 - 重新打开弹窗(额外验证)
操作:关闭弹窗后再次打开
预期结果:
- 默认激活 X 轴(而不是上次的轴向)
- 控制台输出:
[Engine] Activating section axis: x
验证工具
手动 API 测试(可选)
在控制台运行以下命令测试 API:
// 检查引擎实例
const engine = window.bimEngine?.engine;
console.log('Engine instance:', engine);
// 测试激活方法
engine.activateSectionAxis('x'); // 应激活 X 轴
engine.activateSectionAxis('x'); // 应输出 "already active"
// 测试切换
engine.activateSectionAxis('y'); // 应先停用 X,再激活 Y
// 测试停用
engine.deactivateSectionAxis(); // 应停用所有剖切
// 检查状态
console.log('Current axis:', engine.getCurrentSectionAxis()); // null
成功标准
✅ 所有 16 项验收标准通过
✅ 控制台无 JavaScript 错误
✅ 日志输出顺序正确
✅ 视觉效果符合预期
如果发现问题
记录以下信息:
- 场景编号和操作步骤
- 实际结果(控制台输出、视觉效果)
- 错误信息(如果有)
- 浏览器和版本
将问题记录到 .sisyphus/notepads/section-axis-integration/issues.md