Files
linuxcncWebWASM/docs/glb-machine-manager/05-验收证据.md

15 KiB
Raw Blame History

验收证据

E01 / R01 / 文档与基线

  • 状态:verified。
  • 文档目录:docs/glb-machine-manager/。
  • 基线能力:现有整机 GLB 导入、严格 URDF、几何参数重载和 WASM 关节投影保留。
  • 实现和运行证据见 E02–E04。

E02 / R02 / 开发源浏览器闭环

  • 命令:PLAYWRIGHT_MODULE=/home/mes006/.npm/_npx/e41f203b7505f1fb/node_modules/playwright/index.mjs node scripts/test_machine_manager_browser.mjs
  • report_id:GLB-MGR-E01
  • 报告:coverage/glb-machine-manager/browser.report.json
  • SHA-256:a24ae854c1817f13b2c6c4fc03d33b855952e92eaa54f900482eaba9f3acd6de
  • 状态:verified;浏览器错误 0。
  • 覆盖:8 部件导入和预览、原点显隐、数值/TransformControls 变换、组合 GLB 导出、AC/BC 应用、底座 userData、物理零点、非法层级拒绝、BC 五轴程序。
  • 截图:
    • coverage/glb-machine-manager/manager-ac-config.png,SHA-256 ddfc10ebc03d0c72860ce4f21a3c7e290f9c8eeaa9dcaa97ff0a1c8b3e2bc860
    • coverage/glb-machine-manager/managed-bc-running.png,SHA-256 f05cd2f3701c68fe82c5c57d6aa92b54c92d6783d1a395efb5fe96ec5a9bfe4f

E03 / R02 / 生产构建浏览器闭环

  • 构建:npm --prefix web/react run build,通过;只有既有大 chunk 提示。
  • 命令:MACHINE_MANAGER_SOURCE_MODULES=0 ... node scripts/test_machine_manager_browser.mjs
  • report_id:GLB-MGR-E02
  • 报告:coverage/glb-machine-manager/browser-production.report.json
  • SHA-256:9549e8e731803c86780b1113afda3adb78e8846626bf4b6006d8c9241ac457a9
  • 状态:verified;生产资产执行 AC/BC UI 应用和 BC WASM 程序运动,浏览器错误 0。

E04 / R02 / 回归与静态契约

  • node scripts/test_axis_control_inventory.mjs:verified,114 个文档化控件。
  • node web/react/src/test_dual_canvas_contract.mjs:verified。
  • node web/react/src/test_xyzac_threejs.mjs:verified。
  • npm --prefix web/react run typecheck:通过。
  • node scripts/test_glb_machine_motion.mjs:verified;报告 coverage/glb-machine-manager/regression-motion/motion.report.json,SHA-256 91c3fa8ed8037aac8e71b8c76d54c38db9dc011ae25f63553966860b624aa626。AC/BC 各 41 个同时五轴变化 tick、42 个样本,最大误差分别约 2.26e-16、2.48e-16。
  • git diff --check:通过。
  • scripts/validate_glb_machines.mjs 未重跑:本地缺少 gltf-validator 包;旧示例 GLB 未修改,历史 Khronos 校验报告仍为 verified。该依赖边界不影响新管理器的浏览器导入、导出和运行证据。

E05 / R03 / MILL700 PBR 预览照明

  • 状态:verified。
  • 命令:PLAYWRIGHT_MODULE=/home/mes006/.npm/_npx/e41f203b7505f1fb/node_modules/playwright/index.mjs node scripts/test_machine_manager_mill700_browser.mjs
  • 模型:MILL700-U_1.glb,9,418,852 bytes,SHA-256 bf37130681cc6462412e52744519516e8ade2a3212dd69153c0b1b3e415bcf66。
  • report_id:GLB-MGR-E05;报告 SHA-256 09fd47f80dd2f741aa1d585ce5b1b40c2ff32e211b7b6e08b1b0da18327d798e。
  • 结构:132 节点、126 网格、深度 6、126 材质,其中 110 个 metalness >= 0.9。
  • 检查:已有内部层级完整保留;管理器使用 studio-pmrem、sRGB 输出、ACES、曝光 1.45 和多向补光;浏览器错误为 0。
  • 截图:coverage/glb-machine-manager/mill700/mill700-studio-lighting.png,SHA-256 98aa3915cc80255467c6be42d40da685ef43d4ed91441ec051e1830a8d5fafd4。

E06 / R04 / Z-up 坐标

  • 状态:verified。
  • 检查:管理器预览 DOM 标记 data-machine-manager-coordinate-system=machine-z-up、data-machine-manager-camera-up=0,0,1、data-machine-manager-axis-map=X:x,Y:y,Z:z 和 data-machine-manager-model-transform=none-on-import;MILL700 截图中蓝色 Z 轴竖直,机床 XY 网格水平,导入模型信息未被改写。
  • AC/BC 管理器浏览器闭环、MILL700 浏览器闭环、TypeScript、生产构建和控件契约继续通过。

