diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index b2d91606d..ab98758e8 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -931,18 +931,18 @@ float junction_deviation = 0.1; float safe_speed = vmax_junction; if ((moves_queued > 1) && (previous_nominal_speed > 0.0001)) { - float dx = current_speed[X_AXIS] - previous_speed[X_AXIS], - dy = current_speed[Y_AXIS] - previous_speed[Y_AXIS], - dz = fabs(csz - previous_speed[Z_AXIS]), - de = fabs(cse - previous_speed[E_AXIS]), - jerk = sqrt(dx * dx + dy * dy); + float dsx = current_speed[X_AXIS] - previous_speed[X_AXIS], + dsy = current_speed[Y_AXIS] - previous_speed[Y_AXIS], + dsz = fabs(csz - previous_speed[Z_AXIS]), + dse = fabs(cse - previous_speed[E_AXIS]), + jerk = sqrt(dsx * dsx + dsy * dsy); // if ((fabs(previous_speed[X_AXIS]) > 0.0001) || (fabs(previous_speed[Y_AXIS]) > 0.0001)) { vmax_junction = block->nominal_speed; // } if (jerk > max_xy_jerk) vmax_junction_factor = max_xy_jerk / jerk; - if (dz > max_z_jerk) vmax_junction_factor = min(vmax_junction_factor, max_z_jerk / dz); - if (de > max_e_jerk) vmax_junction_factor = min(vmax_junction_factor, max_e_jerk / de); + if (dsz > max_z_jerk) vmax_junction_factor = min(vmax_junction_factor, max_z_jerk / dsz); + if (dse > max_e_jerk) vmax_junction_factor = min(vmax_junction_factor, max_e_jerk / dse); vmax_junction = min(previous_nominal_speed, vmax_junction * vmax_junction_factor); // Limit speed to max previous speed }