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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2365|回复: 8

[求助] 求助skill大佬

[复制链接]
发表于 2022-7-6 11:58:23 | 显示全部楼层 |阅读模式
100资产
下载了chinarml大佬的一个脚本,尝试之后感觉非常好用,但是遇到了一个问题。
在group里面使用改变Via后,该Via自动跳出group,该怎么设置才能使改变的Via还是在原来的group里面呢?
麻烦各位了!!!
附上代码(删除了path和pin部分)




  1. procedure(changeLayer(bb)
  2. let((cv objs layerList pinList viaList viaList1 viaList2 layerName pinName viaName)
  3. cv = geGetEditCellView()
  4. objs = geGetSelSet()
  5. layerList = list("M1" "M2" "M3" "M4" "M5" "M6" "M7" "TM1" "TM2" "ALPA")
  6. pinList = list(list("MnTXT" "metal1") list("MnTXT" "metal2") list("MnTXT" "metal3") list("MnTXT" "metal4") list("MnTXT" "metal5") list("MnTXT" "metal6") list("MnTXT" "metal7") list("MnTXT" "topmetal1") list("MnTXT" "topmetal2") list("ALPATXT" "drawing"))
  7. viaList1 = list("M2_M1" "M3_M2" "M4_M3")
  8. viaList = list("M5_M4" "M6_M5" "M7_M6")
  9. foreach(obj objs
  10. case(obj ~> objType
  11.         ("stdVia"
  12.         viaName = obj ~> viaHeader ~> viaDefName
  13.         if(member(viaName viaList1) != nil then viaList = viaList1 else viaList = viaList2);if
  14.         if(bb == 1 then
  15.         viaName = cadr(member(viaName viaList))
  16.         else
  17.         viaName = cadr(member(viaName reverse(viaList)))
  18.         );if
  19.         CreateVia(obj viaName)
  20.         );#3
  21.         );case
  22. );foreach
  23. );let
  24. );proc


  25. procedure(CreateVia(obj viaName)
  26. let((cv tech viaDefId origin orient viaParams newVia)
  27. cv = geGetEditCellView()
  28. tech = techGetTechFile(cv)
  29. viaDefId = techFindViaDefByName(tech viaName)
  30. origin = obj ~> origin
  31. orient = obj ~> orient
  32. viaParams = list(
  33.         list("cutRows"                obj ~> cutRows                )
  34.         list("cutColumns"        obj ~> cutColumns        )
  35.         list("layer1Enc"        obj ~> layer1Enc        )
  36.         list("layer2Enc"        obj ~> layer2Enc        )
  37.         list("layer1Offset"        obj ~> layer1Offset        )
  38.         list("layer2Offset"        obj ~> layer2Offset        )
  39.         list("imp1Enc"                obj ~> imp1Enc                )
  40.         list("imp2Enc"                obj ~> imp2Enc                )
  41.         list("cutSpacing"        obj ~> cutSpacing        )
  42.         list("originOffset"        obj ~> originOffset        )
  43.         list("cutWidth"                obj ~> cutWidth                )
  44.         list("cutHeight"        obj ~> cutHeight        )
  45.         );list
  46. newVia = dbCreateVia(cv viaDefId origin orient viaParams)
  47. geSelectObject(newVia)
  48. dbDeleteObject(obj)
  49. );let
  50. );proc

  51. hiSetBindKey("Layout" "Ctrl<Btn4Down>" "changeLayer(1)")
  52. hiSetBindKey("Layout" "Ctrl<Btn5Down>" "changeLayer(-1)")







复制代码


最佳答案

查看完整内容

when(groupID=obj~>figGroup dbAddFigToFigGroup(groupID newVia) );when 加再48行后面
发表于 2022-7-6 11:58:24 | 显示全部楼层
when(groupID=obj~>figGroup
dbAddFigToFigGroup(groupID newVia)
);when
加再48行后面
 楼主| 发表于 2022-7-6 11:59:42 | 显示全部楼层
实际图

改变前

改变前

改变后

改变后
发表于 2022-7-6 13:41:33 | 显示全部楼层
删除原来via前判断下原来的VIA是不是在group里,是话得到它group ID,  把新的via加进这个group就行了
 楼主| 发表于 2022-7-6 14:18:38 | 显示全部楼层


zlun1987 发表于 2022-7-6 13:41
删除原来via前判断下原来的VIA是不是在group里,是话得到它group ID,  把新的via加进这个group就行了 ...


你好,谢谢回复。按照你所说的做下去,肯定是可以的。但奈何本人太菜不了解skill语言及其函数,一时间不知道怎么下手啊。
 楼主| 发表于 2022-7-6 15:08:29 | 显示全部楼层


zlun1987 发表于 2022-7-6 14:54
when(groupID=obj~>figGroup
dbAddFigToFigGroup(groupID newVia)
);when


666 可以了!!非常感谢大佬
发表于 2022-7-6 17:45:46 | 显示全部楼层
学习了,非常感谢
发表于 2022-7-14 11:24:02 | 显示全部楼层
问一下,这个脚本实现的是什么功能
 楼主| 发表于 2022-7-14 14:04:31 | 显示全部楼层


柏林大大 发表于 2022-7-14 11:24
问一下,这个脚本实现的是什么功能


选中目标可以快速切换层次,比如金属之间来回切换。代码不全,可以去大佬原帖下载。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-4 17:41 , Processed in 0.020902 second(s), 8 queries , Gzip On, Redis On.

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