Index: export_openscad.c =================================================================== --- export_openscad.c (revision 29449) +++ export_openscad.c (revision 29450) @@ -530,14 +530,19 @@ int first; pcb_coord_t lx, ly, x, y; - if (step < 1) - step = 1; - if (step > 10) - step = 10; + if (step >= 0) { + if (step < 1) step = 1; + if (step > 10) step = 10; + } + else { + if (step > -1) step = -1; + if (step < -0) step = -10; + } /* only recent versions support angle for rotate_extrude(), so use line approximation for now */ fprintf(f, " // line-approx arc %f .. %f by %f\n", start_angle, end_angle, step); + TODO("use the central arc approximation instead"); for(first = 1, a = start_angle; step > 0 ? (a < end_angle) : (a > end_angle); a += step) { x = (double)cx + cos((180-a) / PCB_RAD_TO_DEG) * (double)width; y = (double)cy + sin((180-a) / PCB_RAD_TO_DEG) * (double)height;