From edffdf04a9ae88508a1605eb0792e3db242b5a84 Mon Sep 17 00:00:00 2001 From: Krzysztof Wisniewski Date: Tue, 12 Sep 2023 00:22:45 +0200 Subject: [PATCH] Add support for arc region boundaries --- .../abstract/draw_commands/draw_arc.py | 38 +++++ .../rasterized_2d/draw_commands/draw_arc.py | 13 +- .../gerberx3/tokenizer/tokens/d01_draw.py | 151 +++++++++++------- .../gerberx3/pcb_tools_issues/222/main.grb | 40 +++++ .../reference/basic/sample-2/source/image.png | Bin 52082 -> 53165 bytes .../basic/sample-2/source_b/image.png | Bin 52082 -> 53165 bytes .../test_pcb_tools_issues.py | 11 ++ 7 files changed, 186 insertions(+), 67 deletions(-) create mode 100644 test/assets/gerberx3/pcb_tools_issues/222/main.grb create mode 100644 test/gerberx3/test_rasterized_2d/test_pcb_tools_issues.py diff --git a/src/pygerber/backend/abstract/draw_commands/draw_arc.py b/src/pygerber/backend/abstract/draw_commands/draw_arc.py index cfb6b22d..e7ffa9c6 100644 --- a/src/pygerber/backend/abstract/draw_commands/draw_arc.py +++ b/src/pygerber/backend/abstract/draw_commands/draw_arc.py @@ -1,7 +1,9 @@ """Base class for creating components for aperture creation.""" from __future__ import annotations +import math from functools import cached_property +from typing import Generator from pygerber.backend.abstract.backend_cls import Backend from pygerber.backend.abstract.draw_commands.draw_command import DrawCommand @@ -79,3 +81,39 @@ def _bounding_box(self) -> BoundingBox: return (vertex_box + (self.arc_center_absolute + radius)) + ( vertex_box + (self.arc_center_absolute - radius) ) + + def _calculate_angles(self) -> tuple[float, float]: + angle_start = self.arc_space_start_position.angle_between_clockwise( + Vector2D.UNIT_Y, + ) + angle_end = self.arc_space_end_position.angle_between_clockwise(Vector2D.UNIT_Y) + + if self.is_multi_quadrant and angle_start == angle_end: + angle_start = 0 + angle_end = 360 + + elif self.is_clockwise: + angle_start, angle_end = angle_end, angle_start + + return angle_start, angle_end + + def calculate_arc_points(self) -> Generator[Vector2D, None, None]: + """Calculate points on arc.""" + angle_start, angle_end = self._calculate_angles() + + angle_step = 1 + angle_min = min(angle_start, angle_end) + angle_max = max(angle_start, angle_end) + + angle_current = angle_min + + yield self.arc_center_absolute + + while angle_current < (angle_max + angle_step): + yield self.arc_center_absolute + Vector2D( + x=self.arc_radius * math.cos(math.radians(angle_current)), + y=self.arc_radius * math.sin(math.radians(angle_current)), + ) + angle_current += angle_step + + yield self.arc_center_absolute diff --git a/src/pygerber/backend/rasterized_2d/draw_commands/draw_arc.py b/src/pygerber/backend/rasterized_2d/draw_commands/draw_arc.py index 08574a17..4a69ba8f 100644 --- a/src/pygerber/backend/rasterized_2d/draw_commands/draw_arc.py +++ b/src/pygerber/backend/rasterized_2d/draw_commands/draw_arc.py @@ -7,7 +7,6 @@ from pygerber.backend.abstract.draw_commands.draw_arc import DrawArc from pygerber.backend.abstract.drawing_target import DrawingTarget from pygerber.backend.rasterized_2d.drawing_target import Rasterized2DDrawingTarget -from pygerber.gerberx3.math.vector_2d import Vector2D if TYPE_CHECKING: from pygerber.backend.rasterized_2d.backend_cls import Rasterized2DBackend @@ -27,17 +26,7 @@ def draw(self, target: DrawingTarget) -> None: bbox = self.get_bounding_box() - target.coordinate_origin pixel_box = bbox.as_pixel_box(self.backend.dpi) - angle_start = self.arc_space_start_position.angle_between_clockwise( - Vector2D.UNIT_Y, - ) - angle_end = self.arc_space_end_position.angle_between_clockwise(Vector2D.UNIT_Y) - - if self.is_multi_quadrant and angle_start == angle_end: - angle_start = 0 - angle_end = 360 - - elif self.is_clockwise: - angle_start, angle_end = angle_end, angle_start + angle_start, angle_end = self._calculate_angles() width = self.width.as_pixels(self.backend.dpi) diff --git a/src/pygerber/gerberx3/tokenizer/tokens/d01_draw.py b/src/pygerber/gerberx3/tokenizer/tokens/d01_draw.py index 875e9778..3eedd063 100644 --- a/src/pygerber/gerberx3/tokenizer/tokens/d01_draw.py +++ b/src/pygerber/gerberx3/tokenizer/tokens/d01_draw.py @@ -1,10 +1,11 @@ """Wrapper for plot operation token.""" from __future__ import annotations -from typing import TYPE_CHECKING, Any, Iterable, Tuple +from typing import TYPE_CHECKING, Any, Generator, Iterable, Tuple +from pygerber.gerberx3.math.offset import Offset from pygerber.gerberx3.math.vector_2d import Vector2D -from pygerber.gerberx3.state_enums import DrawMode +from pygerber.gerberx3.state_enums import DrawMode, Polarity from pygerber.gerberx3.tokenizer.tokens.coordinate import Coordinate, CoordinateType from pygerber.gerberx3.tokenizer.tokens.token import Token @@ -55,39 +56,108 @@ def update_drawing_state( start_position = state.current_position draw_commands: list[DrawCommand] = [] - current_aperture = backend.get_private_aperture_handle( - state.get_current_aperture(), - ) if state.is_region: polarity = state.polarity.to_region_variant() else: polarity = state.polarity - draw_commands.append( - backend.get_draw_paste_cls()( - backend=backend, - polarity=polarity, - center_position=start_position, - other=current_aperture.drawing_target, + if not state.is_region or backend.options.draw_region_outlines: + draw_commands.extend( + self._create_draw_commands( + state, + backend, + end_position, + start_position, + polarity, + ), + ) + + if state.is_region: + self._create_region_points( + state, + backend, + end_position, + start_position, + polarity, + ) + + return ( + state.model_copy( + update={ + "current_position": end_position, + }, ), + draw_commands, ) + def _create_region_points( # noqa: PLR0913 + self, + state: State, + backend: Backend, + end_position: Vector2D, + start_position: Vector2D, + polarity: Polarity, + ) -> None: if state.draw_mode == DrawMode.Linear: - if state.is_region: - state.region_boundary_points.append(start_position) - state.region_boundary_points.append(end_position) + state.region_boundary_points.append(start_position) + state.region_boundary_points.append(end_position) - draw_commands.append( - backend.get_draw_vector_line_cls()( + elif state.draw_mode in ( + DrawMode.ClockwiseCircular, + DrawMode.CounterclockwiseCircular, + ): + i = state.parse_coordinate(self.i) + j = state.parse_coordinate(self.j) + + center_offset = Vector2D(x=i, y=j) + + state.region_boundary_points.extend( + backend.get_draw_arc_cls()( backend=backend, polarity=polarity, start_position=start_position, + dx_dy_center=center_offset, end_position=end_position, - width=current_aperture.get_line_width(), - ), + width=Offset.NULL, + is_clockwise=(state.draw_mode == DrawMode.ClockwiseCircular), + # Will require tweaking if support for single quadrant mode + # will be desired. + is_multi_quadrant=True, + ).calculate_arc_points(), ) + else: + raise NotImplementedError(state.draw_mode) + + def _create_draw_commands( # noqa: PLR0913 + self, + state: State, + backend: Backend, + end_position: Vector2D, + start_position: Vector2D, + polarity: Polarity, + ) -> Generator[DrawCommand, None, None]: + current_aperture = backend.get_private_aperture_handle( + state.get_current_aperture(), + ) + yield backend.get_draw_paste_cls()( + backend=backend, + polarity=polarity, + center_position=start_position, + other=current_aperture.drawing_target, + ) + + if state.draw_mode == DrawMode.Linear: + if not state.is_region or backend.options.draw_region_outlines: + yield backend.get_draw_vector_line_cls()( + backend=backend, + polarity=polarity, + start_position=start_position, + end_position=end_position, + width=current_aperture.get_line_width(), + ) + elif state.draw_mode in ( DrawMode.ClockwiseCircular, DrawMode.CounterclockwiseCircular, @@ -96,15 +166,8 @@ def update_drawing_state( j = state.parse_coordinate(self.j) center_offset = Vector2D(x=i, y=j) - - if state.is_region: - state.region_boundary_points.append(start_position) - # TODO(argmaster.world@gmail.com): Add region boundary points for region - # https://github.com/Argmaster/pygerber/issues/29 - state.region_boundary_points.append(end_position) - - draw_commands.append( - backend.get_draw_arc_cls()( + if not state.is_region or backend.options.draw_region_outlines: + yield backend.get_draw_arc_cls()( backend=backend, polarity=polarity, start_position=start_position, @@ -115,38 +178,16 @@ def update_drawing_state( # Will require tweaking if support for single quadrant mode # will be desired. is_multi_quadrant=True, - ), - ) + ) else: raise NotImplementedError(state.draw_mode) - draw_commands.append( - backend.get_draw_paste_cls()( - backend=backend, - polarity=polarity, - center_position=end_position, - other=current_aperture.drawing_target, - ), - ) - - if not state.is_region or backend.options.draw_region_outlines: - return ( - state.model_copy( - update={ - "current_position": end_position, - }, - ), - draw_commands, - ) - - return ( - state.model_copy( - update={ - "current_position": end_position, - }, - ), - (), + yield backend.get_draw_paste_cls()( + backend=backend, + polarity=polarity, + center_position=end_position, + other=current_aperture.drawing_target, ) def __str__(self) -> str: diff --git a/test/assets/gerberx3/pcb_tools_issues/222/main.grb b/test/assets/gerberx3/pcb_tools_issues/222/main.grb new file mode 100644 index 00000000..dd5e0b01 --- /dev/null +++ b/test/assets/gerberx3/pcb_tools_issues/222/main.grb @@ -0,0 +1,40 @@ +G04 This file illustrates how to use levels to create holes* +%FSLAX25Y25*% +%MOMM*% +G01* +G04 First level: big square - dark polarity* +%LPD*% +G36* +X250000Y250000D02* +X1750000D01* +Y1750000D01* +X250000D01* +Y250000D01* +G37* +G04 Second level: big circle - clear polarity* +%LPC*% +G36* +G75* +X500000Y1000000D02* +G03* +X500000Y1000000I500000J0D01* +G37* +G04 Third level: small square - dark polarity* +G01* +%LPD*% +G36* +X750000Y750000D02* +X1250000D01* +Y1250000D01* +X750000D01* +Y750000D01* +G37* +G04 Fourth level: small circle - clear polarity* +%LPC*% +G36* +G75* +X1150000Y1000000D02* +G03* +X1150000Y1000000I250000J0D01* +G37* +M02* diff --git a/test/gerberx3/test_rasterized_2d/reference/basic/sample-2/source/image.png b/test/gerberx3/test_rasterized_2d/reference/basic/sample-2/source/image.png index 910d4f8b059a4701e2e2563eb548049d5efaa99a..1a5547ec8558dc3bc5564dbc85951cb9a5b97700 100644 GIT binary patch literal 53165 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 ffvEJKudh1nc{$Q*3GsHEC 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 ffvEJKudh1nc{$Q*