|
|
|
@ -775,10 +775,14 @@ void GcodeSuite::G26() {
|
|
|
|
|
|
|
|
|
|
// Figure out where to start and end the arc - we always print counterclockwise
|
|
|
|
|
if (xi == 0) { // left edge
|
|
|
|
|
sx = f ? circle_x + INTERSECTION_CIRCLE_RADIUS : circle_x;
|
|
|
|
|
ex = b ? circle_x + INTERSECTION_CIRCLE_RADIUS : circle_x;
|
|
|
|
|
sy = f ? circle_y : circle_y - (INTERSECTION_CIRCLE_RADIUS);
|
|
|
|
|
ey = b ? circle_y : circle_y + INTERSECTION_CIRCLE_RADIUS;
|
|
|
|
|
if (!f) {
|
|
|
|
|
sx = circle_x;
|
|
|
|
|
sy -= (INTERSECTION_CIRCLE_RADIUS);
|
|
|
|
|
}
|
|
|
|
|
if (!b) {
|
|
|
|
|
ex = circle_x;
|
|
|
|
|
ey += INTERSECTION_CIRCLE_RADIUS;
|
|
|
|
|
}
|
|
|
|
|
arc_length = (f || b) ? ARC_LENGTH(1) : ARC_LENGTH(2);
|
|
|
|
|
}
|
|
|
|
|
else if (r) { // right edge
|
|
|
|
@ -789,15 +793,11 @@ void GcodeSuite::G26() {
|
|
|
|
|
arc_length = (f || b) ? ARC_LENGTH(1) : ARC_LENGTH(2);
|
|
|
|
|
}
|
|
|
|
|
else if (f) {
|
|
|
|
|
sx = circle_x + INTERSECTION_CIRCLE_RADIUS;
|
|
|
|
|
ex = circle_x - (INTERSECTION_CIRCLE_RADIUS);
|
|
|
|
|
sy = ey = circle_y;
|
|
|
|
|
arc_length = ARC_LENGTH(2);
|
|
|
|
|
}
|
|
|
|
|
else if (b) {
|
|
|
|
|
sx = circle_x - (INTERSECTION_CIRCLE_RADIUS);
|
|
|
|
|
ex = circle_x + INTERSECTION_CIRCLE_RADIUS;
|
|
|
|
|
sy = ey = circle_y;
|
|
|
|
|
arc_length = ARC_LENGTH(2);
|
|
|
|
|
}
|
|
|
|
|
const float arc_offset[2] = {
|
|
|
|
|