版图中使用快捷键秒改 metal layer ex(M2-->M1)
由于习惯了使用快捷快速改层,换了一个环镜,没有相关支持,决定自己写:
已验证,请大牛忽视此贴勿要见笑。
请将以下贴入namexxx.il 中,并load.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Writer mygooder,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
hiSetBindKey("Layout" "Shift<Key>1" "SetReplaceMetal1Layer()")
procedure(SetReplaceMetal1Layer()
let((SelectObj)
SelectObj = geGetSelSet()
SelectObj~>lpp = list("M1" "drawing")
)
)
,,,,验证:在编辑状态下画一块M1(A)和一块M2(B),选中M2后再按Shfit+1,看M2(B)是不是会变成M1,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Skill 主体思想语句即(得到她——>改变她),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,thanks,,, Writer Gerry,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,thanks,,,Write by nfmao,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,chalayout/程序设计/200609/20060919134713,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,以上提供了相关思路,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,thanks,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
这代码写的不错。从内存管理的角度简评一下,手动选择的Object, 对于函数来说一定是Global Object, 否则函数选择不到,最后改动的也是Global Object,所以这段代码中把SelectObj转换成局部变量是没有必要的,从全局转到局部,再转回全局,累得慌呀。直接对全局变量操作在这里是完全等效的。 我的经验是,所有的GUI Objects,对于函数来说都是全局的,而且是唯一的。操作的时候小心他的唯一性就好了。
大牛。佩服佩服!
一行代码搞定的事情被你分析得如此精辟,深邃,透彻。 顶顶顶
大牛,你这样会牛到没朋友的
试了一下load成功 可是没反应 怎么回事?
只复制代码部分,并确认"M1" "drawing"是否是和工艺TF文件匹配(定义一致),并load试试,操作时要先选中,再按Shift+1
回复 6# mygooder
如图 你说的我也注意了 ,代码 检查也无误,就是操作没反应。
你所遇到情况我也有点懵,代码部分应该没有问题,而且也完完了load,我从你图片有看到这样的情况,你版图窗口中什么也没有?在编辑状态下,你试着在窗中画一块M1(A)和一块M2(B),你选中M2后再按Shfit+1,看M2(B)是不是会变成M1?
可以了谢谢我理解错误你的代码用途。
jueduilk
关于在LSW 窗口快速使用快捷键转换层次的设置相关:
hiSetBindKey("Layout" "<Key>1""leSetEntryLayer(list(\"M1\" \"drawing\"))")
hiSetBindKey("Layout" "<Key>2""leSetEntryLayer(list(\"M2\" \"drawing\"))")
以上请贴入.cdsinit 文件即可,验证请按数字键如“1”再按“2”看LSW窗口的Layer是否会自动跳转
完全可行! 大神太牛了,我都没说你就猜到啦
大神,怎样才可以其它层一起加进去换(例如换metal3 换metal4),这样只能换一层啊,其它再加进去就说是重复定义
最简单的方法方法 就是你把小编的代码 再copy一份 里面的M1 全部换成你想要的layer 名字 快捷键也区分开。就可以了。
为啥我感觉选中之后q一下更方便呢...不知道大神这个有没有什么特殊的地方,比如在某些场所应用比较好
可以,我之前改错了
非常好用,感谢小编
赞!
本菜鸟想请教一下,这里面lpp是什么意思?变量或者函数还是其它的东西呢,试了一下脚本,运行不了,提示我函数未定义。
关于“lpp是什么意思”,我认为是定义metal layer 的list 中一个参数,这样讲可能不太准确,详细的最好看cadence 官方的文档.关于报错,我建议你COPY 这里相关code语句再试试.
the list of layer name and layer purpose
多谢回复,我load时写错文件名了,现在能用了。不过这个lpp还是不大懂,我大概知道它应该是layer purpose pair,是一个属性参数,不过像geGetSelSet()这样的函数可以在文档中搜到,这个lpp没有搜到,既然搜不到,是如何想到把它拿过来用的呢,真的很好奇。
谢谢啊,还想问一下,这个缩写的参数为什么在文档中搜不到呢,那又如何拿开用呢
这个应该是涉及到更低一级定义,所以你找不到。我也是找试了很多遍,看了许多别人写的SKILL 语句,再弄出这几句可用的CODE,把自己这个想法实现。
试过了~可行
谢啦
111111111111111111
问题是,我哪有那么多空闲的快捷键
厉害了,学习啦,谢谢!