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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 300|回复: 12

[求助] SKILL Layout删除相同pin

[复制链接]
发表于 7 天前 | 显示全部楼层 |阅读模式

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

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

x
Layout中删掉类似这个重复的VSS只保留一个 相同的pin脚LVS会报waring

                               
登录/注册后可看大图

202512132844.jpg
发表于 7 天前 | 显示全部楼层
这个可以用svrf写也可以抓net上的label,或许层级允许的话你可以试试用查找替换也可以完成叭?
发表于 7 天前 | 显示全部楼层
本帖最后由 luwang 于 2025-1-2 15:31 编辑

改下层次啥的应该能用
 楼主| 发表于 7 天前 | 显示全部楼层
本帖最后由 joonjie 于 2025-1-2 15:34 编辑


luwang 发表于 2025-1-2 15:01
改下层次啥的应该能用


好复杂呀小白看不懂 我早上问您了那个脚本是遍历对象然后删除指定Label 可以跑了 然后我想用在Layout里面但是没用

procedure(delMoreLabel(name)
  let((cv shapes shape n)
        cv = deGetEditCellView()
                shapes = cv~>shapes
                n=0
        foreach(shape shapes
                            if(shape~>objType=="label" && shape~>theLabel == name then
                                        n=n+1
                    if(n>1 then
                                         vdrDeleteLabels(shape)
                      )
                                )
        )

     )
)

发表于 7 天前 | 显示全部楼层


joonjie 发表于 2025-1-2 15:19
好复杂呀小白看不懂 我早上问您了那个脚本是遍历对象然后删除指定Label 可以跑了 然后我想用在Layout ...


schdelete换成dbDeleteObject试试
 楼主| 发表于 7 天前 | 显示全部楼层


本征半导体 发表于 2025-1-2 14:55
这个可以用svrf写也可以抓net上的label,或许层级允许的话你可以试试用查找替换也可以完成叭? ...


我的想法是遍历对象然后删除指定Label,下面这个脚本在原理图中可以跑的 但是我想用在Layout里面但是没用,无法删除


procedure(delMoreLabel(name)
  let((cv shapes shape n)
        cv = deGetEditCellView()
                shapes = cv~>shapes
                n=0
        foreach(shape shapes
                            if(shape~>objType=="label" && shape~>theLabel == name then
                                        n=n+1
                    if(n>1 then
                                        vdrDeleteLabels(shape)
                      )
                                )
        )

     )
)

发表于 7 天前 | 显示全部楼层


joonjie 发表于 2025-1-2 15:19
好复杂呀小白看不懂 我早上问您了那个脚本是遍历对象然后删除指定Label 可以跑了 然后我想用在Layout ...


不要用sch开头的函数处理版图。


而且你这个只能删除指定名字的label。可以用这个试试。





  1. procedure(delMoreLabels()
  2.   let((cv uniq_labels)
  3.     cv = geGetEditCellView()
  4.     uniq_labels = nil
  5.     foreach(shape cv->shapes
  6.       when(shape->objType=="label" && shape->theLabel == name
  7.          if(member(shape->theLabel uniq_labels) then
  8.            dbDeleteObject(shape)
  9.         else
  10.           uniq_labels = cons(shape->theLabel uniq_labels)
  11.          ) ; end if
  12.        ) ; end when
  13.     ) ; end foreach
  14. ) ; end let
  15. )


复制代码


 楼主| 发表于 7 天前 | 显示全部楼层


luwang 发表于 2025-1-2 15:23
schdelete换成dbDeleteObject试试


现在可以删了但是就是全删完了 没有留一个
发表于 7 天前 | 显示全部楼层
本帖最后由 luwang 于 2025-1-2 16:27 编辑


joonjie 发表于 2025-1-2 15:43
现在可以删了但是就是全删完了 没有留一个





  1. procedure(delMoreLabel(name)
  2.   let((cv shapes shape n)
  3.         cv = deGetEditCellView()
  4.                 shapes = cv~>shapes
  5.                 n=0
  6.         foreach(shape shapes
  7.                             if(shape~>objType=="label" && shape~>theLabel == name then
  8.                                         n=n+1
  9.                     if(n>1 then
  10.                                         dbDeleteObject(shape)
  11.                       )
  12.                                 )
  13.         )
  14.      )
  15. )   试了一下,会保留一个啊


复制代码
或者你可以参考之前发的,你的这个是挺麻烦的,我发的那个是专门在做标准数字的时候用的,电源label重复的情况并把label移动到固定位置,其他的label本身就存在多个相同label的情况。

 楼主| 发表于 7 天前 | 显示全部楼层


acrofoxAgain 发表于 2025-1-2 15:41
不要用sch开头的函数处理版图。


谢谢


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-1-9 12:01 , Processed in 0.027812 second(s), 8 queries , Gzip On, Redis On.

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