2012-03-20 06:34:23 +00:00
|
|
|
#!/usr/bin/env python
|
2012-03-19 11:21:29 +00:00
|
|
|
import sys
|
|
|
|
from pcbnew import *
|
|
|
|
|
|
|
|
filename=sys.argv[1]
|
|
|
|
|
|
|
|
pcb = LoadBoard(filename)
|
|
|
|
|
|
|
|
#ToUnits = ToMM
|
|
|
|
#FromUnits = FromMM
|
|
|
|
ToUnits=ToMils
|
|
|
|
FromUnits=FromMils
|
|
|
|
|
|
|
|
print "LISTING VIAS:"
|
|
|
|
|
|
|
|
for item in pcb.GetTracks():
|
|
|
|
if type(item) is SEGVIA:
|
|
|
|
|
|
|
|
pos = item.GetPosition()
|
|
|
|
drill = item.GetDrillValue()
|
|
|
|
width = item.GetWidth()
|
|
|
|
print " * Via: %s - %f/%f "%(ToUnits(pos),ToUnits(drill),ToUnits(width))
|
|
|
|
|
|
|
|
elif type(item) is TRACK:
|
|
|
|
|
|
|
|
start = item.GetStart()
|
|
|
|
end = item.GetEnd()
|
|
|
|
width = item.GetWidth()
|
|
|
|
|
|
|
|
print " * Track: %s to %s, width %f" % (ToUnits(start),ToUnits(end),ToUnits(width))
|
|
|
|
|
|
|
|
else:
|
|
|
|
print "Unknown type %s" % type(item)
|
|
|
|
|
|
|
|
print ""
|
|
|
|
print "LISTING DRAWINGS:"
|
|
|
|
|
|
|
|
for item in pcb.GetDrawings():
|
|
|
|
if type(item) is TEXTE_PCB:
|
|
|
|
print "* Text: '%s' at %s"%(item.GetText(),item.GetPosition())
|
|
|
|
elif type(item) is DRAWSEGMENT:
|
|
|
|
print "* Drawing: %s"%item.GetShapeStr() # dir(item)
|
|
|
|
else:
|
|
|
|
print type(item)
|
|
|
|
|
|
|
|
print ""
|
|
|
|
print "LIST MODULES:"
|
|
|
|
|
|
|
|
for module in pcb.GetModules():
|
|
|
|
print "* Module: %s at %s"%(module.GetReference(),ToUnits(module.GetPosition()))
|
|
|
|
|
|
|
|
print ""
|
|
|
|
print "LIST ZONES:"
|
|
|
|
|
|
|
|
for zone in pcb.GetSegZones():
|
|
|
|
print zone
|
|
|
|
|
|
|
|
|
|
|
|
print ""
|
|
|
|
print "RATSNEST:",len(pcb.GetFullRatsnest())
|
|
|
|
|
|
|
|
print dir(pcb.GetNetClasses())
|
|
|
|
|