E07 / R05 / GLB 层级树管理

  • 状态:verified。
  • MILL700:132 节点、126 网格、最大深度 6,全部树节点存在;树默认根展开、子层可折叠。
  • 节点选择:MILL700-A-主轴-JT2 显示相对父节点原点 -3.969 / -204.276 / 405.633 mm。
  • 拖放:MILL700-A-门1-JT1 拖到 MILL700-A底座 后,草稿父路径等于目标稳定源路径;原始 GLB SHA-256 保持 bf37130681cc6462412e52744519516e8ade2a3212dd69153c0b1b3e415bcf66。
  • 八个独立 GLB 的根树节点拖放通过;随后 AC/BC 应用、导出和程序运动回归仍通过。
  • 控件契约:114 个控件,包含节点相对位置/姿态输入 machine-manager-translation、machine-manager-rotation;TypeScript、生产构建、双画布测试通过,浏览器错误 0。

E08 / R06 / WebGL framebuffer 稳定性

  • 状态:verified。
  • 触发环境:页面 viewport 1154x220,deviceScaleFactor 3,模拟底部停靠 DevTools 和高 DPI。
  • 修复后:管理器 CSS 656x655,drawing buffer 984x982,MAX_RENDERBUFFER_SIZE=8192,MSAA=false,控制台 warning/error=0。
  • renderer 诊断字段:machine-manager-webgl-antialias=false、render-state=ready、动态 pixel-ratio/buffer-size/max-buffer。
  • MILL700 132 节点树选择/拖放通过;生产 AC/BC 管理器闭环通过,浏览器错误 0。

E09 / R07 / MILL700 层级运动验证

  • 状态:verified。
  • 绑定:主轴-JT1→X、主轴-JT2→Y、主轴-JT3→Z、工作台-JT1→A、工作台-JT2→C。
  • 输入:X=10 mm、Y=20 mm、Z=30 mm、A=15°、C=45°。
  • 结果:XYZ 局部增量依次为 0.01/0.02/0.03 m;A/C 局部旋转增量为 15°/45°;C 世界位置和世界四元数受 A 父节点影响,证明层级联动有效。
  • 生命周期:输入和树操作期间 context-generation=1;warning/error=0。删除后部件数和树节点数均为 0。
  • 完整变换样本保存在 coverage/glb-machine-manager/mill700/browser.report.json 的 motion.baseline/driven。

E10 / R08 / 选中关节局部坐标系

  • 状态:verified。
  • MILL700 选择 MILL700-A-主轴-JT2 后,预览发布稳定源路径,selected-joint-axes=local-xyz。
  • 三轴箭头组的局部 position=(0,0,0)、quaternion=identity,父对象为所选 GLB 节点;X 红/Y 绿/Z 蓝且按整机尺寸缩放,表示关节自己的局部轴并继承完整父链。
  • 节点选择和轴值驱动期间 context-generation=1,浏览器 warning/error=0。

