diff options
author | jaseg <git@jaseg.de> | 2024-07-19 19:20:09 +0200 |
---|---|---|
committer | jaseg <git@jaseg.de> | 2024-07-19 19:20:09 +0200 |
commit | be25b860a975a3a65fc9e434aac332950ace83bb (patch) | |
tree | a1ad470ef56079ba30782f5369a5c6500373f813 /gerbonara/cad/kicad/footprints.py | |
parent | e42b7462c971830367586bc886bcc3225edfc678 (diff) | |
download | gerbonara-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.py | 14 |
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} |