Commit graph

312 commits

Author SHA1 Message Date
Chintalagiri Shashank
37dfd86368
Add hook for outline layer to PCB class 2019-05-11 04:03:59 +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
Hamilton Kibbe
292f74dee9
Merge pull request #91 from cejpmart/patch-1
IPC356: Do not crash on record type 367
2019-01-26 13:48:05 -05:00
Martin Cejp
e002975249
IPC356: Do not crash on record type 367 2019-01-26 16:07:45 +01: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
7c20bd3699
Merge pull request #87 from ju5t/full-filename-regex
Match full filename instead of the base name
2018-06-27 12:31:00 -05:00
ju5t
8dd8a87fc0 Match full filename instead of the base name
Regular expressions only matched the base name. This matches the
entire filename which allows for more advanced regular expressions.
2018-06-26 22:17:45 +02:00
ju5t
7cd3d53252 Skip subdirectories during import
If a directory contains subdirectories from_directory throws an
exception.
2018-06-25 09:43:23 +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
jaseg
b87629c2ae Add hole support to ADParamStmt.rect 2017-11-25 16:14:23 +01:00
Hamilton Kibbe
fa9f2c3a74
Merge pull request #76 from ju5t/guess-layer
Check gerber content for layer hints
2017-11-22 11:15:13 -05:00
Hamilton Kibbe
c2ed707b52 Fix bounding box calculation for Slot primitives per #77 2017-11-14 09:15:06 -05:00
Hamilton Kibbe
ca6c819ca8 Add test that reproduces #77 2017-11-14 09:11:49 -05:00
Hamilton Kibbe
e12a04fc16 Fix error in slot rendering from #77 2017-11-01 16:09:06 -04:00
ju5t
9ae238bf7a Check gerber content for layer hints 2017-11-01 16:23:22 +01:00
Kliment Yanev
a08ecc922d Implement quickhull to remove scipy dependency 2017-09-16 14:48:44 +02:00
Hamilton Kibbe
7ad6c3f6ac Fix handling of multi-line strings per #66 2017-07-04 02:11:52 -04:00
Hamilton Kibbe
ea0643dcf4 Merge pull request #67 from jmargeta/python_3_fix
Add GerberParser fix for Python 3.x
2017-07-04 01:31:32 -04: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
872c2db250 Merge pull request #69 from jmargeta/sweep_angle_tolerance
Add tolerance to center finding
2017-06-12 07:59:39 -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
dd1676ad8a Add tolerance to center finding
In some cases, the computation of valid sweep angle hit numerical limits
and no centers are found.

This commit adds a small amount of tolerance.
2017-04-15 15:40:55 +02:00
Jan Margeta
7873999926 Fix Cairo backend for svg saving and Python 3 2017-04-15 15:29:58 +02:00
Jan Margeta
5b67c82abc Replace sys.maxint with sys.maxsize
In Python 3, sys.maxint was removed, however its current use
can be safely substituted with sys.maxsize (also in Python 2)

See also: https://docs.python.org/3.1/whatsnew/3.0.html#integers
2017-04-15 11:13:31 +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
ju5t
ffeaf788f0 (#61) Add regex option to discover layer classes 2016-12-01 21:08:17 +01:00
Hamilton Kibbe
e07ccc805f Fix drill tests 2016-11-18 08:14:26 -05:00
Hamilton Kibbe
389c273a87 Clean up rs274x output tests 2016-11-18 08:12:55 -05:00
Hamilton Kibbe
33e8494318 Add more tests for primitives 2016-11-18 08:11:56 -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
a7f1f6ef0f Finish adding square hole support, fix some primitive calculations, etc. 2016-11-18 08:05:57 -05:00
Hamilton Kibbe
6b672e98ff Add support for IF (Include File) rs274x command 2016-11-18 08:02:22 -05:00
Hamilton Kibbe
c70ece73ea Add support for square holes in basic primitives 2016-11-18 07:56:51 -05:00
Hamilton Kibbe
41a7b90dff Excellon update 2016-11-18 07:55:43 -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
56c3c88c57 temporarily disable tests faillin g on CI 2016-11-06 14:55:59 -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
22e668c75f Fix tests 2016-11-05 18:30:21 -04:00