Complete XYZAC LinuxCNC WASM parity and smooth 3D preview

This commit is contained in:
2026-08-28 06:24:50 +08:00
parent e8fe323aab
commit 1a7995fa9b
181 changed files with 36854 additions and 215 deletions

View File

@@ -18,6 +18,8 @@ int main(void) {
assert(sim_interpreter_execute(&interpreter, "G21 G90 G1 X10 Y2 F120", (uint32_t)(sizeof("G21 G90 G1 X10 Y2 F120") - 1)) == SIM_INTERP_OK);
assert(sim_interpreter_read_state(&interpreter, &state) == SIM_INTERP_OK);
assert(state.x == 10.0 && state.y == 2.0 && state.feed == 120.0);
assert(sim_interpreter_read_motion(&interpreter, &motion) == SIM_INTERP_OK);
assert(fabs(motion.velocity - 2.0) < 1e-12);
required = sim_interpreter_canonical(&interpreter, canonical, sizeof(canonical));
assert(required > 1 && canonical[required - 1] == '\0');
assert(sim_interpreter_state_hash(&interpreter) != 0);
@@ -62,6 +64,13 @@ int main(void) {
assert(fabs(interpreter.state.x - 11.0) < 1e-12);
assert(fabs(interpreter.state.y - 22.0) < 1e-12);
assert(fabs(interpreter.state.z - 33.0) < 1e-12);
assert(sim_interpreter_execute(&interpreter, "G53 G0 X0 Y0 Z10", (uint32_t)(sizeof("G53 G0 X0 Y0 Z10") - 1)) == SIM_INTERP_OK);
assert(fabs(interpreter.state.x) < 1e-12 && fabs(interpreter.state.y) < 1e-12 && fabs(interpreter.state.z - 10.0) < 1e-12);
assert(sim_interpreter_execute(&interpreter, "G10 L20 P0 X0 Y0 Z10", (uint32_t)(sizeof("G10 L20 P0 X0 Y0 Z10") - 1)) == SIM_INTERP_OK);
assert(sim_interpreter_read_motion(&interpreter, &motion) == SIM_INTERP_ERR_STATE);
assert(sim_interpreter_execute(&interpreter, "G0 X20 Y20 Z10", (uint32_t)(sizeof("G0 X20 Y20 Z10") - 1)) == SIM_INTERP_OK);
assert(sim_interpreter_execute(&interpreter, "G0 X[#<_x>-10]", (uint32_t)(sizeof("G0 X[#<_x>-10]") - 1)) == SIM_INTERP_OK);
assert(fabs(interpreter.state.x - 10.0) < 1e-12 && fabs(interpreter.state.y - 20.0) < 1e-12);
assert(sim_interpreter_reset(&interpreter) == SIM_INTERP_OK);
assert(sim_interpreter_execute(&interpreter, "G54 G43 H12 G81 X1 Y2 Z-3 R1", (uint32_t)(sizeof("G54 G43 H12 G81 X1 Y2 Z-3 R1") - 1)) == SIM_INTERP_OK);
assert(interpreter.state.motion_mode == 1);