From 14747494b89178372c65aad1e6ef8fa431e7f24c Mon Sep 17 00:00:00 2001 From: Garret Fick Date: Thu, 30 Jun 2016 23:08:51 +0800 Subject: Rotate vector line --- gerber/am_statements.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'gerber') diff --git a/gerber/am_statements.py b/gerber/am_statements.py index 6ece68e..6cb90dc 100644 --- a/gerber/am_statements.py +++ b/gerber/am_statements.py @@ -308,7 +308,20 @@ class AMVectorLinePrimitive(AMPrimitive): return fmtstr.format(**data) def to_primitive(self, units): - return Line(self.start, self.end, Rectangle(None, self.width, self.width), units=units, level_polarity=self._level_polarity) + + line = Line(self.start, self.end, Rectangle(None, self.width, self.width)) + vertices = line.vertices + + aperture = Circle((0, 0), 0) + + lines = [] + prev_point = rotate_point(vertices[-1], self.rotation, (0, 0)) + for point in vertices: + cur_point = rotate_point(point, self.rotation, (0, 0)) + + lines.append(Line(prev_point, cur_point, aperture)) + + return Outline(lines, units=units, level_polarity=self._level_polarity) class AMOutlinePrimitive(AMPrimitive): -- cgit