catchPinBySel.il
已有 141 次阅读|
2025-8-6 13:37
|系统分类:芯片设计|
skill
procedure(catchPinBySel()
let((cv objs )
cv = geGetEditCellView()
objs = geGetSelSet()
shapes = cv ~>shapes
foreach(obj objs
terminal = obj ~>net~>sigNames
foreach(pinId shapes
if(pinId~>pin != nil then
if(pinId~>pin~>net~>sigNames == terminal then ;car(cv ~>shapes)~>pin~>net~>sigNames
print(terminal)
address = obj~>endPt
Xaddress = xCoord(obj~>endPt)
printf(" Xaddress:")
print(Xaddress)
Yaddress = yCoord(obj~>endPt)
printf(" Yaddress:")
print(Yaddress)
Xpin=xCoord(centerBox(pinId~>bBox))
printf(" Xpin:")
print(Xpin)
printf(" ")
Ypin=yCoord(centerBox(pinId~>bBox))
printf(" Ypin:")
print(Ypin)
;~~~~~~~~~~~~~~~~~~~~~the key~~~~~~~~~~~~~~~~~~
;x=abs(Xaddress-Xpin)
x=Xaddress-Xpin
printf(" relative position:")
print(x)
printf(" ")
y=Yaddress-Ypin
print(y)
dbMoveShape(pinId cv list(x:y "R0" 1)) ; case1 (x,y) case2 (-x,y) case3 (x,-y) case4 (-x,-y)
;~~~~~~~~~~~~~~~~~~~~~the key~~~~~~~~~~~~~~~~~~
);if
);if
);foreach
);foreach
);let
);procedure