import sys import openaccess from openaccess import * args=sys.argv cdsInitNonCDSApp("clsbd"); args=oaDBInit(args) class cell: def __init__(self,libnamestr,cellnamestr,viewnamestr): print 'Opening cell ' + cellnamestr self.ns=oaNativeNS() self.libname=oaScalarName(self.ns,libnamestr) self.cellname=oaScalarName(self.ns,cellnamestr) self.viewname=oaScalarName(self.ns,viewnamestr) self.cv=oaCellView.open(self.libname,self.cellname,self.viewname,'r') def close(): self.cv.close() c=cell('mylib','counter','autoLayout') bBox=oaBox() point=oaPoint() oldpoint=oaPoint() xform=oaTransform() elar=oaRouteElementArray() tech=oaTech.open(oaScalarName(c.ns,'TSMC025_deep'),'r') layername=oaString() for net in c.cv.getNetsIter(): print net for route in net.getRoutesIter(): print '\t',route route.getElements(elar) for el in elar: eltype=el.getType() eltype=eltype.getName() if eltype == oaString('SegElement'): seg=el.getSeg() begin=seg.beginLoc() end=seg.endLoc() layer=oaLayer.find(tech,seg.layer()) layer.getName(layername) print '\t\tsegment',layername, print str(long(begin.x())),str(long(begin.y())), print str(long(end.x())),str(long(end.y())) elif eltype == oaString('ViaElement'): via=el.getVia() loc=via.location() print '\t\tvia',via.viaDefName(), print str(long(loc.x())),str(long(loc.y())) else: print '\t\tunknown oaRouteElementType:',eltype