按推荐建议,继续执行

结论:已接入 LinuxCNC spindle orient canonical 边界事件记录,并新增 M19 R/P/Q 回归 fixture;原生 probe 验证通过。
This commit is contained in:
2026-06-07 16:46:15 +08:00
parent d40a4b3b60
commit e185f40de3
4 changed files with 27 additions and 2 deletions

View File

@@ -415,6 +415,12 @@ Current verified progress:
`tests/fixtures/gcode/nurbs_g6_semantics.ngc` and `tests/fixtures/gcode/nurbs_g6_semantics.ngc` and
`tests/fixtures/canon/nurbs_g6_semantics.events` pin `G6.2` order, `tests/fixtures/canon/nurbs_g6_semantics.events` pin `G6.2` order,
interpolation mode, control-point, weight, and K segment handling. interpolation mode, control-point, weight, and K segment handling.
- `runtime/core/linuxcnc_wrap/linuxcnc_interp_minimal_runtime.cpp` now records
spindle-orient canonical boundary calls emitted by vendored LinuxCNC
conversion and queue code: `ORIENT_SPINDLE` and
`WAIT_SPINDLE_ORIENT_COMPLETE`. `tests/fixtures/gcode/spindle_orient.ngc`
and `tests/fixtures/canon/spindle_orient.events` pin `M19 R/P/Q` behavior
from `interp_convert.cc::convert_m()` and `interp_queue.cc`.
- `tests/fixtures/gcode_errors/g1_zero_feed.ngc` and - `tests/fixtures/gcode_errors/g1_zero_feed.ngc` and
`tests/fixtures/canon_errors/g1_zero_feed.expected` pin the negative `tests/fixtures/canon_errors/g1_zero_feed.expected` pin the negative
`G1` zero-feed case. The source basis is LinuxCNC `G1` zero-feed case. The source basis is LinuxCNC

View File

@@ -234,8 +234,21 @@ void STOP_SPINDLE_TURNING(int spindle)
standalone::push_canon_event(oss.str()); standalone::push_canon_event(oss.str());
} }
void SPINDLE_RETRACT() {} void SPINDLE_RETRACT() {}
void ORIENT_SPINDLE(int, double, int) {} void ORIENT_SPINDLE(int spindle, double orientation, int mode)
void WAIT_SPINDLE_ORIENT_COMPLETE(int, double) {} {
std::ostringstream oss;
oss << "ORIENT_SPINDLE spindle=" << spindle
<< " orientation=" << orientation
<< " mode=" << mode;
standalone::push_canon_event(oss.str());
}
void WAIT_SPINDLE_ORIENT_COMPLETE(int spindle, double timeout)
{
std::ostringstream oss;
oss << "WAIT_SPINDLE_ORIENT_COMPLETE spindle=" << spindle
<< " timeout=" << timeout;
standalone::push_canon_event(oss.str());
}
void LOCK_SPINDLE_Z() {} void LOCK_SPINDLE_Z() {}
void USE_SPINDLE_FORCE() {} void USE_SPINDLE_FORCE() {}
void USE_NO_SPINDLE_FORCE() {} void USE_NO_SPINDLE_FORCE() {}

View File

@@ -0,0 +1,4 @@
canon_event=SELECT_PLANE plane=1
canon_event=STRAIGHT_TRAVERSE line=1 x=0 y=0 z=0 a=0 b=0 c=0 u=0 v=0 w=0
canon_event=ORIENT_SPINDLE spindle=0 orientation=45 mode=2
canon_event=WAIT_SPINDLE_ORIENT_COMPLETE spindle=0 timeout=1.5

View File

@@ -0,0 +1,2 @@
G90 G17 G0 X0 Y0 Z0
M19 R45 P2 Q1.5