summaryrefslogtreecommitdiff
path: root/gerber
diff options
context:
space:
mode:
authorGarret Fick <garret@ficksworkshop.com>2016-05-19 23:19:28 +0800
committerGarret Fick <garret@ficksworkshop.com>2016-05-19 23:19:28 +0800
commit74c638c7181e7a8ca4d0f791545bbf5db8b86c2a (patch)
treee3bb8d64aa97d3a31317241c139855077c31cc2e /gerber
parentf1f07d74c41ad74be2b0bbad4cfcd1c6e5923678 (diff)
downloadgerbonara-74c638c7181e7a8ca4d0f791545bbf5db8b86c2a.tar.gz
gerbonara-74c638c7181e7a8ca4d0f791545bbf5db8b86c2a.tar.bz2
gerbonara-74c638c7181e7a8ca4d0f791545bbf5db8b86c2a.zip
Fix issue where did not always switch into the G01 mode after G03 when the point was unchanged
Diffstat (limited to 'gerber')
-rw-r--r--gerber/gerber_statements.py4
-rw-r--r--gerber/render/rs274x_backend.py2
2 files changed, 6 insertions, 0 deletions
diff --git a/gerber/gerber_statements.py b/gerber/gerber_statements.py
index aa25d0a..119df9d 100644
--- a/gerber/gerber_statements.py
+++ b/gerber/gerber_statements.py
@@ -888,6 +888,10 @@ class CoordStmt(Statement):
return cls(func, point[0], point[1], None, None, CoordStmt.OP_DRAW, None)
@classmethod
+ def mode(cls, func):
+ return cls(func, None, None, None, None, None, None)
+
+ @classmethod
def arc(cls, func, point, center):
return cls(func, point[0], point[1], center[0], center[1], CoordStmt.OP_DRAW, None)
diff --git a/gerber/render/rs274x_backend.py b/gerber/render/rs274x_backend.py
index 48a55e7..3dc8c1a 100644
--- a/gerber/render/rs274x_backend.py
+++ b/gerber/render/rs274x_backend.py
@@ -169,6 +169,8 @@ class Rs274xContext(GerberContext):
if point[0] != None or point[1] != None:
self.body.append(CoordStmt.line(func, self._simplify_point(line.end)))
self._pos = line.end
+ elif func:
+ self.body.append(CoordStmt.mode(func))
def _render_arc(self, arc, color):