diff options
Diffstat (limited to 'gerbonara/gerber/cam.py')
-rw-r--r-- | gerbonara/gerber/cam.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gerbonara/gerber/cam.py b/gerbonara/gerber/cam.py index 554491d..7283316 100644 --- a/gerbonara/gerber/cam.py +++ b/gerbonara/gerber/cam.py @@ -168,6 +168,8 @@ class CamFile: max_x = svg_unit(max_x, arg_unit) max_y = svg_unit(max_y, arg_unit) + content_min_x, content_min_y = min_x, min_y + content_w, content_h = max_x - min_x, max_y - min_y if margin: margin = svg_unit(margin, arg_unit) min_x -= margin @@ -201,7 +203,7 @@ class CamFile: tags.append(polyline.to_svg(tag, fg, bg)) # setup viewport transform flipping y axis - xform = f'translate({min_x} {min_y+h}) scale(1 -1) translate({-min_x} {-min_y})' + xform = f'translate({content_min_x} {content_min_y+content_h}) scale(1 -1) translate({-content_min_x} {-content_min_y})' svg_unit = 'in' if svg_unit == 'inch' else 'mm' # TODO export apertures as <uses> where reasonable. @@ -231,5 +233,10 @@ class CamFile: max_x = max(x1 for (x0, y0), (x1, y1) in bounds) max_y = max(y1 for (x0, y0), (x1, y1) in bounds) + #for p in self.objects: + # bb = (o_min_x, o_min_y), (o_max_x, o_max_y) = p.bounding_box(unit) + # if o_min_x == min_x or o_min_y == min_y or o_max_x == max_x or o_max_y == max_y: + # print('\033[91m bounds\033[0m', bb, p) + return ((min_x, min_y), (max_x, max_y)) |