diff --git a/test-linuxcnc-source-link.sh b/test-linuxcnc-source-link.sh index bbadea6..3d09725 100755 --- a/test-linuxcnc-source-link.sh +++ b/test-linuxcnc-source-link.sh @@ -476,6 +476,10 @@ cp "$base_var_file" "$var_file" CNC_SIM_RS274_VAR="$var_file" \ "$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_g52_xz_nurbs.ngc \ >/tmp/cnc_sim_linuxcnc_source_g52_xz_nurbs.json +cp "$base_var_file" "$var_file" +CNC_SIM_RS274_VAR="$var_file" \ + "$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_g62_xz_nurbs.ngc \ + >/tmp/cnc_sim_linuxcnc_source_g62_xz_nurbs.json python3 - <<'PY' import json @@ -2041,6 +2045,17 @@ if not any( for event in g52_xz_nurbs ): raise SystemExit("missing source-linked G18/XZ NURBS endpoint mapped to X/Z axes") + +g62_xz_nurbs = json.loads(Path("/tmp/cnc_sim_linuxcnc_source_g62_xz_nurbs.json").read_text()) +if not any( + event["type"] == "linear-feed" and + event["plane"] == 18 and + event["end"]["x"] == 100 and + event["end"]["y"] == 0 and + event["end"]["z"] == 10 + for event in g62_xz_nurbs +): + raise SystemExit("missing source-linked G18/XZ G6.2 NURBS point mapped to X/Z axes") PY echo "linuxcnc rs274 source link smoke passed (${#objects[@]} local objects)" @@ -2128,3 +2143,4 @@ echo "dumped /tmp/cnc_sim_linuxcnc_source_coordinate_select_all.json" echo "dumped /tmp/cnc_sim_linuxcnc_source_g92_restore.json" echo "dumped /tmp/cnc_sim_linuxcnc_source_g52_offset.json" echo "dumped /tmp/cnc_sim_linuxcnc_source_g52_xz_nurbs.json" +echo "dumped /tmp/cnc_sim_linuxcnc_source_g62_xz_nurbs.json" diff --git a/tests/gcode/linuxcnc_g62_xz_nurbs.ngc b/tests/gcode/linuxcnc_g62_xz_nurbs.ngc new file mode 100644 index 0000000..3fb35c2 --- /dev/null +++ b/tests/gcode/linuxcnc_g62_xz_nurbs.ngc @@ -0,0 +1,17 @@ +G21 G90 G18 +F100 +G6.2 Z0 X100 R1 K0 P4 Q1 +Z10 X100 R1 K0 +Z10 X70.665 R1 K0 +Z27.928 X59.258 R1 K0 +Z34.093 X56.935 R1 K1 +Z41.136 X54.281 R1 K2 +Z63.112 X51.556 R1 K3 +Z79.999 X60 R1 K4 +Z99.998 X40.002 R1 K5 +Z100 X0.012 R1 K6 +G6.2 K7 +G6.2 K7 +G6.2 K7 +G6.2 K7 +M2