Files
cnc_wams/完善wasm/working/18-04五轴范围差异与代表应用复核.md
2026-07-10 21:26:42 -04:00

8.5 KiB
Raw Permalink Blame History

18-04 五轴范围差异与代表应用复核

定位

本文件落实 ACC-030INT-017,复核 04基于Web的LinuxCNC兼容数控仿真平台.txt2.8 五轴联动专项 的范围声明。

复核范围:

  • 8.1 A/C 轴点动
  • 8.2 A 轴限位
  • 8.3 C 轴无限回转
  • 8.6 五轴联动插补
  • 8.7 斜面钻孔
  • 8.8 球面加工
  • 8.9 叶轮加工
  • 8.10 旋转轴进给率

严格口径:

  1. web-rtcp-5axis-xyzbc-trt-sim-plan 的默认代表应用是 xyzbc-trt,不能自动代表 LinuxCNC 本地树中的全部五轴族。
  2. 04 中写到 A/CXYZABxyzab.inisphere.ngc 或泛五轴 demo 时,必须绑定到具体 LinuxCNC 配置、程序和 profile gate。
  3. LinuxCNC 本地树存在多个五轴配置族,任何一个 profile 的通过证据都不能跨 profile 继承。

LinuxCNC 五轴资产范围

五轴族 本地 LinuxCNC 资产 坐标/运动学 当前 Web 证据含义
XYZBC TRT configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.inisrc/emc/kinematics/xyzbc-trt-kins.ctrtfuncs.cdemos/xyzbc_switchkins.ngcdemos/boat-xyzbc.ngc COORDINATES = XYZBCKINEMATICS = 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.inisrc/emc/kinematics/xyzac-trt-kins.cdemos/xyzac_switchkins*.ngcdemos/boat-xyzac.ngcdemos/impeller-7bl-xyzac.ngc COORDINATES = XYZACKINEMATICS = 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.inidemos/xyzab-tdr-demo.ngc COORDINATES = XYZABKINEMATICS = 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/max5bridgemill 其他五轴仿真配置 需逐 profile 建 gate不能由 xyzbc-trt 继承

关键源码差异

04 写法 本地源码复核 严格结论
A/C 轴点动 xyzac-trt.iniXYZAC;默认代表应用 xyzbc-trt.iniXYZBCWeb 默认 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=50xyzab-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 本地 linuxcncwasm-port/vendor 未发现 nc_files/5axis/sphere.ngc;现有代表程序为 boat-xyzbc.ngcboat-xyzac.ngcxyzbc_switchkins.ngcimpeller-7bl-xyzac.ngc 04 的 sphere fixture 需修订或补入具体上游资产;不能按不存在路径宣称通过
叶轮加工 自定义路径 本地存在 impeller-7bl-xyzac.ngcWeb 项目有 verify_impeller_feed_task_hal_run.mjsverify_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.ngcboat-xyzbc.ngchelix_bc.ngc、task-HAL 状态 只证明默认 XYZBC TRT 代表应用,不证明 A/C、XYZAB 或全部五轴族
tests/node/verify_profile_boundary.mjs xyzac-trtxyzbc-trtgmoccapy-xyzac-trtgmoccapy-xyzab 的 profile/source boundary 多 profile 边界存在,但部分 profile promotionAllowed=false,不能直接宣称 UI 发布
tests/node/verify_real_linuxcnc_5axis_program_cases.mjs boat-xyzacboat-xyzbcimpeller-7bl-xyzacxyzac_switchkins_test_*xyzac_switchkinsxyzbc_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/CA/C 需走 xyzac-trt profile gate 增加 A/C profile 的 browser/evidence gate或将 04 默认代表项改写为 B/C
8.2 A 轴限位 需修订:未见 ±120° 来源;本地 xyzac-100..50xyzab-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_switchkinsboat-xyzbc 和多 profile program-case gate 保持 profile 粒度,不跨 profile 继承
8.7 斜面钻孔 待补专项证据:已有 centering.ngchelix_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-trtxyzbc-trtgmoccapy-xyzac-trtgmoccapy-xyzab 的坐标、promotion 状态和 source reference。
  • program-case gate 必须覆盖 boat-xyzbcimpeller-7bl-xyzac,并保留 linuxcnc_vendored_5axis_gcode_source_file source 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 数值证据。