4.5 KiB
4.5 KiB
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-2429、interp_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_51;interp_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-240 有 G_43/G_43_1/G_43_2/G_49;interp_convert.cc:6273-6284 实现 G43.1 动态刀长补偿;未检索到 G_43_4 |
部分成立:G43.1 是动态刀长补偿,不能等同声明本地源码支持 G43.4 RTCP 开启 | RTCP 验收应绑定 xyzbc-trt-kins.c、trtfuncs.c、switchkins/remap、刀具偏置和 native/Web evidence;G43.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/G69、G51.1/G50.1、G43.4。 - 已发现
rotation_xy、SET_XY_ROTATION、G10/G5x R 坐标旋转路径。 - 已发现
G43.1动态刀长补偿、G43.2累加刀长补偿、G49取消刀长补偿路径。 - 已发现
M19orient spindle 路径和$多主轴选择约束,未发现M18作为速度模式切换路径。
对 working 的影响
14-04-125项逐项源码证据绑定表.md中 1.40、1.41、7.3、8.4、8.5 不再标为泛泛“待复核”,改为明确的“需修订/部分成立”。13-04验收文档任务对标矩阵.md的 W04-EVID-002 已有首个复核结果:04 的部分 G/M 代码写法不能自动继承为 LinuxCNC 通过项。- 后续若要把 04 的 125 项全部晋级,必须先修订上述五项口径,或补充本地 LinuxCNC 以外的版本差异说明和独立扩展边界。
结论
本轮已完成 04 语法口径复核的首批高风险项。当前可确认的是:LinuxCNC 源码支持 rotation_xy 坐标旋转路径、G43.1/G43.2/G49 刀长补偿路径和 M19 主轴定向路径;不能确认本地 LinuxCNC 支持 04 所写的 G68/G69、G51.1/G50.1、G43.4 或 M18 速度模式切换。
后续状态
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 私有语义。