kopia lustrzana https://gitlab.com/gerbolyze/gerbonara
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 objectmerge-requests/4/head
rodzic
e42b7462c9
commit
be25b860a9
|
@ -307,6 +307,29 @@ class ArcPointList:
|
|||
yield [kls.name_atom, *(e for elem in value for e in elem.__sexp__(elem))]
|
||||
|
||||
|
||||
@sexp_type('net')
|
||||
class Net:
|
||||
index: int = 0
|
||||
name: str = ''
|
||||
|
||||
|
||||
class NetMixin:
|
||||
def reset_net(self):
|
||||
self.net = Net()
|
||||
|
||||
@property
|
||||
def net_index(self):
|
||||
if self.net is None:
|
||||
return 0
|
||||
return self.net.index
|
||||
|
||||
@property
|
||||
def net_name(self):
|
||||
if self.net is None:
|
||||
return ''
|
||||
return self.net.name
|
||||
|
||||
|
||||
@sexp_type('xyz')
|
||||
class XYZCoord:
|
||||
x: float = 0
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -150,12 +150,6 @@ class BoardSetup:
|
|||
export_settings: ExportSettings = field(default_factory=ExportSettings)
|
||||
|
||||
|
||||
@sexp_type('net')
|
||||
class Net:
|
||||
index: int = 0
|
||||
name: str = ''
|
||||
|
||||
|
||||
@sexp_type('segment')
|
||||
class TrackSegment(BBoxMixin):
|
||||
start: Rename(XYCoord) = field(default_factory=XYCoord)
|
||||
|
|
Ładowanie…
Reference in New Issue