diff --git a/camlib.py b/camlib.py index 0a45eccf..c677227f 100644 --- a/camlib.py +++ b/camlib.py @@ -1771,9 +1771,15 @@ class Gerber (Geometry): arcdir[current_interpolation_mode], self.steps_per_circ) + # The last point in the computed arc can have + # numerical errors. The exact final point is the + # specified (x, y). Replace. + this_arc[-1] = (x, y) + # Last point in path is current point - current_x = this_arc[-1][0] - current_y = this_arc[-1][1] + # current_x = this_arc[-1][0] + # current_y = this_arc[-1][1] + current_x, current_y = x, y # Append path += this_arc @@ -1819,8 +1825,14 @@ class Gerber (Geometry): this_arc = arc(center, radius, start, stop, arcdir[current_interpolation_mode], self.steps_per_circ) - current_x = this_arc[-1][0] - current_y = this_arc[-1][1] + + # Replace with exact values + this_arc[-1] = (x, y) + + # current_x = this_arc[-1][0] + # current_y = this_arc[-1][1] + current_x, current_y = x, y + path += this_arc last_path_aperture = current_aperture valid = True