8.5 KiB
8.5 KiB
18-04 五轴范围差异与代表应用复核
定位
本文件落实 ACC-030 和 INT-017,复核 04基于Web的LinuxCNC兼容数控仿真平台.txt 中 2.8 五轴联动专项 的范围声明。
复核范围:
8.1 A/C 轴点动8.2 A 轴限位8.3 C 轴无限回转8.6 五轴联动插补8.7 斜面钻孔8.8 球面加工8.9 叶轮加工8.10 旋转轴进给率
严格口径:
web-rtcp-5axis-xyzbc-trt-sim-plan的默认代表应用是xyzbc-trt,不能自动代表 LinuxCNC 本地树中的全部五轴族。- 04 中写到
A/C、XYZAB、xyzab.ini、sphere.ngc或泛五轴 demo 时,必须绑定到具体 LinuxCNC 配置、程序和 profile gate。 - LinuxCNC 本地树存在多个五轴配置族,任何一个 profile 的通过证据都不能跨 profile 继承。
LinuxCNC 五轴资产范围
| 五轴族 | 本地 LinuxCNC 资产 | 坐标/运动学 | 当前 Web 证据含义 |
|---|---|---|---|
| XYZBC TRT | configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini、src/emc/kinematics/xyzbc-trt-kins.c、trtfuncs.c、demos/xyzbc_switchkins.ngc、demos/boat-xyzbc.ngc |
COORDINATES = XYZBC,KINEMATICS = xyzbc-trt-kins |
默认代表应用;Node smoke、profile、staging、semantic path、task-HAL 和 compare evidence 可作为该 profile 的代表证据 |
| XYZAC TRT | configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini、src/emc/kinematics/xyzac-trt-kins.c、demos/xyzac_switchkins*.ngc、demos/boat-xyzac.ngc、demos/impeller-7bl-xyzac.ngc |
COORDINATES = XYZAC,KINEMATICS = xyzac-trt-kins |
Web 项目已有 profile/source boundary 和 program-case gate;不是默认 xyzbc-trt UI 发布结论 |
| XYZAB TDR | configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini、demos/xyzab-tdr-demo.ngc |
COORDINATES = XYZAB,KINEMATICS = xyzab_tdr_kins |
Web 项目有 gmoccapy/trivkins XYZAB boundary gate;不能等同于 XYZAB TDR RTCP 完整执行 |
| XYZACB/XYZBCA TRSRN | configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/* |
多旋转头/台组合,含 TWP/remap/Python 边界 | 当前不属于默认 xyzbc-trt 代表应用完成范围 |
| max5/bridgemill 等 | configs/sim/axis/vismach/5axis/max5、bridgemill |
其他五轴仿真配置 | 需逐 profile 建 gate,不能由 xyzbc-trt 继承 |
关键源码差异
| 04 写法 | 本地源码复核 | 严格结论 |
|---|---|---|
A/C 轴点动 |
xyzac-trt.ini 为 XYZAC;默认代表应用 xyzbc-trt.ini 为 XYZBC,Web 默认 profile 明确 coordinates: ["X","Y","Z","B","C"] |
04 写 A/C 时不能由默认 XYZBC 证据直接覆盖;需使用 XYZAC profile gate 或改写为 B/C 代表应用 |
A 轴限位 ±120° |
xyzac-trt.ini 中 [AXIS_A] MIN_LIMIT=-100 MAX_LIMIT=50;xyzab-tdr.ini 中 [AXIS_A] MIN_LIMIT=-3600 MAX_LIMIT=3600;未见 04 写的 ±120 对应配置 |
需修订 04 限位数值或指定真实来源配置 |
C 轴 WRAPPED_ROTARY |
LinuxCNC 支持 WRAPPED_ROTARY,源码读取在 rs274ngc_pre.cc;但 xyzbc-trt.ini/xyzac-trt.ini 的 C 轴采用 MIN_LIMIT=-36000 MAX_LIMIT=36000,未设置 WRAPPED_ROTARY=1 |
C 轴大范围回转代表证据成立;WRAPPED_ROTARY 字面结论需单独绑定 wrapped rotary 配置 |
sphere.ngc |
本地 linuxcnc 和 wasm-port/vendor 未发现 nc_files/5axis/sphere.ngc;现有代表程序为 boat-xyzbc.ngc、boat-xyzac.ngc、xyzbc_switchkins.ngc、impeller-7bl-xyzac.ngc 等 |
04 的 sphere fixture 需修订或补入具体上游资产;不能按不存在路径宣称通过 |
叶轮加工 自定义路径 |
本地存在 impeller-7bl-xyzac.ngc,Web 项目有 verify_impeller_feed_task_hal_run.mjs 和 verify_real_linuxcnc_5axis_program_cases.mjs |
叶轮项可按 XYZAC/impeller 代表程序条件通过;不能自动归入默认 XYZBC profile |
现有 Web 证据边界
| 证据 | 覆盖内容 | 边界 |
|---|---|---|
tests/node/verify_xyzbc_trt_web_app.mjs |
默认 xyzbc-trt profile、XYZBC 坐标、B/C 轴、xyzbc_switchkins.ngc、boat-xyzbc.ngc、helix_bc.ngc、task-HAL 状态 |
只证明默认 XYZBC TRT 代表应用,不证明 A/C、XYZAB 或全部五轴族 |
tests/node/verify_profile_boundary.mjs |
xyzac-trt、xyzbc-trt、gmoccapy-xyzac-trt、gmoccapy-xyzab 的 profile/source boundary |
多 profile 边界存在,但部分 profile promotionAllowed=false,不能直接宣称 UI 发布 |
tests/node/verify_real_linuxcnc_5axis_program_cases.mjs |
boat-xyzac、boat-xyzbc、impeller-7bl-xyzac、xyzac_switchkins_test_*、xyzac_switchkins、xyzbc_switchkins 的 LinuxCNC vendored G-code source guard 与 canonical/TP samples |
是程序级代表 proof,不等价于所有机床 UI/RTCP/full-process 都通过 |
tests/node/verify_impeller_feed_task_hal_run.mjs |
impeller-7bl-xyzac.ngc 的进给段、Task-HAL 执行和速度段 evidence |
支撑 8.9 叶轮代表程序;profile 是 XYZAC/impeller,不是默认 XYZBC |
04 条目结论
| 04 项 | 复核结论 | 后续 gate |
|---|---|---|
8.1 A/C 轴点动 |
条件通过:默认代表应用是 B/C;A/C 需走 xyzac-trt profile gate |
增加 A/C profile 的 browser/evidence gate,或将 04 默认代表项改写为 B/C |
8.2 A 轴限位 |
需修订:未见 ±120° 来源;本地 xyzac 是 -100..50,xyzab-tdr 是 -3600..3600 |
指定真实 INI 或修订验收数值 |
8.3 A 轴回卷旋转 |
已修订:上游 wrapped_rotary.ini 的 [AXIS_A] WRAPPED_ROTARY=1 已进入 vendor 和结构化 INI gate |
保持独立 wrapped-rotary profile,不由 XYZBC/XYZAC C 轴大范围配置替代 |
8.6 五轴联动插补 |
已有代表应用证据:xyzbc_switchkins、boat-xyzbc 和多 profile program-case gate |
保持 profile 粒度,不跨 profile 继承 |
8.7 斜面钻孔 |
待补专项证据:已有 centering.ngc、helix_bc.ngc 和固定循环/旋转组合线索,但未形成“斜面钻孔”专名 gate |
增加固定循环 + 旋转定位的 program-case JSON |
8.8 球面加工 |
需修订或补 fixture:本地未发现 04 写的 sphere.ngc;可用 boat-xyzbc/boat-xyzac 作为曲面代表,但名称和来源要改 |
指定存在的上游 G-code 或新增 sphere 资产来源证明 |
8.9 叶轮加工 |
条件通过:impeller-7bl-xyzac.ngc 和专项 Node gate 存在;不是默认 XYZBC profile |
运行并登记 verify_impeller_feed_task_hal_run.mjs、program-case gate |
8.10 旋转轴进给率 |
条件通过:XYZAC impeller 4066 个旋转进给段公式通过,6 段受 INI 限速,实际峰值 1800 deg/min | 保留 requested/actual/limit 三类字段和 timing-estimate 边界 |
最小验收命令建议
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_profile_boundary.mjs
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_real_linuxcnc_5axis_program_cases.mjs
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_impeller_feed_task_hal_run.mjs
通过标准:
- 默认
xyzbc-trt仍必须输出xyzbc_trt_web_app_smoke=ok。 - profile boundary 必须明确
xyzac-trt、xyzbc-trt、gmoccapy-xyzac-trt、gmoccapy-xyzab的坐标、promotion 状态和 source reference。 - program-case gate 必须覆盖
boat-xyzbc和impeller-7bl-xyzac,并保留linuxcnc_vendored_5axis_gcode_source_filesource guard。 - 叶轮项必须由
impeller-7bl-xyzac.ngc专项 gate 支撑,不得写成默认xyzbc-trt全面完成。
结论
ACC-030/INT-017 已完成五轴范围差异复核。当前可以继续宣称 xyzbc-trt 作为默认代表应用已有较完整证据,也可以登记 xyzac/gmoccapy/impeller 的专项 source-boundary 证据;但不能把 04 的 10/10 五轴通过 原文直接继承为“所有 A/C、XYZAB、sphere、impeller、TRSRN、max5 等五轴族全部 UI 发布”。后续所有五轴晋级必须按 profile、配置文件、G-code 程序和 evidence gate 四者绑定。
后续状态
ACC-046/INT-033 已修订 04 原文:A 轴范围绑定 xyzac-trt.ini 的 -100..50,五轴联动绑定 xyzbc_switchkins.ngc,曲面加工绑定现有 boat-xyzbc.ngc/boat-xyzac.ngc。不存在的 sphere.ngc 和跨 profile 的 ±120° 声明已移除;各 profile 仍不得互相继承 UI 发布结论。
ACC-047/INT-034 已把 wrapped_rotary.ini 纳入 source manifest/vendor 并以结构化 parser 证明 A 轴 WRAPPED_ROTARY=1;同时修复 G93 timing 对角轴 INI 限速的遗漏,补齐 8.10 的 requested/actual/limit 数值证据。