axlCmdRegister("Voidadd" 'void_C)
procedure(void_C()
(prog ()
axlSetFindFilter(?enabled list("noall" "shapes")
?onButtons list("noall" "shapes"))
_shape=axlGetSelSet(axlSelect(?prompt "Select shape ."))
shapeID = car(_shape)
when( _shape
axlSetFindFilter(?enabled list("noall" "pins")
?onButtons list("noall" "pins"))
pinSlect = axlGetSelSet(axlSelect())
;axlClearSelSet()
foreach(pin pinSlect
when( car(pinSlect)->objType="pin"
s=5.0
polydbid = axlPolyFromDB(car(pinSlect), ?layer car(car(pinSlect)->startEnd) ?padType 'REGULAR)
exp_poly = (axlPolyExpand polydbid s 'ALL_ARC)
a=car(exp_poly)->bBox
if(axlGeoPointInShape(car(a) shapeID) && axlGeoPointInShape(cadr(a) shapeID)
then axlHighlightObject(pin)
a=car(exp_poly)->bBox
ll = car(a)
ur = cadr(a)
llx = caar(a)
lly = cadar(a)
urx = caadr(a)
ury = cadadr(a)
path = axlPathStart(list(ll (urx:lly) ur (llx:ury) ))
voidpath = axlPathLine(path, 0.0, ll)
axlDBCreateVoid(shapeID voidpath)
return(voidpath)
)
)
)
)
axlDBCreateVoid(shapeID voidpath)
)
)
chrysalis 发表于 2016-12-20 10:41
这个代码的功能是选择被shape覆盖的pin,然后以pin边缘扩展5mil在shape上面开窗吧?
有没有考虑到shape和p ...
chrysalis 发表于 2016-12-20 13:43
那就把findfilter设置为pins,以shape的bbox框选一次,就可以得到一堆pin,再一个个判断筛选处理
gdm0121 发表于 2017-1-3 12:00
请问这个skill调用的指令是什么?
欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) | Powered by Discuz! X3.2 |