Diodes, leds and resistors positionning

This commit is contained in:
Thomas Schwery 2019-06-19 12:57:41 +02:00 committed by Thomas Schwery
parent 416db015c0
commit 2d751036a3

View file

@ -1,18 +1,35 @@
import pcbnew
board = pcbnew.GetBoard()
mods = board.GetModules()
for i in mods:
ref = i.GetReference()
if not ref.startswith('D'):
continue
k_ref = "K" + ref[1:]
k = board.FindModuleByReference(k_ref)
print k_ref, k
k_center = k.GetCenter()
d_center = pcbnew.wxPoint(k_center.x - 3808700, k_center.y - 6200000)
i.SetPosition(d_center)
i.SetOrientation(2700)
print k_ref, ref, d_center
for i in range(1, 97):
keyName = "K_20%02d" % i
diodeName = "D_20%02d" % i
key = board.FindModuleByReference(keyName)
diode = board.FindModuleByReference(diodeName)
resistor = board.FindModuleByReference("R30%02d" % i)
led = board.FindModuleByReference("D30%02d" % i)
if diode is None:
print("Missing diode {}".format(diodeName))
continue
keyCenterPoint = key.GetPosition()
diodeCenterPoint = pcbnew.wxPoint(keyCenterPoint.x - pcbnew.FromMM(6.4), keyCenterPoint.y - pcbnew.FromMM(1.4))
diode.SetPosition(diodeCenterPoint)
diode.SetOrientation(2700)
if (diode.GetLayer() == 0):
diode.Flip(diode.GetPosition())
ledCenterPoint = pcbnew.wxPoint(keyCenterPoint.x - pcbnew.FromMM(2.46), keyCenterPoint.y + pcbnew.FromMM(10))
led.SetPosition(ledCenterPoint)
resistorCenterPoint = pcbnew.wxPoint(ledCenterPoint.x - pcbnew.FromMM(0), ledCenterPoint.y + pcbnew.FromMM(3))
resistor.SetPosition(resistorCenterPoint)
print("key {}({}) on {}({})"
.format(key.GetReference(),
key.GetValue(),
key.GetPosition().x, key.GetPosition().y
))
pcbnew.Refresh()