diff options
author | Paulo Henrique Silva <ph.silva@gmail.com> | 2015-04-27 03:58:39 -0300 |
---|---|---|
committer | Paulo Henrique Silva <ph.silva@gmail.com> | 2015-04-27 04:01:48 -0300 |
commit | 21d963d244cbc762a736527b25cd8e82ff147f25 (patch) | |
tree | 6ecb9b4dcb94992a2ea4a08b1da1a86f53d7d01a /gerber | |
parent | e34e1078b67f43be9b678a67cf30d3c53fdea171 (diff) | |
download | gerbonara-21d963d244cbc762a736527b25cd8e82ff147f25.tar.gz gerbonara-21d963d244cbc762a736527b25cd8e82ff147f25.tar.bz2 gerbonara-21d963d244cbc762a736527b25cd8e82ff147f25.zip |
Allow 3 digits on Excellon tool selection
Fritzing uses more than 2 digits for tool in their Excellons. To comply
with that, I check specifically for 3 or less digits and use as tool
number, more than that we treat as the standard (2 for tool and 2 for
compensation index)
Diffstat (limited to 'gerber')
-rw-r--r-- | gerber/excellon_statements.py | 9 | ||||
-rw-r--r-- | gerber/tests/test_excellon_statements.py | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gerber/excellon_statements.py b/gerber/excellon_statements.py index 53ea951..95347d1 100644 --- a/gerber/excellon_statements.py +++ b/gerber/excellon_statements.py @@ -234,9 +234,14 @@ class ToolSelectionStmt(ExcellonStatement): """ line = line[1:] compensation_index = None - tool = int(line[:2]) - if len(line) > 2: + + # up to 3 characters for tool number (Frizting uses that) + if len(line) <= 3: + tool = int(line) + else: + tool = int(line[:2]) compensation_index = int(line[2:]) + return cls(tool, compensation_index) def __init__(self, tool, compensation_index=None): diff --git a/gerber/tests/test_excellon_statements.py b/gerber/tests/test_excellon_statements.py index 2da7c15..ada5194 100644 --- a/gerber/tests/test_excellon_statements.py +++ b/gerber/tests/test_excellon_statements.py @@ -111,6 +111,9 @@ def test_toolselection_factory(): stmt = ToolSelectionStmt.from_excellon('T0223') assert_equal(stmt.tool, 2) assert_equal(stmt.compensation_index, 23) + stmt = ToolSelectionStmt.from_excellon('T042') + assert_equal(stmt.tool, 42) + assert_equal(stmt.compensation_index, None) def test_toolselection_dump(): """ Test ToolSelectionStmt to_excellon() |