From 7a2a80ea7182ad4f38976f9d2bd4e4224b09761c Mon Sep 17 00:00:00 2001 From: cnc Date: Fri, 5 Jun 2026 11:11:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=20AGENTS=20align-linuxcnc=20?= =?UTF-8?q?=E5=8A=A0=E9=80=9F=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 结论:新增 LinuxCNC source-backed arc inverse-time missing-F 错误覆盖,源码依据为 src/emc/rs274ngc/interp_convert.cc convert_arc()。 测试:./test-native.sh 通过;./test-linuxcnc-source-link.sh 通过。 --- test-linuxcnc-rs274-native.sh | 5 +++-- test-linuxcnc-source-link.sh | 5 +++-- tests/gcode/linuxcnc_arc_inverse_time_missing_f_error.ngc | 4 ++++ 3 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 tests/gcode/linuxcnc_arc_inverse_time_missing_f_error.ngc diff --git a/test-linuxcnc-rs274-native.sh b/test-linuxcnc-rs274-native.sh index c081a03..f220384 100755 --- a/test-linuxcnc-rs274-native.sh +++ b/test-linuxcnc-rs274-native.sh @@ -495,10 +495,11 @@ for case in "${threading_check_error_cases[@]}"; do grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_$fixture.err" done # Source basis: LinuxCNC src/emc/rs274ngc/interp_convert.cc -# convert_straight() and convert_threading_cycle() reject invalid +# convert_arc(), convert_straight(), and convert_threading_cycle() reject invalid # feed/spindle state, spindle selectors, rotary-axis motion, and G76 I/J/K -# geometry before issuing straight or synchronized threading motion. +# geometry before issuing arc, straight, or synchronized threading motion. threading_convert_error_cases=( + "linuxcnc_arc_inverse_time_missing_f_error|F word missing with inverse time arc move" "linuxcnc_g1_zero_feed_error|Cannot do g1 with zero feed rate" "linuxcnc_g1_inverse_time_missing_f_error|F word missing with inverse time g1 move" "linuxcnc_g33_stopped_spindle_error|Spindle not turning in G33" diff --git a/test-linuxcnc-source-link.sh b/test-linuxcnc-source-link.sh index 9f6ad41..d7ce3af 100755 --- a/test-linuxcnc-source-link.sh +++ b/test-linuxcnc-source-link.sh @@ -1079,10 +1079,11 @@ for case in "${threading_check_error_cases[@]}"; do grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err" done # Source basis: LinuxCNC src/emc/rs274ngc/interp_convert.cc -# convert_straight() and convert_threading_cycle() reject invalid +# convert_arc(), convert_straight(), and convert_threading_cycle() reject invalid # feed/spindle state, spindle selectors, rotary-axis motion, and G76 I/J/K -# geometry before issuing straight or synchronized threading motion. +# geometry before issuing arc, straight, or synchronized threading motion. threading_convert_error_cases=( + "linuxcnc_arc_inverse_time_missing_f_error|F word missing with inverse time arc move" "linuxcnc_g1_zero_feed_error|Cannot do g1 with zero feed rate" "linuxcnc_g1_inverse_time_missing_f_error|F word missing with inverse time g1 move" "linuxcnc_g33_stopped_spindle_error|Spindle not turning in G33" diff --git a/tests/gcode/linuxcnc_arc_inverse_time_missing_f_error.ngc b/tests/gcode/linuxcnc_arc_inverse_time_missing_f_error.ngc new file mode 100644 index 0000000..67a622c --- /dev/null +++ b/tests/gcode/linuxcnc_arc_inverse_time_missing_f_error.ngc @@ -0,0 +1,4 @@ +G21 G90 G17 +G0 X0 Y0 +G93 +G2 X1 Y0 R0.5