diff --git a/wasm-port/docs/compatibility-validation.md b/wasm-port/docs/compatibility-validation.md index 49efeab..f9bf129 100644 --- a/wasm-port/docs/compatibility-validation.md +++ b/wasm-port/docs/compatibility-validation.md @@ -67,6 +67,7 @@ Positive G-code fixtures currently cover: - position parameters - canned cycles - coordinate offsets +- G53 machine-coordinate motion - feed and motion control modes - probing - threading and rigid tap @@ -84,6 +85,7 @@ Negative fixtures currently cover: - zero-feed `G1` - arc radius mismatch - zero-radius arc +- G53 incremental-mode rejection - read-only named parameter writes - read-only numbered parameter writes - missing tool diff --git a/wasm-port/docs/porting-steps-standalone.md b/wasm-port/docs/porting-steps-standalone.md index abff659..a2dea1f 100644 --- a/wasm-port/docs/porting-steps-standalone.md +++ b/wasm-port/docs/porting-steps-standalone.md @@ -402,6 +402,13 @@ Current verified progress: `tests/fixtures/canon/cutter_comp_motion.events` pin positive `G41.1`/`G40` compensated straight-feed output through vendored `interp_convert.cc` and `interp_queue.cc`. +- `tests/fixtures/gcode/g53_machine_coordinates.ngc` and + `tests/fixtures/canon/g53_machine_coordinates.events` pin `G53` machine + coordinate straight-traverse behavior through vendored + `interp_find.cc::find_ends()` and `interp_convert.cc::convert_straight()`. + `tests/fixtures/gcode_errors/g53_incremental.ngc` and + `tests/fixtures/canon_errors/g53_incremental.expected` pin the LinuxCNC + rejection path for `G53` while incremental distance mode is active. - `runtime/core/linuxcnc_wrap/linuxcnc_interp_minimal_runtime.cpp` now records feed/control canonical boundary calls emitted by vendored LinuxCNC conversion and queue code: `SET_TRAVERSE_RATE`, `SET_FEED_REFERENCE`, diff --git a/wasm-port/docs/scope-and-baseline.md b/wasm-port/docs/scope-and-baseline.md index 5a560cf..e38f814 100644 --- a/wasm-port/docs/scope-and-baseline.md +++ b/wasm-port/docs/scope-and-baseline.md @@ -40,6 +40,7 @@ G-code fixture coverage includes: - position parameters - canned cycles - coordinate offsets +- G53 machine-coordinate motion - feed and motion control modes - cutter compensation motion - probe semantics @@ -58,6 +59,7 @@ Negative fixture coverage includes: - arc radius mismatch - zero-radius arc - cutter compensation plane-change rejection +- G53 incremental-mode rejection - read-only named parameter writes - read-only numbered parameter writes - missing tool diff --git a/wasm-port/tests/fixtures/canon/g53_machine_coordinates.events b/wasm-port/tests/fixtures/canon/g53_machine_coordinates.events new file mode 100644 index 0000000..ce98524 --- /dev/null +++ b/wasm-port/tests/fixtures/canon/g53_machine_coordinates.events @@ -0,0 +1,5 @@ +canon_event=SELECT_PLANE plane=1 +canon_event=STRAIGHT_TRAVERSE line=1 x=5 y=5 z=5 a=0 b=0 c=0 u=0 v=0 w=0 +canon_event=STRAIGHT_TRAVERSE line=2 x=1 y=2 z=3 a=0 b=0 c=0 u=0 v=0 w=0 +canon_event=SET_FEED_RATE rate=90 +canon_event=STRAIGHT_FEED line=3 x=4 y=5 z=6 a=0 b=0 c=0 u=0 v=0 w=0 diff --git a/wasm-port/tests/fixtures/canon_errors/g53_incremental.expected b/wasm-port/tests/fixtures/canon_errors/g53_incremental.expected new file mode 100644 index 0000000..b157c9b --- /dev/null +++ b/wasm-port/tests/fixtures/canon_errors/g53_incremental.expected @@ -0,0 +1,5 @@ +execute_line_1=0 +execute_line_2=5 +error_text=Cannot use g53 incremental +canon_event=COMMENT: interpreter: distance mode changed to incremental +absent=canon_event=STRAIGHT_TRAVERSE line=2 diff --git a/wasm-port/tests/fixtures/gcode/g53_machine_coordinates.ngc b/wasm-port/tests/fixtures/gcode/g53_machine_coordinates.ngc new file mode 100644 index 0000000..ef92e6c --- /dev/null +++ b/wasm-port/tests/fixtures/gcode/g53_machine_coordinates.ngc @@ -0,0 +1,3 @@ +G90 G17 G0 X5 Y5 Z5 +G53 G0 X1 Y2 Z3 +G1 X4 Y5 Z6 F90 diff --git a/wasm-port/tests/fixtures/gcode_errors/g53_incremental.ngc b/wasm-port/tests/fixtures/gcode_errors/g53_incremental.ngc new file mode 100644 index 0000000..6c4a1f5 --- /dev/null +++ b/wasm-port/tests/fixtures/gcode_errors/g53_incremental.ngc @@ -0,0 +1,2 @@ +G91 +G53 G0 X1