按推荐建议,继续执行
结论:已接入 LinuxCNC NURBS G5 canonical 边界事件记录,并新增 G5.2、G5.3 回归 fixture;原生 probe 验证通过。
This commit is contained in:
@@ -403,6 +403,12 @@ Current verified progress:
|
|||||||
`tests/fixtures/gcode/threading_sync.ngc` and
|
`tests/fixtures/gcode/threading_sync.ngc` and
|
||||||
`tests/fixtures/canon/threading_sync.events` pin `G33` spindle-synchronized
|
`tests/fixtures/canon/threading_sync.events` pin `G33` spindle-synchronized
|
||||||
straight feed and `G33.1` rigid tap behavior.
|
straight feed and `G33.1` rigid tap behavior.
|
||||||
|
- `runtime/core/linuxcnc_wrap/linuxcnc_interp_minimal_runtime.cpp` now records
|
||||||
|
NURBS G5 canonical boundary calls emitted by vendored
|
||||||
|
`interp_convert.cc::convert_nurbs()`: `NURBS_G5_FEED`.
|
||||||
|
`tests/fixtures/gcode/nurbs_g5_semantics.ngc` and
|
||||||
|
`tests/fixtures/canon/nurbs_g5_semantics.events` pin `G5.2` control-point
|
||||||
|
collection and `G5.3` NURBS feed emission.
|
||||||
- `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
|
||||||
|
|||||||
@@ -452,7 +452,25 @@ int GET_EXTERNAL_AXIS_MASK() { return 7; }
|
|||||||
int GET_EXTERNAL_OFFSET_APPLIED() { return 0; }
|
int GET_EXTERNAL_OFFSET_APPLIED() { return 0; }
|
||||||
EmcPose GET_EXTERNAL_OFFSETS() { return {{0, 0, 0}, 0, 0, 0, 0, 0, 0}; }
|
EmcPose GET_EXTERNAL_OFFSETS() { return {{0, 0, 0}, 0, 0, 0, 0, 0, 0}; }
|
||||||
|
|
||||||
void NURBS_G5_FEED(int, const std::vector<NURBS_CONTROL_POINT> &, unsigned int, CANON_PLANE) {}
|
void NURBS_G5_FEED(int lineno,
|
||||||
|
const std::vector<NURBS_CONTROL_POINT> &control_points,
|
||||||
|
unsigned int order,
|
||||||
|
CANON_PLANE plane)
|
||||||
|
{
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << "NURBS_G5_FEED line=" << lineno
|
||||||
|
<< " order=" << order
|
||||||
|
<< " plane=" << static_cast<int>(plane)
|
||||||
|
<< " points=" << control_points.size();
|
||||||
|
for (std::size_t index = 0; index < control_points.size(); ++index) {
|
||||||
|
const auto &point = control_points[index];
|
||||||
|
oss << " p" << index
|
||||||
|
<< "=(" << point.NURBS_X
|
||||||
|
<< "," << point.NURBS_Y
|
||||||
|
<< "," << point.NURBS_W << ")";
|
||||||
|
}
|
||||||
|
standalone::push_canon_event(oss.str());
|
||||||
|
}
|
||||||
void NURBS_G6_FEED(int, const std::vector<NURBS_G6_CONTROL_POINT> &, unsigned int, double, int, CANON_PLANE) {}
|
void NURBS_G6_FEED(int, const std::vector<NURBS_G6_CONTROL_POINT> &, unsigned int, double, int, CANON_PLANE) {}
|
||||||
|
|
||||||
void COMMENT(const char *s)
|
void COMMENT(const char *s)
|
||||||
|
|||||||
4
wasm-port/tests/fixtures/canon/nurbs_g5_semantics.events
vendored
Normal file
4
wasm-port/tests/fixtures/canon/nurbs_g5_semantics.events
vendored
Normal 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=SET_FEED_RATE rate=40
|
||||||
|
canon_event=NURBS_G5_FEED line=5 order=3 plane=1 points=3 p0=(0,0,1) p1=(1,0,1) p2=(1,1,1)
|
||||||
5
wasm-port/tests/fixtures/gcode/nurbs_g5_semantics.ngc
vendored
Normal file
5
wasm-port/tests/fixtures/gcode/nurbs_g5_semantics.ngc
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
G90 G17 G0 X0 Y0 Z0
|
||||||
|
F40
|
||||||
|
G5.2 X1 Y0 P1
|
||||||
|
G5.2 X1 Y1 P1
|
||||||
|
G5.3
|
||||||
Reference in New Issue
Block a user