Commit graph

116 commits

Author SHA1 Message Date
Chintalagiri Shashank
5288a8314b Manual merge resolution 2019-11-27 15:11:27 +05:30
Chintalagiri Shashank
9cc42d9b77
Make __main__ functional again and install a script entry point. 2019-05-11 04:24:09 +05:30
Chintalagiri Shashank
0c86289565
Add a new transparant theme for multilayer renders. 2019-05-11 03:27:48 +05:30
Hamilton Kibbe
2601ae8eab fix reversed layer bug 2019-03-02 10:41:37 -05:00
jaseg
a7a5981e0e Make primitives with unset level polarity inherit from region
This fixes region rendering with programatically generated primitives
such that clear level polarity works in an intuitive way. This is useful
for e.g. cutouts in regions. Before, the renderer would set level
polarity twice, both when starting the region and then again once for
each region primitive (line or arc). The problem was that the primitives
in a region with "clear" polarity would when constructed with unset
polarity default to "dark". Thus the renderer would emit something like
LPC (clear polarity) -> G36 (start region) -> LPD (dark polarity) ->
{lines...} instead of LPC -> G36 -> {lines...}.

After this commit, Line and Arc will retain None as level polarity when
created with unset level polarity, and region rendering will override
None with the region's polarity. Outside regions, the old dark default
remains unchanged.

