Commit graph

43 commits

Author SHA1 Message Date
Hamilton Kibbe
5df38c014f Cleanup, rendering fixes.
fixed rendering of tented vias
fixed rendering of semi-transparent layers
fixed file type detection issues
added some examples
2016-01-28 12:19:03 -05:00
Paulo Henrique Silva
b9f1b106c3 Excellon format detection uses ExcelonFile.bounds now
Long term we should have only one .bounds method. But ExcellonParser right
now is not correct for cases with two drills in the same line
(it will report one dimension being zero)
2016-01-25 12:42:12 -02:00
Hamilton Kibbe
5476da8aa3 Fix a bunch of rendering bugs.
- 'clear' polarity primitives no longer erase background
  - Added aperture macro support for polygons
  - Added aperture macro rendring support
  - Renderer now creates a new surface for each layer and merges them instead of working
    directly on a single surface
  - Updated examples accordingly
2016-01-21 03:57:44 -05:00
Hamilton Kibbe
1cb269131b Allow negative render of soldermask per #50
Update example code and rendering to show change
2015-12-19 21:54:29 -05:00
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