Here's something to get you started. Disclaimer dont know env and I did some simple tests of the functionality of the script. Edit the script to your application. How to: set the layers you want to pin be visible load the file and and drop the command in the CIW command example: genPin("baam" "booyaa" '("M3" "pin") "M3M4" '("M3" "label") ) ------------------------------skill script----------------------------------------------------- procedure(genPin(net1 net2 pinLpp pinNet labLpp) when(getMode() genPinExe(net1 net2 pinLpp pinNet labLpp)) ) procedure(getMode() let(((bool t)) if(equal(geGetEditCellView()~>mode "r") then printf("Cell is in read only mode.\n") bool = nil) bool )) procedure(genPinExe(net1 net2 pinLpp pinNet labLpp) let( (netDb tmp delTmpList labDb (tmpLp0 '("y0" "drawing")) (tmpLp1 '("y1" "drawing")) (cv geGetEditCellView())) netDb = dbFindNetByName(cv pinNet) unless(netDb netDb = dbCreateNet(cv pinNet)) foreach(shp setof(s cv~>shapes leIsLayerVisible(s~>lpp)) cond( (equal(shp~>net~>name net1) tmp = dbCopyFig(shp cv) tmp~>lpp = tmpLp0 delTmpList = cons(tmp delTmpList)) (equal(shp~>net~>name net2) tmp = dbCopyFig(shp cv) tmp~>lpp = tmpLp1 delTmpList = cons(tmp delTmpList)) ) ) foreach(pin leLayerAnd(cv tmpLp0 tmpLp1 pinLpp) dbCreatePin(netDb pin) labDb = dbCreateLabel(cv labLpp centerBox(pin~>bBox) pinNet "centerCenter" "R0" "stick" 0.015) leAttachFig(labDb pin)) foreach(tmp delTmpList dbDeleteObject(tmp)) t ); end of let ); end of genPinExe
↧