|
@@ -86,7 +86,8 @@ void plan_arc(
|
86
|
86
|
if (angular_travel == 0 && current_position[p_axis] == cart[p_axis] && current_position[q_axis] == cart[q_axis])
|
87
|
87
|
angular_travel = RADIANS(360);
|
88
|
88
|
|
89
|
|
- const float mm_of_travel = HYPOT(angular_travel * radius, FABS(linear_travel));
|
|
89
|
+ const float flat_mm = radius * angular_travel,
|
|
90
|
+ mm_of_travel = linear_travel ? HYPOT(flat_mm, linear_travel) : flat_mm;
|
90
|
91
|
if (mm_of_travel < 0.001) return;
|
91
|
92
|
|
92
|
93
|
uint16_t segments = FLOOR(mm_of_travel / (MM_PER_ARC_SEGMENT));
|