满庭芳·源流归一
结论:LinuxCNC rs274ngc 源码移植边界继续收拢。已将 rs274ngc 头文件纳入 manifest 跟踪,core 编译组仍只包含可编译源文件;启用 CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND 时 API 默认使用 LinuxCNC rs274 后端;M428/M429/M430 与 5axis/TRT/TDR/RTCP 相关路径继续保持来自 LinuxCNC 源码或 remap 配置的薄桥接。 验证:./test-linuxcnc-source-syntax.sh;./test-linuxcnc-api-native.sh;./test-native.sh;./test-linuxcnc-source-link.sh。
This commit is contained in:
@@ -18,6 +18,9 @@ The event callback emits normalized `CncSimEvent` records. JavaScript can transf
|
||||
|
||||
## LinuxCNC integration plan
|
||||
|
||||
Functional behavior must come from LinuxCNC source code, not independently
|
||||
designed project code. See `docs/linuxcnc-source-policy.md`.
|
||||
|
||||
1. Build a native `CanonEventSink` that implements all functions declared in `canon.hh`.
|
||||
2. Link the sink with `src/emc/rs274ngc` and `src/emc/nml_intf` instead of the task controller.
|
||||
3. Stub or remove Python remap support for the first browser target.
|
||||
@@ -58,10 +61,18 @@ Feature parity needs more than G-code parsing:
|
||||
|
||||
## Five-axis and RTCP
|
||||
|
||||
The first RTCP implementation is a geometry kernel, not the full LinuxCNC motion
|
||||
controller. It treats programmed XYZ as the tool-center point, applies A/B/C
|
||||
orientation to a local tool vector, and computes the compensated pivot/spindle
|
||||
point needed to keep the tool tip fixed.
|
||||
RTCP pivot events are emitted only for known LinuxCNC switchkins modes. These
|
||||
paths must use formulas copied from LinuxCNC source code, not independently
|
||||
derived geometry. The current source mapping is:
|
||||
|
||||
- `M428` / `XYZBC_TRT`: `linuxcnc/src/emc/kinematics/trtfuncs.c`,
|
||||
`xyzbcKinematicsForward()` and `xyzbcKinematicsInverse()`
|
||||
- `M430` / `USERK_IDENTITY`: `linuxcnc/src/emc/kinematics/userkfuncs.c`,
|
||||
delegating to `identityKinematicsForward()` and
|
||||
`identityKinematicsInverse()` in `kins_util.c`
|
||||
- The retained `5axiskins` helpers map to
|
||||
`linuxcnc/src/emc/kinematics/5axiskins.c`,
|
||||
`fiveaxis_KinematicsForward()` and `fiveaxis_KinematicsInverse()`
|
||||
|
||||
RTCP is opt-in through config JSON. When enabled, the original motion events
|
||||
remain programmed tool-tip motion and an additional `rtcp-pivot` event is emitted
|
||||
@@ -74,7 +85,5 @@ Current files:
|
||||
- `core/src/rtcp_kinematics.cpp`
|
||||
- `core/tests/rtcp_kinematics_smoke.cpp`
|
||||
|
||||
The next integration step is to add machine configuration for rotary topology,
|
||||
pivot offsets, tool length sources, and rotation order, then apply RTCP
|
||||
compensation while converting LinuxCNC Canon motion events into renderable
|
||||
machine/tool-tip trajectories.
|
||||
The next integration step is to add more LinuxCNC source-backed kinematics for
|
||||
additional switchkins or machine topologies.
|
||||
|
||||
Reference in New Issue
Block a user