Commit graph

302 commits

Author SHA1 Message Date
Garret Fick
7f47aea332 Write polygons to macros 2016-03-05 10:04:58 +08:00
Garret Fick
7b88509c4a Make writer resilient to similar macro defs 2016-03-05 09:24:54 +08:00
Garret Fick
20a9af279a More rendering of AMGroup to statements 2016-03-01 00:06:14 +08:00
Garret Fick
223a010831 Fix critical issue with rotatin points (when the angle is zero the y would be flipped). Render AM with outline to gerber 2016-02-27 18:18:04 +08:00
Garret Fick
29c0d82bf5 RS274X backend for rendering. Incompelte still 2016-02-27 15:24:36 +08:00
Garret Fick
02dbc6a51e Additional bounding box calcuation that considers only actual positions, not the movement of the machine 2016-02-21 10:23:03 +08:00
Garret Fick
4bc7a6345b Keep aperature macros as single statement. Don't generate regions with no points 2016-02-16 22:24:03 +08:00
Garret Fick
991a3687ef Handle multiple commands on a single line 2016-02-16 21:57:25 +08:00
Garret Fick
3fce700ef2 Don't throw an exception for missing zero suppress, even though it is wrong 2016-02-15 23:53:52 +08:00
Garret Fick
a765f8aa2c Fix convertion of units for apertures and regions 2016-02-14 22:06:32 +08:00
Garret Fick
5b93db47cd Draw thermal aperture macros (as approximation) 2016-02-02 00:11:55 +08:00
Garret Fick
96bdd0f59d Keep track of quadrant mode so we can draw full circles 2016-01-31 15:24:57 +08:00
Garret Fick
e84f131720 Add support for more excellon formats. Dont consider line width when determinging region bounding box 2016-01-31 14:17:35 +08:00
Garret Fick
60784dfa21 Skip over a strange excellon statement 2016-01-16 18:33:40 +08:00
Garret Fick
6a99359413 Fix converting polygons to outlines for macros 2016-01-16 12:28:46 +08:00
Garret Fick
83ae0670d1 More stability fixes for poorly constructed files 2016-01-08 00:19:47 +08:00
Garret Fick
f61eee807f Render polygon flashes 2015-12-30 18:44:07 +08:00
Garret Fick
ff1ad704d5 Work with Diptrace that calls things D3 not D03 2015-12-30 18:10:43 +08:00
Garret Fick
2e42d1a470 Support KiCad format statement where FMAT,2 is 2:4 with inch 2015-12-30 16:11:25 +08:00
Garret Fick
96692b2221 Render primitives for some aperture macros 2015-12-30 15:32:44 +08:00
Garret Fick
4a815bf25d First time any macro renders 2015-12-30 14:05:00 +08:00
Garret Fick
ca3c682da5 Wrongly using mil def for mm 2015-12-28 11:34:54 +08:00
Garret Fick
cd0ed5aed0 Identify flashes and bounding box without aperture 2015-12-25 14:43:44 +08:00
Hamilton Kibbe
5430fa6738 Python3 fix 2015-12-22 10:18:51 -05:00
Hamilton Kibbe
6f876edd09 Add PCB interface
this incorporates some of @chintal's layers.py changes
PCB.from_directory() simplifies loading of multiple gerbers
the PCB() class should be pretty helpful going forward...

the context classes could use some cleaning up, although I'd like to wait until the freecad stuff gets merged, that way we can try to refactor the context base to support more use cases
2015-12-22 02:47:23 -05:00
Hamilton Kibbe
af5541ac93 Allow renderer to write to memory per #38
Some updates to rendering colors/themes
2015-12-20 23:54:20 -05:00
Paulo Henrique Silva
d1598b46c9 Merge pull request #52 from curtacircuitos/negative_soldermask
Allow negative solder mask rendering per #50.
2015-12-20 22:15:44 -02:00
Hamilton Kibbe
163a0cd531 Merge branch 'negative_soldermask' of github.com:curtacircuitos/pcb-tools into negative_soldermask 2015-12-20 15:26:39 -05:00
Hamilton Kibbe
60c5906b29 Clean up negative render code 2015-12-20 15:24:20 -05:00
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
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