diff --git a/src/emc/rs274ngc/interp_internal.cc b/src/emc/rs274ngc/interp_internal.cc index 829591161df..a3e92a77739 100644 --- a/src/emc/rs274ngc/interp_internal.cc +++ b/src/emc/rs274ngc/interp_internal.cc @@ -206,7 +206,8 @@ int Interp::enhance_block(block_pointer block, //!< pointer to a block to be c || (settings->motion_mode == G_80)) && (block->g_modes[GM_TOOL_LENGTH_OFFSET] != G_43_1) && (block->g_modes[GM_TOOL_LENGTH_OFFSET] != G_43_2), NCE_CANNOT_USE_AXIS_VALUES_WITHOUT_A_G_CODE_THAT_USES_THEM); - if (block->g_modes[GM_TOOL_LENGTH_OFFSET] != G_43_1) { + if (block->g_modes[GM_TOOL_LENGTH_OFFSET] != G_43_1 + && block->g_modes[GM_TOOL_LENGTH_OFFSET] != G_43_2) { block->motion_to_be = settings->motion_mode; } } else if (!axis_flag && !polar_flag && ijk_flag && (settings->motion_mode == G_2 || settings->motion_mode == G_3)) { diff --git a/tests/interp/machine-coord-params/expected b/tests/interp/machine-coord-params/expected index 5a2b6ce7571..9dca475c99b 100644 --- a/tests/interp/machine-coord-params/expected +++ b/tests/interp/machine-coord-params/expected @@ -9,5 +9,7 @@ N..... MESSAGE("0.000000 0.000000 0.000000") N..... MESSAGE("1.000000 2.000000 3.000000") N..... MESSAGE("1.000000 2.000000 3.000000") + N..... MESSAGE("1.000000 2.000000 3.000000") + N..... MESSAGE("1.000000 2.000000 3.000000") N..... MESSAGE("1.000000 1.000000") N..... MESSAGE("3.000000 3.000000") diff --git a/tests/interp/machine-coord-params/test.ngc b/tests/interp/machine-coord-params/test.ngc index 43eb52af286..a5759a1ee8c 100644 --- a/tests/interp/machine-coord-params/test.ngc +++ b/tests/interp/machine-coord-params/test.ngc @@ -40,6 +40,14 @@ g53 g0 x1 y2 z3 (debug,#5021 #5022 #5023) g49 +; nor do G43.2 axis words move it, in G0 or in G1 mode +g43.2 x0 y0 +(debug,#5021 #5022 #5023) +g1 f100 x1 +g43.2 z2 +(debug,#5021 #5022 #5023) +g49 + ; numbered set agrees with the named set g53 g0 x1 y2 z3 (debug,#5021 #<_abs_x>)