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

19 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 5f45884a75acf14d7a3ecff6a9a50b306842216cb2c26f91d44a781aff3f0073
dialog-type.png c24f8b3fd445cf5e886b8189e13e0830e6fecf341e57499e7cf73528fd803b9d
controller-import.png 071f8d9a9ac4ac85fe64bfcd51f1fb605112515eb4aaa0e00ceacd539347d67b
mill700/browser.report.json 7f5c87b1a2d5491242aa87248d0cb4085e5d849065520ad56e4e64c6453216b2
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。

E16 / R14 / 机型与 G 代码一致性

  • node scripts/test_machine_program_compatibility.mjs:TRT-PROGRAM-COMPAT-BROWSER verified;AC→BC 与 BC→AC 标准模型导入同步默认程序、管理器应用同步、改名错误轴文件拒绝、编辑器重载拒绝、同机型保留通用程序、回零后 BC 执行 BC 程序;浏览器 warning/error=0。
  • node web/worker/test_trt_program_compatibility.mjs:TRT-PROGRAM-COMPAT-WORKER verified;两机型分别检查零值/参数轴指令、忽略注释与参数名称、加载拒绝不替换旧程序、旧状态 RUN/STEP/RESUME 拒绝、允许通用程序。
  • 回归:test_rtcp_program_catalog_load.mjs(11 个主程序);test_xyzac_program_replace.mjs;test_xyzac_step_flow.mjs,全部 verified。TypeScript 和生产构建通过。
证据(相对 program-compatibility) SHA-256
browser.report.json 5f45884a75acf14d7a3ecff6a9a50b306842216cb2c26f91d44a781aff3f0073
worker.report.json 986fb9e127894aaf477ac6e5879c06b7084a112c840549532d39fdd6d3e8694e
catalog.report.json ff2e32be3b006e2d8de902012ed89724aada54c425503027ae5e027eaf9cafe2
replace.report.json fe92778b144b226cea1e91393d10e4905cfd5becf56ba9b3021b5842514c8aa7
step.report.json a109eceb646fe5b974c3ac668150c19d2bbedfc2c59dd9ee702fdad46402738d
bc-running.png 2d4f3a6e64a230155b761df4ef15db81b99b5664e8f5d9c71857e30939ac691a
  • node web/worker/test_boat_trt_programs.mjs:AC/BC 船形程序均完整运行至 completed;报告 program-compatibility/boats.report.json。

  • E16 已发布 0de96bb,线上资源 index-VAG1dzJ6.js。线上重复 AC↔BC 模型导入/管理器应用、错误轴加载拒绝、同机型保留和 BC 运行,全部 verified、浏览器错误 0;program-compatibility/cloud.report.json、deployment.report.json。

E17 / R15 / 文件保存与编辑文档恢复

  • node scripts/test_machine_document_browser.mjs:GLB-MGR-E17 verified。测试命名保存、浏览器库原子保存、刷新再打开八个部件、层级覆盖/轴反向/显隐/原点辅助/标定/说明逐项恢复;二次保存的三个元数据对象完全等价。
  • 显式磁盘打开、库再次下载字节一致、删除仅影响副本、损坏编辑数据拒绝且保持现有草稿、控制面板标准导入再回到编辑器、旧文件兼容、存储故障时继续下载并显示失败信息全部通过;浏览器错误 0。
  • JOINT_TEST_OUTPUT=.../coverage/glb-machine-manager/document/mill700 node scripts/test_machine_joint_dof_browser.mjs:MILL700 AC/BC 各 8 个动态 tick;导出/打开/标准导入及实时映射 verified。
  • test_machine_manager_workbench.mjs 和生产 test_machine_manager_browser.mjs 通过;静态类型、构建、历史、数学、134→146 控件清单、双画布/XYZAC 契约通过。
文件(相对 document) SHA-256
browser.report.json 5f45884a75acf14d7a3ecff6a9a50b306842216cb2c26f91d44a781aff3f0073
files-and-recovery.png cef9836f21a56b79916ea0b206e3013553688f988947b701ac68332dffb93af4
saved-eight-parts.glb 57e268f7278119493004848b97262a1042ada6f81f30103b72f2fb0a8db66456
mill700/browser.report.json 7f5c87b1a2d5491242aa87248d0cb4085e5d849065520ad56e4e64c6453216b2
  • E17 已发布功能代码 8443930,线上资源 index-EHYipPfn.js;线上完整复测保存、刷新、库打开、多部件字段回填、标准导入、再次编辑、旧版文件及存储失败分支,全部 verified,浏览器错误 0。报告 document/cloud.report.json、document/deployment.report.json。