| |
hiSetBindKey("Schematics" "<Key>1" "netmax()")
procedure(netnum(ID)
let((allnet y count y1 z netname num )
allnet=foreach(mapcan x ID netna(x)~>net)
y=""
count=0
numsel=0
foreach(x allnet
if(rexMatchp(":" x) then
y1=rena(x)
count=count+length(y1)
y=strcat(y lis(y1) )
else
count=count+1
y=strcat(y x " ")
)
)
z=parseString(y " \n")
netname=ciUtilsMakeUnique(parseString(y " \n"))
))
procedure(netmax()
let((name name1 name2 netInfo m netname savename fps nameall)
name1=foreach(mapcar x geGetSelSet()
netnum(list(x))
)
name2=foreach(mapcan x geGetSelSet()
netnum(list(x))
)
name=foreach(mapcar x geGetSelSet()
x~>cellName
)
netInfo=makeTable('net11)
netInfo['mokuai]=name
netInfo['allnet]=name2
m=foreach(mapcar x car(name1)
list(x length(lindex(netInfo~>allnet x ?all t)) lindex(netInfo~>allnet x ?all t))
)
netInfo['m]=setof(x m cadr(x)>=2)
netInfo['out]=setof(x m cadr(x)<=2)
netname=sort( foreach(mapcar x netInfo~>m list(car(x) cadr(x)))
(lambda (f1 f2)
if( equal(cadr(f1) cadr(f2) ) then
lessp(cadr(f1) cadr(f2))
else
lessp(cadr(f2) cadr(f1)))
))
saveName = "./test.txt"
fps = outfile(saveName)
fprintf(fps "cell= %s\nconnect=%d\nnetname=\n" car(netInfo~>mokuai) length(netInfo~>m) )
foreach(mapcar z netname fprintf(fps "%L\n" z) )
close(fps)
view(saveName)
))
procedure(rena(r)
prog((b)
r=parseString(r "<>:")
b=nil
if(length(r)>=3 then
for(i min(evalstring(nth(1,r)) evalstring(nth(2,r))) max(evalstring(nth(1,r)) evalstring(nth(2,r)))
sprintf(x "%L", i)
b=append1(b strcat(nth(0,r) "<" x ">" ))
)
else
b=list(r)
)
return(b)
))
procedure(netna(netId)
let((name netInfo)
netInfo=makeTable('net)
netInfo['pin]=netId~>terminals~>name
netInfo['net]=netId~>terminals~>net~>name
netInfo))
procedure(CLMessage(title button message)
prog( ()
hiDisplayAppDBox(
?name 'CLDBox
?dboxBanner title
?buttonlayout button
?dboxText message
)
);prog
);procedure
procedure(lis(a )
prog((y)
y=""
foreach(x a
y=strcat(y x "\n")
)
return(y)
)
)