From 48b35377b1cce897a70d1d037b3e73b616af9be7 Mon Sep 17 00:00:00 2001 From: Hiroshi Murayama Date: Sat, 28 Sep 2019 20:42:11 +0900 Subject: minor refactoring --- gerberex/dxf.py | 2 +- gerberex/dxf_path.py | 14 ++++++++------ tests/expects/dxf_offset.gtl | 2 +- tests/expects/dxf_rotate.gtl | 2 +- tests/expects/dxf_save_fill.gtl | 2 +- tests/expects/dxf_save_line.gtl | 2 +- tests/expects/dxf_to_inch.gtl | 2 +- 7 files changed, 14 insertions(+), 12 deletions(-) diff --git a/gerberex/dxf.py b/gerberex/dxf.py index 8f0b984..eca246c 100644 --- a/gerberex/dxf.py +++ b/gerberex/dxf.py @@ -120,7 +120,7 @@ class DxfArcStatement(DxfStatement): self.start = (self.center[0] + self.radius, self.center[1]) self.end = self.start self.start_angle = 0 - self.end_angle = -360 + self.end_angle = 360 self.is_closed = True elif entity.dxftype == 'ARC': self.start_angle = self.entity.start_angle diff --git a/gerberex/dxf_path.py b/gerberex/dxf_path.py index 0a92287..1307411 100644 --- a/gerberex/dxf_path.py +++ b/gerberex/dxf_path.py @@ -202,20 +202,22 @@ class DxfPath(object): def to_excellon(self, settings=FileSettings(), pitch=0, width=0): from gerberex.dxf import DxfArcStatement if pitch == 0: - x, y = self.statements[0].start + x0, y0 = self.statements[0].start excellon = 'G00{0}\nM15\n'.format( - CoordinateStmtEx(x=x, y=y).to_excellon(settings)) + CoordinateStmtEx(x=x0, y=y0).to_excellon(settings)) for statement in self.statements: - x, y = statement.end + x0, y0 = statement.start + x1, y1 = statement.end if isinstance(statement, DxfArcStatement): - r = statement.radius + i = statement.center[0] - x0 + j = statement.center[1] - y0 excellon += '{0}{1}\n'.format( 'G03' if statement.end_angle > statement.start_angle else 'G02', - CoordinateStmtEx(x=x, y=y, radius=r).to_excellon(settings)) + CoordinateStmtEx(x=x1, y=y1, i=i, j=j).to_excellon(settings)) else: excellon += 'G01{0}\n'.format( - CoordinateStmtEx(x=x, y=y).to_excellon(settings)) + CoordinateStmtEx(x=x1, y=y1).to_excellon(settings)) excellon += 'M16\nG05\n' else: diff --git a/tests/expects/dxf_offset.gtl b/tests/expects/dxf_offset.gtl index 634664e..ff0cdda 100644 --- a/tests/expects/dxf_offset.gtl +++ b/tests/expects/dxf_offset.gtl @@ -36,6 +36,6 @@ X119171Y125107D01* G01* X119171Y100000D02* G75* -G02* +G03* X119171Y100000I-3000J0D01* M02* diff --git a/tests/expects/dxf_rotate.gtl b/tests/expects/dxf_rotate.gtl index 71e1647..c6449ca 100644 --- a/tests/expects/dxf_rotate.gtl +++ b/tests/expects/dxf_rotate.gtl @@ -36,6 +36,6 @@ X23162Y45543D01* G01* X31749Y21950D02* G75* -G02* +G03* X31749Y21950I-2819J-1026D01* M02* diff --git a/tests/expects/dxf_save_fill.gtl b/tests/expects/dxf_save_fill.gtl index 3cd2572..f18c9f7 100644 --- a/tests/expects/dxf_save_fill.gtl +++ b/tests/expects/dxf_save_fill.gtl @@ -37,7 +37,7 @@ X9171Y75107D01* G01* X9171Y50000D02* G75* -G02* +G03* X9171Y50000I-3000J0D01* G37* M02* diff --git a/tests/expects/dxf_save_line.gtl b/tests/expects/dxf_save_line.gtl index eb993f4..d1966ad 100644 --- a/tests/expects/dxf_save_line.gtl +++ b/tests/expects/dxf_save_line.gtl @@ -36,6 +36,6 @@ X9171Y75107D01* G01* X9171Y50000D02* G75* -G02* +G03* X9171Y50000I-3000J0D01* M02* diff --git a/tests/expects/dxf_to_inch.gtl b/tests/expects/dxf_to_inch.gtl index 16a94cf..aa862bf 100644 --- a/tests/expects/dxf_to_inch.gtl +++ b/tests/expects/dxf_to_inch.gtl @@ -36,6 +36,6 @@ X3610Y29570D01* G01* X3610Y19685D02* G75* -G02* +G03* X3610Y19685I-1181J0D01* M02* -- cgit