第 6 组:源码链接、构建和文档约束闭环完成
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include "cnc_sim_api.h"
|
||||
|
||||
#include <cstdlib>
|
||||
#include <cmath>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
@@ -35,6 +36,31 @@ bool near(double lhs, double rhs) {
|
||||
return std::fabs(lhs - rhs) < 0.000001;
|
||||
}
|
||||
|
||||
class ScopedEnv {
|
||||
public:
|
||||
ScopedEnv(const char *name, const char *value) : name_(name) {
|
||||
const char *old = std::getenv(name);
|
||||
if (old) {
|
||||
had_old_ = true;
|
||||
old_ = old;
|
||||
}
|
||||
setenv(name, value, 1);
|
||||
}
|
||||
|
||||
~ScopedEnv() {
|
||||
if (had_old_) {
|
||||
setenv(name_, old_.c_str(), 1);
|
||||
} else {
|
||||
unsetenv(name_);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
const char *name_;
|
||||
bool had_old_ = false;
|
||||
std::string old_;
|
||||
};
|
||||
|
||||
bool saw_comment_state(const std::vector<CncSimEvent> &events,
|
||||
int line,
|
||||
int reserved,
|
||||
@@ -66,6 +92,79 @@ bool saw_any_kinematics_switch(const std::vector<CncSimEvent> &events, int line)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool saw_kinematics_switch(const std::vector<CncSimEvent> &events, int line, int kinstype) {
|
||||
for (const auto &event : events) {
|
||||
if (event.type == CNC_SIM_EVENT_KINEMATICS_SWITCH &&
|
||||
event.line == line &&
|
||||
event.reserved == kinstype) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool expect_switchkins_remap_config(const std::string &json,
|
||||
int m428_type,
|
||||
int m429_type,
|
||||
int m430_type,
|
||||
const char *message) {
|
||||
std::vector<CncSimEvent> events;
|
||||
CncSimHandle *sim = cnc_sim_create();
|
||||
cnc_sim_set_event_callback(sim, collect_event, &events);
|
||||
const char supported_program[] =
|
||||
"M428\n"
|
||||
"M429\n";
|
||||
const char full_program[] =
|
||||
"M428\n"
|
||||
"M429\n"
|
||||
"M430\n";
|
||||
const char *program = m430_type >= 0 ? full_program : supported_program;
|
||||
const size_t program_len = m430_type >= 0 ? sizeof(full_program) - 1 : sizeof(supported_program) - 1;
|
||||
|
||||
bool ok = true;
|
||||
const std::string load_message = std::string(message) + " load";
|
||||
const std::string parse_message = std::string(message) + " parse M428/M429";
|
||||
const std::string m428_message = std::string(message) + " M428 kinstype";
|
||||
const std::string m429_message = std::string(message) + " M429 kinstype";
|
||||
ok &= expect(cnc_sim_load_config_json(sim, json.c_str(), json.size()) == 0, load_message.c_str());
|
||||
ok &= expect(cnc_sim_parse_program(sim, program, program_len) == 0, parse_message.c_str());
|
||||
ok &= expect(saw_kinematics_switch(events, 1, m428_type), m428_message.c_str());
|
||||
ok &= expect(saw_kinematics_switch(events, 2, m429_type), m429_message.c_str());
|
||||
if (m430_type >= 0) {
|
||||
const std::string m430_message = std::string(message) + " M430 kinstype";
|
||||
ok &= expect(saw_kinematics_switch(events, 3, m430_type), m430_message.c_str());
|
||||
} else {
|
||||
const std::string m430_reject_message = std::string(message) + " reject M430";
|
||||
const std::string m430_error_message = std::string(message) + " M430 error";
|
||||
const std::string m430_no_switch_message = std::string(message) + " M430 no switch";
|
||||
const std::string mixed_load_message = std::string(message) + " mixed load";
|
||||
const std::string mixed_reject_message = std::string(message) + " reject mixed M428/M430";
|
||||
const std::string mixed_error_message = std::string(message) + " mixed M430 error";
|
||||
const std::string mixed_no_switch_message = std::string(message) + " mixed no partial switch";
|
||||
events.clear();
|
||||
ok &= expect(cnc_sim_parse_program(sim, "M430\n", 5) != 0, m430_reject_message.c_str());
|
||||
// Source: LinuxCNC interp_read.cc reports NCE_M_CODE_GREATER_THAN_199;
|
||||
// linuxcnc_rs274_backend.cpp preserves the read-stage context.
|
||||
ok &= expect(std::string(cnc_sim_last_error(sim)) == "read failed: M-code greater than 199: M430",
|
||||
m430_error_message.c_str());
|
||||
ok &= expect(!saw_kinematics_switch(events, 1, 2), m430_no_switch_message.c_str());
|
||||
|
||||
std::vector<CncSimEvent> mixed_events;
|
||||
CncSimHandle *mixed_sim = cnc_sim_create();
|
||||
cnc_sim_set_event_callback(mixed_sim, collect_event, &mixed_events);
|
||||
ok &= expect(cnc_sim_load_config_json(mixed_sim, json.c_str(), json.size()) == 0,
|
||||
mixed_load_message.c_str());
|
||||
ok &= expect(cnc_sim_parse_program(mixed_sim, "M428 M430\n", 9) != 0,
|
||||
mixed_reject_message.c_str());
|
||||
ok &= expect(std::string(cnc_sim_last_error(mixed_sim)) == "M-code greater than 199: M430",
|
||||
mixed_error_message.c_str());
|
||||
ok &= expect(!saw_any_kinematics_switch(mixed_events, 1), mixed_no_switch_message.c_str());
|
||||
cnc_sim_destroy(mixed_sim);
|
||||
}
|
||||
cnc_sim_destroy(sim);
|
||||
return ok;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int main() {
|
||||
@@ -1577,6 +1676,35 @@ int main() {
|
||||
ok &= expect(cnc_sim_load_config_json(sim, config, sizeof(config) - 1) == 0,
|
||||
cnc_sim_last_error(sim));
|
||||
|
||||
{
|
||||
struct SourceBackedConfigCase {
|
||||
const char *field;
|
||||
const char *value;
|
||||
int m428_type;
|
||||
int m429_type;
|
||||
int m430_type;
|
||||
};
|
||||
const SourceBackedConfigCase source_cases[] = {
|
||||
#include "linuxcnc_switchkins_remap_config_cases.inc"
|
||||
};
|
||||
for (const SourceBackedConfigCase &source_case : source_cases) {
|
||||
const std::string json = std::string("{\"backend\":\"linuxcnc-rs274\",\"") +
|
||||
source_case.field +
|
||||
"\":\"" +
|
||||
source_case.value +
|
||||
"\"}";
|
||||
const std::string message = std::string("expected LinuxCNC source-backed switchkins remap config for ") +
|
||||
source_case.field +
|
||||
"=" +
|
||||
source_case.value;
|
||||
ok &= expect_switchkins_remap_config(json,
|
||||
source_case.m428_type,
|
||||
source_case.m429_type,
|
||||
source_case.m430_type,
|
||||
message.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
const char exponent_m428_control_program[] =
|
||||
"G21 G90\n"
|
||||
"M4.28e2\n";
|
||||
|
||||
@@ -1,67 +1,384 @@
|
||||
// Generated by ./generate-linuxcnc-switchkins-remap-table.sh --config-cases.
|
||||
// Source: LinuxCNC INI config path, MACHINE, KINEMATICS, and non-LIB HALFILE entries
|
||||
// for M428/M429/M430 remap #<kinstype> assignments.
|
||||
// Source: LinuxCNC INI config path, MACHINE, KINEMATICS, non-LIB HALFILE/POSTGUI_HALFILE,
|
||||
// and adjacent remap_subs entries for M428/M429/M430 #<kinstype> 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},
|
||||
{"config_path", "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", 0, 1, 2},
|
||||
{"machine", "Sim-5Axis Bridge Mill (xyzbcw)", 0, 1, 2},
|
||||
{"kinematics", "5axiskins coordinates=xyzbcwy", 0, 1, 2},
|
||||
{"switchkins", "bridgemill", 0, 1, 2},
|
||||
{"switchkins", "5axis", 0, 1, 2},
|
||||
{"switchkins", "Sim-5Axis Bridge Mill (xyzbcw)", 0, 1, 2},
|
||||
{"switchkins", "Sim-5Axis Bridge Mill", 0, 1, 2},
|
||||
{"switchkins", "5axiskins coordinates=xyzbcwy", 0, 1, 2},
|
||||
{"switchkins", "5axiskins", 0, 1, 2},
|
||||
{"halFile", "5axisgui.hal", 0, 1, 2},
|
||||
{"halFile", "5axisgui", 0, 1, 2},
|
||||
{"halfile", "5axisgui.hal", 0, 1, 2},
|
||||
{"halfile", "5axisgui", 0, 1, 2},
|
||||
{"hal_file", "5axisgui.hal", 0, 1, 2},
|
||||
{"hal_file", "5axisgui", 0, 1, 2},
|
||||
{"HALFILE", "5axisgui.hal", 0, 1, 2},
|
||||
{"HALFILE", "5axisgui", 0, 1, 2},
|
||||
{"postguiHalFile", "5axis_postgui.hal", 0, 1, 2},
|
||||
{"postguiHalFile", "5axis_postgui", 0, 1, 2},
|
||||
{"postgui_halfile", "5axis_postgui.hal", 0, 1, 2},
|
||||
{"postgui_halfile", "5axis_postgui", 0, 1, 2},
|
||||
{"postgui_hal_file", "5axis_postgui.hal", 0, 1, 2},
|
||||
{"postgui_hal_file", "5axis_postgui", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "5axis_postgui.hal", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "5axis_postgui", 0, 1, 2},
|
||||
{"remap", "configs/sim/axis/vismach/5axis/bridgemill", 0, 1, 2},
|
||||
{"remap", "bridgemill", 0, 1, 2},
|
||||
{"config", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
|
||||
{"configPath", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
|
||||
{"config_path", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
|
||||
{"ini", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
|
||||
{"iniFile", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
|
||||
{"iniFileName", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
|
||||
{"ini_file", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", 1, 0, -1},
|
||||
{"machine", "sim-xyzab-tdr-kins (switchkins)", 1, 0, -1},
|
||||
{"kinematics", "xyzab_tdr_kins", 1, 0, -1},
|
||||
{"switchkins", "table-dual-rotary", 1, 0, -1},
|
||||
{"switchkins", "xyzab-tdr", 1, 0, -1},
|
||||
{"switchkins", "sim-xyzab-tdr-kins (switchkins)", 1, 0, -1},
|
||||
{"switchkins", "sim-xyzab-tdr-kins", 1, 0, -1},
|
||||
{"switchkins", "xyzab_tdr_kins", 1, 0, -1},
|
||||
{"switchkins", "xyzab_tdr", 1, 0, -1},
|
||||
{"switchkins", "xyzab-tdr-kins", 1, 0, -1},
|
||||
{"postguiHalFile", "xyzab-tdr-postgui.hal", 1, 0, -1},
|
||||
{"postguiHalFile", "xyzab-tdr-postgui", 1, 0, -1},
|
||||
{"postgui_halfile", "xyzab-tdr-postgui.hal", 1, 0, -1},
|
||||
{"postgui_halfile", "xyzab-tdr-postgui", 1, 0, -1},
|
||||
{"postgui_hal_file", "xyzab-tdr-postgui.hal", 1, 0, -1},
|
||||
{"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},
|
||||
{"remap", "configs/sim/axis/vismach/5axis/table-dual-rotary", 1, 0, -1},
|
||||
{"remap", "table-dual-rotary", 1, 0, -1},
|
||||
{"config", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
|
||||
{"configPath", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
|
||||
{"config_path", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
|
||||
{"ini", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", 1, 0, 2},
|
||||
{"machine", "sim-xyzac-trt-kins (switchkins)", 1, 0, 2},
|
||||
{"kinematics", "xyzac-trt-kins sparm=identityfirst", 1, 0, 2},
|
||||
{"switchkins", "table-rotary-tilting", 1, 0, 2},
|
||||
{"switchkins", "xyzac-trt", 1, 0, 2},
|
||||
{"switchkins", "sim-xyzac-trt-kins (switchkins)", 1, 0, 2},
|
||||
{"switchkins", "sim-xyzac-trt-kins", 1, 0, 2},
|
||||
{"switchkins", "xyzac-trt-kins sparm=identityfirst", 1, 0, 2},
|
||||
{"switchkins", "xyzac-trt-kins", 1, 0, 2},
|
||||
{"postguiHalFile", "switchkins_postgui.hal", 1, 0, 2},
|
||||
{"postguiHalFile", "switchkins_postgui", 1, 0, 2},
|
||||
{"postgui_halfile", "switchkins_postgui.hal", 1, 0, 2},
|
||||
{"postgui_halfile", "switchkins_postgui", 1, 0, 2},
|
||||
{"postgui_hal_file", "switchkins_postgui.hal", 1, 0, 2},
|
||||
{"postgui_hal_file", "switchkins_postgui", 1, 0, 2},
|
||||
{"POSTGUI_HALFILE", "switchkins_postgui.hal", 1, 0, 2},
|
||||
{"POSTGUI_HALFILE", "switchkins_postgui", 1, 0, 2},
|
||||
{"remap", "configs/sim/axis/vismach/5axis/table-rotary-tilting", 1, 0, 2},
|
||||
{"remap", "table-rotary-tilting", 1, 0, 2},
|
||||
{"config", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
|
||||
{"configPath", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
|
||||
{"config_path", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
|
||||
{"ini", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", 1, 0, 2},
|
||||
{"machine", "sim-xyzbc-trt-kins (switchkins)", 1, 0, 2},
|
||||
{"kinematics", "xyzbc-trt-kins sparm=identityfirst", 1, 0, 2},
|
||||
{"switchkins", "xyzbc-trt", 1, 0, 2},
|
||||
{"switchkins", "sim-xyzbc-trt-kins (switchkins)", 1, 0, 2},
|
||||
{"switchkins", "sim-xyzbc-trt-kins", 1, 0, 2},
|
||||
{"switchkins", "xyzbc-trt-kins sparm=identityfirst", 1, 0, 2},
|
||||
{"switchkins", "xyzbc-trt-kins", 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},
|
||||
{"config_path", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzacb-trsrn_twp/xyzacb-trsrn.ini", 0, 1, 2},
|
||||
{"machine", "xyzacb-trsrn (switchkins)", 0, 1, 2},
|
||||
{"kinematics", "xyzacb_trsrn", 0, 1, 2},
|
||||
{"switchkins", "xyzacb-trsrn_twp", 0, 1, 2},
|
||||
{"switchkins", "xyzacb-trsrn", 0, 1, 2},
|
||||
{"switchkins", "xyzacb-trsrn (switchkins)", 0, 1, 2},
|
||||
{"switchkins", "xyzacb_trsrn", 0, 1, 2},
|
||||
{"postguiHalFile", "xyzacb-trsrn_postgui.hal", 0, 1, 2},
|
||||
{"postguiHalFile", "xyzacb-trsrn_postgui", 0, 1, 2},
|
||||
{"postgui_halfile", "xyzacb-trsrn_postgui.hal", 0, 1, 2},
|
||||
{"postgui_halfile", "xyzacb-trsrn_postgui", 0, 1, 2},
|
||||
{"postgui_hal_file", "xyzacb-trsrn_postgui.hal", 0, 1, 2},
|
||||
{"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},
|
||||
{"remap", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating", 0, 1, 2},
|
||||
{"remap", "table-rotary_spindle-rotary-nutating", 0, 1, 2},
|
||||
{"config", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.ini", 0, 1, 2},
|
||||
{"configPath", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.ini", 0, 1, 2},
|
||||
{"config_path", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.ini", 0, 1, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.ini", 0, 1, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.ini", 0, 1, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating/xyzbca-trsrn_twp/xyzbca-trsrn.ini", 0, 1, 2},
|
||||
{"machine", "xyzbca-trsrn (switchkins)", 0, 1, 2},
|
||||
{"kinematics", "xyzbca_trsrn", 0, 1, 2},
|
||||
{"switchkins", "xyzbca-trsrn_twp", 0, 1, 2},
|
||||
{"switchkins", "xyzbca-trsrn", 0, 1, 2},
|
||||
{"switchkins", "xyzbca-trsrn (switchkins)", 0, 1, 2},
|
||||
{"switchkins", "xyzbca_trsrn", 0, 1, 2},
|
||||
{"postguiHalFile", "xyzbca-trsrn_postgui.hal", 0, 1, 2},
|
||||
{"postguiHalFile", "xyzbca-trsrn_postgui", 0, 1, 2},
|
||||
{"postgui_halfile", "xyzbca-trsrn_postgui.hal", 0, 1, 2},
|
||||
{"postgui_halfile", "xyzbca-trsrn_postgui", 0, 1, 2},
|
||||
{"postgui_hal_file", "xyzbca-trsrn_postgui.hal", 0, 1, 2},
|
||||
{"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},
|
||||
{"config", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
|
||||
{"configPath", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
|
||||
{"config_path", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/hexapod-sim/hexapod.ini", 0, 1, 2},
|
||||
{"machine", "hexapod (switchkins)", 0, 1, 2},
|
||||
{"kinematics", "genhexkins", 0, 1, 2},
|
||||
{"switchkins", "hexapod-sim", 0, 1, 2},
|
||||
{"switchkins", "hexapod", 0, 1, 2},
|
||||
{"switchkins", "hexapod (switchkins)", 0, 1, 2},
|
||||
{"switchkins", "genhexkins", 0, 1, 2},
|
||||
{"halFile", "kinematics.hal", 0, 1, 2},
|
||||
{"halFile", "kinematics", 0, 1, 2},
|
||||
{"halfile", "kinematics.hal", 0, 1, 2},
|
||||
{"halfile", "kinematics", 0, 1, 2},
|
||||
{"hal_file", "kinematics.hal", 0, 1, 2},
|
||||
{"hal_file", "kinematics", 0, 1, 2},
|
||||
{"HALFILE", "kinematics.hal", 0, 1, 2},
|
||||
{"HALFILE", "kinematics", 0, 1, 2},
|
||||
{"postguiHalFile", "hexapod_postgui.hal", 0, 1, 2},
|
||||
{"postguiHalFile", "hexapod_postgui", 0, 1, 2},
|
||||
{"postgui_halfile", "hexapod_postgui.hal", 0, 1, 2},
|
||||
{"postgui_halfile", "hexapod_postgui", 0, 1, 2},
|
||||
{"postgui_hal_file", "hexapod_postgui.hal", 0, 1, 2},
|
||||
{"postgui_hal_file", "hexapod_postgui", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "hexapod_postgui.hal", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "hexapod_postgui", 0, 1, 2},
|
||||
{"remap", "configs/sim/axis/vismach/hexapod-sim", 0, 1, 2},
|
||||
{"remap", "hexapod-sim", 0, 1, 2},
|
||||
{"config", "configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
|
||||
{"configPath", "configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
|
||||
{"config_path", "configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/melfa-sim/melfa.ini", 0, 1, 2},
|
||||
{"machine", "melfa (mm)", 0, 1, 2},
|
||||
{"kinematics", "genserkins", 0, 1, 2},
|
||||
{"switchkins", "melfa-sim", 0, 1, 2},
|
||||
{"switchkins", "melfa", 0, 1, 2},
|
||||
{"switchkins", "melfa (mm)", 0, 1, 2},
|
||||
{"switchkins", "genserkins", 0, 1, 2},
|
||||
{"halFile", "melfa_dh.hal", 0, 1, 2},
|
||||
{"halFile", "melfa_dh", 0, 1, 2},
|
||||
{"halfile", "melfa_dh.hal", 0, 1, 2},
|
||||
{"halfile", "melfa_dh", 0, 1, 2},
|
||||
{"hal_file", "melfa_dh.hal", 0, 1, 2},
|
||||
{"hal_file", "melfa_dh", 0, 1, 2},
|
||||
{"HALFILE", "melfa_dh.hal", 0, 1, 2},
|
||||
{"HALFILE", "melfa_dh", 0, 1, 2},
|
||||
{"postguiHalFile", "melfa-postgui.hal", 0, 1, 2},
|
||||
{"postguiHalFile", "melfa-postgui", 0, 1, 2},
|
||||
{"postgui_halfile", "melfa-postgui.hal", 0, 1, 2},
|
||||
{"postgui_halfile", "melfa-postgui", 0, 1, 2},
|
||||
{"postgui_hal_file", "melfa-postgui.hal", 0, 1, 2},
|
||||
{"postgui_hal_file", "melfa-postgui", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "melfa-postgui.hal", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "melfa-postgui", 0, 1, 2},
|
||||
{"remap", "configs/sim/axis/vismach/melfa-sim", 0, 1, 2},
|
||||
{"remap", "melfa-sim", 0, 1, 2},
|
||||
{"config", "configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
|
||||
{"configPath", "configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
|
||||
{"config_path", "configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
|
||||
{"ini", "configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
|
||||
{"iniFile", "configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
|
||||
{"iniFileName", "configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
|
||||
{"ini_file", "configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/millturn/millturn.ini", 0, 1, -1},
|
||||
{"machine", "millturn (mm)", 0, 1, -1},
|
||||
{"kinematics", "millturn", 0, 1, -1},
|
||||
{"switchkins", "millturn", 0, 1, -1},
|
||||
{"switchkins", "millturn (mm)", 0, 1, -1},
|
||||
{"halFile", "millturn.hal", 0, 1, -1},
|
||||
{"halFile", "millturn", 0, 1, -1},
|
||||
{"halfile", "millturn.hal", 0, 1, -1},
|
||||
{"halfile", "millturn", 0, 1, -1},
|
||||
{"hal_file", "millturn.hal", 0, 1, -1},
|
||||
{"hal_file", "millturn", 0, 1, -1},
|
||||
{"HALFILE", "millturn.hal", 0, 1, -1},
|
||||
{"HALFILE", "millturn", 0, 1, -1},
|
||||
{"postguiHalFile", "millturn-postgui.hal", 0, 1, -1},
|
||||
{"postguiHalFile", "millturn-postgui", 0, 1, -1},
|
||||
{"postgui_halfile", "millturn-postgui.hal", 0, 1, -1},
|
||||
{"postgui_halfile", "millturn-postgui", 0, 1, -1},
|
||||
{"postgui_hal_file", "millturn-postgui.hal", 0, 1, -1},
|
||||
{"postgui_hal_file", "millturn-postgui", 0, 1, -1},
|
||||
{"POSTGUI_HALFILE", "millturn-postgui.hal", 0, 1, -1},
|
||||
{"POSTGUI_HALFILE", "millturn-postgui", 0, 1, -1},
|
||||
{"remap", "configs/sim/axis/vismach/millturn", 0, 1, -1},
|
||||
{"remap", "millturn", 0, 1, -1},
|
||||
{"config", "configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
|
||||
{"configPath", "configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
|
||||
{"config_path", "configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/puma/puma.ini", 0, 1, 2},
|
||||
{"machine", "PUMA (pumakins,switchkins)", 0, 1, 2},
|
||||
{"kinematics", "pumakins", 0, 1, 2},
|
||||
{"switchkins", "puma", 0, 1, 2},
|
||||
{"switchkins", "PUMA (pumakins,switchkins)", 0, 1, 2},
|
||||
{"switchkins", "PUMA", 0, 1, 2},
|
||||
{"switchkins", "pumakins", 0, 1, 2},
|
||||
{"halFile", "puma_dh.hal", 0, 1, 2},
|
||||
{"halFile", "puma_dh", 0, 1, 2},
|
||||
{"halfile", "puma_dh.hal", 0, 1, 2},
|
||||
{"halfile", "puma_dh", 0, 1, 2},
|
||||
{"hal_file", "puma_dh.hal", 0, 1, 2},
|
||||
{"hal_file", "puma_dh", 0, 1, 2},
|
||||
{"HALFILE", "puma_dh.hal", 0, 1, 2},
|
||||
{"HALFILE", "puma_dh", 0, 1, 2},
|
||||
{"postguiHalFile", "puma_postgui.hal", 0, 1, 2},
|
||||
{"postguiHalFile", "puma_postgui", 0, 1, 2},
|
||||
{"postgui_halfile", "puma_postgui.hal", 0, 1, 2},
|
||||
{"postgui_halfile", "puma_postgui", 0, 1, 2},
|
||||
{"postgui_hal_file", "puma_postgui.hal", 0, 1, 2},
|
||||
{"postgui_hal_file", "puma_postgui", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "puma_postgui.hal", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "puma_postgui", 0, 1, 2},
|
||||
{"remap", "configs/sim/axis/vismach/puma", 0, 1, 2},
|
||||
{"remap", "puma", 0, 1, 2},
|
||||
{"config", "configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
|
||||
{"configPath", "configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
|
||||
{"config_path", "configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/puma/puma_cube.ini", 0, 1, 2},
|
||||
{"machine", "puma_cube.ini (pumakins)", 0, 1, 2},
|
||||
{"switchkins", "puma_cube", 0, 1, 2},
|
||||
{"switchkins", "puma_cube.ini (pumakins)", 0, 1, 2},
|
||||
{"switchkins", "puma_cube.ini", 0, 1, 2},
|
||||
{"config", "configs/sim/axis/vismach/puma/puma560.ini", 0, 1, 2},
|
||||
{"configPath", "configs/sim/axis/vismach/puma/puma560.ini", 0, 1, 2},
|
||||
{"config_path", "configs/sim/axis/vismach/puma/puma560.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/axis/vismach/puma/puma560.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/puma/puma560.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/puma/puma560.ini", 0, 1, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/puma/puma560.ini", 0, 1, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/puma/puma560.ini", 0, 1, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/puma/puma560.ini", 0, 1, 2},
|
||||
{"machine", "puma560 (switchkins) (inch)", 0, 1, 2},
|
||||
{"switchkins", "puma560", 0, 1, 2},
|
||||
{"switchkins", "puma560 (switchkins) (inch)", 0, 1, 2},
|
||||
{"halFile", "puma560_dh.hal", 0, 1, 2},
|
||||
{"halFile", "puma560_dh", 0, 1, 2},
|
||||
{"halfile", "puma560_dh.hal", 0, 1, 2},
|
||||
{"halfile", "puma560_dh", 0, 1, 2},
|
||||
{"hal_file", "puma560_dh.hal", 0, 1, 2},
|
||||
{"hal_file", "puma560_dh", 0, 1, 2},
|
||||
{"HALFILE", "puma560_dh.hal", 0, 1, 2},
|
||||
{"HALFILE", "puma560_dh", 0, 1, 2},
|
||||
{"postguiHalFile", "puma560_postgui.hal", 0, 1, 2},
|
||||
{"postguiHalFile", "puma560_postgui", 0, 1, 2},
|
||||
{"postgui_halfile", "puma560_postgui.hal", 0, 1, 2},
|
||||
{"postgui_halfile", "puma560_postgui", 0, 1, 2},
|
||||
{"postgui_hal_file", "puma560_postgui.hal", 0, 1, 2},
|
||||
{"postgui_hal_file", "puma560_postgui", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "puma560_postgui.hal", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "puma560_postgui", 0, 1, 2},
|
||||
{"config", "configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
|
||||
{"configPath", "configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
|
||||
{"config_path", "configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/puma/puma560_uvw.ini", 0, 1, 2},
|
||||
{"switchkins", "puma560_uvw", 0, 1, 2},
|
||||
{"config", "configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
|
||||
{"configPath", "configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
|
||||
{"config_path", "configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
|
||||
{"ini_file", "configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
|
||||
{"ini_file_name", "configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/axis/vismach/scara/scara.ini", 0, 1, 2},
|
||||
{"machine", "SCARA (genserkins,switchkins)", 0, 1, 2},
|
||||
{"kinematics", "scarakins coordinates=xyzcab", 0, 1, 2},
|
||||
{"switchkins", "scara", 0, 1, 2},
|
||||
{"switchkins", "SCARA (genserkins,switchkins)", 0, 1, 2},
|
||||
{"switchkins", "SCARA", 0, 1, 2},
|
||||
{"switchkins", "scarakins coordinates=xyzcab", 0, 1, 2},
|
||||
{"switchkins", "scarakins", 0, 1, 2},
|
||||
{"postguiHalFile", "scara_postgui.hal", 0, 1, 2},
|
||||
{"postguiHalFile", "scara_postgui", 0, 1, 2},
|
||||
{"postgui_halfile", "scara_postgui.hal", 0, 1, 2},
|
||||
{"postgui_halfile", "scara_postgui", 0, 1, 2},
|
||||
{"postgui_hal_file", "scara_postgui.hal", 0, 1, 2},
|
||||
{"postgui_hal_file", "scara_postgui", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "scara_postgui.hal", 0, 1, 2},
|
||||
{"POSTGUI_HALFILE", "scara_postgui", 0, 1, 2},
|
||||
{"remap", "configs/sim/axis/vismach/scara", 0, 1, 2},
|
||||
{"remap", "scara", 0, 1, 2},
|
||||
{"config", "configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"configPath", "configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"config_path", "configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/qtaxis/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"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},
|
||||
{"remap", "configs/sim/qtaxis/non-trivial/scara", 0, 1, 2},
|
||||
{"config", "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"configPath", "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"config_path", "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"ini", "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"iniFile", "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"iniFileName", "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"ini_file", "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"ini_file_name", "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"INI_FILE_NAME", "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", 0, 1, 2},
|
||||
{"remap", "configs/sim/qtvcp_screens/non-trivial/scara", 0, 1, 2},
|
||||
|
||||
Reference in New Issue
Block a user