E12 / R10 / 部件节点相对父级变换

  • 替代 E11 的根节点测试结论;本轮同时验证内部关节及其父、兄弟、子节点。

  • MILL700 命令:PLAYWRIGHT_MODULE=/home/mes006/.npm/_npx/e41f203b7505f1fb/node_modules/playwright/index.js MACHINE_MANAGER_URL=http://127.0.0.1:5180/ node scripts/test_machine_manager_mill700_browser.mjs。

  • MILL700 report_id:GLB-MGR-E05;报告 SHA-256:3555f9efe0cebba79a0bec8afbff8a4a44cc1278d0f36ff737fae9a74e18b9e1。

  • MILL700:先验证根节点 X 平移 100 mm、Z 旋转 20°;再选择内部节点 MILL700-A-主轴-JT3,输入相对父级 X=120 mm、Z 从 368.925 mm 减少到 324.925 mm、RZ=25°,预览发布的 selected transform 为 local X=0.120 m、local quaternion 对应 25°;132 节点、126 网格和局部坐标系检查继续通过,浏览器 warning/error=0。

  • AC/BC 生产回归命令:PLAYWRIGHT_MODULE=/home/mes006/.npm/_npx/e41f203b7505f1fb/node_modules/playwright/index.js MACHINE_MANAGER_SOURCE_MODULES=0 MACHINE_MANAGER_URL=http://127.0.0.1:5180/ node scripts/test_machine_manager_browser.mjs。

  • AC/BC report_id:GLB-MGR-E02;报告 SHA-256:9549e8e731803c86780b1113afda3adb78e8846626bf4b6006d8c9241ac457a9;浏览器错误 0。

  • 8 部件验证:根部件输入 X 平移 10 mm、Z 旋转 15° 后,预览中的根节点位置和姿态变化;应用生成的 geometry userData 保存 translationMm[0]=10、rotationDeg[2]=15,随后 XYZAC 切换 XYZBC 和 BC 五轴 WASM 程序运行通过。

  • 截图:coverage/glb-machine-manager/mill700/mill700-studio-lighting.png,SHA-256 98aa3915cc80255467c6be42d40da685ef43d4ed91441ec051e1830a8d5fafd4;AC 配置 coverage/glb-machine-manager/manager-ac-config.png,SHA-256 ddfc10ebc03d0c72860ce4f21a3c7e290f9c8eeaa9dcaa97ff0a1c8b3e2bc860。

  • 新增内部网格验收:mesh_0 相对父级 X=35 mm、RZ=30°;根部件仍为 X=10 mm、RZ=15°。直接解析导出 GLB 的节点 translation/rotation 并检查应用后 nodeTransforms 元数据,均一致。

  • JT3 的父、兄弟、子节点编辑前后位置与四元数记录于 MILL700 报告的 nodeEditing;验证重选、重开对话框、编辑后换父级和再次输入。

  • 线上 E12:https://49.232.250.35:58015/ 已发布代码 91ebd56,资源 assets/index-CJLtuazD.js。以线上 URL 重跑 MILL700(含父/兄弟节点隔离、子节点继承、换父级和重开对话框),全部通过、浏览器错误 0。发布报告:coverage/glb-machine-manager/parent-transform-deployment.report.json(GLB-MGR-E12-CLOUD)。

E13 / R11 / 单自由度、JSON 与实时轴映射

  • 数学与错误边界:node scripts/test_machine_joint_model.mjs;GLB-MGR-E13-MATH,报告 coverage/glb-machine-manager/joint-dof/math.report.json。验证父级旋转、非单位零姿态旋转、正负号、mm/deg、物理零点、100 次更新无累积、错误 JSON、缺失轴值整帧拒绝。

  • 完整浏览器命令:MACHINE_MANAGER_URL=http://127.0.0.1:5180/ node scripts/test_machine_joint_dof_browser.mjs;GLB-MGR-E13,报告 coverage/glb-machine-manager/joint-dof/browser.report.json。

  • AC/BC 分别导入 MILL700,五个关节独立绑定;Z 轴改方向并反向,固定节点锁定,无六分量输入和自由操纵器;重复轴拒绝,子节点继承、父兄节点保持不变。

  • 导出 JSON 与 GLB 场景 extras、实际床身底座 extras 内容一致;GLB 重新导入管理器恢复方向和物理零点,标准“导入机床模型”也可载入;单 GLB 可应用到控制面板。

  • 同时五轴程序:M428; G21 G90 G94 G17 G40 G49; G1 X20 Y10 Z10 A/B20 C30 F120; G1 X-10 Y-5 Z-5 A/B-10 C-20 F120; M2。每种机型采样 8 个不同渲染 tick,逐轴校验实际 WASM 关节值减物理零点、方向符号及父级局部运动。

  • 示例:coverage/glb-machine-manager/joint-dof/xyzac.json、xyzbc.json;截图 xyzac-live.png、xyzbc-live.png;Schema 用 Python jsonschema 对两份实例验证。

  • 八个独立部件回归:scripts/test_machine_manager_browser.mjs 已更新单自由度 UI;生产和源模式均通过,旧 URDF 驱动兼容性检查保留。

  • 控件清单 115 项;双画布、XYZAC Three.js 契约、TypeScript 和生产构建通过。

  • E13 最终状态:verified。XYZAC/XYZBC 各 8 个不同渲染 tick,五个轴均发生变化;浏览器 warning/error=0。此前 E01–E12 为历史验证记录,本次现行输入契约以 E13 为准。

E13 文件 SHA-256
joint-dof/browser.report.json 7b92b906fcdce8f30a9d22e0a8f9ac116b2fd3ebe3b5eef60aa770d134d7f6b7
joint-dof/math.report.json ea994774e16ea5b506d028c8f7bcd3ff19fe8d3e2514aaa8447b870738fb07f4
joint-dof/controls.report.json 03a734e9a9b09610818a010dea90eb9ba196b01dfbd3c9e4d21501c8baa0f6c8
joint-dof/xyzac.json 99fa305279f05a331916138274c1bc1586ca4d4bdc93a1e34848fee160fe3fda
joint-dof/xyzbc.json 5e59370657eff67156f4a6338897e35e73c0b3bd3f955345a2698b05b88ea522
joint-dof/xyzac-live.png 6e4574082a11703c2b537e452aad039293100bb22a6420c2b7551d02ffef44fe
joint-dof/xyzbc-live.png 51fcd171ac07ad67ef6c1d733c098f24e1938474e1de2c1322701eb33ed49647
  • E13 发布:功能代码 d848864,线上资源 assets/index-DZs5acdt.js,https://49.232.250.35:58015/。线上八部件 AC/BC 单自由度配置、GLB 导出应用与 BC WASM 程序回归 verified、浏览器错误 0;MILL700 完整五轴/JSON 往返验收为同一生产构建的本地浏览器测试。发布报告 joint-dof/deployment.report.json(GLB-MGR-E13-CLOUD)。

