diff --git a/kicad/pcbnew/board.py b/kicad/pcbnew/board.py index 3e1d0ea..7192760 100644 --- a/kicad/pcbnew/board.py +++ b/kicad/pcbnew/board.py @@ -258,9 +258,9 @@ def add_arc(self, center, radius, start_angle, stop_angle, drawing.Arc(center, radius, start_angle, stop_angle, layer, width, board=self)) - def add_text(self, position, text, layer='F.SilkS', size=1.0, thickness=0.15): + def add_text(self, position, text, layer='F.SilkS', size=1.0, thickness=0.15, mirrored=False): return self.add( - drawing.TextPCB(position, text, layer, size, thickness, board=self)) + drawing.TextPCB(position, text, layer, size, thickness, mirrored=mirrored, board=self)) def remove(self, element, permanent=False): ''' Makes it so Ctrl-Z works. diff --git a/kicad/pcbnew/drawing.py b/kicad/pcbnew/drawing.py index 0aa6b5b..4618d7a 100644 --- a/kicad/pcbnew/drawing.py +++ b/kicad/pcbnew/drawing.py @@ -290,7 +290,7 @@ def __init__(self, *args, **kwargs): class TextPCB(Drawing, HasPosition): - def __init__(self, position, text=None, layer='F.SilkS', size=1.0, thickness=0.15, board=None): + def __init__(self, position, text=None, layer='F.SilkS', size=1.0, thickness=0.15, mirrored=False, board=None): self._obj = SWIGtype.Text(board and board.native_obj) self.position = position if text: @@ -298,6 +298,7 @@ def __init__(self, position, text=None, layer='F.SilkS', size=1.0, thickness=0.1 self.layer = layer self.size = size self.thickness = thickness + self.mirrored = mirrored @property def text(self): @@ -307,13 +308,29 @@ def text(self): def text(self, value): return self._obj.SetText(value) + @property + def mirrored(self): + return self._obj.IsMirrored() + + @mirrored.setter + def mirrored(self, value): + return self._obj.SetMirrored(value) + @property def thickness(self): - return float(self._obj.GetThickness()) / units.DEFAULT_UNIT_IUS + if SWIG_version >= 7: + thickness = self._obj.GetTextThickness() + else: + thickness = self._obj.GetThickness() + return float(thickness) / units.DEFAULT_UNIT_IUS @thickness.setter def thickness(self, value): - return self._obj.SetThickness(int(value * units.DEFAULT_UNIT_IUS)) + thickness = int(value * units.DEFAULT_UNIT_IUS) + + if SWIG_version >= 7: + return self._obj.SetTextThickness(thickness) + return self._obj.SetThickness(thickness) @property def size(self):