summaryrefslogtreecommitdiff
path: root/gerbonara/cad/kicad/footprints.py
diff options
context:
space:
mode:
authorjaseg <git@jaseg.de>2024-07-19 19:20:09 +0200
committerjaseg <git@jaseg.de>2024-07-19 19:20:09 +0200
commitbe25b860a975a3a65fc9e434aac332950ace83bb (patch)
treea1ad470ef56079ba30782f5369a5c6500373f813 /gerbonara/cad/kicad/footprints.py
parente42b7462c971830367586bc886bcc3225edfc678 (diff)
downloadgerbonara-be25b860a975a3a65fc9e434aac332950ace83bb.tar.gz
gerbonara-be25b860a975a3a65fc9e434aac332950ace83bb.tar.bz2
gerbonara-be25b860a975a3a65fc9e434aac332950ace83bb.zip
kicad: Improve net access
This adds net_name and net_index properties to a bunch of objects that automatically look into the (net s-expr of the object
Diffstat (limited to 'gerbonara/cad/kicad/footprints.py')
-rw-r--r--gerbonara/cad/kicad/footprints.py14
1 files changed, 6 insertions, 8 deletions
diff --git a/gerbonara/cad/kicad/footprints.py b/gerbonara/cad/kicad/footprints.py
index c7bc973..c1655e7 100644
--- a/gerbonara/cad/kicad/footprints.py
+++ b/gerbonara/cad/kicad/footprints.py
@@ -334,12 +334,6 @@ class Drill:
offset: Rename(XYCoord) = None
-@sexp_type('net')
-class NetDef:
- number: int = None
- name: str = None
-
-
@sexp_type('options')
class CustomPadOptions:
clearance: Named(AtomChoice(Atom.outline, Atom.convexhull)) = Atom.outline
@@ -376,7 +370,7 @@ class Chamfer:
@sexp_type('pad')
-class Pad:
+class Pad(NetMixin):
number: str = None
type: AtomChoice(Atom.thru_hole, Atom.smd, Atom.connect, Atom.np_thru_hole) = None
shape: AtomChoice(Atom.circle, Atom.rect, Atom.oval, Atom.trapezoid, Atom.roundrect, Atom.custom) = None
@@ -395,7 +389,7 @@ class Pad:
thermal_bridge_width: Named(float) = 0.5
chamfer_ratio: Named(float) = None
chamfer: Chamfer = None
- net: NetDef = None
+ net: Net = None
tstamp: Timestamp = None
pin_function: Named(str) = None
pintype: Named(str) = None
@@ -709,6 +703,10 @@ class Footprint:
if not self.property_value('Description', None):
self.set_property('Description', self.descr or '', 0, 0, 0)
+ def reset_nets(self):
+ for pad in self.pads:
+ pad.reset_net()
+
@property
def pads_by_number(self):
return {(int(pad.number) if pad.number.isnumeric() else pad.number): pad for pad in self.pads if pad.number}