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