61 lines
2.9 KiB
Markdown
61 lines
2.9 KiB
Markdown
# 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 混淆。
|