Browse Source

Fix broken jerk handling (#12019)

Fix #12004
Thomas Moore 6 years ago
parent
commit
49823a4939
1 changed files with 7 additions and 5 deletions
  1. 7
    5
      Marlin/src/module/planner.cpp

+ 7
- 5
Marlin/src/module/planner.cpp View File

@@ -2087,14 +2087,16 @@ bool Planner::_populate_block(block_t * const block, bool split_move,
2087 2087
     #if ENABLED(MIXING_EXTRUDER)
2088 2088
       float delta_mm_i = 0;
2089 2089
       if (i == E_AXIS) {
2090
-        for (uint8_t s = 0; s < MIXING_STEPPERS; s++)
2091
-          delta_mm_i = MAX(mixing_factor[s] * ABS(delta_mm[i]), delta_mm_i);
2090
+        for (uint8_t s = 0; s < MIXING_STEPPERS; s++) {
2091
+          const float delta_mm_s = mixing_factor[s] * delta_mm[i];
2092
+          if (ABS(delta_mm_s) > ABS(delta_mm_i)) delta_mm_i = delta_mm_s;
2093
+        }
2092 2094
       }
2093
-      else delta_mm_i = ABS(delta_mm[i]);
2095
+      else delta_mm_i = delta_mm[i];
2094 2096
     #else
2095
-      const float delta_mm_i = ABS(delta_mm[i]);
2097
+      const float delta_mm_i = delta_mm[i];
2096 2098
     #endif
2097
-    const float cs = current_speed[i] = delta_mm_i * inverse_secs;
2099
+    const float cs = ABS(current_speed[i] = delta_mm_i * inverse_secs);
2098 2100
     #if ENABLED(DISTINCT_E_FACTORS)
2099 2101
       if (i == E_AXIS) i += extruder;
2100 2102
     #endif

Loading…
Cancel
Save