|
@ -8083,7 +8083,7 @@ void prepare_move_to_destination() { |
|
|
uint8_t clockwise // Clockwise?
|
|
|
uint8_t clockwise // Clockwise?
|
|
|
) { |
|
|
) { |
|
|
|
|
|
|
|
|
float radius = hypot(offset[X_AXIS], offset[Y_AXIS]), |
|
|
float radius = HYPOT(offset[X_AXIS], offset[Y_AXIS]), |
|
|
center_X = current_position[X_AXIS] + offset[X_AXIS], |
|
|
center_X = current_position[X_AXIS] + offset[X_AXIS], |
|
|
center_Y = current_position[Y_AXIS] + offset[Y_AXIS], |
|
|
center_Y = current_position[Y_AXIS] + offset[Y_AXIS], |
|
|
linear_travel = target[Z_AXIS] - current_position[Z_AXIS], |
|
|
linear_travel = target[Z_AXIS] - current_position[Z_AXIS], |
|
@ -8102,7 +8102,7 @@ void prepare_move_to_destination() { |
|
|
if (angular_travel == 0 && current_position[X_AXIS] == target[X_AXIS] && current_position[Y_AXIS] == target[Y_AXIS]) |
|
|
if (angular_travel == 0 && current_position[X_AXIS] == target[X_AXIS] && current_position[Y_AXIS] == target[Y_AXIS]) |
|
|
angular_travel += RADIANS(360); |
|
|
angular_travel += RADIANS(360); |
|
|
|
|
|
|
|
|
float mm_of_travel = hypot(angular_travel * radius, fabs(linear_travel)); |
|
|
float mm_of_travel = HYPOT(angular_travel * radius, fabs(linear_travel)); |
|
|
if (mm_of_travel < 0.001) return; |
|
|
if (mm_of_travel < 0.001) return; |
|
|
uint16_t segments = floor(mm_of_travel / (MM_PER_ARC_SEGMENT)); |
|
|
uint16_t segments = floor(mm_of_travel / (MM_PER_ARC_SEGMENT)); |
|
|
if (segments == 0) segments = 1; |
|
|
if (segments == 0) segments = 1; |
|
|