第 6 组:源码链接、构建和文档约束闭环完成

This commit is contained in:
cnc
2026-06-01 06:11:08 +08:00
parent 1498d9830d
commit 4c55ab3435
43 changed files with 8414 additions and 636 deletions

View File

@@ -103,9 +103,17 @@ bool contains_switchkins_config_alias(const std::string &compact, const char *al
contains_string_value(compact, "kinematics", alias) ||
contains_string_value(compact, "halfile", alias) ||
contains_string_value(compact, "hal_file", alias) ||
contains_string_value(compact, "postguihalfile", alias) ||
contains_string_value(compact, "postgui_halfile", alias) ||
contains_string_value(compact, "postgui_hal_file", alias) ||
contains_string_value(compact, "config", alias) ||
contains_string_value(compact, "configpath", alias) ||
contains_string_value(compact, "config_path", alias);
contains_string_value(compact, "config_path", alias) ||
contains_string_value(compact, "ini", alias) ||
contains_string_value(compact, "inifile", alias) ||
contains_string_value(compact, "inifilename", alias) ||
contains_string_value(compact, "ini_file", alias) ||
contains_string_value(compact, "ini_file_name", alias);
}
bool find_number_value(const std::string &compact, const char *key, double *value) {

View File

@@ -28,6 +28,19 @@ double motion_control_tolerance = 0.0;
double naivecam_tolerance = 0.0;
std::string parameter_file_name = "rs274ngc.var";
void load_nonrandom_tool_to_spindle(int pocket) {
// LinuxCNC Task::load_tool() uses pocket 0 as the non-random
// toolchanger unload handshake. Do not eagerly mirror nonzero
// loads here; the source-linked interpreter observes its own
// post-canonical state before external task-side load completion.
if (pocket == 0) {
CANON_TOOL_TABLE unloaded = tooldata_entry_init();
unloaded.toolno = 0;
unloaded.pocketno = 0;
tooldata_put(unloaded, 0);
}
}
CncSimPose make_pose(double x, double y, double z,
double a, double b, double c,
double u, double v, double w) {
@@ -215,6 +228,10 @@ void SELECT_TOOL(int tool) {
void CHANGE_TOOL() {
trace_call("CHANGE_TOOL");
if (active_sink) {
const int selected_tool = active_sink->selected_tool();
if (selected_tool == 0) {
load_nonrandom_tool_to_spindle(0);
}
active_sink->change_tool(event_line());
}
}
@@ -524,6 +541,7 @@ void USE_TOOL_LENGTH_OFFSET(const EmcPose &offset) {
void CHANGE_TOOL_NUMBER(int number) {
if (active_sink) {
load_nonrandom_tool_to_spindle(number);
active_sink->select_tool(number);
active_sink->change_tool(event_line());
}

View File

@@ -1,5 +1,5 @@
// Generated by ./generate-linuxcnc-switchkins-remap-table.sh.
// Source: LinuxCNC INI MACHINE/KINEMATICS/HALFILE/SUBROUTINE_PATH/REMAP entries and
// Source: LinuxCNC INI MACHINE/KINEMATICS/HALFILE/POSTGUI_HALFILE/SUBROUTINE_PATH/REMAP entries and
// adjacent remap_subs/{428,429,430}remap.ngc #<kinstype> assignments.
{"configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2},
{"configs/sim/axis/vismach/5axis/bridgemill", 0, 1, 2},
@@ -11,6 +11,8 @@
{"5axiskins", 0, 1, 2},
{"5axisgui.hal", 0, 1, 2},
{"5axisgui", 0, 1, 2},
{"5axis_postgui.hal", 0, 1, 2},
{"5axis_postgui", 0, 1, 2},
{"configs/sim/axis/vismach/5axis/bridgemill/remap_subs", 0, 1, 2},
{"configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
{"configs/sim/axis/vismach/5axis/table-dual-rotary", 1, 0, -1},
@@ -21,6 +23,8 @@
{"xyzab_tdr_kins", 1, 0, -1},
{"xyzab_tdr", 1, 0, -1},
{"xyzab-tdr-kins", 1, 0, -1},
{"xyzab-tdr-postgui.hal", 1, 0, -1},
{"xyzab-tdr-postgui", 1, 0, -1},
{"configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs", 1, 0, -1},
{"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
{"configs/sim/axis/vismach/5axis/table-rotary-tilting", 1, 0, 2},
@@ -30,6 +34,8 @@
{"sim-xyzac-trt-kins", 1, 0, 2},
{"xyzac-trt-kinssparm=identityfirst", 1, 0, 2},
{"xyzac-trt-kins", 1, 0, 2},
{"switchkins_postgui.hal", 1, 0, 2},
{"switchkins_postgui", 1, 0, 2},
{"configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs", 1, 0, 2},
{"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
{"xyzbc-trt", 1, 0, 2},
@@ -43,6 +49,8 @@
{"xyzacb-trsrn", 0, 1, 2},
{"xyzacb-trsrn(switchkins)", 0, 1, 2},
{"xyzacb_trsrn", 0, 1, 2},
{"xyzacb-trsrn_postgui.hal", 0, 1, 2},
{"xyzacb-trsrn_postgui", 0, 1, 2},
{"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs", 0, 1, 2},
{"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating", 0, 1, 2},
{"table-rotary_spindle-rotary-nutating", 0, 1, 2},
@@ -52,6 +60,8 @@
{"xyzbca-trsrn", 0, 1, 2},
{"xyzbca-trsrn(switchkins)", 0, 1, 2},
{"xyzbca_trsrn", 0, 1, 2},
{"xyzbca-trsrn_postgui.hal", 0, 1, 2},
{"xyzbca-trsrn_postgui", 0, 1, 2},
{"configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
{"configs/sim/axis/vismach/hexapod-sim", 0, 1, 2},
{"hexapod-sim", 0, 1, 2},
@@ -60,6 +70,8 @@
{"genhexkins", 0, 1, 2},
{"kinematics.hal", 0, 1, 2},
{"kinematics", 0, 1, 2},
{"hexapod_postgui.hal", 0, 1, 2},
{"hexapod_postgui", 0, 1, 2},
{"configs/sim/axis/vismach/hexapod-sim/remap_subs", 0, 1, 2},
{"configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
{"configs/sim/axis/vismach/melfa-sim", 0, 1, 2},
@@ -69,12 +81,16 @@
{"genserkins", 0, 1, 2},
{"melfa_dh.hal", 0, 1, 2},
{"melfa_dh", 0, 1, 2},
{"melfa-postgui.hal", 0, 1, 2},
{"melfa-postgui", 0, 1, 2},
{"configs/sim/axis/vismach/melfa-sim/remap_subs", 0, 1, 2},
{"configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
{"configs/sim/axis/vismach/millturn", 0, 1, -1},
{"millturn", 0, 1, -1},
{"millturn(mm)", 0, 1, -1},
{"millturn.hal", 0, 1, -1},
{"millturn-postgui.hal", 0, 1, -1},
{"millturn-postgui", 0, 1, -1},
{"configs/sim/axis/vismach/millturn/remap_subs", 0, 1, -1},
{"configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
{"configs/sim/axis/vismach/puma", 0, 1, 2},
@@ -83,6 +99,8 @@
{"pumakins", 0, 1, 2},
{"puma_dh.hal", 0, 1, 2},
{"puma_dh", 0, 1, 2},
{"puma_postgui.hal", 0, 1, 2},
{"puma_postgui", 0, 1, 2},
{"configs/sim/axis/vismach/puma/remap_subs", 0, 1, 2},
{"configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
{"puma_cube", 0, 1, 2},
@@ -93,6 +111,8 @@
{"puma560(switchkins)(inch)", 0, 1, 2},
{"puma560_dh.hal", 0, 1, 2},
{"puma560_dh", 0, 1, 2},
{"puma560_postgui.hal", 0, 1, 2},
{"puma560_postgui", 0, 1, 2},
{"configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
{"puma560_uvw", 0, 1, 2},
{"configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
@@ -101,6 +121,8 @@
{"scara(genserkins,switchkins)", 0, 1, 2},
{"scarakinscoordinates=xyzcab", 0, 1, 2},
{"scarakins", 0, 1, 2},
{"scara_postgui.hal", 0, 1, 2},
{"scara_postgui", 0, 1, 2},
{"configs/sim/axis/vismach/scara/remap_subs", 0, 1, 2},
{"configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2},
{"configs/sim/qtaxis/non-trivial/scara", 0, 1, 2},