按规划持续工作
结论:五轴 TRT boat demo 已通过 LinuxCNC vendored remap/tool-table/file 执行路径纳入 native、Node WASM、browser 和 UI 验证,未在 JS 或自有代码中实现 M428/M429/M430 或运动学语义。
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include "emc/rs274ngc/interp_internal.hh"
|
||||
#include "linuxcnc_hal_adapter.hh"
|
||||
#include "linuxcnc_tool_adapter.hh"
|
||||
#include "tooldata.hh"
|
||||
|
||||
#ifndef LINUXCNC_VENDOR_DIR
|
||||
#error "LINUXCNC_VENDOR_DIR must point at wasm-port/vendor/linuxcnc"
|
||||
@@ -119,6 +120,16 @@ bool parse_machine_remaps(Interp &interp, const MachineCase &machine)
|
||||
interp._setup.subroutines[0] = strstore(remap_dir.c_str());
|
||||
|
||||
bool ok = true;
|
||||
if (auto tool_table = ini.findString("TOOL_TABLE", "EMCIO")) {
|
||||
const auto tool_path = machine_dir / *tool_table;
|
||||
tooldata_init(false);
|
||||
tooldata_set_db(DB_NOTUSED);
|
||||
const int tool_rc = tooldata_load(tool_path.c_str());
|
||||
std::cout << machine.label << "_tool_table_load=" << tool_rc << "\n";
|
||||
ok &= tool_rc == 0;
|
||||
ok &= interp.load_tool_table() == INTERP_OK;
|
||||
}
|
||||
|
||||
int remap_count = 0;
|
||||
int line_number = 0;
|
||||
while (auto remap = ini.findString(++remap_count, "REMAP", "RS274NGC")) {
|
||||
@@ -305,12 +316,26 @@ int main()
|
||||
"xyzac_switchkins_test_3.ngc",
|
||||
0.0,
|
||||
},
|
||||
{
|
||||
"boat_xyzac",
|
||||
"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/"
|
||||
"boat-xyzac.ngc",
|
||||
0.0,
|
||||
},
|
||||
{
|
||||
"boat_xyzbc",
|
||||
"configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/"
|
||||
"boat-xyzbc.ngc",
|
||||
0.0,
|
||||
},
|
||||
};
|
||||
|
||||
ok &= execute_demo_file(cases[0], demos[0]);
|
||||
ok &= execute_demo_file(cases[1], demos[1]);
|
||||
ok &= execute_demo_file(cases[0], demos[2]);
|
||||
ok &= execute_demo_file(cases[0], demos[3]);
|
||||
ok &= execute_demo_file(cases[0], demos[4]);
|
||||
ok &= execute_demo_file(cases[1], demos[5]);
|
||||
|
||||
print_bool("fiveaxis_linuxcnc_remap_execute_path", ok);
|
||||
return ok ? 0 : 1;
|
||||
|
||||
@@ -287,6 +287,16 @@ bool parse_machine_remaps(Interp &interp, std::ostringstream &output, const char
|
||||
interp._setup.subroutines[0] = strstore(remap_dir.c_str());
|
||||
|
||||
bool ok = true;
|
||||
if (auto tool_table = ini.findString("TOOL_TABLE", "EMCIO")) {
|
||||
const std::string tool_path = machine_dir + "/" + *tool_table;
|
||||
tooldata_init(false);
|
||||
tooldata_set_db(DB_NOTUSED);
|
||||
const int tool_rc = tooldata_load(tool_path.c_str());
|
||||
output << "fiveaxis_tool_table_load=" << tool_rc << "\n";
|
||||
ok &= tool_rc == 0;
|
||||
ok &= interp.load_tool_table() == INTERP_OK;
|
||||
}
|
||||
|
||||
int remap_count = 0;
|
||||
while (auto remap = ini.findString(++remap_count, "REMAP", "RS274NGC")) {
|
||||
const int line_number = ini.lineOf(remap_count, "REMAP", "RS274NGC").second;
|
||||
|
||||
Reference in New Issue
Block a user