Update XYZBC web simulation evidence

This commit is contained in:
wangdequan
2026-07-03 08:49:13 -04:00
parent 6631833c93
commit 33d4b21332
2851 changed files with 141373 additions and 22 deletions

View File

@@ -1,5 +1,123 @@
# 03-推进台账
## 2026-07-03 锥形刀尖方向修复轮次
### 本轮目标
根据用户从截图反馈的问题:锥形刀尖方向与刀具刀杆方向不一致。修复 WebGL 刀具几何,使刀尖和刀杆共用同一实时刀轴方向。
### 已做事项
- 修改 `app/src/visualization/five-axis-scene.js`
- 新增 `LOCAL_TOOL_AXIS=(0,0,1)``alignToolGlyphToAxis()`
- 将 Vismach 参考模型中的刀杆 cylinder 与刀尖 cone 统一建模到本地 `+Z` 轴。
- 将 AXIS reference tool glyph 中的 holder 与 cone 同样统一到本地 `+Z` 轴。
- 取消 `toolHolder.lookAt(...)`,改为 `quaternion.setFromUnitVectors(LOCAL_TOOL_AXIS, toolAxisVector)` 对整个刀具组定向。
- 暴露 `canvas.dataset.threeToolGlyphAxis`,用于验证实际刀具几何方向。
- 修改 `tests/browser/xyzbc_trt_browser_smoke.html`
- 首屏断言存在 `threeToolGlyphAxis`
- RUN 后断言 `threeToolGlyphAxis``state.toolAxisVector` 一致,防止刀尖/刀杆方向再次分离。
- 重新生成 `app/dist`
- 生成截图证据:
- `working/screenshots/web-tool-tip-axis-fixed-20260703T080358Z/running-helix-tool-tip-axis-fixed-canvas.png`
- `working/screenshots/web-tool-tip-axis-fixed-20260703T080358Z/manifest.json`
### 验证情况
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build` 通过,输出 `gmoccapy_static_build=ok`
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node` 通过,输出 `xyzbc_trt_web_app_smoke=ok`
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser` 通过,输出 `xyzbc_trt_browser_smoke=ok`
### 结论
锥形刀尖和刀杆现在由同一个 `toolAxisVector` 定向。新 manifest 显示 `threeToolGlyphAxis={0.242,0.242,0.94}` 与运行样本 `toolAxisVector={0.2418447626,0.2418447626,0.9396926208}` 一致,截图中刀尖与刀杆沿同一倾斜刀轴排列。
## 2026-07-03 真实 G 代码过程截图补充轮次
### 本轮目标
接续上一轮,针对用户指出的“分析图片,要体现真实的 G 代码的真实执行过程”,把截图从只显示主程序入口,补强为能直接看到展开后的源文件、源行、调用栈、执行步骤、实时机床姿态和切削状态。
### 已做事项
- `app/src/state/store.js`
- 加载 `xyzbc_switchkins.ngc` 时优先使用 `buildAxisExecutionTraceFromProgram`,让 `programAxisPreviewPath` 同时包含 50ms samples、line trace 和完整 `gcodeExecutionProcess`
- 当没有 interpreter/TP timing 时,`RUN` 也能按 `programAxisPreviewPath.samples` 的真实展开采样流推进。
- `app/src/ui/axis-shell.js`
- 程序区新增真实执行过程面板显示展开步骤数、运动步数、参数赋值步数、调用栈、Joint/TCP/Tool/Feed 和最近执行步骤。
- `app/src/styles/axis.css`
- 增加真实执行过程面板样式,保证截图中字段可读。
- `app/src/runtime/linuxcnc-machine-file-staging.js`
- 修正 dist 下 staging SDK 的候选路径顺序,保证直接打开 `app/dist` 时机器文件 staging 可用。
- `app/src/main.js`
- 增加 `TextDecoder` 对 resizable ArrayBuffer 的兼容处理,降低 wasm runtime 在不同 Chromium 环境下的解码差异。
- `app/src/visualization/five-axis-scene.js`
- 识别带 `gcodeExecutionProcess` 的执行 trace 作为 AXIS 展开预览源。
- `tests/node/verify_xyzbc_trt_web_app.mjs``tests/browser/xyzbc_trt_browser_smoke.html`
- 增加真实执行过程对象、DOM dataset、活动 G 代码步骤的断言。
### 新增截图证据
```text
working/screenshots/web-simulation-real-gcode-process-20260703T074714Z/011-running-helix-feed-program.png
working/screenshots/web-simulation-real-gcode-process-20260703T074714Z/manifest.json
```
### 验证情况
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build` 通过,输出 `gmoccapy_static_build=ok`
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node` 通过,输出 `xyzbc_trt_web_app_smoke=ok`
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser` 通过,输出 `xyzbc_trt_browser_smoke=ok`
### 结论
新增截图已经能直接体现真实 G 代码执行过程:`helix_bc.ngc:17` 处于 `feed-helix`,画面同时显示 B/C 姿态、TCP、刀轴、F1000 cutting、调用栈和最近执行步骤manifest 记录 `128` 个完整执行步骤、`29` 个运动步骤、`41` 个参数赋值步骤和 50ms 实时样本。
## 2026-07-03 截图真实 G 代码执行过程修复轮次
### 本轮目标
接续上一轮,修复 `working/screenshots/web-simulation-full-process-20260703T051258Z` 中暴露的页面/截图问题:
- 截图应记录真实 G 代码真实执行过程。
- 刀具执行路径、刀具位置、刀头方向必须实时更新。
- 刀头方向与刀杆方向必须一致。
- 页面必须显示 G 代码每行执行过程。
### 已做事项
- 修改 `app/src/runtime/axis-preview-path.js`
- 在 50ms 样本中增加 `sourceFile``statement``segmentIndex`
- 样本可直接指向 `xyzbc_switchkins_sub.ngc``helix_bc.ngc` 的真实展开源行。
- 修改 `app/src/state/store.js`
- 新增 `programUiExecution`记录当前样本的源文件、源行、语句、operation、动态 step、sample、joint、TCP、toolAxis 和 machineState。
- RUN/STEP/RUN_FRAME/task-HAL 状态应用统一通过当前真实样本派生当前行、刀位、刀轴和 UI 执行对象。
- 当前样本 `toolAxis.i/j/k` 提升为 `state.toolAxisVector.x/y/z`,用于 Three.js 刀头 marker、刀轴线和 Vismach 刀杆方向。
- 修改 `app/src/ui/axis-shell.js`
- 程序区新增实时执行条,显示 `sourceFile:line`、operation、sample、step 和当前 G 代码语句。
- LinuxCNC 监控面板新增 Source 行,显示展开后的当前源文件和源行。
- 程序区和监控区 dataset 暴露 live source/sample供截图和 browser smoke 验证。
- 修改 `app/src/styles/axis.css`
- 增加实时执行条样式。
- 修改验证:
- `tests/node/verify_xyzbc_trt_web_app.mjs` 增加样本源文件、语句、`programUiExecution`、toolAxis 同步断言。
- `tests/browser/xyzbc_trt_browser_smoke.html` 增加 RUN 后 DOM dataset、state、canvas `data-three-tool-axis` 一致性断言。
- 重新生成:
- `working/evidence/web-xyzbc-trt-evidence.json`
- `working/evidence/compare-xyzbc-trt-evidence.json`
### 验证情况
- `npm --prefix app run smoke:node` 通过,输出 `xyzbc_trt_web_app_smoke=ok`
- `npm --prefix app run build` 通过,输出 `gmoccapy_static_build=ok`
- `npm --prefix app run smoke:browser` 通过,输出 `xyzbc_trt_browser_smoke=ok`
- `npm --prefix app run evidence:web` 通过。
- `npm --prefix app run evidence:compare` 通过,输出 `compare_xyzbc_trt_status=pass`
### 结论
页面层已从“只在 JSON 中有完整 G 代码过程”补强为“截图可见的实时 G 代码执行过程”。当前程序区、监控面板、state 和 canvas 都由同一个 50ms 真实展开样本驱动刀具位置、已执行路径、刀头方向和刀杆方向同步更新browser smoke 已对这些同步关系做硬断言。
## 2026-07-02 23:50 EDT - working 任务复核完成轮次
### 本轮目标