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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4999|回复: 41

[求助] skill脚本求助—给器件加label

[复制链接]
发表于 2023-11-23 16:51:14 | 显示全部楼层 |阅读模式

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

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

x
求助,请问有适用cadence IC5141里面xl调出器件之后,一键给器件加对应label的skill脚本吗?
 楼主| 发表于 2023-11-23 16:58:37 | 显示全部楼层
procedure(CreateLabelXL()
let((cv objs origin name label)
cv = geGetEditCellView()
objs = cv ~> instances
foreach(obj objs
origin = centerBox(obj~>bBox)
name = obj ~> name
label = dbCreateLabel(cv list("TXT" "ttxt") origin name "centerCenter" "R0" "roman" 0.2)
leAttachFig(label obj)
);foreach
);let
);proc

hiSetBindKey("Layout" "<Key>KP_3" "CreateLabelXL()")

以上的一个脚本是从论坛找到的,我试了load没有报错,但是实际快捷键没有反应。
发表于 2023-11-23 17:08:00 | 显示全部楼层
这一句改成name = obj ~> cellName
发表于 2023-11-23 17:58:00 | 显示全部楼层


寻雨 发表于 2023-11-23 17:08
这一句改成name = obj ~> cellName


应该是baseName吧
发表于 2023-11-23 17:59:16 | 显示全部楼层
618 自带这个功能
发表于 2023-11-23 21:04:48 | 显示全部楼层


能不能详细说说,或者搜索这个功能的关键词,数字连接几十个label打的奔溃了,
发表于 2023-11-24 09:56:59 | 显示全部楼层


s_uni 发表于 2023-11-23 21:04
能不能详细说说,或者搜索这个功能的关键词,数字连接几十个label打的奔溃了,
...


L,然后直接选中需要的器件


L.png
发表于 2023-11-24 14:15:32 | 显示全部楼层
/***************************************************************************
roceduce: "Auto Create M1 and  GT_via on MOS"
;Function: Press "<Key>3" to auto create M1(S/D) GT&CT
;Version: V2.0
;Created by XiangLi on  20/6/2023.
;Bug:
***************************************************************************/

hiSetBindKey("Layout" "<Key>3" "addM1_gt_via()")

