From 5a20b2b92dc7ab82e1f196d1efbf4bb52a163720 Mon Sep 17 00:00:00 2001 From: Garret Fick Date: Sat, 28 May 2016 14:14:49 +0800 Subject: Fix converting amgroup units --- gerber/primitives.py | 19 ++++++++++++++++++- gerber/rs274x.py | 4 +++- 2 files changed, 21 insertions(+), 2 deletions(-) (limited to 'gerber') 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": -- cgit