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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: chinarml

[资料] 自己写的一些非常好用的skill脚本

[复制链接]
发表于 2024-11-11 16:53:48 | 显示全部楼层
本帖最后由 level90 于 2024-11-11 16:56 编辑


chinarml 发表于 2020-6-23 17:31
这里更新一版AddMOSM1脚本,有贴友反应说自己的cadence没有polygon转path的那个函数,或者函数无效的。
我 ...


大佬, mosaic时的rotation判断不太对耶。
帮您修了





  1. case(car(obj~>tileArray)
  2.   ("R0"     xy = list(x+b*ux : y+a*uy))        
  3.   ("R90"    xy = list(x-a*uy : y+b*ux))
  4.   ("R180"   xy = list(x-b*ux : y-a*uy))        
  5.   ("R270"   xy = list(x+a*uy : y-b*ux))
  6.   ("MY"     xy = list(x-b*ux : y+a*uy))        
  7.   ("MYR90"  xy = list(x-a*uy : y-b*ux))
  8.   ("MX"     xy = list(x+b*ux : y-a*uy))
  9.   ("MXR90"  xy = list(x+a*uy : y+b*ux))
  10. );end case


复制代码



 楼主| 发表于 2024-11-12 14:22:36 | 显示全部楼层
有几个脚本中使用了冒泡排序,比如横竖BUS线切断并打孔。其中有一步是根据坐标对线进行排序。脚本中使用的是数组+冒泡排序的方式,很复杂也不好理解。现在我学会了一种简单的方式。就一行就行了。
举个例子:listA=list(1 3 8 3 2),sort(listA lambda(x y) x<y) ------>list(1 2 3 3 8)。就是按照从小到大排序。
同理,应用到坐标上:listB=list('(1:0) '(3:0) '(8:0) '(3:0) '(2:0)) ,sort(listB lambda(x y) car(x) < car(y)) ------>list('(1:0) '(2:0) '(3:0) '(3:0) '(5:0) '(8:0))
同理,对于已选中的线的列表listC,在lambda内比较的就是他们的目标坐标点的x坐标或者y坐标。
发表于 2024-11-21 14:29:11 | 显示全部楼层


chinarml 发表于 2020-5-8 12:36
这个脚本中有一个获取via的row和column属性的语句。一楼的脚本中,这两个属性名称分别是  cutRows 和 cut ...


把这个脚本拷到candence中后,怎么使用,我在clw窗口直接load,新手不会
发表于 2024-12-3 18:22:27 | 显示全部楼层
本帖最后由 GoingtoStudy 于 2024-12-3 18:33 编辑


level90 发表于 2024-11-11 16:53
大佬, mosaic时的rotation判断不太对耶。
帮您修了


大佬,感谢,之前眼瞎没看见ux和uy给改了

发表于 2024-12-16 15:44:03 | 显示全部楼层
谢谢分享
发表于 2024-12-18 18:22:42 | 显示全部楼层


iamcathy 发表于 2020-5-19 09:27
加了这行,这样报错。



MagicCopy_for_via的以下报错我找到原因了,

*Error* geSelectObject: argument #1 should be a database object (type template = "dl") - nil


在以下代码中




  1. viaParams=list(
  2.         list("cutRows"                objVia~>cutRows                )
  3.         list("cutColumns"        objVia~>cutColumns        )
  4.         list("layer1Enc"        objVia~>layer1Enc        )
  5.         list("layer2Enc"        objVia~>layer2Enc        )
  6. <b>        list("layer10ffset"        objVia~>layer10ffset        )
  7.         list("layer20ffset"        objVia~>layer20ffset        )</b>
  8.         list("imp1Enc"                objVia~>imp1Enc                )
  9.         list("imp2Enc"                objVia~>imp2Enc                )
  10.         list("cutSpacing"        objVia~>cutSpacing        )
  11.         list("originOffset"        objVia~>originOffset        )
  12.         list("cutWidth"                objVia~>cutWidth        )
  13.         list("cutHeight"        objVia~>cutHeight        )
  14.         );list


复制代码
应该是layer1Offset/layer2Offset,而不是layer10ffset/layer20ffset,也就是应该是字母的O,而不是数字0
修改完之后可以正常使用了

发表于 2024-12-19 15:32:49 | 显示全部楼层
大佬问下,你们这么多脚本每次怎么load的,我每次是从CIW输入框load进去的,每次重启virtuoso都要重新load,试了在.cdsinit中load也load不进去,有什么办法可以在不用每次启动virtuoso的时候都load一次的方法吗
发表于 2024-12-26 10:22:14 | 显示全部楼层


lijianbo 发表于 2024-12-19 15:32
大佬问下,你们这么多脚本每次怎么load的,我每次是从CIW输入框load进去的,每次重启virtuoso都要重新load ...


只要在.cdsinit里写进load语句,下次打开就自动加载了。你看看会不会没有写对,或者初始化环境的时候有没有成功调用.cdsinit
发表于 7 天前 | 显示全部楼层


chinarml 发表于 2020-6-18 10:40
AutoCutBus这个脚本很好用,一直想分享,但因为我一直用的这个脚本是已有的(不属于我),我不能分享出去。 ...


大佬,这个脚本在自动拉齐线头的时候,另一端总是会伸出0.2几 , 另外pathSeg类型操作不了,仅仅是变成了polygon
发表于 3 天前 | 显示全部楼层
magiccopy用不起来,按5框完之后没有反应,ciw也未报错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-1-10 18:38 , Processed in 0.026522 second(s), 6 queries , Gzip On, Redis On.

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