diff options
author | jaseg <git@jaseg.de> | 2021-06-13 22:32:04 +0200 |
---|---|---|
committer | jaseg <git@jaseg.de> | 2021-06-13 22:32:04 +0200 |
commit | 0b8e99f79a168c1899949b7466755b4f8e06bac3 (patch) | |
tree | 72d9f7c09dd247371b436c3628764b2b63cfb99f | |
parent | 5225d3da8bdd4ed2b33e43692a4e1a340eb4989b (diff) | |
download | gerbonara-0b8e99f79a168c1899949b7466755b4f8e06bac3.tar.gz gerbonara-0b8e99f79a168c1899949b7466755b4f8e06bac3.tar.bz2 gerbonara-0b8e99f79a168c1899949b7466755b4f8e06bac3.zip |
Remove single-quadrant support
The gerber spec is pretty explicit that this is a super-legacy feature
that is not worth supporting. Looking at gerbv, an implementation would
come with considerable complexity.
-rw-r--r-- | gerbonara/gerber/render/cairo_backend.py | 10 | ||||
-rw-r--r-- | gerbonara/gerber/tests/golden/example_single_quadrant.gbr | 16 | ||||
-rw-r--r-- | gerbonara/gerber/tests/golden/example_single_quadrant.png | bin | 9658 -> 0 bytes | |||
-rw-r--r-- | gerbonara/gerber/tests/resources/example_single_quadrant.gbr | 18 | ||||
-rw-r--r-- | gerbonara/gerber/tests/test_cairo_backend.py | 5 |
5 files changed, 7 insertions, 42 deletions
diff --git a/gerbonara/gerber/render/cairo_backend.py b/gerbonara/gerber/render/cairo_backend.py index ff92d99..ff5e6cb 100644 --- a/gerbonara/gerber/render/cairo_backend.py +++ b/gerbonara/gerber/render/cairo_backend.py @@ -23,6 +23,7 @@ except ImportError: from operator import mul import tempfile +import warnings import os from .render import GerberContext, RenderSettings @@ -235,7 +236,11 @@ class GerberCairoContext(GerberContext): two_pi = 2 * math.pi angle1 = (arc.start_angle + two_pi) % two_pi angle2 = (arc.end_angle + two_pi) % two_pi - if angle1 == angle2 and arc.quadrant_mode != 'single-quadrant': + + if arc.quadrant_mode == 'single-quadrant': + warnings.warn('Cairo backend does not support single-quadrant arcs.') + + if angle1 == angle2: # Make the angles slightly different otherwise Cario will draw nothing angle2 -= 0.000000001 if isinstance(arc.aperture, Circle): @@ -255,8 +260,7 @@ class GerberCairoContext(GerberContext): if arc.direction == 'counterclockwise': mask.ctx.arc(center[0], center[1], radius, angle1, angle2) else: - mask.ctx.arc_negative(center[0], center[1], radius, - angle1, angle2) + mask.ctx.arc_negative(center[0], center[1], radius, angle1, angle2) mask.ctx.move_to(*end) # ...lame mask.ctx.stroke() diff --git a/gerbonara/gerber/tests/golden/example_single_quadrant.gbr b/gerbonara/gerber/tests/golden/example_single_quadrant.gbr deleted file mode 100644 index b0a3166..0000000 --- a/gerbonara/gerber/tests/golden/example_single_quadrant.gbr +++ /dev/null @@ -1,16 +0,0 @@ -%FSLAX23Y23*% -%MOIN*% -%ADD10C,0.01*% -G74* -D10* -%LPD*% -G01X1100Y600D02* -G03X700Y1000I-400J0D01* -G03X300Y600I0J-400D01* -G03X700Y200I400J0D01* -G03X1100Y600I0J400D01* -G01X300D02* -X1100D01* -X700Y200D02* -Y1000D01* -M02* diff --git a/gerbonara/gerber/tests/golden/example_single_quadrant.png b/gerbonara/gerber/tests/golden/example_single_quadrant.png Binary files differdeleted file mode 100644 index 89b763f..0000000 --- a/gerbonara/gerber/tests/golden/example_single_quadrant.png +++ /dev/null diff --git a/gerbonara/gerber/tests/resources/example_single_quadrant.gbr b/gerbonara/gerber/tests/resources/example_single_quadrant.gbr deleted file mode 100644 index c398601..0000000 --- a/gerbonara/gerber/tests/resources/example_single_quadrant.gbr +++ /dev/null @@ -1,18 +0,0 @@ -G04 Ucamco ex. 4.5.8: Single quadrant* -%FSLAX23Y23*% -%MOIN*% -%ADD10C,0.010*% -G74* -D10* -X1100Y600D02* -G03* -X700Y1000I400J0D01* -X300Y600I0J400D01* -X700Y200I400J0D01* -X1100Y600I0J400D01* -X300D02* -G01* -X1100D01* -X700Y200D02* -Y1000D01* -M02*
\ No newline at end of file diff --git a/gerbonara/gerber/tests/test_cairo_backend.py b/gerbonara/gerber/tests/test_cairo_backend.py index d0386d8..c60e7a9 100644 --- a/gerbonara/gerber/tests/test_cairo_backend.py +++ b/gerbonara/gerber/tests/test_cairo_backend.py @@ -43,11 +43,6 @@ def test_render_two_boxes(): _test_render("resources/example_two_square_boxes.gbr", "golden/example_two_square_boxes.png") -def _DISABLED_test_render_single_quadrant(): - """Umaco exapmle of a single quadrant arc""" - _test_render("resources/example_single_quadrant.gbr", "golden/example_single_quadrant.png") - - def test_render_simple_contour(): """Umaco exapmle of a simple arrow-shaped contour""" gerber = _test_render("resources/example_simple_contour.gbr", "golden/example_simple_contour.png") |