Files
cnc_wams/完善wasm/working/15-04语法口径源码复核.md
2026-07-10 21:26:42 -04:00

4.5 KiB
Raw Permalink Blame History

15-04 语法口径源码复核

定位

本文件复核 04基于Web的LinuxCNC兼容数控仿真平台.txt 中疑似与本地 LinuxCNC 源码口径不完全一致的 G/M 代码项。复核对象限定为 /home/mes123456/cnc_wams/linuxcnc 当前锁定 commit 60597ee0718873d2449058c824262a275e5e4bad,结论只对该本地源码基线负责。

复核结论表

04 项 04 写法 本地 LinuxCNC 源码证据 严格结论 后续处理
1.40 坐标旋转 G68/G69 interp_internal.hh:237-242 未见 G_68/G_69;坐标旋转由 G10/G5x R 参数进入 rotation_xy,见 interp_convert.cc:2406-2429interp_convert.cc:4938-4940 需修订:不能按本地源码宣称 G68/G69 已对标 将验收口径改为 LinuxCNC G10/G5x R / rotation_xy / SET_XY_ROTATION;若坚持 G68/G69必须另补真实源码或版本差异证据
1.41 镜像 G51.1/G50.1 interp_internal.hh:241-242 只有 G_50/G_51interp_convert.cc:2923 将 G50/G51 列入控制模式;未检索到 G_51_1/G_50_1 需修订04 的 G51.1/G50.1 镜像口径未被本地源码证实 不得把 G51.1/G50.1 作为本地 LinuxCNC 已支持项;如需要镜像功能,先补上游源码/测试或改为项目扩展并标非 LinuxCNC-owned
7.3 主轴模式切换 M19/M18 M19 在 interp_convert.cc:4063-4077 调用 orient/wait 队列,文档 docs/src/gcode/m-code.adoc:213-234 定义 M19 R- Q- [P-] [$-];未找到 M18 作为速度模式切换的解释器或文档证据 部分成立M19 orient 成立M18 速度模式不成立或待证据 7.3 严格状态保留为部分成立M18 不进入通过统计,除非后续找到本地 LinuxCNC 对应实现
8.4 RTCP 开启 G43.1,并涉及 G43.4 口径 interp_internal.hh:237-240G_43/G_43_1/G_43_2/G_49interp_convert.cc:6273-6284 实现 G43.1 动态刀长补偿;未检索到 G_43_4 部分成立G43.1 是动态刀长补偿,不能等同声明本地源码支持 G43.4 RTCP 开启 RTCP 验收应绑定 xyzbc-trt-kins.ctrtfuncs.c、switchkins/remap、刀具偏置和 native/Web evidenceG43.4 不得宣称已支持
8.5 RTCP 关闭 G49 interp_convert.cc:6234-6236 处理 G49 为取消刀长补偿,随后 USE_TOOL_LENGTH_OFFSET 更新 offset无证据表明 G49 独立关闭 RTCP 运动学状态 部分成立G49 取消 TLO 成立等价“RTCP 关闭”需另补运动学状态证据 表述改为“取消刀长补偿/撤销与 RTCP 相关的工具偏置输入”;不能单独作为 RTCP off 完整证据

源码检索记录

执行的关键检索:

rg -n "G_68|G_69|G_43_4|G_51_1|G_50_1|G_43_1|G_43_2|G_50|G_51|M19|ORIENT_SPINDLE|SET_XY_ROTATION|rotation_xy" linuxcnc/src/emc/rs274ngc linuxcnc/docs/src linuxcnc/configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating
rg -n "G43\.4|G68|G69|G51\.1|G50\.1|M18" linuxcnc/docs/src/gcode linuxcnc/src/emc/rs274ngc

检索结论:

  • 未发现本地解释器枚举或 G-code 文档中的 G68/G69G51.1/G50.1G43.4
  • 已发现 rotation_xySET_XY_ROTATION、G10/G5x R 坐标旋转路径。
  • 已发现 G43.1 动态刀长补偿、G43.2 累加刀长补偿、G49 取消刀长补偿路径。
  • 已发现 M19 orient spindle 路径和 $ 多主轴选择约束,未发现 M18 作为速度模式切换路径。

对 working 的影响

  1. 14-04-125项逐项源码证据绑定表.md 中 1.40、1.41、7.3、8.4、8.5 不再标为泛泛“待复核”,改为明确的“需修订/部分成立”。
  2. 13-04验收文档任务对标矩阵.md 的 W04-EVID-002 已有首个复核结果04 的部分 G/M 代码写法不能自动继承为 LinuxCNC 通过项。
  3. 后续若要把 04 的 125 项全部晋级,必须先修订上述五项口径,或补充本地 LinuxCNC 以外的版本差异说明和独立扩展边界。

结论

本轮已完成 04 语法口径复核的首批高风险项。当前可确认的是LinuxCNC 源码支持 rotation_xy 坐标旋转路径、G43.1/G43.2/G49 刀长补偿路径和 M19 主轴定向路径;不能确认本地 LinuxCNC 支持 04 所写的 G68/G69G51.1/G50.1G43.4M18 速度模式切换。

后续状态

ACC-046/INT-033 已按本复核结论修订 04 原文1.40/1.41 改为 G10 L2 Pn R/R0 设置与取消旋转7.3 改为 M19 主轴定向6.4/8.4/8.5 改为预编译 TRT kinematics 与 G43.1/G49 刀偏输入边界。项目未新增 G68/G69、镜像、G43.4 或 M18 私有语义。