Commit graph

39 commits

Author SHA1 Message Date
Paulo Henrique Silva
6e29b9bcae Use Python's universal newlines to open files 2015-11-15 22:28:56 -02:00
Paulo Henrique Silva
cead702f4d Add fix to work with excellon with no tool definition.
I found out that Proteus generate some strange Excellon without any tool definition.
Gerbv renders it correctly and after digging in I found the heuristic that they use
to "guess" the tool diameter. This change replicates this behavior on pcb-tools.
2015-11-13 13:18:50 -02:00
Paulo Henrique Silva
9ca75f991a Improve Excellon parsing coverage
Add some not so used codes that were generating unknown stmt.
2015-11-13 03:31:32 -02:00
Hamilton Kibbe
10d9028e1f Python 3 fix 2015-10-10 17:02:45 -04:00
Hamilton Kibbe
dd63b169f1 Allow files to be read from strings per #37
Adds a loads() method to the top level module which generates a GerberFile or ExcellonFile from a string
2015-10-10 16:51:21 -04:00
Hamilton Kibbe
15254a5bb7 Add tool path optimization example
Add example demonstrating use of tsp-solver with pcb-tools to optimize
tool paths in an excellon file. This is based on @koppi's script in #30
2015-07-06 12:13:59 -04:00
Hamilton Kibbe
ec2ca92da6 Python 3 fix
remove dict itervalues() calls
2015-06-11 14:00:40 -04:00
Hamilton Kibbe
94f3976915 Add keys to statements for linking to primitives. Add some API features to ExcellonFile, such as getting a tool path length and changing tool parameters. Excellonfiles write method generates statements based on the drill hits in the hits member, so drill hits in a generated file can be re-ordered by re-ordering the drill hits in ExcellonFile.hits. see #30 2015-06-11 11:20:56 -04:00
Hamilton Kibbe
8ec3077be9 Add checks to ensure statement unit conversions are idempotent 2015-05-16 09:45:34 -04:00
Hamilton Kibbe
390838fc8b Fix for #25. Checking was happening at the gerber/excellon file level, but I added units checking at the primitive level so the use case shown in the example is covered. Might want to throw a bunch more assertions in the test code (i started doing a few) to cover multiple calls to unit conversion functions 2015-04-24 10:54:13 -04:00
Paulo Henrique Silva
b9b20a9644 Fix Excellon repeat command 2015-04-07 18:17:25 -03:00
Hamilton Kibbe
5966d7830b Add offset operation 2015-02-18 23:13:23 -05:00
Hamilton Kibbe
e71d7a24b5 Python 3 tests passing 2015-02-18 21:14:30 -05:00
Hamilton Kibbe
288ac27084 Get unit conversion working for Gerber/Excellon files
Started operations module for file operations/transforms
2015-02-18 04:31:23 -05:00
Hamilton Kibbe
bfe1484160 Add cairo example code, and use example-generated image in readme 2015-02-15 03:29:47 -05:00
Hamilton Kibbe
5cf1fa74b4 Tests and bugfixes 2015-02-15 02:20:02 -05:00
Hamilton Kibbe
939f782728 ...oops 2015-01-25 14:22:27 -05:00
Hamilton Kibbe
b495d51354 Changed zeros/zero suppression conventions to match file format specs 2015-01-25 14:19:48 -05:00
Paulo Henrique Silva
0f36084aad Add Repeat Hole Stmt and fix UnitStmt parsing
* Repeat hole support (with no real parsing, just a copy)
* Fix UnitStmt to works even when a ,TZ or ,LZ information is not provided.
2015-01-15 05:01:40 -02:00
Paulo Henrique Silva
137c73f3e4 Many additions to Excellon parsing/creation.
CAUTION: the original code used zero_suppression flags
         in the opposite sense as Gerber functions. This
         patch changes it to behave just like Gerber code.

* Add metric/inch conversion support
* Add settings context variable to to_gerber just like Gerber code.
* Add some missing Excellon values.

Tests are not entirely updated.
2015-01-14 14:33:00 -02:00
Hamilton Kibbe
254f3e5184 Merge changes from upstream 2014-10-26 17:20:47 -04:00
Hamilton Kibbe
18e3b87625 Test update 2014-10-19 22:23:00 -04:00
Hamilton Kibbe
6d2db67e6d Refactor rendering 2014-10-18 01:44:51 -04:00
Hamilton Kibbe
8c5c7ec8bb update docs and example images 2014-10-12 12:38:40 -04:00
Hamilton Kibbe
62c689be17 Doc update 2014-10-11 13:12:21 -04:00
Hamilton Kibbe
ae3bbff8b0 Added excellon format detection 2014-10-10 23:07:51 -04:00
Hamilton Kibbe
f2f411493e doc update 2014-10-09 22:10:28 -04:00
Hamilton Kibbe
1653ae5cbe Update readme and example 2014-10-08 09:27:52 -04:00
Hamilton Kibbe
af97dcf2a8 fix excellon render 2014-10-07 22:44:08 -04:00
Hamilton Kibbe
2abb7159be add tests 2014-10-06 23:52:57 -04:00
Hamilton Kibbe
22a6f87e94 add excellon file write 2014-10-06 18:28:32 -04:00
Hamilton Kibbe
08253b40f6 Update excellon statements/ExcellonFile 2014-10-06 13:11:16 -04:00
Hamilton Kibbe
597427d785 add excellon statements 2014-10-06 08:33:53 -04:00
Hamilton Kibbe
0b8e2e4b8b added numpydoc 2014-10-01 14:39:32 -04:00
Hamilton Kibbe
1e170ba196 Add travis.yml 2014-09-30 17:17:28 -04:00
Hamilton Kibbe
1cb7856e88 Add CNC base classes and settings class 2014-09-29 13:35:10 -04:00
Hamilton Kibbe
3a5dbcf1e1 added ExcellonFile class 2014-09-28 21:17:13 -04:00
Hamilton Kibbe
695e3d9220 Added excellon support and refactored project 2014-09-28 18:07:15 -04:00
Hamilton Kibbe
43b599106f Add Excellon support 2014-09-28 13:04:32 -04:00