From 21ca5f7f5c2e5425f9a142961bf86b39af825bf7 Mon Sep 17 00:00:00 2001 From: jaseg Date: Fri, 21 Jul 2023 14:38:09 +0200 Subject: WIP --- gerbonara/cad/kicad/schematic.py | 48 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) (limited to 'gerbonara/cad/kicad/schematic.py') diff --git a/gerbonara/cad/kicad/schematic.py b/gerbonara/cad/kicad/schematic.py index 00272dd..cb945a2 100644 --- a/gerbonara/cad/kicad/schematic.py +++ b/gerbonara/cad/kicad/schematic.py @@ -302,9 +302,26 @@ class DrawnProperty(TextMixin): def text(self, value): self.value = value + @property + def default_v_align(self): + return 'middle' + + @property + def h_align(self): + return self.effects.justify.h_str + @property def rotation(self): - return self.parent.rotation + self.at.rotation + rot = -self.at.rotation + rot += getattr(self.parent.at, 'rotation', 0) + if getattr(self.parent, 'reference', None) == 'C13': + print(self.value, self.at, self.parent.at, self.parent.mirror) + if hasattr(self.parent, 'mirror'): + if self.parent.mirror.y and rot in (90, 270): + rot = (rot+180)%360 + if self.parent.mirror.x and rot in (0, 180): + rot = (rot+180)%360 + return rot%360 def to_svg(self, colorscheme=Colorscheme.KiCad): if not self.hide: @@ -336,6 +353,35 @@ class SymbolInstance: def __after_parse__(self, parent): self.schematic = parent + @property + def reference(self): + return self['Reference'].value + + @reference.setter + def reference(self, value): + self['Reference'].value = value + + @property + def value(self): + return self['Value'].value + + @value.setter + def value(self, value): + self['Value'].value = value + + @property + def footprint(self): + return self['Footprint'].value + + @footprint.setter + def footprint(self, value): + self['Footprint'].value = value + + def __getitem__(self, key): + for prop in self.properties: + if prop.key == key: + return prop + @property def rotation(self): return self.at.rotation -- cgit