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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 602|回复: 2

[求助] skill脚本如何在ISO环与PSUB环的位置上生成3um的M1层金属

[复制链接]
发表于 2023-7-9 17:26:55 | 显示全部楼层 |阅读模式

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

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

x
找到一个脚本,但是会对器件所有m1处生成3um的金属。小白不知道skill如何区分器件不同位置m1


procedure(a()
        let((objs cv  metal1 temp shapes A11 A12 x y ux uy xy row column transform m1_width)
m1_width=0.38
                cv=geGetEditCellView()
                objs=geGetSelSet()
                foreach(obj objs
                        transform=nil
                        if(obj~>objType=="inst" then transform=list(obj~>transform));end if
                        if(obj~>objType=="mosaic" then
                                x=xCoord(obj~>xy)
                                y=yCoord(obj~>xy)
                                ux=obj~>uX
                                uy=obj~>uY
                                row=obj~>rows
                                column=obj~>columns
                                for(a 0 row-1
                                        for(b 0 column-1
                                                case(car(obj~>tileArray)
                                                        ("R0"                 xy=list(x+b*ux:y+a*uy))
                                                        ("MXR90"         xy=list(x+a*uy:y+b*ux))
                                                        ("MY"                 xy=list(x-a*ux:y+b*uy))
                                                        ("R90"                 xy=list(x-a*uy:y+b*ux))
                                                        ("MX"                 xy=list(x+a*ux:y-b*uy))
                                                        ("R270"         xy=list(x+a*uy:y-b*ux))
                                                        ("R180"                 xy=list(x-a*ux:y-b*uy))
                                                        ("MYR90"         xy=list(x-a*uy:y-b*ux))
                                                );end case
                                                transform=append1(transform list(car(xy) car(obj~>tileArray) 1.0))
                                        );end for
                                );end for
                        );end if
                        shapes=obj~>master~>shapes
                        foreach(shape shapes
                                if(car(shape~>lpp) == "A1" && cadr(shape~>lpp) == "drawing" then
                                        foreach(trans transform
                                                metal1=dbCopyFig(shape cv trans)
                                                temp=leConvertPolygonToPath(metal1)
                                                temp~>width=m1_width


                                        );end foreach
                                );end if
                        );end foreach
                );end foreach
               
        );end let
);end procedure

)

发表于 2023-7-10 09:44:50 | 显示全部楼层
  if(car(shape~>lpp) == "A1" && cadr(shape~>lpp) == "drawing" then
判断M1 drawing,执行之后操作。
你为么要判断不同位置M1
这个脚本大致思路:选中对象>区分instance/mosaic> 抓取transform信息>调整M1 width
 楼主| 发表于 2023-7-11 10:03:59 | 显示全部楼层
因为我只想给ISO环和PSUB环加 ,这个脚本是只能给sd加,想问问该如何区分ISO、psub与器件sd的metal1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-9 01:03 , Processed in 0.017623 second(s), 6 queries , Gzip On, Redis On.

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