From 7718ba9d85cd52a743533e48d6dcb16ddfad11bd Mon Sep 17 00:00:00 2001 From: fishpepper Date: Fri, 13 Oct 2017 20:55:06 +0200 Subject: [PATCH 1/2] added small pad merging --- gerber2graphtec | 13 +++ mergepads.py | 216 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 229 insertions(+) create mode 100644 mergepads.py diff --git a/gerber2graphtec b/gerber2graphtec index c20be48..adcf867 100755 --- a/gerber2graphtec +++ b/gerber2graphtec @@ -22,6 +22,8 @@ matrix = (1,0,0,1) speed = [2,2] force = [8,30] cut_mode = 0 +merge_threshold = [0.012, 0.01] +merge = 0 input_filename = '' media_size = (12,11) theta = 0 @@ -56,6 +58,9 @@ while argc Date: Fri, 13 Oct 2017 20:58:04 +0200 Subject: [PATCH 2/2] fix svg debug output --- mergepads.py | 2 +- svgwriter.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 svgwriter.py diff --git a/mergepads.py b/mergepads.py index 3f74a50..98f56d4 100644 --- a/mergepads.py +++ b/mergepads.py @@ -4,7 +4,7 @@ from scipy.spatial import ConvexHull DEBUG = False -DEBUG_SVG = False +DEBUG_SVG = True def log(s): if DEBUG: diff --git a/svgwriter.py b/svgwriter.py new file mode 100644 index 0000000..b1f14e4 --- /dev/null +++ b/svgwriter.py @@ -0,0 +1,20 @@ +# dump strokes to an svg +import svgwrite +from svgwrite import cm, mm + +class svgwriter: + def __init__(self, filename): + self.dwg = svgwrite.Drawing(filename, profile='tiny') + + def draw_polygon(self, strokes, color): + for s in strokes: + points = [] + for p in s: + # create polygon list and convert user units to be in inch (*90) + points.append((p[0] * 90, p[1] * 90)) + + poly = self.dwg.polygon(points=points, fill='none', stroke=color, stroke_width="0.01mm") + self.dwg.add(poly) + + def finish(self): + self.dwg.save()