E14 / R12 / 工程化工作台体验

  • 命令:node scripts/test_machine_manager_workbench.mjs。

  • report_id:GLB-MGR-E14;报告:coverage/glb-machine-manager/workbench/browser.report.json;SHA-256:5be35a6bac22b90854f6d001400ceec48b92f2060e2b2edaeb8f80e5fb3bc4eb。

  • 覆盖:深层节点搜索、搜索展开、轴总览定位、撤销/重做、空数值输入校验、TRT 非法偏置阻止应用/导出、视图预设、删除撤销、坏文件批量导入保护、实时跟随锁定、桌面/矮窗口/窄窗口布局。

  • 截图:workbench/desktop.png SHA-256 876c2cf6d1edf7093752510561973117f8de9b99ac48a14654aee9527b07d533;workbench/viewport-1154.png SHA-256 90a32870ff473e05aee4caeb2cc84cc0c3144882463893b2ac5fc2e4b95efbc1;workbench/viewport-720.png SHA-256 7ca1f6010a51274659d663fb72f85c5216de869746976db33c5c007e47a6d964。

  • 数学历史测试:node scripts/test_machine_manager_history.mjs,GLB-MGR-E14-HISTORY verified。

  • 最终回归:workbench/xyzac-regression.report.json、xyzbc-regression.report.json 均 verified,各 8 个运动 tick,含模型 JSON/GLB 往返、轴符号、零点、实时跟随和五轴运动。输入框选中切换使用绘制前同步,重复填值不会拼接。

  • 线上 https://49.232.250.35:58015/ 已发布功能代码 a7233bc,资源 assets/index-nddrUCCV.js;E14 工作台完整回归 verified,浏览器错误 0。发布证据:workbench/cloud.report.json、workbench/deployment.report.json。

E15 / R13 / 对话框机型与保存整机

  • node scripts/test_machine_manager_type.mjs:GLB-MGR-E15 verified;在 AC 控制面板下设计 BC、机型切换/撤销/重做、工作区不覆盖草稿、完整机床打开恢复、直接应用及标准 GLB 导入自动切换为 BC。
  • JOINT_TEST_OUTPUT=.../coverage/glb-machine-manager/machine-type/mill700 SAVE_MACHINE_MODELS=.../coverage/glb-machine-manager/machine-type/saved-models node scripts/test_machine_joint_dof_browser.mjs:MILL700 AC/BC 各 8 个动态 tick,验证 GLB 保存/重开/导入、标定、轴映射、单自由度及实时跟随,浏览器错误 0。
  • 八部件生产回归、工作台布局/撤销/搜索回归、类型检查、构建、机型历史、控件契约 134 项和双画布检查通过。
  • 保存入口下载前用 inspectMachineGlb 校验完整 GLB;所有测试机型通过标准“导入机床模型”。
文件(相对 coverage/glb-machine-manager/machine-type) SHA-256
browser.report.json 222c43f2ef36d28f31171773efe2cbe49eff383e766c5086f18bac5bae62047a
dialog-type.png c24f8b3fd445cf5e886b8189e13e0830e6fecf341e57499e7cf73528fd803b9d
controller-import.png 071f8d9a9ac4ac85fe64bfcd51f1fb605112515eb4aaa0e00ceacd539347d67b
mill700/browser.report.json 05fb403ef854aba37c1ab64e0334a843d4839a6c2ce559031d25589a68346f3a
saved-models/MILL700-xyzac.glb 25ba366a6550c3a613a63623b8e25216d5a3a6dd2781b69481d80d0bb87033e4
saved-models/MILL700-xyzbc.glb 3b87cb8504815c13127608c513eacb3536e1be1c10f9a58fcd59920939fbe0c1
  • E15 线上验证通过:https://49.232.250.35:58015/,代码 338500d,资源 index-C8kh60HL.js;独立选型、切换撤销、保存完整 GLB、标准导入自动切换及物理零点恢复全部 verified、浏览器错误 0。报告 machine-type/cloud.report.json、machine-type/deployment.report.json。