Files
linuxcncWebWASM/nextTask-glb-machine-manager-doc.md
wangdequan db29ae625f 按关节槽位驱动 13 个五轴案例的三维模型
关节契约扩为槽位制:以 LinuxCNC 联合号标识关节,轴字母降为槽位属性,
重复轴(bridge-mill 的两个 Y)、并联杆长(hexapod/pentapod)和被动槽位
(max5 第 6 关节)都能表达。v1 规则保持不变并合成 jointOrder,已保存
GLB 与既有测试不受影响。

13 个结构 GLB 由 scripts/generate_physical_case_glbs.mjs 统一重建,
可动关节均为按槽位命名的 Group 并写 userData.linuxcncJoint,共 71 个
关节,槽位数与运行目录的 joint_count 逐条一致。

新增 machine-visual-bindings.json 与纯函数模块,以 machine id 为键:
坐标字母不能作键,因为三个案例共用 XYZAB、三个共用 XYZABC。主界面切换
案例时自动装载对应模型,失败时保留内置模型并显式提示。

消除前端五关节截断:visual 适配器的 joints 改为数组并新增
jointsAuthoritative;allHomed 按 joint_count 判断;面板按 worker 断言的
machine id 查找机型。

管理器解锁:坐标与案例下拉以"存在完整视觉绑定"为启用条件,13 案例全部
可选;machine-urdf.ts 新增 generic-wasm/1 profile,AC/BC 严格校验路径
不变;新增 machine-kinematics-specs.json 保存逐关节限位,INI 未声明的
限位保持 null 而不编造。

修复三个真实缺陷:构建漏发 woodpecker/gmoccapy/qtdragon 配置目录(
DEFECT-02 根因);案例切换沿用"装载需要已上电"的门控,导致关机状态下
第二次切换被静默拒绝;重复轴机型上 React 列表键冲突。

验收:13 案例逐个切换装载成功、槽位键与绑定定义逐一一致、浏览器错误 0;
typecheck 与生产构建通过;视觉绑定、GLB 命名、关节契约、投影、store、
双画布、运动学规格漂移、11 案例 Worker 闭环、管理器浏览器回归全部通过。
证据在 coverage/glb-machine-manager/physical-drive/。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-30 06:09:12 +08:00

65 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 三维机床管理 HTML 文档接续入口
更新时间:2026-09-23
工作目录:`/home/mes006/linuxcncWebWASM`
## 当前任务
用户要求把 [`docs/glb-machine-manager/00-三维机床管理详细功能文档.md`](docs/glb-machine-manager/00-三维机床管理详细功能文档.md) 制作为图文并茂的 HTML,并包含各类五轴机床案例。该任务已完成,HTML 文件为:
[`docs/glb-machine-manager/00-三维机床管理详细功能文档.html`](docs/glb-machine-manager/00-三维机床管理详细功能文档.html)
## 已完成内容
- HTML 单文件中文文档,含响应式布局、打印/PDF 样式、案例搜索、状态筛选、图片放大查看和深浅色阅读切换。
- 14 项 FR-01~FR-14 功能逐项说明,每项包含操作与输入、规则与异常、验收条件。
- 补充结构分类:双转台、双摆头、头台混合、串联机器人、并联平台、直角坐标映射基线。
- 覆盖 `five-axis-machine-catalog.json` 中全部 13 个案例:
- 当前支持:XYZAC TRT、XYZBC TRT。
- 需适配:XYZAB 双转台、Bridge Mill/5axiskins、MAX5/maxkins、Pentapod、Hexapod、PUMA/pumakins、PUMA 560/genserkins、SCORBOT。
- 映射基线:trivkins XYZAB、XYZCW、XYZYA。
- 每个案例包含结构说明、坐标/关节数、运动学、参数重点、验证路径,以及本地 INI/源码/NGC 链接。
- 6 张仓库已有图片已经内嵌为 data URL,HTML 可脱离 HTTP 服务离线打开;外部官方资料只保留文字链接。
- 补充 AC 八部件流程、MILL700 单 GLB 五轴绑定流程、保存/恢复动作表、字段字典、单位和错误恢复矩阵。
- 明确采用当前 MGR-17~22 实现:单文件完成五轴绑定即可应用;单自由度输入替代历史六分量自由编辑;八个独立部件不再是当前前提。
- 已在 [`README.md`](README.md) 和 [`docs/glb-machine-manager/README.md`](docs/glb-machine-manager/README.md) 增加 HTML 入口。
## 已验证
1. HTML 链接和锚点检查:13 个案例、14 项详细需求、全部相对资源链接存在,无重复 ID。
2. `node scripts/validate_five_axis_catalog.mjs`:`verified`,13 cases,62 个本地配置/源码文件。
3. Chrome(`/usr/bin/google-chrome` + Playwright)浏览器报告:
- 1440、768、390、320 px 均无横向溢出;图片均成功加载。
- 案例筛选:全部 13、当前支持 2、需适配 8、映射基线 3。
- 搜索 Pentapod 返回 1 个;无匹配结果提示正常。
- 截图放大/关闭正常;无 page error、无 request failed、无外部网络请求。
- 打印模式包含全部 13 个案例,生成的 PDF 为 A4 29 页。
- 将 HTML 复制到 `/tmp` 后以 `file:` 直接打开,13 个案例仍可显示。
4. 临时验证报告和截图位于 `/tmp/machine-doc-browser-report.json`、`/tmp/machine-doc-desktop.png`、`/tmp/machine-doc-cases.png`、`/tmp/machine-doc-mobile.png`、`/tmp/machine-doc-print.pdf`;这些不属于仓库交付,不要自动复制进仓库。
## 当前工作区注意事项
- 本任务新增 HTML 尚未提交;README 两处有本任务链接改动。
- 工作区存在用户原有未提交内容和 dirty 的 `linuxcnc` 子模块。重启后先执行:
```bash
git status --short --branch
git diff -- README.md docs/glb-machine-manager/README.md
git -C linuxcnc status --short
```
- 不要执行 `git reset --hard`、`git clean`、覆盖子模块,也不要 `git add .`;提交时只选择本任务 HTML、两个 README 和本接续文件(如果用户要求提交)。
- HTML 文件约 1.55 MiB,主要因为内嵌截图;不要把 `/tmp` 验证产物提交。
## 重启后的第一轮
1. 读取本文件,查看 HTML 的 `阅读基线`、`功能逐项说明与验收条件`、`每种类型的五轴机床案例`、`字段字典与转换边界`。
2. 检查工作区状态,确认没有其它代理或用户改动需要覆盖。
3. 若用户只说“继续”,先报告 HTML 已完成及验证结果,询问新的修改目标;不要重复生成文档或重跑大范围 LinuxCNC 回归。
4. 若用户要继续优化,优先检查:HTML 是否需要压缩图片、是否需要新增真实机床截图、是否要把案例卡片改为从 JSON 动态生成;新增案例必须同步 `five-axis-machine-catalog.json` 和本地路径校验。
5. 若用户要求提交,按最小文件集合检查 diff,再提交;不要包含已有 coverage、GLB、子模块或临时文件改动。
重启后可直接发送:
> 请在 `/home/mes006/linuxcncWebWASM` 接续工作。先读取 `nextTask-glb-machine-manager-doc.md`,检查工作区状态。三维机床管理 HTML 图文文档已经完成并通过 13 案例、14 项需求、四种视口、打印和离线打开验证;不要重复生成,等待我提供新的修改目标。保留其它未提交文件和 `linuxcnc` 子模块改动。