procedure(addM1_gt_via()
        let((cv tech viaID sels sel tran shapes shape temp1 points start end x0t y0t x1t y1t tempAA bBox  center_point y0 y1 tempGT bBox_GT n0 n1 new_GT NEWVIASGate NEWVIASSource)
                ;Auto Create Vias in area
                TechFile=techGetTechFile(geGetEditRep())
                CGroupID=cstFindConstraintGroupIn(TechFile "virtuosoDefaultSetup")
                MyViaOptions=viaGetViaOptions(CGroupID)
                MyViaOptions~>automatic~>minNuMCUts=2
                cv=geGetEditCellView()

                tech=techGetTechFile(cv)
                viaID=techFindViaDefByName(tech "M1_GT")       
                viaID12=techFindViaDefByName(tech "M2_M1")
                viaID23=techFindViaDefByName(tech "M3_M2")
                sels=geGetSelSet()
                foreach(sel sels
                                if(sel~>objType == "inst"
                                        then tran=sel~>transform
                                                 center_point=centerBox(sel~>bBox)
                                                 dbCreateLabel(cv list("TXT" "ttxt") center_point sel~>name "centerCenter" "R0" "roman" 0.4)
                                                 shapes=sel~>master~>shapes
                                                foreach(shape shapes
                                                                 if(shape~>lpp == list("M1" "drawing")
                                                                        then temp=dbCopyFig(shape cv tran)
                                                                         temp1=leConvertPolygonToPath(temp)
                                                                             temp1~>width=0.11
                                                                                 tempm2=dbCopyFig(shape cv tran)
                                                                                 tempm2=leConvertPolygonToPath(tempm2)
                                                                                 tempm2~>width=0.11
                                                                                 tempm2~>lpp=list("M2" "drawing")
                                                                                 tempm3=dbCopyFig(shape cv tran)
                                                                                 tempm3=leConvertPolygonToPath(tempm3)
                                                                                 tempm3~>width=0.11
                                                                                 tempm3~>lpp=list("M3" "drawing")


                                                                             points=temp1~>points
                                                                                 start=nth(0 points)
                                                                                 end=nth(1 points)
                                                                                 x0t=xCoord(start) y0t=yCoord(start)
                                                                                 x1t=xCoord(end)  y1t=yCoord(end)
                                                                                 dbDeleteObject(temp1)
                                                                                 dbCreatePath(cv "M1" list((x0t:y0t-0.025) (x1t:y1t+0.025)) 0.11)
                                                                                 dbDeleteObject(tempm2)
                                                                                 dbCreatePath(cv "M2" list((x0t:y0t-0.025) (x1t:y1t+0.025)) 0.11)
                                                                                 dbDeleteObject(tempm3)
                                                                                 dbCreatePath(cv "M3" list((x0t:y0t-0.025) (x1t:y1t+0.025)) 0.11)

                                                                                 NEWVIASSource=viaGenerateViasInArea(cv list((x0t:y0t-0.025) (x1t:y0t-0.025) (x1t:y1t+0.025) (x0t:y1t+0.025)) MyViaOptions)

                                                                   ) ;end if
                                                                    if(shape~>lpp == list("AA" "drawing")
                                                                        then
                                                                         tempAA=dbCopyFig(shape cv tran)
                                                                         bBox=tempAA~>bBox
                                                                         y0=bottomEdge(bBox)
                                                                         y1=topEdge(bBox)
                                                                         dbDeleteObject(tempAA)
                                                               ) ;end ifNEWVIASGate
                                                if(shape~>lpp == list("GT" "drawing")
                                                                        then  
                                                                         tempGT=dbCopyFig(shape cv tran)
                                                                         bBox_GT=tempGT~>bBox
                                                                         n0=leftEdge(bBox_GT)
                                                                         n1=rightEdge(bBox_GT)
                                                                         dbDeleteObject(tempGT)
                                                               )
                                  ) ;end foreach
                                                                  new_GT=dbCreateRect(cv "GT" list((n0:y0-0.1) (n1:y1+0.21)))
                                                                         newm1=dbCreateRect(cv "M1" list((n0+0.065:y1+0.1) (n1-0.065:y1+0.21)))
                                                                         newm1=leConvertPolygonToPath(newm1)
                                                                         newm2=dbCreateRect(cv "M2" list((n0+0.065:y1+0.1) (n1-0.065:y1+0.21)))
                                                                         newm2=leConvertPolygonToPath(newm2)
                                                                         NEWVIASGate=viaGenerateViasInArea(cv list((n0+0.065:y1+0.1) (n1-0.065:y1+0.1) (n1-0.065:y1+0.21) (n0+0.065:y1+0.21)) MyViaOptions)
                                                                         NEWVIASSource=viaGenerateViasInArea(cv list((x0t:y0t) (x1t:y0t) (x1t:y1t) (x0t:y1t)) MyViaOptions)

                                            ) ;end if
                               
                           ) ;end foreach
                                                                ;         newm1=dbCreateRect(cv "M1" list((n0:y1+0.11) (n1:y1+0.23)))
                                                                ;         newm1=leConvertPolygonToPath(newm1)
                                                                ;         newm2=dbCreateRect(cv "M2" list((n0:y1+0.11) (n1:y1+0.23)))
                                                                ;         newm2=leConvertPolygonToPath(newm2)
)
)

给你一个我写的脚本, 作用给选中的管子加label 以及给管子源漏上加金属线打孔,gate上加线打孔~ 写的不太好 应该能用
发表于 2023-11-24 14:17:57 | 显示全部楼层
支持smic40工艺,其他工艺下需要改一下参数吧
发表于 2023-11-24 14:29:43 | 显示全部楼层


gybak 发表于 2023-11-24 14:15
/***************************************************************************
roceduce: "Auto Creat ...


感谢,我来试试哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-26 01:11 , Processed in 0.022782 second(s), 6 queries , Gzip On, Redis On.

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