在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2196|回复: 4

[原创] 自己保存一下skill 脚本

[复制链接]
发表于 2022-8-26 18:38:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 liuliuliu320 于 2022-9-27 18:31 编辑



从顶层到底层修改某层layer尺寸

(修改孔要打散)

procedure(HierSizeLayer()


let((cv winid bbox CTlist VIA1list VIA2list VIA3list VIA4list CTlist_new VIAllist_new VIA2list_new VIA3list_new)
cv=geGetEditRep ()
winid=geGetEditCellViewWindow(cv)
if(cv~>mode=="r"
then
geChangeEditMode("a")
;if
bbox=cv~>bBox
CTlist  =  leSearchHierarchy(
cv bbox 0 "rectangle" list( list( "layer" "==" list( "CA" "drawing" )) list( "width" "==" 0.22 ))
)
VIA1list=leSearchHierarchy(
cv bbox 0 "rectangle" list( list( "layer" "==" list( "V1" "drawing" )) list( "width" "==" 0.26 ))
)
VIA2list=leSearchHierarchy(
cv bbox 0 "rectangle" list( list( "layer" "==" list( "V2" "drawing" )) list( "width" "==" 0.26 ))
)
VIA3list=leSearchHierarchy(
cv bbox 0 "rectangle"  list( list( "layer" "==" list( "V3" "drawing" )) list( "width" "==" 0.26 ))
)
foreach (x CTlist
leSizeShape(x -0.065)
); foreach
foreach (x VIA1list
leSizeShape(x - 0.08)
);foreach
foreach(x VIA2list
leSizeShape (x - 0.08)
);foreach
foreach (x VIA3list
leSizeShape(x - 0.08)
);foreach
CTlist_new    =leSearchHierarchy (
cv bbox  32 "rectangle" list( list( "layer" "==" list( "CA" "drawing" )) list( "width" "==" 0.22 ))
)
VIA1list_new=leSearchHierarchy(
cv bbox  32 "rectangle"  list( list( "layer" "==" list( "V1" "drawing" )) list( "width" "==" 0.26 ))
)
VIA2list_new=leSearchHierarchy(
cv bbox 32 "rectangle"   list( list( "layer" "==" list( "V2" "drawing" )) list( "width" "==" 0.26 ))
)
VIA3list_new=leSearchHierarchy(
cv bbox 32 "rectangle"   list(list( "layer" "=="  list( "V3" "drawing" )) list( "width" "==" 0.26))
)
geSave ()
instances=filtercell(cv~>instances)
foreach (x instances
geEditInPlace (winid "a" x 0 1 1)
HierSizeLayer()
leReturn()
); foreach
);let
);procedure
procedure(filtercell(objs)
let ( (namelist num nameflag objs_new)
namelist=artUnique (objs~>cellName)
num=length(namelist)
declare (group [num])
nameflag=listToVector(namelist)
objs_new=nil
for(i 0 num-1
group=setof(x objs x->cellName==nameflag)

objs_new=cons (car(group ) objs_new)

); for
reverse (objs_new)
);let
);procedure


 楼主| 发表于 2023-12-21 09:49:15 | 显示全部楼层

                               
登录/注册后可看大图

发表于 2023-12-21 11:39:56 | 显示全部楼层
谢谢分享
发表于 2024-1-4 14:14:51 | 显示全部楼层
谢谢分享
发表于 2024-1-29 15:11:09 | 显示全部楼层
楼主,请教一下这个artUnique这个函数是干嘛的,以及filtercell这个函数的作用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 05:55 , Processed in 0.024037 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表