diff --git a/check-linuxcnc-switchkins-remap-table.sh b/check-linuxcnc-switchkins-remap-table.sh index bfafacb..ff2d784 100755 --- a/check-linuxcnc-switchkins-remap-table.sh +++ b/check-linuxcnc-switchkins-remap-table.sh @@ -2596,22 +2596,22 @@ validate_generated_header \ validate_generated_source_notes \ "$generated_dir/linuxcnc_switchkins_remap_table.inc" \ "table" \ - "// Source: LinuxCNC INI MACHINE/KINEMATICS/HALFILE/POSTGUI_HALFILE/SUBROUTINE_PATH/REMAP entries and" \ + "// Source: LinuxCNC INI MACHINE/KINEMATICS/HALFILE/POSTGUI_HALFILE/TOOL_TABLE/SUBROUTINE_PATH/REMAP entries and" \ "// adjacent remap_subs/{428,429,430}remap.ngc # assignments." validate_generated_source_notes \ core/src/linuxcnc_switchkins_remap_table.inc \ "tracked table" \ - "// Source: LinuxCNC INI MACHINE/KINEMATICS/HALFILE/POSTGUI_HALFILE/SUBROUTINE_PATH/REMAP entries and" \ + "// Source: LinuxCNC INI MACHINE/KINEMATICS/HALFILE/POSTGUI_HALFILE/TOOL_TABLE/SUBROUTINE_PATH/REMAP entries and" \ "// adjacent remap_subs/{428,429,430}remap.ngc # assignments." validate_generated_source_notes \ "$generated_dir/linuxcnc_switchkins_remap_config_cases.inc" \ "config cases" \ - "// Source: LinuxCNC INI config path, MACHINE, KINEMATICS, non-LIB HALFILE/POSTGUI_HALFILE," \ + "// Source: LinuxCNC INI config path, MACHINE, KINEMATICS, non-LIB HALFILE/POSTGUI_HALFILE, TOOL_TABLE," \ "// SUBROUTINE_PATH-resolved remap_subs entries, and adjacent M428/M429/M430 # assignments." validate_generated_source_notes \ core/tests/linuxcnc_switchkins_remap_config_cases.inc \ "tracked config cases" \ - "// Source: LinuxCNC INI config path, MACHINE, KINEMATICS, non-LIB HALFILE/POSTGUI_HALFILE," \ + "// Source: LinuxCNC INI config path, MACHINE, KINEMATICS, non-LIB HALFILE/POSTGUI_HALFILE, TOOL_TABLE," \ "// SUBROUTINE_PATH-resolved remap_subs entries, and adjacent M428/M429/M430 # assignments." validate_json "$generated_dir/linuxcnc_switchkins_remap_config_cases.json" "generated linuxcnc_switchkins_remap_config_cases.json" diff --git a/core/src/cnc_sim_api.cpp b/core/src/cnc_sim_api.cpp index afbfdc0..30d8043 100644 --- a/core/src/cnc_sim_api.cpp +++ b/core/src/cnc_sim_api.cpp @@ -175,6 +175,8 @@ bool contains_switchkins_config_alias(const std::string &compact, const char *al contains_string_value(compact, "postgui_hal_file", alias) || contains_string_value(compact, "subroutinepath", alias) || contains_string_value(compact, "subroutine_path", alias) || + contains_string_value(compact, "tooltable", alias) || + contains_string_value(compact, "tool_table", alias) || contains_string_value(compact, "config", alias) || contains_string_value(compact, "configpath", alias) || contains_string_value(compact, "config_path", alias) || diff --git a/core/src/linuxcnc_switchkins_remap_table.inc b/core/src/linuxcnc_switchkins_remap_table.inc index e4e1c46..88f8f9f 100644 --- a/core/src/linuxcnc_switchkins_remap_table.inc +++ b/core/src/linuxcnc_switchkins_remap_table.inc @@ -1,5 +1,5 @@ // Generated by ./generate-linuxcnc-switchkins-remap-table.sh. -// Source: LinuxCNC INI MACHINE/KINEMATICS/HALFILE/POSTGUI_HALFILE/SUBROUTINE_PATH/REMAP entries and +// Source: LinuxCNC INI MACHINE/KINEMATICS/HALFILE/POSTGUI_HALFILE/TOOL_TABLE/SUBROUTINE_PATH/REMAP entries and // adjacent remap_subs/{428,429,430}remap.ngc # assignments. {"configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2}, {"configs/sim/axis/vismach/5axis/bridgemill", 0, 1, 2}, @@ -15,6 +15,8 @@ {"configs/sim/axis/vismach/5axis/bridgemill/5axis_postgui.hal", 0, 1, 2}, {"5axis_postgui.hal", 0, 1, 2}, {"5axis_postgui", 0, 1, 2}, + {"configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl", 0, 1, 2}, + {"5axis.tbl", 0, 1, 2}, {"configs/sim/axis/vismach/5axis/bridgemill/remap_subs/428remap.ngc", 0, 1, 2}, {"configs/sim/axis/vismach/5axis/bridgemill/remap_subs", 0, 1, 2}, {"configs/sim/axis/vismach/5axis/bridgemill/remap_subs/429remap.ngc", 0, 1, 2}, @@ -31,6 +33,8 @@ {"configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal", 1, 0, -1}, {"xyzab-tdr-postgui.hal", 1, 0, -1}, {"xyzab-tdr-postgui", 1, 0, -1}, + {"configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl", 1, 0, -1}, + {"xyzab-tdr.tbl", 1, 0, -1}, {"configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs/428remap.ngc", 1, 0, -1}, {"configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs", 1, 0, -1}, {"configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs/429remap.ngc", 1, 0, -1}, @@ -45,6 +49,8 @@ {"configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal", 1, 0, 2}, {"switchkins_postgui.hal", 1, 0, 2}, {"switchkins_postgui", 1, 0, 2}, + {"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl", 1, 0, 2}, + {"xyzac-trt.tbl", 1, 0, 2}, {"configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc", 1, 0, 2}, {"configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs", 1, 0, 2}, {"configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc", 1, 0, 2}, @@ -55,6 +61,8 @@ {"sim-xyzbc-trt-kins", 1, 0, 2}, {"xyzbc-trt-kinssparm=identityfirst", 1, 0, 2}, {"xyzbc-trt-kins", 1, 0, 2}, + {"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl", 1, 0, 2}, + {"xyzbc-trt.tbl", 1, 0, 2}, {"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2}, {"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp", 0, 1, 2}, {"xyzacb-trsrn_twp", 0, 1, 2}, @@ -64,6 +72,8 @@ {"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn_postgui.hal", 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/xyzacb-trsrn_twp/xyzacb-trsrn.tbl", 0, 1, 2}, + {"xyzacb-trsrn.tbl", 0, 1, 2}, {"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/428remap.ngc", 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}, @@ -79,6 +89,8 @@ {"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn_postgui.hal", 0, 1, 2}, {"xyzbca-trsrn_postgui.hal", 0, 1, 2}, {"xyzbca-trsrn_postgui", 0, 1, 2}, + {"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.tbl", 0, 1, 2}, + {"xyzbca-trsrn.tbl", 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}, @@ -91,6 +103,7 @@ {"configs/sim/axis/vismach/hexapod-sim/hexapod_postgui.hal", 0, 1, 2}, {"hexapod_postgui.hal", 0, 1, 2}, {"hexapod_postgui", 0, 1, 2}, + {"hexapod.tbl", 0, 1, 2}, {"configs/sim/axis/vismach/hexapod-sim/remap_subs/428remap.ngc", 0, 1, 2}, {"configs/sim/axis/vismach/hexapod-sim/remap_subs", 0, 1, 2}, {"configs/sim/axis/vismach/hexapod-sim/remap_subs/429remap.ngc", 0, 1, 2}, @@ -107,6 +120,8 @@ {"configs/sim/axis/vismach/melfa-sim/melfa-postgui.hal", 0, 1, 2}, {"melfa-postgui.hal", 0, 1, 2}, {"melfa-postgui", 0, 1, 2}, + {"configs/sim/axis/vismach/melfa-sim/melfa.tbl", 0, 1, 2}, + {"melfa.tbl", 0, 1, 2}, {"configs/sim/axis/vismach/melfa-sim/remap_subs/428remap.ngc", 0, 1, 2}, {"configs/sim/axis/vismach/melfa-sim/remap_subs", 0, 1, 2}, {"configs/sim/axis/vismach/melfa-sim/remap_subs/429remap.ngc", 0, 1, 2}, @@ -120,6 +135,8 @@ {"configs/sim/axis/vismach/millturn/millturn-postgui.hal", 0, 1, -1}, {"millturn-postgui.hal", 0, 1, -1}, {"millturn-postgui", 0, 1, -1}, + {"configs/sim/axis/vismach/millturn/millturn.tbl", 0, 1, -1}, + {"millturn.tbl", 0, 1, -1}, {"configs/sim/axis/vismach/millturn/remap_subs/428remap.ngc", 0, 1, -1}, {"configs/sim/axis/vismach/millturn/remap_subs", 0, 1, -1}, {"configs/sim/axis/vismach/millturn/remap_subs/429remap.ngc", 0, 1, -1}, @@ -134,6 +151,8 @@ {"configs/sim/axis/vismach/puma/puma_postgui.hal", 0, 1, 2}, {"puma_postgui.hal", 0, 1, 2}, {"puma_postgui", 0, 1, 2}, + {"configs/sim/axis/vismach/puma/puma.tbl", 0, 1, 2}, + {"puma.tbl", 0, 1, 2}, {"configs/sim/axis/vismach/puma/remap_subs/428remap.ngc", 0, 1, 2}, {"configs/sim/axis/vismach/puma/remap_subs", 0, 1, 2}, {"configs/sim/axis/vismach/puma/remap_subs/429remap.ngc", 0, 1, 2}, @@ -162,12 +181,14 @@ {"configs/sim/axis/vismach/scara/scara_postgui.hal", 0, 1, 2}, {"scara_postgui.hal", 0, 1, 2}, {"scara_postgui", 0, 1, 2}, + {"scara.tbl", 0, 1, 2}, {"configs/sim/axis/vismach/scara/remap_subs/428remap.ngc", 0, 1, 2}, {"configs/sim/axis/vismach/scara/remap_subs", 0, 1, 2}, {"configs/sim/axis/vismach/scara/remap_subs/429remap.ngc", 0, 1, 2}, {"configs/sim/axis/vismach/scara/remap_subs/430remap.ngc", 0, 1, 2}, {"configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2}, {"configs/sim/qtaxis/non-trivial/scara", 0, 1, 2}, + {"configs/sim/qtaxis/non-trivial/scara/scara.tbl", 0, 1, 2}, {"configs/sim/qtaxis/non-trivial/scara/remap_subs/428remap.ngc", 0, 1, 2}, {"configs/sim/qtaxis/non-trivial/scara/remap_subs", 0, 1, 2}, {"configs/sim/qtaxis/non-trivial/scara/remap_subs/429remap.ngc", 0, 1, 2}, diff --git a/core/tests/linuxcnc_switchkins_remap_config_cases.inc b/core/tests/linuxcnc_switchkins_remap_config_cases.inc index 9ec874f..1f977bc 100644 --- a/core/tests/linuxcnc_switchkins_remap_config_cases.inc +++ b/core/tests/linuxcnc_switchkins_remap_config_cases.inc @@ -1,5 +1,5 @@ // Generated by ./generate-linuxcnc-switchkins-remap-table.sh --config-cases. -// Source: LinuxCNC INI config path, MACHINE, KINEMATICS, non-LIB HALFILE/POSTGUI_HALFILE, +// Source: LinuxCNC INI config path, MACHINE, KINEMATICS, non-LIB HALFILE/POSTGUI_HALFILE, TOOL_TABLE, // SUBROUTINE_PATH-resolved remap_subs entries, and adjacent M428/M429/M430 # assignments. {"config", "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2}, {"configPath", "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2}, @@ -48,6 +48,18 @@ {"postgui_hal_file", "5axis_postgui", 0, 1, 2}, {"POSTGUI_HALFILE", "5axis_postgui.hal", 0, 1, 2}, {"POSTGUI_HALFILE", "5axis_postgui", 0, 1, 2}, + {"toolTable", "configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl", 0, 1, 2}, + {"tooltable", "configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl", 0, 1, 2}, + {"tool_table", "configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl", 0, 1, 2}, + {"TOOL_TABLE", "configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl", 0, 1, 2}, + {"toolTable", "5axis.tbl", 0, 1, 2}, + {"toolTable", "5axis", 0, 1, 2}, + {"tooltable", "5axis.tbl", 0, 1, 2}, + {"tooltable", "5axis", 0, 1, 2}, + {"tool_table", "5axis.tbl", 0, 1, 2}, + {"tool_table", "5axis", 0, 1, 2}, + {"TOOL_TABLE", "5axis.tbl", 0, 1, 2}, + {"TOOL_TABLE", "5axis", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/5axis/bridgemill/remap_subs/428remap.ngc", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/5axis/bridgemill/remap_subs", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/5axis/bridgemill", 0, 1, 2}, @@ -94,6 +106,18 @@ {"postgui_hal_file", "xyzab-tdr-postgui", 1, 0, -1}, {"POSTGUI_HALFILE", "xyzab-tdr-postgui.hal", 1, 0, -1}, {"POSTGUI_HALFILE", "xyzab-tdr-postgui", 1, 0, -1}, + {"toolTable", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl", 1, 0, -1}, + {"tooltable", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl", 1, 0, -1}, + {"tool_table", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl", 1, 0, -1}, + {"TOOL_TABLE", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl", 1, 0, -1}, + {"toolTable", "xyzab-tdr.tbl", 1, 0, -1}, + {"toolTable", "xyzab-tdr", 1, 0, -1}, + {"tooltable", "xyzab-tdr.tbl", 1, 0, -1}, + {"tooltable", "xyzab-tdr", 1, 0, -1}, + {"tool_table", "xyzab-tdr.tbl", 1, 0, -1}, + {"tool_table", "xyzab-tdr", 1, 0, -1}, + {"TOOL_TABLE", "xyzab-tdr.tbl", 1, 0, -1}, + {"TOOL_TABLE", "xyzab-tdr", 1, 0, -1}, {"remap", "configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs/428remap.ngc", 1, 0, -1}, {"remap", "configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs", 1, 0, -1}, {"remap", "configs/sim/axis/vismach/5axis/table-dual-rotary", 1, 0, -1}, @@ -138,6 +162,18 @@ {"postgui_hal_file", "switchkins_postgui", 1, 0, 2}, {"POSTGUI_HALFILE", "switchkins_postgui.hal", 1, 0, 2}, {"POSTGUI_HALFILE", "switchkins_postgui", 1, 0, 2}, + {"toolTable", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl", 1, 0, 2}, + {"tooltable", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl", 1, 0, 2}, + {"tool_table", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl", 1, 0, 2}, + {"TOOL_TABLE", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl", 1, 0, 2}, + {"toolTable", "xyzac-trt.tbl", 1, 0, 2}, + {"toolTable", "xyzac-trt", 1, 0, 2}, + {"tooltable", "xyzac-trt.tbl", 1, 0, 2}, + {"tooltable", "xyzac-trt", 1, 0, 2}, + {"tool_table", "xyzac-trt.tbl", 1, 0, 2}, + {"tool_table", "xyzac-trt", 1, 0, 2}, + {"TOOL_TABLE", "xyzac-trt.tbl", 1, 0, 2}, + {"TOOL_TABLE", "xyzac-trt", 1, 0, 2}, {"remap", "configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc", 1, 0, 2}, {"remap", "configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs", 1, 0, 2}, {"remap", "configs/sim/axis/vismach/5axis/table-rotary-tilting", 1, 0, 2}, @@ -167,6 +203,18 @@ {"switchkins", "sim-xyzbc-trt-kins", 1, 0, 2}, {"switchkins", "xyzbc-trt-kins sparm=identityfirst", 1, 0, 2}, {"switchkins", "xyzbc-trt-kins", 1, 0, 2}, + {"toolTable", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl", 1, 0, 2}, + {"tooltable", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl", 1, 0, 2}, + {"tool_table", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl", 1, 0, 2}, + {"TOOL_TABLE", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl", 1, 0, 2}, + {"toolTable", "xyzbc-trt.tbl", 1, 0, 2}, + {"toolTable", "xyzbc-trt", 1, 0, 2}, + {"tooltable", "xyzbc-trt.tbl", 1, 0, 2}, + {"tooltable", "xyzbc-trt", 1, 0, 2}, + {"tool_table", "xyzbc-trt.tbl", 1, 0, 2}, + {"tool_table", "xyzbc-trt", 1, 0, 2}, + {"TOOL_TABLE", "xyzbc-trt.tbl", 1, 0, 2}, + {"TOOL_TABLE", "xyzbc-trt", 1, 0, 2}, {"config", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2}, {"configPath", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2}, {"configpath", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2}, @@ -200,6 +248,18 @@ {"postgui_hal_file", "xyzacb-trsrn_postgui", 0, 1, 2}, {"POSTGUI_HALFILE", "xyzacb-trsrn_postgui.hal", 0, 1, 2}, {"POSTGUI_HALFILE", "xyzacb-trsrn_postgui", 0, 1, 2}, + {"toolTable", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.tbl", 0, 1, 2}, + {"tooltable", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.tbl", 0, 1, 2}, + {"tool_table", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.tbl", 0, 1, 2}, + {"TOOL_TABLE", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.tbl", 0, 1, 2}, + {"toolTable", "xyzacb-trsrn.tbl", 0, 1, 2}, + {"toolTable", "xyzacb-trsrn", 0, 1, 2}, + {"tooltable", "xyzacb-trsrn.tbl", 0, 1, 2}, + {"tooltable", "xyzacb-trsrn", 0, 1, 2}, + {"tool_table", "xyzacb-trsrn.tbl", 0, 1, 2}, + {"tool_table", "xyzacb-trsrn", 0, 1, 2}, + {"TOOL_TABLE", "xyzacb-trsrn.tbl", 0, 1, 2}, + {"TOOL_TABLE", "xyzacb-trsrn", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/428remap.ngc", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating", 0, 1, 2}, @@ -243,6 +303,18 @@ {"postgui_hal_file", "xyzbca-trsrn_postgui", 0, 1, 2}, {"POSTGUI_HALFILE", "xyzbca-trsrn_postgui.hal", 0, 1, 2}, {"POSTGUI_HALFILE", "xyzbca-trsrn_postgui", 0, 1, 2}, + {"toolTable", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.tbl", 0, 1, 2}, + {"tooltable", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.tbl", 0, 1, 2}, + {"tool_table", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.tbl", 0, 1, 2}, + {"TOOL_TABLE", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.tbl", 0, 1, 2}, + {"toolTable", "xyzbca-trsrn.tbl", 0, 1, 2}, + {"toolTable", "xyzbca-trsrn", 0, 1, 2}, + {"tooltable", "xyzbca-trsrn.tbl", 0, 1, 2}, + {"tooltable", "xyzbca-trsrn", 0, 1, 2}, + {"tool_table", "xyzbca-trsrn.tbl", 0, 1, 2}, + {"tool_table", "xyzbca-trsrn", 0, 1, 2}, + {"TOOL_TABLE", "xyzbca-trsrn.tbl", 0, 1, 2}, + {"TOOL_TABLE", "xyzbca-trsrn", 0, 1, 2}, {"config", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2}, {"configPath", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2}, {"configpath", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2}, @@ -288,6 +360,14 @@ {"postgui_hal_file", "hexapod_postgui", 0, 1, 2}, {"POSTGUI_HALFILE", "hexapod_postgui.hal", 0, 1, 2}, {"POSTGUI_HALFILE", "hexapod_postgui", 0, 1, 2}, + {"toolTable", "hexapod.tbl", 0, 1, 2}, + {"toolTable", "hexapod", 0, 1, 2}, + {"tooltable", "hexapod.tbl", 0, 1, 2}, + {"tooltable", "hexapod", 0, 1, 2}, + {"tool_table", "hexapod.tbl", 0, 1, 2}, + {"tool_table", "hexapod", 0, 1, 2}, + {"TOOL_TABLE", "hexapod.tbl", 0, 1, 2}, + {"TOOL_TABLE", "hexapod", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/hexapod-sim/remap_subs/428remap.ngc", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/hexapod-sim/remap_subs", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/hexapod-sim", 0, 1, 2}, @@ -343,6 +423,18 @@ {"postgui_hal_file", "melfa-postgui", 0, 1, 2}, {"POSTGUI_HALFILE", "melfa-postgui.hal", 0, 1, 2}, {"POSTGUI_HALFILE", "melfa-postgui", 0, 1, 2}, + {"toolTable", "configs/sim/axis/vismach/melfa-sim/melfa.tbl", 0, 1, 2}, + {"tooltable", "configs/sim/axis/vismach/melfa-sim/melfa.tbl", 0, 1, 2}, + {"tool_table", "configs/sim/axis/vismach/melfa-sim/melfa.tbl", 0, 1, 2}, + {"TOOL_TABLE", "configs/sim/axis/vismach/melfa-sim/melfa.tbl", 0, 1, 2}, + {"toolTable", "melfa.tbl", 0, 1, 2}, + {"toolTable", "melfa", 0, 1, 2}, + {"tooltable", "melfa.tbl", 0, 1, 2}, + {"tooltable", "melfa", 0, 1, 2}, + {"tool_table", "melfa.tbl", 0, 1, 2}, + {"tool_table", "melfa", 0, 1, 2}, + {"TOOL_TABLE", "melfa.tbl", 0, 1, 2}, + {"TOOL_TABLE", "melfa", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/melfa-sim/remap_subs/428remap.ngc", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/melfa-sim/remap_subs", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/melfa-sim", 0, 1, 2}, @@ -396,6 +488,18 @@ {"postgui_hal_file", "millturn-postgui", 0, 1, -1}, {"POSTGUI_HALFILE", "millturn-postgui.hal", 0, 1, -1}, {"POSTGUI_HALFILE", "millturn-postgui", 0, 1, -1}, + {"toolTable", "configs/sim/axis/vismach/millturn/millturn.tbl", 0, 1, -1}, + {"tooltable", "configs/sim/axis/vismach/millturn/millturn.tbl", 0, 1, -1}, + {"tool_table", "configs/sim/axis/vismach/millturn/millturn.tbl", 0, 1, -1}, + {"TOOL_TABLE", "configs/sim/axis/vismach/millturn/millturn.tbl", 0, 1, -1}, + {"toolTable", "millturn.tbl", 0, 1, -1}, + {"toolTable", "millturn", 0, 1, -1}, + {"tooltable", "millturn.tbl", 0, 1, -1}, + {"tooltable", "millturn", 0, 1, -1}, + {"tool_table", "millturn.tbl", 0, 1, -1}, + {"tool_table", "millturn", 0, 1, -1}, + {"TOOL_TABLE", "millturn.tbl", 0, 1, -1}, + {"TOOL_TABLE", "millturn", 0, 1, -1}, {"remap", "configs/sim/axis/vismach/millturn/remap_subs/428remap.ngc", 0, 1, -1}, {"remap", "configs/sim/axis/vismach/millturn/remap_subs", 0, 1, -1}, {"remap", "configs/sim/axis/vismach/millturn", 0, 1, -1}, @@ -450,6 +554,18 @@ {"postgui_hal_file", "puma_postgui", 0, 1, 2}, {"POSTGUI_HALFILE", "puma_postgui.hal", 0, 1, 2}, {"POSTGUI_HALFILE", "puma_postgui", 0, 1, 2}, + {"toolTable", "configs/sim/axis/vismach/puma/puma.tbl", 0, 1, 2}, + {"tooltable", "configs/sim/axis/vismach/puma/puma.tbl", 0, 1, 2}, + {"tool_table", "configs/sim/axis/vismach/puma/puma.tbl", 0, 1, 2}, + {"TOOL_TABLE", "configs/sim/axis/vismach/puma/puma.tbl", 0, 1, 2}, + {"toolTable", "puma.tbl", 0, 1, 2}, + {"toolTable", "puma", 0, 1, 2}, + {"tooltable", "puma.tbl", 0, 1, 2}, + {"tooltable", "puma", 0, 1, 2}, + {"tool_table", "puma.tbl", 0, 1, 2}, + {"tool_table", "puma", 0, 1, 2}, + {"TOOL_TABLE", "puma.tbl", 0, 1, 2}, + {"TOOL_TABLE", "puma", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/puma/remap_subs/428remap.ngc", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/puma/remap_subs", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/puma", 0, 1, 2}, @@ -565,6 +681,14 @@ {"postgui_hal_file", "scara_postgui", 0, 1, 2}, {"POSTGUI_HALFILE", "scara_postgui.hal", 0, 1, 2}, {"POSTGUI_HALFILE", "scara_postgui", 0, 1, 2}, + {"toolTable", "scara.tbl", 0, 1, 2}, + {"toolTable", "scara", 0, 1, 2}, + {"tooltable", "scara.tbl", 0, 1, 2}, + {"tooltable", "scara", 0, 1, 2}, + {"tool_table", "scara.tbl", 0, 1, 2}, + {"tool_table", "scara", 0, 1, 2}, + {"TOOL_TABLE", "scara.tbl", 0, 1, 2}, + {"TOOL_TABLE", "scara", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/scara/remap_subs/428remap.ngc", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/scara/remap_subs", 0, 1, 2}, {"remap", "configs/sim/axis/vismach/scara", 0, 1, 2}, @@ -587,6 +711,10 @@ {"ini_file", "configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2}, {"ini_file_name", "configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2}, {"INI_FILE_NAME", "configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2}, + {"toolTable", "configs/sim/qtaxis/non-trivial/scara/scara.tbl", 0, 1, 2}, + {"tooltable", "configs/sim/qtaxis/non-trivial/scara/scara.tbl", 0, 1, 2}, + {"tool_table", "configs/sim/qtaxis/non-trivial/scara/scara.tbl", 0, 1, 2}, + {"TOOL_TABLE", "configs/sim/qtaxis/non-trivial/scara/scara.tbl", 0, 1, 2}, {"remap", "configs/sim/qtaxis/non-trivial/scara/remap_subs/428remap.ngc", 0, 1, 2}, {"remap", "configs/sim/qtaxis/non-trivial/scara/remap_subs", 0, 1, 2}, {"remap", "configs/sim/qtaxis/non-trivial/scara", 0, 1, 2}, diff --git a/generate-linuxcnc-switchkins-remap-table.sh b/generate-linuxcnc-switchkins-remap-table.sh index 4c5984d..32abd6e 100755 --- a/generate-linuxcnc-switchkins-remap-table.sh +++ b/generate-linuxcnc-switchkins-remap-table.sh @@ -649,6 +649,59 @@ add_subroutine_path_cases() { add_case "SUBROUTINE_PATH" "$subroutine_path" "$m428" "$m429" "$m430" } +add_tool_table_case_fields() { + local field=$1 + local tool_table=$2 + local m428=$3 + local m429=$4 + local m430=$5 + + local tool_base=${tool_table##*/} + local tool_stem=${tool_base%.tbl} + add_case "$field" "$tool_table" "$m428" "$m429" "$m430" + add_case "$field" "$tool_base" "$m428" "$m429" "$m430" + add_case "$field" "$tool_stem" "$m428" "$m429" "$m430" +} + +add_tool_table_cases() { + local tool_table=$1 + local m428=$2 + local m429=$3 + local m430=$4 + [[ -n "$tool_table" ]] || return 0 + + add_tool_table_case_fields "toolTable" "$tool_table" "$m428" "$m429" "$m430" + add_tool_table_case_fields "tooltable" "$tool_table" "$m428" "$m429" "$m430" + add_tool_table_case_fields "tool_table" "$tool_table" "$m428" "$m429" "$m430" + add_tool_table_case_fields "TOOL_TABLE" "$tool_table" "$m428" "$m429" "$m430" +} + +add_tool_table_source_cases() { + local source=$1 + local m428=$2 + local m429=$3 + local m430=$4 + [[ -n "$source" ]] || return 0 + + add_case "toolTable" "$source" "$m428" "$m429" "$m430" + add_case "tooltable" "$source" "$m428" "$m429" "$m430" + add_case "tool_table" "$source" "$m428" "$m429" "$m430" + add_case "TOOL_TABLE" "$source" "$m428" "$m429" "$m430" +} + +add_tool_table_aliases() { + local tool_table=$1 + local m428=$2 + local m429=$3 + local m430=$4 + [[ -n "$tool_table" ]] || return 0 + + add_alias "$tool_table" "$m428" "$m429" "$m430" + local tool_base=${tool_table##*/} + add_alias "$tool_base" "$m428" "$m429" "$m430" + add_alias "${tool_base%.tbl}" "$m428" "$m429" "$m430" +} + while IFS=: read -r group path _note; do [[ "$group" == "config" && "$path" == *.ini ]] || continue @@ -796,8 +849,13 @@ while IFS=: read -r group path _note; do done <<<"$postgui_halfiles" while IFS= read -r tool_table; do if tooldata_source_for_tool_table "$config" "$tool_table"; then - record_tooldata_source "$path" "$resolved_tooldata_source" + tool_source=$resolved_tooldata_source + record_tooldata_source "$path" "$tool_source" + add_alias "$tool_source" "$m428" "$m429" "$m430" + add_tool_table_source_cases "$tool_source" "$m428" "$m429" "$m430" fi + add_tool_table_cases "$tool_table" "$m428" "$m429" "$m430" + add_tool_table_aliases "$tool_table" "$m428" "$m429" "$m430" done <<<"$tool_tables" for remap_source in "$remap_source_428" "$remap_source_429" "$remap_source_430"; do @@ -900,7 +958,7 @@ validate_generated_content write_table() { cat <<'EOF' // Generated by ./generate-linuxcnc-switchkins-remap-table.sh. -// Source: LinuxCNC INI MACHINE/KINEMATICS/HALFILE/POSTGUI_HALFILE/SUBROUTINE_PATH/REMAP entries and +// Source: LinuxCNC INI MACHINE/KINEMATICS/HALFILE/POSTGUI_HALFILE/TOOL_TABLE/SUBROUTINE_PATH/REMAP entries and // adjacent remap_subs/{428,429,430}remap.ngc # assignments. EOF @@ -910,7 +968,7 @@ EOF write_config_cases() { cat <<'EOF' // Generated by ./generate-linuxcnc-switchkins-remap-table.sh --config-cases. -// Source: LinuxCNC INI config path, MACHINE, KINEMATICS, non-LIB HALFILE/POSTGUI_HALFILE, +// Source: LinuxCNC INI config path, MACHINE, KINEMATICS, non-LIB HALFILE/POSTGUI_HALFILE, TOOL_TABLE, // SUBROUTINE_PATH-resolved remap_subs entries, and adjacent M428/M429/M430 # assignments. EOF diff --git a/test-native.sh b/test-native.sh index 2d47754..22fc496 100755 --- a/test-native.sh +++ b/test-native.sh @@ -196,6 +196,10 @@ grep -F 'subroutinePath: options.subroutinePath' web/src/wasm-core.js >/dev/null grep -F 'subroutinepath: options.subroutinepath' web/src/wasm-core.js >/dev/null grep -F 'subroutine_path: options.subroutine_path' web/src/wasm-core.js >/dev/null grep -F 'SUBROUTINE_PATH: options.SUBROUTINE_PATH' web/src/wasm-core.js >/dev/null +grep -F 'toolTable: options.toolTable' web/src/wasm-core.js >/dev/null +grep -F 'tooltable: options.tooltable' web/src/wasm-core.js >/dev/null +grep -F 'tool_table: options.tool_table' web/src/wasm-core.js >/dev/null +grep -F 'TOOL_TABLE: options.TOOL_TABLE' web/src/wasm-core.js >/dev/null grep -F 'kinematics: options.kinematics' web/src/wasm-core.js >/dev/null grep -F 'trt: options.trt' web/src/wasm-core.js >/dev/null grep -F 'pivotLength: options.pivotLength' web/src/wasm-core.js >/dev/null @@ -240,6 +244,10 @@ grep -F 'subroutinePath?: string;' web/src/index.ts >/dev/null grep -F 'subroutinepath?: string;' web/src/index.ts >/dev/null grep -F 'subroutine_path?: string;' web/src/index.ts >/dev/null grep -F 'SUBROUTINE_PATH?: string;' web/src/index.ts >/dev/null +grep -F 'toolTable?: string;' web/src/index.ts >/dev/null +grep -F 'tooltable?: string;' web/src/index.ts >/dev/null +grep -F 'tool_table?: string;' web/src/index.ts >/dev/null +grep -F 'TOOL_TABLE?: string;' web/src/index.ts >/dev/null grep -F 'kinematics?: string;' web/src/index.ts >/dev/null grep -F 'trt?: "xyzbc" | "xyzac" | string;' web/src/index.ts >/dev/null grep -F 'pivotLength?: number;' web/src/index.ts >/dev/null @@ -296,6 +304,10 @@ grep -F '"field":"subroutinePath"' web/public/linuxcnc_switchkins_remap_config_c grep -F '"field":"subroutinepath"' web/public/linuxcnc_switchkins_remap_config_cases.json >/dev/null grep -F '"field":"subroutine_path"' web/public/linuxcnc_switchkins_remap_config_cases.json >/dev/null grep -F '"field":"SUBROUTINE_PATH"' web/public/linuxcnc_switchkins_remap_config_cases.json >/dev/null +grep -F '"field":"toolTable"' web/public/linuxcnc_switchkins_remap_config_cases.json >/dev/null +grep -F '"field":"tooltable"' web/public/linuxcnc_switchkins_remap_config_cases.json >/dev/null +grep -F '"field":"tool_table"' web/public/linuxcnc_switchkins_remap_config_cases.json >/dev/null +grep -F '"field":"TOOL_TABLE"' web/public/linuxcnc_switchkins_remap_config_cases.json >/dev/null grep -F '{"switchkins", ' core/tests/linuxcnc_switchkins_remap_config_cases.inc >/dev/null grep -F '{"remap", ' core/tests/linuxcnc_switchkins_remap_config_cases.inc >/dev/null grep -F '{"machine", ' core/tests/linuxcnc_switchkins_remap_config_cases.inc >/dev/null @@ -325,6 +337,10 @@ grep -F '{"subroutinePath", ' core/tests/linuxcnc_switchkins_remap_config_cases. grep -F '{"subroutinepath", ' core/tests/linuxcnc_switchkins_remap_config_cases.inc >/dev/null grep -F '{"subroutine_path", ' core/tests/linuxcnc_switchkins_remap_config_cases.inc >/dev/null grep -F '{"SUBROUTINE_PATH", ' core/tests/linuxcnc_switchkins_remap_config_cases.inc >/dev/null +grep -F '{"toolTable", ' core/tests/linuxcnc_switchkins_remap_config_cases.inc >/dev/null +grep -F '{"tooltable", ' core/tests/linuxcnc_switchkins_remap_config_cases.inc >/dev/null +grep -F '{"tool_table", ' core/tests/linuxcnc_switchkins_remap_config_cases.inc >/dev/null +grep -F '{"TOOL_TABLE", ' core/tests/linuxcnc_switchkins_remap_config_cases.inc >/dev/null grep -F '"moduleResolution": "Bundler"' web/tsconfig.json >/dev/null grep -F '"include": ["src/index.ts", "src/**/*.d.ts"]' web/tsconfig.json >/dev/null grep -F 'createWasmSimulator' test-web-wasm-node-smoke.cjs >/dev/null diff --git a/web/public/linuxcnc_switchkins_remap_config_cases.json b/web/public/linuxcnc_switchkins_remap_config_cases.json index 4b86d47..b2a8d3e 100644 --- a/web/public/linuxcnc_switchkins_remap_config_cases.json +++ b/web/public/linuxcnc_switchkins_remap_config_cases.json @@ -46,6 +46,18 @@ {"field":"postgui_hal_file","value":"5axis_postgui","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"5axis_postgui.hal","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"5axis_postgui","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"5axis.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"5axis","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"5axis.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"5axis","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"5axis.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"5axis","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"5axis.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"5axis","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/bridgemill/remap_subs/428remap.ngc","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/bridgemill/remap_subs","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/bridgemill","m428":0,"m429":1,"m430":2}, @@ -92,6 +104,18 @@ {"field":"postgui_hal_file","value":"xyzab-tdr-postgui","m428":1,"m429":0,"m430":-1}, {"field":"POSTGUI_HALFILE","value":"xyzab-tdr-postgui.hal","m428":1,"m429":0,"m430":-1}, {"field":"POSTGUI_HALFILE","value":"xyzab-tdr-postgui","m428":1,"m429":0,"m430":-1}, + {"field":"toolTable","value":"configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl","m428":1,"m429":0,"m430":-1}, + {"field":"tooltable","value":"configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl","m428":1,"m429":0,"m430":-1}, + {"field":"tool_table","value":"configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl","m428":1,"m429":0,"m430":-1}, + {"field":"TOOL_TABLE","value":"configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl","m428":1,"m429":0,"m430":-1}, + {"field":"toolTable","value":"xyzab-tdr.tbl","m428":1,"m429":0,"m430":-1}, + {"field":"toolTable","value":"xyzab-tdr","m428":1,"m429":0,"m430":-1}, + {"field":"tooltable","value":"xyzab-tdr.tbl","m428":1,"m429":0,"m430":-1}, + {"field":"tooltable","value":"xyzab-tdr","m428":1,"m429":0,"m430":-1}, + {"field":"tool_table","value":"xyzab-tdr.tbl","m428":1,"m429":0,"m430":-1}, + {"field":"tool_table","value":"xyzab-tdr","m428":1,"m429":0,"m430":-1}, + {"field":"TOOL_TABLE","value":"xyzab-tdr.tbl","m428":1,"m429":0,"m430":-1}, + {"field":"TOOL_TABLE","value":"xyzab-tdr","m428":1,"m429":0,"m430":-1}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs/428remap.ngc","m428":1,"m429":0,"m430":-1}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs","m428":1,"m429":0,"m430":-1}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/table-dual-rotary","m428":1,"m429":0,"m430":-1}, @@ -136,6 +160,18 @@ {"field":"postgui_hal_file","value":"switchkins_postgui","m428":1,"m429":0,"m430":2}, {"field":"POSTGUI_HALFILE","value":"switchkins_postgui.hal","m428":1,"m429":0,"m430":2}, {"field":"POSTGUI_HALFILE","value":"switchkins_postgui","m428":1,"m429":0,"m430":2}, + {"field":"toolTable","value":"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"tooltable","value":"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"tool_table","value":"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"TOOL_TABLE","value":"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"toolTable","value":"xyzac-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"toolTable","value":"xyzac-trt","m428":1,"m429":0,"m430":2}, + {"field":"tooltable","value":"xyzac-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"tooltable","value":"xyzac-trt","m428":1,"m429":0,"m430":2}, + {"field":"tool_table","value":"xyzac-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"tool_table","value":"xyzac-trt","m428":1,"m429":0,"m430":2}, + {"field":"TOOL_TABLE","value":"xyzac-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"TOOL_TABLE","value":"xyzac-trt","m428":1,"m429":0,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc","m428":1,"m429":0,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs","m428":1,"m429":0,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/table-rotary-tilting","m428":1,"m429":0,"m430":2}, @@ -165,6 +201,18 @@ {"field":"switchkins","value":"sim-xyzbc-trt-kins","m428":1,"m429":0,"m430":2}, {"field":"switchkins","value":"xyzbc-trt-kins sparm=identityfirst","m428":1,"m429":0,"m430":2}, {"field":"switchkins","value":"xyzbc-trt-kins","m428":1,"m429":0,"m430":2}, + {"field":"toolTable","value":"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"tooltable","value":"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"tool_table","value":"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"TOOL_TABLE","value":"configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"toolTable","value":"xyzbc-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"toolTable","value":"xyzbc-trt","m428":1,"m429":0,"m430":2}, + {"field":"tooltable","value":"xyzbc-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"tooltable","value":"xyzbc-trt","m428":1,"m429":0,"m430":2}, + {"field":"tool_table","value":"xyzbc-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"tool_table","value":"xyzbc-trt","m428":1,"m429":0,"m430":2}, + {"field":"TOOL_TABLE","value":"xyzbc-trt.tbl","m428":1,"m429":0,"m430":2}, + {"field":"TOOL_TABLE","value":"xyzbc-trt","m428":1,"m429":0,"m430":2}, {"field":"config","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini","m428":0,"m429":1,"m430":2}, {"field":"configPath","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini","m428":0,"m429":1,"m430":2}, {"field":"configpath","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini","m428":0,"m429":1,"m430":2}, @@ -198,6 +246,18 @@ {"field":"postgui_hal_file","value":"xyzacb-trsrn_postgui","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"xyzacb-trsrn_postgui.hal","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"xyzacb-trsrn_postgui","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"xyzacb-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"xyzacb-trsrn","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"xyzacb-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"xyzacb-trsrn","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"xyzacb-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"xyzacb-trsrn","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"xyzacb-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"xyzacb-trsrn","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/428remap.ngc","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating","m428":0,"m429":1,"m430":2}, @@ -241,6 +301,18 @@ {"field":"postgui_hal_file","value":"xyzbca-trsrn_postgui","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"xyzbca-trsrn_postgui.hal","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"xyzbca-trsrn_postgui","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"xyzbca-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"xyzbca-trsrn","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"xyzbca-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"xyzbca-trsrn","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"xyzbca-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"xyzbca-trsrn","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"xyzbca-trsrn.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"xyzbca-trsrn","m428":0,"m429":1,"m430":2}, {"field":"config","value":"configs/sim/axis/vismach/hexapod-sim/hexapod.ini","m428":0,"m429":1,"m430":2}, {"field":"configPath","value":"configs/sim/axis/vismach/hexapod-sim/hexapod.ini","m428":0,"m429":1,"m430":2}, {"field":"configpath","value":"configs/sim/axis/vismach/hexapod-sim/hexapod.ini","m428":0,"m429":1,"m430":2}, @@ -286,6 +358,14 @@ {"field":"postgui_hal_file","value":"hexapod_postgui","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"hexapod_postgui.hal","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"hexapod_postgui","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"hexapod.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"hexapod","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"hexapod.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"hexapod","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"hexapod.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"hexapod","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"hexapod.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"hexapod","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/hexapod-sim/remap_subs/428remap.ngc","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/hexapod-sim/remap_subs","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/hexapod-sim","m428":0,"m429":1,"m430":2}, @@ -341,6 +421,18 @@ {"field":"postgui_hal_file","value":"melfa-postgui","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"melfa-postgui.hal","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"melfa-postgui","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"configs/sim/axis/vismach/melfa-sim/melfa.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"configs/sim/axis/vismach/melfa-sim/melfa.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"configs/sim/axis/vismach/melfa-sim/melfa.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"configs/sim/axis/vismach/melfa-sim/melfa.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"melfa.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"melfa","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"melfa.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"melfa","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"melfa.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"melfa","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"melfa.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"melfa","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/melfa-sim/remap_subs/428remap.ngc","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/melfa-sim/remap_subs","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/melfa-sim","m428":0,"m429":1,"m430":2}, @@ -394,6 +486,18 @@ {"field":"postgui_hal_file","value":"millturn-postgui","m428":0,"m429":1,"m430":-1}, {"field":"POSTGUI_HALFILE","value":"millturn-postgui.hal","m428":0,"m429":1,"m430":-1}, {"field":"POSTGUI_HALFILE","value":"millturn-postgui","m428":0,"m429":1,"m430":-1}, + {"field":"toolTable","value":"configs/sim/axis/vismach/millturn/millturn.tbl","m428":0,"m429":1,"m430":-1}, + {"field":"tooltable","value":"configs/sim/axis/vismach/millturn/millturn.tbl","m428":0,"m429":1,"m430":-1}, + {"field":"tool_table","value":"configs/sim/axis/vismach/millturn/millturn.tbl","m428":0,"m429":1,"m430":-1}, + {"field":"TOOL_TABLE","value":"configs/sim/axis/vismach/millturn/millturn.tbl","m428":0,"m429":1,"m430":-1}, + {"field":"toolTable","value":"millturn.tbl","m428":0,"m429":1,"m430":-1}, + {"field":"toolTable","value":"millturn","m428":0,"m429":1,"m430":-1}, + {"field":"tooltable","value":"millturn.tbl","m428":0,"m429":1,"m430":-1}, + {"field":"tooltable","value":"millturn","m428":0,"m429":1,"m430":-1}, + {"field":"tool_table","value":"millturn.tbl","m428":0,"m429":1,"m430":-1}, + {"field":"tool_table","value":"millturn","m428":0,"m429":1,"m430":-1}, + {"field":"TOOL_TABLE","value":"millturn.tbl","m428":0,"m429":1,"m430":-1}, + {"field":"TOOL_TABLE","value":"millturn","m428":0,"m429":1,"m430":-1}, {"field":"remap","value":"configs/sim/axis/vismach/millturn/remap_subs/428remap.ngc","m428":0,"m429":1,"m430":-1}, {"field":"remap","value":"configs/sim/axis/vismach/millturn/remap_subs","m428":0,"m429":1,"m430":-1}, {"field":"remap","value":"configs/sim/axis/vismach/millturn","m428":0,"m429":1,"m430":-1}, @@ -448,6 +552,18 @@ {"field":"postgui_hal_file","value":"puma_postgui","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"puma_postgui.hal","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"puma_postgui","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"configs/sim/axis/vismach/puma/puma.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"configs/sim/axis/vismach/puma/puma.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"configs/sim/axis/vismach/puma/puma.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"configs/sim/axis/vismach/puma/puma.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"puma.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"puma","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"puma.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"puma","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"puma.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"puma","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"puma.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"puma","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/puma/remap_subs/428remap.ngc","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/puma/remap_subs","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/puma","m428":0,"m429":1,"m430":2}, @@ -563,6 +679,14 @@ {"field":"postgui_hal_file","value":"scara_postgui","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"scara_postgui.hal","m428":0,"m429":1,"m430":2}, {"field":"POSTGUI_HALFILE","value":"scara_postgui","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"scara.tbl","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"scara","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"scara.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"scara","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"scara.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"scara","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"scara.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"scara","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/scara/remap_subs/428remap.ngc","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/scara/remap_subs","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/axis/vismach/scara","m428":0,"m429":1,"m430":2}, @@ -585,6 +709,10 @@ {"field":"ini_file","value":"configs/sim/qtaxis/non-trivial/scara/scara.ini","m428":0,"m429":1,"m430":2}, {"field":"ini_file_name","value":"configs/sim/qtaxis/non-trivial/scara/scara.ini","m428":0,"m429":1,"m430":2}, {"field":"INI_FILE_NAME","value":"configs/sim/qtaxis/non-trivial/scara/scara.ini","m428":0,"m429":1,"m430":2}, + {"field":"toolTable","value":"configs/sim/qtaxis/non-trivial/scara/scara.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tooltable","value":"configs/sim/qtaxis/non-trivial/scara/scara.tbl","m428":0,"m429":1,"m430":2}, + {"field":"tool_table","value":"configs/sim/qtaxis/non-trivial/scara/scara.tbl","m428":0,"m429":1,"m430":2}, + {"field":"TOOL_TABLE","value":"configs/sim/qtaxis/non-trivial/scara/scara.tbl","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/qtaxis/non-trivial/scara/remap_subs/428remap.ngc","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/qtaxis/non-trivial/scara/remap_subs","m428":0,"m429":1,"m430":2}, {"field":"remap","value":"configs/sim/qtaxis/non-trivial/scara","m428":0,"m429":1,"m430":2}, diff --git a/web/src/index.ts b/web/src/index.ts index 4168d78..d72416e 100644 --- a/web/src/index.ts +++ b/web/src/index.ts @@ -106,6 +106,10 @@ export type CncParseOptions = { subroutinepath?: string; subroutine_path?: string; SUBROUTINE_PATH?: string; + toolTable?: string; + tooltable?: string; + tool_table?: string; + TOOL_TABLE?: string; kinematics?: string; trt?: "xyzbc" | "xyzac" | string; pivotLength?: number; diff --git a/web/src/wasm-core.js b/web/src/wasm-core.js index 513a692..60e5225 100644 --- a/web/src/wasm-core.js +++ b/web/src/wasm-core.js @@ -664,6 +664,10 @@ export async function createWasmSimulator(moduleOptions = {}) { ...(options.subroutinepath ? { subroutinepath: options.subroutinepath } : {}), ...(options.subroutine_path ? { subroutine_path: options.subroutine_path } : {}), ...(options.SUBROUTINE_PATH ? { SUBROUTINE_PATH: options.SUBROUTINE_PATH } : {}), + ...(options.toolTable ? { toolTable: options.toolTable } : {}), + ...(options.tooltable ? { tooltable: options.tooltable } : {}), + ...(options.tool_table ? { tool_table: options.tool_table } : {}), + ...(options.TOOL_TABLE ? { TOOL_TABLE: options.TOOL_TABLE } : {}), ...(options.kinematics ? { kinematics: options.kinematics } : {}), ...(options.trt ? { trt: options.trt } : {}), ...(options.pivotLength !== undefined ? { pivotLength: options.pivotLength } : {}),