Source code for pygerber.tokens.gnn

# -*- coding: utf-8 -*-
from __future__ import annotations

import re
from typing import TYPE_CHECKING

from pygerber.constants import Unit
from pygerber.validators.basic import Int

from .token import Deprecated, Token

if TYPE_CHECKING:
    from pygerber.drawing_state import DrawingState
    from pygerber.mathclasses import BoundingBox
    from pygerber.renderer import Renderer


[docs]class G0N_Token(Token): regex = re.compile(r"G0(?P<INTERPOLATION>[1-3])\*?") INTERPOLATION = Int()
[docs] def alter_state(self, state: DrawingState): state.set_interpolation(self.INTERPOLATION)
[docs]class G36_Token(Token): regex = re.compile(r"G36\*")
[docs] def alter_state(self, state: DrawingState): state.begin_region()
[docs]class G37_Token(Token): regex = re.compile(r"G37\*")
[docs] def pre_render(self, renderer: Renderer): self.manager, self.bounds = renderer.finish_drawing_region()
[docs] def render(self, renderer: Renderer): self.manager.finish(self.bounds)
[docs] def post_render(self, renderer: Renderer): renderer.end_region()
[docs] def bbox(self, renderer: Renderer) -> BoundingBox: return self.manager.bbox(self.bounds)
[docs]@Deprecated("G55 command is deprecated since 2012") class G55_Token(Token): regex = re.compile(r"G55.*?\*")
[docs]@Deprecated("G70 command is deprecated since 2012") class G70_Token(Token): regex = re.compile(r"G70.*?\*")
[docs] def alter_state(self, state: DrawingState): state.set_unit(Unit.INCHES)
[docs]@Deprecated("G71 command is deprecated since 2012") class G71_Token(Token): regex = re.compile(r"G71.*?\*")
[docs] def alter_state(self, state: DrawingState): state.set_unit(Unit.MILLIMETERS)
[docs]@Deprecated("G90 command is deprecated since 2012") class G90_Token(Token): regex = re.compile(r"G90\*")
[docs] def alter_state(self, state: DrawingState): state.coparser.set_mode("A")
[docs]@Deprecated("G91 command is deprecated since 2012") class G91_Token(Token): regex = re.compile(r"G91\*")
[docs] def alter_state(self, state: DrawingState): state.coparser.set_mode("I")