按推荐建议,继续执行
结论:已接入 LinuxCNC canonical 坐标系边界事件记录,并新增 G55、G10 L2、G92、G92.1、G54 回归 fixture;原生 probe 验证通过。
This commit is contained in:
@@ -370,6 +370,16 @@ Current verified progress:
|
|||||||
conversion through vendored `interp_cycles.cc`, including `G81`, `G82`,
|
conversion through vendored `interp_cycles.cc`, including `G81`, `G82`,
|
||||||
`G83`, `G80` cancellation, dwell, peck drilling, and incremental `L`
|
`G83`, `G80` cancellation, dwell, peck drilling, and incremental `L`
|
||||||
repeats.
|
repeats.
|
||||||
|
- `runtime/core/linuxcnc_wrap/linuxcnc_interp_minimal_runtime.cpp` now records
|
||||||
|
coordinate-system canonical boundary calls emitted by vendored LinuxCNC
|
||||||
|
conversion code: `SET_G5X_OFFSET`, `SET_G92_OFFSET`, `SET_XY_ROTATION`,
|
||||||
|
`CANON_UPDATE_END_POINT`, `USE_LENGTH_UNITS`, and `SELECT_PLANE`.
|
||||||
|
`tests/fixtures/gcode/coordinate_offsets.ngc` and
|
||||||
|
`tests/fixtures/canon/coordinate_offsets.events` pin `G55`, active
|
||||||
|
`G10 L2`, `G92`, `G92.1`, and `G54` behavior from
|
||||||
|
`interp_convert.cc::convert_coordinate_system()`,
|
||||||
|
`interp_convert.cc::convert_setup()`, and
|
||||||
|
`interp_convert.cc::convert_axis_offsets()`.
|
||||||
- `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
|
||||||
|
|||||||
@@ -51,12 +51,76 @@ int USER_DEFINED_FUNCTION_ADD(USER_DEFINED_FUNCTION_TYPE func, int num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void INIT_CANON() {}
|
void INIT_CANON() {}
|
||||||
void SET_G5X_OFFSET(int, double, double, double, double, double, double, double, double, double) {}
|
void SET_G5X_OFFSET(int index,
|
||||||
void SET_G92_OFFSET(double, double, double, double, double, double, double, double, double) {}
|
double x, double y, double z,
|
||||||
void SET_XY_ROTATION(double) {}
|
double a, double b, double c,
|
||||||
void CANON_UPDATE_END_POINT(double, double, double, double, double, double, double, double, double) {}
|
double u, double v, double w)
|
||||||
void USE_LENGTH_UNITS(CANON_UNITS) {}
|
{
|
||||||
void SELECT_PLANE(CANON_PLANE) {}
|
std::ostringstream oss;
|
||||||
|
oss << "SET_G5X_OFFSET index=" << index
|
||||||
|
<< " x=" << x
|
||||||
|
<< " y=" << y
|
||||||
|
<< " z=" << z
|
||||||
|
<< " a=" << a
|
||||||
|
<< " b=" << b
|
||||||
|
<< " c=" << c
|
||||||
|
<< " u=" << u
|
||||||
|
<< " v=" << v
|
||||||
|
<< " w=" << w;
|
||||||
|
standalone::push_canon_event(oss.str());
|
||||||
|
}
|
||||||
|
void SET_G92_OFFSET(double x, double y, double z,
|
||||||
|
double a, double b, double c,
|
||||||
|
double u, double v, double w)
|
||||||
|
{
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << "SET_G92_OFFSET"
|
||||||
|
<< " x=" << x
|
||||||
|
<< " y=" << y
|
||||||
|
<< " z=" << z
|
||||||
|
<< " a=" << a
|
||||||
|
<< " b=" << b
|
||||||
|
<< " c=" << c
|
||||||
|
<< " u=" << u
|
||||||
|
<< " v=" << v
|
||||||
|
<< " w=" << w;
|
||||||
|
standalone::push_canon_event(oss.str());
|
||||||
|
}
|
||||||
|
void SET_XY_ROTATION(double rotation)
|
||||||
|
{
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << "SET_XY_ROTATION rotation=" << rotation;
|
||||||
|
standalone::push_canon_event(oss.str());
|
||||||
|
}
|
||||||
|
void CANON_UPDATE_END_POINT(double x, double y, double z,
|
||||||
|
double a, double b, double c,
|
||||||
|
double u, double v, double w)
|
||||||
|
{
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << "CANON_UPDATE_END_POINT"
|
||||||
|
<< " x=" << x
|
||||||
|
<< " y=" << y
|
||||||
|
<< " z=" << z
|
||||||
|
<< " a=" << a
|
||||||
|
<< " b=" << b
|
||||||
|
<< " c=" << c
|
||||||
|
<< " u=" << u
|
||||||
|
<< " v=" << v
|
||||||
|
<< " w=" << w;
|
||||||
|
standalone::push_canon_event(oss.str());
|
||||||
|
}
|
||||||
|
void USE_LENGTH_UNITS(CANON_UNITS units)
|
||||||
|
{
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << "USE_LENGTH_UNITS units=" << static_cast<int>(units);
|
||||||
|
standalone::push_canon_event(oss.str());
|
||||||
|
}
|
||||||
|
void SELECT_PLANE(CANON_PLANE plane)
|
||||||
|
{
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << "SELECT_PLANE plane=" << static_cast<int>(plane);
|
||||||
|
standalone::push_canon_event(oss.str());
|
||||||
|
}
|
||||||
void SET_TRAVERSE_RATE(double) {}
|
void SET_TRAVERSE_RATE(double) {}
|
||||||
void SET_FEED_REFERENCE(CANON_FEED_REFERENCE) {}
|
void SET_FEED_REFERENCE(CANON_FEED_REFERENCE) {}
|
||||||
void SET_FEED_MODE(int, int) {}
|
void SET_FEED_MODE(int, int) {}
|
||||||
|
|||||||
12
wasm-port/tests/fixtures/canon/coordinate_offsets.events
vendored
Normal file
12
wasm-port/tests/fixtures/canon/coordinate_offsets.events
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
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_G5X_OFFSET index=2 x=0 y=0 z=0 a=0 b=0 c=0 u=0 v=0 w=0
|
||||||
|
canon_event=SET_G92_OFFSET x=0 y=0 z=0 a=0 b=0 c=0 u=0 v=0 w=0
|
||||||
|
canon_event=SET_XY_ROTATION rotation=0
|
||||||
|
canon_event=SET_G5X_OFFSET index=2 x=4 y=5 z=6 a=0 b=0 c=0 u=0 v=0 w=0
|
||||||
|
canon_event=SET_XY_ROTATION rotation=0
|
||||||
|
canon_event=SET_G92_OFFSET x=-14 y=-25 z=-36 a=0 b=0 c=0 u=0 v=0 w=0
|
||||||
|
canon_event=SET_G92_OFFSET x=0 y=0 z=0 a=0 b=0 c=0 u=0 v=0 w=0
|
||||||
|
canon_event=SET_G5X_OFFSET index=1 x=0 y=0 z=0 a=0 b=0 c=0 u=0 v=0 w=0
|
||||||
|
canon_event=SET_G92_OFFSET x=0 y=0 z=0 a=0 b=0 c=0 u=0 v=0 w=0
|
||||||
|
canon_event=SET_XY_ROTATION rotation=0
|
||||||
6
wasm-port/tests/fixtures/gcode/coordinate_offsets.ngc
vendored
Normal file
6
wasm-port/tests/fixtures/gcode/coordinate_offsets.ngc
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
G90 G17 G0 X0 Y0 Z0
|
||||||
|
G55
|
||||||
|
G10 L2 P2 X4 Y5 Z6
|
||||||
|
G92 X10 Y20 Z30
|
||||||
|
G92.1
|
||||||
|
G54
|
||||||
Reference in New Issue
Block a user