按规划持续工作

结论:已将 vendored LinuxCNC bridge-mill 5axisgui.ngc 纳入五轴 remap/tool-table/file 执行 baseline,native、Node WASM 和 browser 均通过同源验证;bridgemill 按 LinuxCNC REMAP 方向验证,未实现自有 M 码或运动学语义。
This commit is contained in:
2026-06-08 18:55:18 +08:00
parent 1a584786fc
commit bf07b78b4f
6 changed files with 165 additions and 17 deletions

View File

@@ -162,6 +162,28 @@ function writeFiveAxisTdrMachineFiles() {
return wasmDir;
}
function writeFiveAxisBridgeMillMachineFiles() {
const sourceDir = resolve(
rootDir,
"vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill",
);
const wasmDir = "/work/fiveaxis/bridgemill";
writeVendorTextFile(resolve(sourceDir, "5axis.ini"), `${wasmDir}/5axis.ini`);
writeVendorTextFile(resolve(sourceDir, "5axis.tbl"), `${wasmDir}/5axis.tbl`);
for (const filename of readdirSync(resolve(sourceDir, "remap_subs"))) {
if (filename.endsWith(".ngc")) {
writeVendorTextFile(
resolve(sourceDir, "remap_subs", filename),
`${wasmDir}/remap_subs/${filename}`,
);
}
}
writeVendorTextFile(resolve(sourceDir, "5axisgui.ngc"), `${wasmDir}/5axisgui.ngc`);
return wasmDir;
}
const namedParamIniPath = "/work/namedparams.ini";
interp.writeTextFile(
namedParamIniPath,
@@ -519,6 +541,32 @@ verifyExpectedOutput(
].join("\n"),
);
const fiveAxisBridgeMillDir = writeFiveAxisBridgeMillMachineFiles();
verifyExpectedOutput(
"fiveaxis_bridgemill_5axisgui_wasm",
interp.runFiveAxisRemapFile(
`${fiveAxisBridgeMillDir}/5axisgui.ngc`,
`${fiveAxisBridgeMillDir}/5axis.ini`,
),
[
"fiveaxis_ini_open=1",
"fiveaxis_tool_table_load=0",
"fiveaxis_parse_remap_1=0",
"fiveaxis_parse_remap_2=0",
"fiveaxis_parse_remap_3=0",
"fiveaxis_parsed_remap_count=3",
"fiveaxis_remaps_ready=1",
"fiveaxis_file_open=0",
"fiveaxis_file_read_count=2197",
"fiveaxis_file_execute_count=2197",
"fiveaxis_file_finish_count=137",
"fiveaxis_file_final_rc=1",
"fiveaxis_file_reached_exit=1",
"fiveaxis_hal_switchkins: rc=0 found=1 value=0",
"fiveaxis_linuxcnc_remap_file_execute=1",
].join("\n"),
);
const parameterFilePath = "/work/rs274ngc.var";
interp.writeTextFile(
parameterFilePath,