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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
123
返回列表 发新帖
楼主: Fcexcl

[求助] VIA12孔转换VIA23孔脚本

[复制链接]
发表于 2024-6-7 16:43:02 | 显示全部楼层
hiSetBindKeys(“Layout” list(list(“<Key>1" "ReplaceLayer(\"M1\”\"drawing\"  \"M2_M1")")))
hiSetBindKeys(“Layout” list(list(“<Key>2" "ReplaceLayer(\"M2\”\"drawing\"  \"M3_M2")")))

procedure(ReplaceLayer(layerY purposeY @optional (VIAY "))
let((cv Selectobj obj layerX)
cv = geGetEditCellView()
layerX = strcat(layerY "“ purposeY)
pteSetActiveLpp(layerX)
if(cv~>mode=="r" then
        info("Read only")
        nil
else
        Selectobj = geGetSelSet()
        foreach(obj Selectobj
                if(obj~>objType==“stdVia" then
                        obj tmp1=leReplace(cv list(obj) list(list("via definition" nil VIAY)))
                else
                        obj~>lpp = list(layerY purposeY)
                ):if
        );foreach
);if
发表于 2024-6-7 16:48:39 | 显示全部楼层
本帖最后由 yangwgtop 于 2024-6-7 16:50 编辑

\"M1\”\"drawing\"    --> \"M1\” \"drawing\"
layerX = strcat(layerY "“ purposeY)  --> layerX = strcat(layerY " “ purposeY)
中间有空格

最后还少括号。
发表于 2024-6-25 18:29:51 | 显示全部楼层


yangwgtop 发表于 2024-6-7 16:43
hiSetBindKeys(“Layout” list(list(“1" "ReplaceLayer(\"M1\”\"drawing\"  \"M2_M1")")))
hiSetBindKey ...


大神,
如果是一键循坏切换呢?在几个via之间,只用一个快捷键进行循环切换。

发表于 2024-6-26 09:34:45 | 显示全部楼层


小萌芯 发表于 2024-6-25 18:29
大神,
如果是一键循坏切换呢?在几个via之间,只用一个快捷键进行循环切换。


在if(obj~>objType==“stdVia" then 后边读出当前的via名,再用case分支去替换。
发表于 2024-6-27 17:30:19 | 显示全部楼层


2hen 发表于 2019-12-3 12:06
procedure(SetDefVia()
    let(ViaList ViaName
        ViaList=list(“PO1_M1” “M1_M2” “”PO1_M1") ...


大佬,load了,但孔没有发生变化

发表于 2024-6-27 17:34:00 | 显示全部楼层


yangwgtop 发表于 2024-6-26 09:34
在if(obj~>objType==“stdVia" then 后边读出当前的via名,再用case分支去替换。


原来的脚本好像是切换了lsw的metal层次,但via并没有变化
发表于 2024-6-30 01:24:26 | 显示全部楼层
本帖最后由 yangwgtop 于 2024-6-30 01:28 编辑


小萌芯 发表于 2024-6-27 17:34
原来的脚本好像是切换了lsw的metal层次,但via并没有变化


上边的回复是图片识别的,可能有些问题。 这个脚本是LSW换层,shape换层,和换via写在一起的。没有选择东西时,LSW换到对应的层并运行leHiCreatePath()命令。
需要注意层次名和via的名字,是不是和工艺对的上。

hiSetBindKeys("Layout" list(list("<Key>1" "ReplaceLayer(\"METAL1\" \"drawing\" \"M2_M1\")")))
hiSetBindKeys("Layout" list(list("<Key>2" "ReplaceLayer(\"METAL2\" \"drawing\" \"M3_M2\")")))

procedure(ReplaceLayer(layerY purposeY @optional (VIAY ""))
let((cv Selectobj obj layerX)
cv = geGetEditCellView()
layerX = strcat(layerY " " purposeY)
println(layerX)
pteSetActiveLpp(layerX)
if(cv->mode=="r" then
        info("Read only")
        nil
else        
        LaySel= geGetSelSetCount()        
println(LaySel)
        if(LaySel==0 then
                leHiCreatePath()
        else
                Selectobj = geGetSelSet()
                foreach(obj Selectobj
                        if(obj~>objType== "stdVia" then
println(obj)
                        obj_tmp1=leReplace(cv list(obj) list(list("via definition" nil VIAY)))
;println(obj_tmp1)
;geSelectFig(obj)
                        else
                                obj~>lpp = list(layerY purposeY)
                                );if
                        );foreach
                );if
        );if
);let
);pro


发表于 2024-8-20 14:05:13 | 显示全部楼层


yangwgtop 发表于 2024-6-30 01:24
上边的回复是图片识别的,可能有些问题。 这个脚本是LSW换层,shape换层,和换via写在一起的。没有选择东 ...


能不能写一种,选中这个孔,先判断一下选中的是不是孔,然后直接改变这个孔的属性,把它变成M1_M2的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-5 16:37 , Processed in 0.020301 second(s), 7 queries , Gzip On, Redis On.

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