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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 106|回复: 2

[原创] 一个可以快速另存并替换cell的小程序

[复制链接]
发表于 昨天 17:21 | 显示全部楼层 |阅读模式

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

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

×
layout时经常需要编辑一个不属于自己lib的cell,一般会另存到自己lib里面并替换当前cell,再进去进行修改,我将这个过程用脚本实现,可以快速另存并替换当前cell,脚本全文如下,快捷键是Ctrl+3,也可以直接下载附件,如有建议,欢迎回帖讨论


procedure(copy_and_replace(t_lib t_cell)
                let((selID selName selLib cvID)
                                selID=car(geGetSelectedSet())
                                selName=selID~>cellName
                                selLib=selID~>libName
                                cvID=dbOpenCellViewByType(selLib selName "layout" "" "r")
                                if(dbCopyCellView(cvID t_lib t_cell "layout" nil nil nil)
                                                then leReplaceAnyInstMaster(selID t_lib t_cell "layout")
                                                );if
                                );let
                        );copy_and_replace
                       
procedure(copyForm()
                let((libList crlib crcell libList_ID cellnameID copyFormID)
                                libList=ddGetLibList()~>name
                                crlib=geGetEditCellView()~>libName
                                crcell=car(geGetSelectedSet())~>cellName
                                setq(libList_ID
                                                hiCreateCyclicField(
                                                                ?name 'Lib_list
                                                                ?prompt "Copy to lib :"
                                                                ?choices libList
                                                                ?value crlib
                                                                ?defValue crlib
                                                                ?keepHistory t
                                                                )
                                                );setq
                                setq(cellnameID
                                                hiCreateStringField(
                                                                ?name 'cell_name
                                                                ?prompt "New cell name :"
                                                                ?defValue crcell
                                                                )
                                                );setq
                                setq(copyrightID
                                                hiCreateLabel(
                                                                ?name 'copyright
                                                                ?labelText "CopyRight by zfy"
                                                                )
                                                );setq
                                setq(copyFormID
                                                hiCreateAppForm(
                                                                ?name 'copy_form
                                                                ?formTitle "Copy and Replace"
                                                                ?fields
                                                                                list(
                                                                                                list(libList_ID 0:20 200:30 100)
                                                                                                list(cellnameID 0:60 280:30 100)
                                                                                                list(copyrightID 150:100 200:30)
                                                                                                );
                                                                ?callback list("copyCB()")
                                                                )
                                                );setq
                                hiDisplayForm(copyFormID)
                                );let
                );copyForm

procedure(copyCB()
                let((t_lib t_cell)
                                t_lib=copy_form->Lib_list->value
                                t_cell=copy_form->cell_name->value
                                copy_and_replace(t_lib t_cell)
                                );let
                );copyCB

hiSetBindKey("Layout" "Ctrl<key>3" "copyForm()")



copy_and_replace.zip

843 Bytes, 下载次数: 2 , 下载积分: 资产 -2 信元, 下载支出 2 信元

发表于 昨天 18:13 | 显示全部楼层
很好用,刚刚试过了
回复 支持 反对

使用道具 举报

 楼主| 发表于 6 小时前 | 显示全部楼层


   
bingyue789 发表于 2025-12-18 18:13
很好用,刚刚试过了


还得谢谢你的思路,这个layout操作的确经常做,但是以前没想到做成脚本,这样的确省事不少
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

手机版| 小黑屋| 关于我们| 联系我们| 用户协议&隐私声明| 版权投诉通道| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 ) |网站地图

GMT+8, 2025-12-19 16:23 , Processed in 0.014296 second(s), 4 queries , Gzip On, Redis On.

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