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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 707|回复: 1

[原创] 将底层instance的任意深度layer复制到当前层次的脚本

[复制链接]
发表于 2023-11-29 10:57:22 | 显示全部楼层 |阅读模式

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

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

x

使用快捷键4将当前选中的instances的底层layers 拷贝到当前层次,复制的层次是当前选中的layer,可以设置底层的深度1到32
hiSetBindKey("Layout""<Key>4""FloatupLayer(1 32)")

procedure(FloatUpLayer(@optional (startLevel 1) (stopLevel 32))
let((cv instcvs Tech layerlpp layerTransList newlayer)
cv=geGetEditCellview(getCurrentWindow( ))
objcvs=geGetSelectedset()
instcvs=setof(o objcvs o~>isAnyInst==t)
Tech=techGetTechFile(geGetEditRep())
layerlpp=leGetEntryLayer(Tech)
foreach(instcv instcvs
        layerTransList=myGetShape(cv layerlpp instcv~>bBox startLevel stopLevel)
        foreach(objTranslayerTransList
                newlayer=dbCopyFig(car(objTrans)cv cadr(objTrans))
                );end foreach
        );end foreach
);end let
);end procedure

procedure(myGetShape(cv lpp bbox @optional (startLevel 0)(stopLevel 32))
let((objHier objTransTable key objTransList)
/*for test
cv=geGetEditCellView(getCurrentWindow( ))
bbox=cv~>bBox startLevel=0 stopLevel=32
Tech=techGetTechFile(geGetEditRep())
lpp=leGetEntryLayer(Tech)
*/
objHier=dbShapeQuery(cv lpp bbox startLevel stopLevel)
objTransTable=makeTable(gensym('trSparseArray))
key=0
foreach(obj objHier
        if(atom(obj) then
                objTransTable[key]=list(obj dbGetHierPathTransform(obj))
                key=key+1
        else
                objTransTable[key]=list(car(last(obj)) dbGetHierPathTransform(obj)
                key=key+1
                );end if
        );end foreach
objTransList=nil
foreach(key objTransTable
        objTransList=tconc(objTransList objTransTable[key])
        );end foreach
objTransList=car(objTransList)
);end let
);end procedure


发表于 2023-11-29 13:16:15 | 显示全部楼层
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

×

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

GMT+8, 2024-11-5 13:38 , Processed in 0.014109 second(s), 6 queries , Gzip On, Redis On.

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