From 5966d7830bda7f37ed5ddcc1bfccb93e7f780eaa Mon Sep 17 00:00:00 2001 From: Hamilton Kibbe Date: Wed, 18 Feb 2015 23:13:23 -0500 Subject: Add offset operation --- gerber/gerber_statements.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gerber/gerber_statements.py') diff --git a/gerber/gerber_statements.py b/gerber/gerber_statements.py index f8385c0..89f4f84 100644 --- a/gerber/gerber_statements.py +++ b/gerber/gerber_statements.py @@ -58,6 +58,9 @@ class Statement(object): def to_metric(self): pass + def offset(self, x_offset=0, y_offset=0): + pass + def __eq__(self, other): return self.__dict__ == other.__dict__ @@ -626,6 +629,12 @@ class OFParamStmt(ParamStmt): if self.b is not None: self.b = metric(self.b) + def offset(self, x_offset=0, y_offset=0): + if self.a is not None: + self.a += x_offset + if self.b is not None: + self.b += y_offset + def __str__(self): offset_str = '' if self.a is not None: @@ -690,6 +699,12 @@ class SFParamStmt(ParamStmt): if self.b is not None: self.b = metric(self.b) + def offset(self, x_offset=0, y_offset=0): + if self.a is not None: + self.a += x_offset + if self.b is not None: + self.b += y_offset + def __str__(self): scale_factor = '' if self.a is not None: @@ -836,6 +851,16 @@ class CoordStmt(Statement): if self.function == "G70": self.function = "G71" + def offset(self, x_offset=0, y_offset=0): + if self.x is not None: + self.x += x_offset + if self.y is not None: + self.y += y_offset + if self.i is not None: + self.i += x_offset + if self.j is not None: + self.j += y_offset + def __str__(self): coord_str = '' if self.function: -- cgit