|
@@ -910,8 +910,12 @@ class Planner {
|
910
|
910
|
|
911
|
911
|
FORCE_INLINE static float limit_value_by_axis_maximum(const float &max_value, xyze_float_t &unit_vec) {
|
912
|
912
|
float limit_value = max_value;
|
913
|
|
- LOOP_XYZE(idx) if (unit_vec[idx]) // Avoid divide by zero
|
914
|
|
- NOMORE(limit_value, ABS(settings.max_acceleration_mm_per_s2[idx] / unit_vec[idx]));
|
|
913
|
+ LOOP_XYZE(idx) {
|
|
914
|
+ if (unit_vec[idx]) {
|
|
915
|
+ if (limit_value * ABS(unit_vec[idx]) > settings.max_acceleration_mm_per_s2[idx])
|
|
916
|
+ limit_value = ABS(settings.max_acceleration_mm_per_s2[idx] / unit_vec[idx]);
|
|
917
|
+ }
|
|
918
|
+ }
|
915
|
919
|
return limit_value;
|
916
|
920
|
}
|
917
|
921
|
|