summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarret Fick <garret@ficksworkshop.com>2016-05-28 14:14:49 +0800
committerGarret Fick <garret@ficksworkshop.com>2016-05-28 14:14:49 +0800
commit5a20b2b92dc7ab82e1f196d1efbf4bb52a163720 (patch)
tree9ecf7e9886c24a5e804c4e74374925ec971c0575
parent3fc296918e7d0d343840c5daa08eb6d564660a29 (diff)
downloadgerbonara-5a20b2b92dc7ab82e1f196d1efbf4bb52a163720.tar.gz
gerbonara-5a20b2b92dc7ab82e1f196d1efbf4bb52a163720.tar.bz2
gerbonara-5a20b2b92dc7ab82e1f196d1efbf4bb52a163720.zip
Fix converting amgroup units
-rw-r--r--gerber/primitives.py19
-rw-r--r--gerber/rs274x.py4
2 files changed, 21 insertions, 2 deletions
diff --git a/gerber/primitives.py b/gerber/primitives.py
index d74226d..a5c3055 100644
--- a/gerber/primitives.py
+++ b/gerber/primitives.py
@@ -795,9 +795,26 @@ class AMGroup(Primitive):
elif prim:
self.primitives.append(prim)
self._position = None
- self._to_convert = ['primitives']
+ self._to_convert = ['_position', 'primitives']
self.stmt = stmt
+ def to_inch(self):
+ if self.units == 'metric':
+ super(AMGroup, self).to_inch()
+
+ # If we also have a stmt, convert that too
+ if self.stmt:
+ self.stmt.to_inch()
+
+
+ def to_metric(self):
+ if self.units == 'inch':
+ super(AMGroup, self).to_metric()
+
+ # If we also have a stmt, convert that too
+ if self.stmt:
+ self.stmt.to_metric()
+
@property
def flashed(self):
return True
diff --git a/gerber/rs274x.py b/gerber/rs274x.py
index 86785bc..2bc8f9a 100644
--- a/gerber/rs274x.py
+++ b/gerber/rs274x.py
@@ -373,7 +373,9 @@ class GerberParser(object):
elif param["param"] == "AD":
yield ADParamStmt.from_dict(param)
elif param["param"] == "AM":
- yield AMParamStmt.from_dict(param)
+ stmt = AMParamStmt.from_dict(param)
+ stmt.units = self.settings.units
+ yield stmt
elif param["param"] == "OF":
yield OFParamStmt.from_dict(param)
elif param["param"] == "IN":