Skip to content

block2

block2

Parser level abstraction of block aperture info for Gerber AST parser, version 2.

Block2

Bases: Aperture2

Parser level abstraction of aperture info for block aperture.

Source code in src/pygerber/gerberx3/parser2/apertures2/block2.py
class Block2(Aperture2):
    """Parser level abstraction of aperture info for block aperture."""

    command_buffer: ReadonlyCommandBuffer2

    def render_flash(self, renderer: Renderer2, command: Flash2) -> None:
        """Render draw operation."""
        # Block apertures are resolved into series of commands at parser level.
        raise NotImplementedError

    def get_bounding_box(self) -> BoundingBox:
        """Return bounding box of aperture."""
        return self.command_buffer.get_bounding_box()

    def get_rotated(self, angle: Decimal) -> Self:
        """Get copy of this aperture rotated around (0, 0)."""
        if angle == Decimal("0.0"):
            return self
        return self.model_copy(
            update={
                "command_buffer": self.command_buffer.get_rotated(angle),
            },
        )

    def get_mirrored(self, mirror: Mirroring) -> Self:
        """Get mirrored aperture."""
        if mirror == Mirroring.NoMirroring:
            return self
        return self.model_copy(
            update={
                "command_buffer": self.command_buffer.get_mirrored(mirror),
            },
        )

    def get_scaled(self, scale: Decimal) -> Self:
        """Get copy of this aperture scaled by factor."""
        if scale == Decimal("1.0"):
            return self
        return self.model_copy(
            update={
                "command_buffer": self.command_buffer.get_scaled(scale),
            },
        )

render_flash

render_flash(renderer: Renderer2, command: Flash2) -> None

Render draw operation.

Source code in src/pygerber/gerberx3/parser2/apertures2/block2.py
def render_flash(self, renderer: Renderer2, command: Flash2) -> None:
    """Render draw operation."""
    # Block apertures are resolved into series of commands at parser level.
    raise NotImplementedError

get_bounding_box

get_bounding_box() -> BoundingBox

Return bounding box of aperture.

Source code in src/pygerber/gerberx3/parser2/apertures2/block2.py
def get_bounding_box(self) -> BoundingBox:
    """Return bounding box of aperture."""
    return self.command_buffer.get_bounding_box()

get_rotated

get_rotated(angle: Decimal) -> Self

Get copy of this aperture rotated around (0, 0).

Source code in src/pygerber/gerberx3/parser2/apertures2/block2.py
def get_rotated(self, angle: Decimal) -> Self:
    """Get copy of this aperture rotated around (0, 0)."""
    if angle == Decimal("0.0"):
        return self
    return self.model_copy(
        update={
            "command_buffer": self.command_buffer.get_rotated(angle),
        },
    )

get_mirrored

get_mirrored(mirror: Mirroring) -> Self

Get mirrored aperture.

Source code in src/pygerber/gerberx3/parser2/apertures2/block2.py
def get_mirrored(self, mirror: Mirroring) -> Self:
    """Get mirrored aperture."""
    if mirror == Mirroring.NoMirroring:
        return self
    return self.model_copy(
        update={
            "command_buffer": self.command_buffer.get_mirrored(mirror),
        },
    )

get_scaled

get_scaled(scale: Decimal) -> Self

Get copy of this aperture scaled by factor.

Source code in src/pygerber/gerberx3/parser2/apertures2/block2.py
def get_scaled(self, scale: Decimal) -> Self:
    """Get copy of this aperture scaled by factor."""
    if scale == Decimal("1.0"):
        return self
    return self.model_copy(
        update={
            "command_buffer": self.command_buffer.get_scaled(scale),
        },
    )