Wykres commitów

424 Commity (b75d2f8d90c867e1e8c5ec37ab8650ea00dc0012)

Autor SHA1 Wiadomość Data
Hamilton Kibbe a0847ef70d Update Readme 2015-12-19 21:56:01 -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
Garret Fick 4e838df32a Parse misc nc drill files 2015-12-19 11:44:12 +08:00
Garret Fick 206f4c57ab Fix drawing arcs. Dont crash for arcs with rectangular apertures. Fix crash with board size of zero for only one drill 2015-12-16 18:59:25 +08:00
Paulo Henrique Silva 2fa585853b Add test case to start working on a fix 2015-12-06 21:44:09 -02:00
Garret Fick 221f67d8fe Move the coordinate matching to the beginning since most of the items are coordinates. For large files, this decreases total time by 10-20% 2015-12-03 09:42:45 +08:00
Garret Fick d69f50e0f6 Make the hit accessible from the drawable Hit, fix crash with cario drawing rect 2015-12-02 12:44:30 +08:00
Paulo Henrique Silva 2e2b4e49c3 Fix AMParamStmt to_gerber to write changes back.
AMParamStmt was not calling to_gerber on each of its primitives
on his own to_gerber method. That way primitives that changes after reading,
such as when you call to_inch/to_metric was failing because it was
writing only the original macro back.
2015-11-23 16:04:25 -02:00
Garret Fick 8eede187f3 More fixes to work with cairo 2015-11-23 22:22:30 +08:00
Garret Fick d5f382f4b4 Render with cairo instead of cairocffi - I would like to make it use either, but for now, using the one that works with wxpython 2015-11-23 16:17:31 +08:00
Garret Fick ec1bc61a21 Merge branch 'master' of https://github.com/garretfick/pcb-tools 2015-11-18 11:42:11 +08:00
Garret Fick fc5d1898f5 Merge pull request #1 from curtacircuitos/master
Merge from upstream
2015-11-18 11:38:43 +08:00
Garret Fick f2b075e338 Regions with arcs would crash if they occured before any command to set the aperture 2015-11-18 11:26:20 +08:00
Hamilton Kibbe ba82d60cb8 Merge pull request #45 from curtacircuitos/remove-svgwrite-backend
Remove svgwrite backend
2015-11-15 22:16:03 -05:00
Paulo Henrique Silva 7e2e469f5e Remove svgwrite backend
We moved the functionality to cairo backend, it can write png and svg and maybe more (pdfs?)
2015-11-15 22:31:42 -02:00
Paulo Henrique Silva 6e29b9bcae Use Python's universal newlines to open files 2015-11-15 22:28:56 -02:00
Hamilton Kibbe ebc8518197 Merge pull request #43 from curtacircuitos/excellon-with-no-tool-definition
Add fix to work with excellon with no tool definition.
2015-11-13 11:40:03 -05: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 2208fe2205 Fix issue when a region is created as the first graphical object in a file
When regions were the first thing draw there is no current aperture
defined, as regions do not require an aperture, so we use an zeroed
Circle as aperture in this case. Gerber spec says that apertures have
no graphical meaning for regions, so this should be enough.
2015-11-13 04:17:27 -02:00
Paulo Henrique Silva 6d8b5377a8 Merge pull request #42 from curtacircuitos/add-some-missing-excellon-stmts
Improve Excellon parsing coverage
2015-11-13 03:38:57 -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
Paulo Henrique Silva 944c832922 Merge pull request #41 from curtacircuitos/read_from_memory
Read from memory
2015-10-14 15:37:02 -03: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 b81c9d4bf9 Merge pull request #40 from curtacircuitos/cairo-render-unification
Cairo render unification
2015-09-10 15:54:29 -04:00
Hamilton Kibbe cb2fa34e88 Add support for arcs in regions.
This fixes the circular cutout issue described in #32.  Regions were previously stored as a collection of points, now they are stored as a collection of line and arc primitives.
2015-08-09 15:11:13 -04:00
Hamilton Kibbe d4a8705708 Fix windows permission error
per #33
the issue was trying to re-open the temporary file. it works on everything but windows. I've changed it to seek to the beginning and read from the file without re-opening, which should fix the issue.
2015-07-25 09:48:58 -04:00
Hamilton Kibbe 39726e3936 Fix multiple layer issue in cairo-unification branch (see #33) 2015-07-22 22:13:09 -04:00
Paulo Henrique Silva c92d2d9ea2 Merge pull request #31 from curtacircuitos/statement_link
Add support for tool reordering and drill path optimization example.
2015-07-14 13:32:17 -03:00
Paulo Henrique Silva b3f6ec558c Fix arcs and ackground painting 2015-07-09 04:05:15 -03:00
Paulo Henrique Silva 5aaf18889c Initial patch to unify our render towards cairo
This branch allows a pure cairo based render for both PNG and SVG.

Cairo backend is mostly the same but with improved support for
configurable scale, orientation and inverted color drawing.

API is not yet final.
2015-07-09 03:54:47 -03: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
Paulo Henrique Silva 1a70064e10 Merge pull request #29 from curtacircuitos/eagle_netlist_fix
Fix IPC-D-356 parser. Handle too-long reference designators exported …
2015-06-02 00:29:36 -03:00
Hamilton Kibbe faa44ab731 Fix IPC-D-356 parser. Handle too-long reference designators exported by eagle per #28. 2015-06-01 20:58:16 -04:00
Paulo Henrique Silva 9e36d7e21d G70/G71 are now interpreted as MOParamStmt.
Got a bunch of metric files with no MOMM but only G71, this
should be pretty mush harmless.
2015-05-21 17:15:54 -03:00
Paulo Henrique Silva aff36a4dca Fix multiline read of mixed statements (%XXX*% followed by DNN*)
We now check if there is a %XXX*% command inside the line before
considering it a multiline statement.
2015-05-21 16:15:55 -03:00
Paulo Henrique Silva 2fe5f36db2 Fix ADD statement parsing for concatened statements.
ADDxxx param statements were too greedy on the mofidiers and were
matching more than it should in cases where there are no newlines after
the statement like:

'%ADD12C,0.305*%%LPD*%', in a single line. The '%' was not exluded form
modifiers so it got confused with the %LPD*% concatened.

top_copper.GTL example was changed to be in a single line now with no
spaces at all and it works well.
2015-05-21 15:54:32 -03:00
Paulo Henrique Silva d3b19efb48 Add support for PCBmodE generated files.
PCBmodE uses a standard but probably undefined behaviour issue
on Gerber where it defines circle apertures with a single modifier
but leaves a trilling 'X' after it. 'X' is modifiers separator but
when there is only one modifier the behaviour is undefined.

For parsing we are just ignoring blank modifiers.

Test updated to catch this case.
2015-05-20 16:20:02 -03:00
Hamilton Kibbe 8ec3077be9 Add checks to ensure statement unit conversions are idempotent 2015-05-16 09:45:34 -04:00
Paulo Henrique Silva 21d963d244 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)
2015-04-27 04:01:48 -03:00
Hamilton Kibbe e34e1078b6 Refactor primitive unit conversion and add regression coverage to tests 2015-04-26 02:58:12 -04:00
Paulo Henrique Silva a518043ae8 Fix indentation after PR #26 2015-04-24 14:00:35 -03:00
Paulo Henrique Silva 80cdaf075e Merge pull request #26 from curtacircuitos/unit_conversion_fix
Fix for #25. Check units at the primitive level
2015-04-24 13:34:26 -03: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 a3cce62be7 Fix Gerber generation for coord blocks with implicit op code 2015-04-23 13:38:01 -03:00
Paulo Henrique Silva 0c54a20263 Fix AM statement test 2015-04-14 23:31:15 -03:00
Paulo Henrique Silva 51c630ab77 AMStatement are used as is when gerbers are generated 2015-04-14 23:27:11 -03:00
Paulo Henrique Silva d6bb61eec6 Fix issue where D01 and D03 are implicit.
Based on code from @rdprescott.
2015-04-13 16:55:03 -03:00