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/excellon.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'gerber/excellon.py') diff --git a/gerber/excellon.py b/gerber/excellon.py index ebc307f..900e2df 100755 --- a/gerber/excellon.py +++ b/gerber/excellon.py @@ -28,6 +28,7 @@ import math from .excellon_statements import * from .cam import CamFile, FileSettings from .primitives import Drill +from .utils import inch, metric def read(filename): @@ -134,6 +135,9 @@ class ExcellonFile(CamFile): tool.to_inch() for primitive in self.primitives: primitive.to_inch() + self.hits = [(tool, tuple(map(inch, pos))) + for tool, pos in self.hits] + def to_metric(self): """ Convert units to metric @@ -146,6 +150,16 @@ class ExcellonFile(CamFile): tool.to_metric() for primitive in self.primitives: primitive.to_metric() + self.hits = [(tool, tuple(map(metric, pos))) + for tool, pos in self.hits] + + def offset(self, x_offset=0, y_offset=0): + for statement in self.statements: + statement.offset(x_offset, y_offset) + for primitive in self.primitives: + primitive.offset(x_offset, y_offset) + self.hits = [(tool, (pos[0] + x_offset, pos[1] + y_offset)) + for tool, pos in self.hits] class ExcellonParser(object): -- cgit