# LinuxCNC RTCP G-code collection 本目录收集了当前仓库 `linuxcnc/` 源码树中与 RTCP/TCP 五轴运动学直接相关的 G 代码程序。 源码版本: - LinuxCNC 子仓库:`239dcf4`(`git -C linuxcnc log -1 --oneline`) - 原始文件根目录:`linuxcnc/` - 复制目录:`test_Rtcp/programs/` - 文件数量:32 个 `.ngc` - 复制方式:保留相对于 `linuxcnc/` 的原始路径;已用 `cmp` 检查复制文件与源码文件一致 ## 目录 `programs/` 下的路径去掉了源码根目录前缀。例如: ```text programs/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc ``` 对应源码: ```text linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc ``` 完整清单见 [`MANIFEST.md`](MANIFEST.md),分析见 [`rtcp_analysis.md`](rtcp_analysis.md)。 ## Web 控制面板适配 这 32 个文件现已接入 Web AXIS 控制面板的“RTCP 程序库”入口: - 程序清单与兼容性元数据:`web/react/src/rtcp-program-manifest.json` - 程序库界面:`web/react/src/RtcpProgramLibrary.tsx` - 控制面板按机床配置自动分为 AC(XYZAC)和 BC(XYZBC):AC 默认显示 15 个相关文件、可直接加载 8 个主程序;BC 默认显示 9 个相关文件、可直接加载 3 个主程序。 - “全部 32 个源程序”范围保留跨机型查阅能力,但另一类机床程序不会作为当前机型可执行项。 - remap、O-code 子程序、Hexapod 支持文件及当前未移植机型的主程序可查看和下载,但不会被误当作当前机型的独立主程序执行。 - 所有可执行项仍通过统一的 `PROGRAM_LOAD` 事务进入 LinuxCNC WASM 解释器、运动学和刀路预览,没有在 React 中增加第二套 G-code 或 RTCP 实现。 适配过程中补齐了 LinuxCNC 兼容语义:`G93` 模式下的 `G0` 快移不要求 F 值,`M1` 在当前“可选停止关闭”边界下可被解释器接受。11 个 AC/BC 主程序均通过 WASM 预解析测试。 ## 运行前提 这些程序多数不是脱离配置即可运行的独立 G 代码。RTCP 由 LinuxCNC 的 kinematics 组件执行,G 代码需要匹配的 INI、HAL 和 remap 子程序: - TRT 配置:`configs/sim/axis/vismach/5axis/table-rotary-tilting/` - 双旋转台配置:`configs/sim/axis/vismach/5axis/table-dual-rotary/` - Bridge Mill 配置:`configs/sim/axis/vismach/5axis/bridgemill/` - gmoccapy TRT 配置:`configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/` - Hexapod RTCP remap 配置:`configs/sim/axis/vismach/hexapod-sim/` LinuxCNC 这一源码版本没有找到使用标准 `G43.4` 或 `G43.5` 字样的 RTCP 示例。主要实现路径是: ```text G-code -> M428/M429 remap 或直接加载非平凡 kinematics -> inverse kinematics -> joint XYZ + rotary axes ``` `TCP` 在这些示例中表示 Tool Center Point;不要与网络通信中的 TCP 混淆。