Note on verification: Somehow, gEDA gerbv would still render the broken
regions the way one would have intended, but other viewers (KiCAD
gerbview, the online EasyEDA one and whatever JLC uses to make their
silkscreens) would not.
2019-02-03 14:37:26 +09:00
Hamilton Kibbe
f59d78b7fe
Merge pull request #92 from curtacircuitos/subclass-bugfix
Fix hard requirement of cairo per #83, and add stubs for required sub…
2019-01-26 13:52:32 -05:00
jaseg
17924398fa Fix cairo matrix clone op to not use copy.copy
For some reason, copy.copy would barf saying it can't deepcopy cairo
matrices.
2018-07-06 19:57:01 +02:00
Hamilton Kibbe
5245fb9256 Fix hard requirement of cairo per #83, and add stubs for required subclass methods to GerberContext per #84 2018-06-05 08:57:37 -04:00
jaseg
e5597e84a8 Use positional arguments for cairo.Context.arc
cairocffi 0.6 does not support keyword args.
2017-11-25 16:15:00 +01:00
Hamilton Kibbe
e754f59468 Remove rest of mixed unpack/kwarg syntax to fix #72 2017-07-04 01:22:47 -04:00
Hamilton Kibbe
8def119980 Merge pull request #71 from tomacorp/layer_bounds_arg
Added bounds argument to render_layer()
2017-06-12 08:02:59 -04:00
Hamilton Kibbe
b85021d9b8 Merge pull request #68 from jmargeta/cairo_python_3_fix
Fix Cairo backend for svg saving and Python 3
2017-06-12 07:58:59 -04:00
Hamilton Kibbe
f7a719e6f7 Fix error when unpacking colors in cairo backend 2017-06-12 07:58:06 -04:00
Tom Anderson
e0b45108d2 Added bounds argument to render_layer() 2017-05-24 09:42:23 -07:00
Jan Margeta
7873999926 Fix Cairo backend for svg saving and Python 3 2017-04-15 15:29:58 +02:00
Hamilton Kibbe
19a8fb0048 Add max_width and max_height arguments to 2016-12-13 20:22:54 -05:00
Hamilton Kibbe
7c4ec8a768 Clip context to axis- and pixel- aligned bounds before rendering primitives. Significantly speeds up render 2016-12-13 00:01:05 -05:00
Hamilton Kibbe
0ae5c48a65 Fix rs274x output bugs 2016-11-18 08:10:32 -05:00
Hamilton Kibbe
5696fc7064 Fix a bunch of bugs in rendering that showed up when rendering the gerbv test suite 2016-11-18 08:09:03 -05:00
Hamilton Kibbe
60d08dc8ad Merge upstream change 2016-11-07 21:20:26 -05:00
Girts Folkmanis
369ac7b2a3 cairo_backend.py: use BytesIO instead of StringIO
This fixes a crash in cairocffi on Python3, and should be compatible
with both python2 and python3. In python2, byte strings are just
strings. In python3, when getting binary data, the user probably wants
a byte string instead of a regular string.
2016-11-07 17:11:07 -08:00
Hamilton Kibbe
6db0658e23 Fix tests on python3 2016-11-06 15:08:00 -05:00
Hamilton Kibbe
d7a0f3ad2b Remove debug print" 2016-11-06 14:58:32 -05:00
Hamilton Kibbe
422c86bcc6 Merge upstream changes 2016-11-06 14:44:40 -05:00
Hamilton Kibbe
724c2b3bce Finish Merge, most tests passing 2016-11-05 20:56:47 -04:00
Hamilton Kibbe
0fedaedb6e Add more layer hints as seen in the wild 2016-09-29 19:43:28 -04:00
Hamilton Kibbe
5af19af190 Commit partial merge so I can work on the plane 2016-09-24 02:28:36 +08:00
Garret Fick
8d5e782ccf Fix multiple problems with the merge. There are still errors, but I will intentionally leave them because future merges might resolve them 2016-08-06 09:51:58 +08:00
Hamilton Kibbe
8cd842a41a Manually mere rendering changes 2016-08-06 09:40:40 +08:00
Garret Fick
965d3ce23b Add more tests for rendering to PNG. Start adding tests for rendering to Gerber format. Changed definition of no hole to use None instead of 0 so we can differentiate when writing to Gerber format. Makde polygon use hole diameter instead of hole radius to match other primitives 2016-07-24 22:08:31 +08:00
Garret Fick
7cd6acf126 Add many render tests based on the Umaco gerger specification. Fix multiple rendering bugs, especially related to holes in flashed apertures 2016-07-24 17:08:47 +08:00
Garret Fick
b0e13cc596 Merge in 6a005436b4 2016-07-20 23:37:18 +08:00
Garret Fick
e8327fda79 Manually merge change 5430fa6738 2016-07-20 23:26:51 +08:00
Garret Fick
76a49ec8e7 Manually merge change 6f876edd09 2016-07-20 23:20:15 +08:00
Garret Fick
34f20ee90f Manually merge af5541ac93 2016-07-17 21:04:15 +08:00
Garret Fick
f0585baefa Create first test that renders and validates the the rendered PNG is correct. 2016-07-17 13:14:54 +08:00
Garret Fick
0dded38353 Merge in negative soldermask. Still required further changes to support negatives for shapes that dont exist in the merge source 2016-07-17 10:42:03 +08:00
Garret Fick
9b0d3b1122 Fix issue with chaning region mode via flash. Add options for controlling output from rendered gerber 2016-07-10 15:07:17 +08:00
Garret Fick
ccb6eb7a76 Add support for polygon apertures 2016-06-25 16:46:44 +08:00
Garret Fick
b01c4822b6 Render aperture macros with clear regions 2016-06-25 12:27:28 +08:00
Garret Fick
ea97d9d037 Fix issue with switching between ROUT and normal drill modes 2016-05-28 17:03:40 +08:00
Garret Fick
3fc296918e Use the known macro statement to render. Fix thermal not setting rotation 2016-05-28 13:06:08 +08:00
Garret Fick
c9c1313d59 Fix units statement. Keep track of original macro statement in the AMGroup 2016-05-28 12:36:31 +08:00
Garret Fick
d1d112f2f1 Merge pull request #3 from qaulau/patch-2
Update cairo_backend.py
2016-05-19 23:28:02 +08:00
Garret Fick
74c638c718 Fix issue where did not always switch into the G01 mode after G03 when the point was unchanged 2016-05-19 23:19:28 +08:00
Garret Fick
7fda8eb9f5 Don't render null items 2016-05-08 22:13:08 +08:00
Qau Lau
199a0f3d3c Update cairo_backend.py
If cairo  module import error use cairocffi
2016-04-08 20:02:04 +08:00
Garret Fick
2eac1e427c Fix converting values for excellon files. Give error for incremental mode 2016-04-05 22:40:12 +08:00
Garret Fick
288f49955e Actually fix the rout rendering to be correct 2016-03-27 14:24:11 +08:00
Garret Fick
acde19f205 Support for the G85 slot statement 2016-03-26 15:59:42 +08:00