覆盖多主轴全选 spindle source-linked 路径

This commit is contained in:
cnc
2026-06-05 21:47:28 +08:00
parent 6a886be52d
commit 55149b0a0a
2 changed files with 39 additions and 0 deletions

View File

@@ -217,6 +217,13 @@ CNC_SIM_RS274_VAR="$var_file" \
INI_FILE_NAME="$multi_spindle_modes_file" CNC_SIM_RS274_VAR="$var_file" \
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_multi_spindle_direction.ngc \
>"$output_dir/cnc_sim_linuxcnc_source_multi_spindle_direction.json"
# Source basis: LinuxCNC src/emc/rs274ngc/rs274ngc_pre.cc init reads
# [TRAJ] SPINDLES from INI_FILE_NAME, interp_execute.cc expands S-word $-1
# over all configured spindles, and interp_convert.cc expands M3/M4/M5 $-1
# over all configured spindles.
INI_FILE_NAME="$multi_spindle_modes_file" CNC_SIM_RS274_VAR="$var_file" \
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_multi_spindle_all_direction.ngc \
>"$output_dir/cnc_sim_linuxcnc_source_multi_spindle_all_direction.json"
CNC_SIM_RS274_VAR="$var_file" \
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_spindle_modes.ngc \
>"$output_dir/cnc_sim_linuxcnc_source_spindle_modes.json"
@@ -1814,6 +1821,28 @@ if multi_spindle_direction_states != expected_multi_spindle_direction_states:
f"{multi_spindle_direction_states!r}"
)
multi_spindle_all_direction = json.loads((OUTPUT_DIR / "cnc_sim_linuxcnc_source_multi_spindle_all_direction.json").read_text())
multi_spindle_all_direction_states = [
(event["line"], event["tool"], event["spindle"], event["reserved"])
for event in multi_spindle_all_direction
if event["type"] == "set-spindle" and event["line"] in {5, 6, 7, 8}
]
expected_multi_spindle_all_direction_states = [
(5, 0, 1200, 0),
(5, 1, 1200, 0),
(6, 0, 1200, 1),
(6, 1, 1200, 1),
(7, 0, 1200, 2),
(7, 1, 1200, 2),
(8, 0, 0, 0),
(8, 1, 0, 0),
]
if multi_spindle_all_direction_states != expected_multi_spindle_all_direction_states:
raise SystemExit(
"unexpected source-linked all-spindles S/M3/M4/M5 states: "
f"{multi_spindle_all_direction_states!r}"
)
spindle_modes = json.loads((OUTPUT_DIR / "cnc_sim_linuxcnc_source_spindle_modes.json").read_text())
spindle_mode_states = [
(event["line"], event["reserved"], event["feed"], event["tool"])
@@ -3681,6 +3710,7 @@ echo "dumped $output_dir/cnc_sim_linuxcnc_source_incremental_and_r_arc.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_source_rtcp_controls.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_source_spindle_direction.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_source_multi_spindle_direction.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_source_multi_spindle_all_direction.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_source_spindle_modes.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_source_spindle_orient.json"
echo "dumped $output_dir/cnc_sim_linuxcnc_source_io_controls.json"

View File

@@ -0,0 +1,9 @@
G21 G90 G17
(Source basis: LinuxCNC src/emc/rs274ngc/rs274ngc_pre.cc init reads [TRAJ] SPINDLES from INI_FILE_NAME.)
(Source basis: LinuxCNC src/emc/rs274ngc/interp_execute.cc expands S-word $-1 to all configured spindles.)
(Source basis: LinuxCNC src/emc/rs274ngc/interp_convert.cc expands M3/M4/M5 $-1 to all configured spindles.)
S1200 $-1
M3 $-1
M4 $-1
M5 $-1
M30