Browse Source

[2.0.x] Relative movements fix (#9259)

GMagician 7 years ago
parent
commit
9b519864bf
1 changed files with 4 additions and 2 deletions
  1. 4
    2
      Marlin/src/gcode/gcode.cpp

+ 4
- 2
Marlin/src/gcode/gcode.cpp View File

@@ -94,8 +94,10 @@ bool GcodeSuite::get_target_extruder_from_command() {
94 94
 void GcodeSuite::get_destination_from_command() {
95 95
   LOOP_XYZE(i) {
96 96
     if (parser.seen(axis_codes[i])) {
97
-      const float v = parser.value_axis_units((AxisEnum)i) + (axis_relative_modes[i] || relative_mode ? current_position[i] : 0);
98
-      destination[i] = i == E_AXIS ? v : LOGICAL_TO_NATIVE(v, i);
97
+      const float v = parser.value_axis_units((AxisEnum)i);
98
+      destination[i] = (axis_relative_modes[i] || relative_mode)
99
+        ? current_position[i] + v
100
+        : (i == E_AXIS) ? v : LOGICAL_TO_NATIVE(v, i);
99 101
     }
100 102
     else
101 103
       destination[i] = current_position[i];

Loading…
Cancel
Save