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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6324|回复: 14

[求助] 如何用skill批量删除instance中的user property

[复制链接]
发表于 2017-8-18 18:01:01 | 显示全部楼层 |阅读模式

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

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

x
请问如何用skill批量删除instance中的user property,有谁做过啊
发表于 2017-8-20 09:37:22 | 显示全部楼层
回复 1# xiaota

这是我随手写的啊,没时间去跑,应该差不多吧:

propName = “You_Give_A_Name_Here”

cv = hiGetCurrentWindow()->cellView  ;; 得到现在打开的编辑窗口
insts = cv-> instances
foreach(inst insts dbDeletePropByName(inst propName) )
dbSave(cv)
dbClose(cv)
 楼主| 发表于 2017-8-20 15:00:34 | 显示全部楼层
本帖最后由 xiaota 于 2017-8-20 15:06 编辑

回复 2# amodaman


   非常感谢您的回答!我试了一下,可以的!随手写的都可以!   但需要打开电路图,
    我是想对一个库进行操作,
    把每个电路中instance的User Property都删掉,如果用ProName,要一个个写,好麻烦
    有更好的方法吗
发表于 2017-8-20 18:53:09 | 显示全部楼层
回复 3# xiaota


那改一下很容易,还是没跑过啊,你自己试一下,差不多就应该是这样了 ...

propName  = “You_Give_A_Name_Here”

libName     = "Tell_Me_Your_Lib_Name_Here"
viewName  = "Tell_Me_Which_View_To_Process"

libId = ddGetObj(libName)
libCells = libId ->cells

foreach(cell libCells
   when( cv = dbOpenCellViewByType(libId->name cell->name viewName "" "a")
       printf("Processing %s/%s/%s ...\n" libId->name cell->name viewName)
       insts = cv-> instances
       foreach(inst insts dbDeletePropByName(inst propName) )
       dbSave(cv)
       dbClose(cv)
    ) ;; when
) ;; foreach
 楼主| 发表于 2017-8-20 19:21:24 | 显示全部楼层
回复 4# amodaman

谢谢您的热心解答。直接对库进行操作我仿照您的代码已经实现了。
还是有一个问题要麻烦一下:

QQ拼音截图未命名.png


比如我要删掉这些User Property
按照您的代码,ProName 要写的太多了,也有可能误删,怎样用代码直接批量删掉这些User Property
发表于 2017-8-20 19:38:40 | 显示全部楼层
回复 5# xiaota

看来你想删掉所有的用户属性,那就闭起眼睛来删就好了:


libName     = "Tell_Me_Your_Lib_Name_Here"
viewName  = "Tell_Me_Which_View_To_Process"

libId = ddGetObj(libName)
libCells = libId ->cells

foreach(cell libCells
    when( cv = dbOpenCellViewByType(libId->name cell->name viewName "" "a")
        printf("Processing %s/%s/%s ...\n" libId->name cell->name viewName)
        insts = cv-> instances
        foreach(inst insts
           props = inst->prop
           foreach(prop props  printf("Deleting inst:%s property %s ...\n" inst->name prop->name)
              dbDeletePropByName(inst prop->name) ))
        dbSave(cv)
        dbClose(cv)
     ) ;; when
) ;; foreach
 楼主| 发表于 2017-8-21 12:04:28 | 显示全部楼层
回复 6# amodaman


   谢谢您的耐心解答,参考您的代码,我的问题已经完全解决了,谢谢!!
发表于 2017-8-21 12:12:27 | 显示全部楼层
回复 7# xiaota

闭起眼睛删除属性的代码要慎用。
 楼主| 发表于 2017-8-21 16:03:18 | 显示全部楼层
回复 8# amodaman


   恩,您的“闭起眼睛”代码除了会把user property删掉,还会把有用的cdf信息也删掉   但我删之前把w l m这类参数都保存了一下,删完再重新赋值。这样做应该没问题了吧
   谢谢啊
发表于 2017-8-21 16:57:27 | 显示全部楼层
回复 9# xiaota

这里面的函数仅仅会删除掉用户定义的属性(User Property),如果是CDF参数的话,这是删不掉的,需要用其他的函数才能做到,所以,对CDF参数请放心,不会动到。用户属性和CDF参数在Property显示表中是分开显示的,中间有一个横隔线。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-24 07:52 , Processed in 0.027415 second(s), 7 queries , Gzip On, Redis On.

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