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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 927|回复: 10

[求助] 新人skill初学求助

[复制链接]
发表于 2024-6-3 11:34:45 | 显示全部楼层 |阅读模式

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

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

x
在load了这个skill后,我载入我建的函数testchange 为什么我的M2不能变成M3啊,感觉也没有错误啊




                               
登录/注册后可看大图
687a603722d27a65bc5227cb9d30d14.png

发表于 2024-6-3 14:01:49 | 显示全部楼层
[color=var(--text-primary)][backcolor=rgba(244,244,244,var(--tw-bg-opacity))]請寫一個cadence skill code的script,功能是change metal layer








[color=var(--text-primary)][color=var(--text-primary)][backcolor=var(--main-surface-primary)]ChatGPT




[color=var(--tw-prose-body)]
當然,下面是一个简单的 Cadence SKILL 脚本,来更改选定对象的金属层。这个脚本假设你想将所有选定的对象从一个金属层更改到另一个金属层。
[backcolor=rgba(13,13,13,var(--tw-bg-opacity))][color=var(--text-secondary)][backcolor=var(--main-surface-secondary)][size=0.75]skill複製程式碼

;; Change metal layer for selected objects in Cadence Virtuosoprocedure(changeMetalLayer(oldLayerName newLayerName)    let((cv geos oldLayer newLayer)        ;; Get the current cellview        cv = geGetEditCellView()                ;; Get the old and new layer        oldLayer = list(car(parseString(oldLayerName " ")))        newLayer = list(car(parseString(newLayerName " ")))                ;; Get the selected objects        geos = geGetSelSet()                ;; Iterate over selected objects and change their layer        foreach(geo geos            when(geo~>layerName == oldLayer                geo~>layerName = newLayer            )        )                ;; Update display        geUpdateAllViews()                ;; Print message        printf("Changed layer from %s to %s for selected objects\n" oldLayerName newLayerName)    ));; Usage: (changeMetalLayer "metal1" "metal2")

请按以下步骤使用此脚本:
  • 打开 Cadence Virtuoso,确保已经打开设计视图并选择了你要更改层的对象。
  • 打开 SKILL IDE 或者在 CIW(Command Interpreter Window)中输入以下命令来加载脚本:[backcolor=rgba(13,13,13,var(--tw-bg-opacity))][color=var(--text-secondary)][backcolor=var(--main-surface-secondary)][size=0.75]skill複製程式碼

    load("path/to/your/script.il")

  • 运行脚本并传入要更改的层名,例如:[backcolor=rgba(13,13,13,var(--tw-bg-opacity))][color=var(--text-secondary)][backcolor=var(--main-surface-secondary)][size=0.75]skill複製程式碼

    changeMetalLayer("metal1" "metal2")


这个脚本会遍历当前选择集中的对象,并将它们的图层从指定的旧图层更改为新的图层。如果你有进一步的需求或问题,请告诉我!










发表于 2024-6-3 14:04:21 | 显示全部楼层


可以使用GPT幫你寫或是debug


                               
登录/注册后可看大图








                               
登录/注册后可看大图


 楼主| 发表于 2024-6-3 14:13:31 | 显示全部楼层


prada520 发表于 2024-6-3 14:01
請寫一個cadence skill code的script,功能是change metal layer


感谢 等我回去试试 但是我也想知道我上面那个错在哪 导致出不来
发表于 2024-6-3 14:23:32 | 显示全部楼层
1:shapes=cv~>shapes 这样下面foreach语句遍历的才是cv的每一个shape
2:shape~>layerName="M3"  "="1个等于号是赋值,两个等于号是判断相等
发表于 2024-6-3 14:31:28 | 显示全部楼层
5楼正解,你下面遍历的是shapes,但是上面把cv的shapes赋值给了shape,其实你可以直接,foreach(shape cv~>shapes
这样写。然后,下面的判断if后面先是判断,是没错的,但是后面那个依然是判断语句,而不是赋值,去掉一个等号即可
 楼主| 发表于 2024-6-3 14:45:20 | 显示全部楼层


cll783470279 发表于 2024-6-3 14:23
1:shapes=cv~>shapes 这样下面foreach语句遍历的才是cv的每一个shape
2:shape~>layerName="M3"  "="1个等 ...


懂了
 楼主| 发表于 2024-6-3 14:58:01 | 显示全部楼层
还有一个问题啊 比如我在virtuoso窗口写cv~>geGetEditCellView()
后面我不想要这个cv了或者cv~>geGetEditCellView()想定义为别的窗口该怎么覆盖掉或者删除掉呢 不想重新启动virtuoso了
发表于 2024-6-3 15:10:02 | 显示全部楼层


xd.liu 发表于 2024-6-3 14:58
还有一个问题啊 比如我在virtuoso窗口写cv~>geGetEditCellView()
后面我不想要这个cv了或者cv~>geGetEditCe ...


重新在CIW窗口打,或者写成脚本,设置快捷键
发表于 2024-6-4 09:34:17 | 显示全部楼层


xd.liu 发表于 2024-6-3 14:58
还有一个问题啊 比如我在virtuoso窗口写cv~>geGetEditCellView()
后面我不想要这个cv了或者cv~>geGetEditCe ...


hisetbindkey()绑定快捷键,把它保存为.il脚本文件,然后.cdsinit里load这个脚本路径,以后就会自动读取了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-10-18 11:08 , Processed in 0.035512 second(s), 7 queries , Gzip On, Redis On.

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