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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5695|回复: 65

[原创] 分享两个自己写的脚本

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

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

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

x
本帖最后由 ZC11 于 2023-7-25 09:34 编辑

分享自己写的两个小脚本

createLabel脚本.txt

2.06 KB, 下载次数: 223 , 下载积分: 资产 -2 信元, 下载支出 2 信元

无xl关系给path和器件打label

用滑轮改变金属层次.txt

2.9 KB, 下载次数: 268 , 下载积分: 资产 -2 信元, 下载支出 2 信元

通过滑轮来改变金属层次,label,和via的类型

发表于 2023-7-14 11:24:06 | 显示全部楼层
好用好用
发表于 2023-7-14 11:31:53 | 显示全部楼层
谢谢哥
发表于 2023-7-14 17:00:31 | 显示全部楼层
第一个啥原理 ,无xl关系怎么打,怎么用的? 楼主具体说道说道?
发表于 2023-7-14 17:54:16 | 显示全部楼层
学习学习
 楼主| 发表于 2023-7-17 08:59:52 | 显示全部楼层




  1. hiSetBindKey(“layout” “<key>z” “createLabel()”)
  2. procedure(createLabel()
  3.          let((cv gv objs ln lPurpose beginPoint endpoint lText tFont lHeight tOrient tJust bbox xcoord ycoord bbox xLL yLL xUR yUR)
  4.          cv=geGetEditCellView()
  5.          objs=geGetSelSet()
  6.          foreach(gv objs
  7.          if(gv~>objType==”path” || gv~>objType==”pathSeg”
  8.          then
  9.          ln=gv~>layerName
  10.          lPurpose=list(ln “pin”)
  11.          beginPoint=gv~>beginPt
  12.          endpoint=gv~>endPt
  13.          lPoint=gv~>endPt
  14.          tFont=”roman”
  15.          lHeight=gv~>width
  16.          when(cadr(beginPoint)==cadr(endpoint)&&car(beginPoint)>car(endPoint)
  17.            tJust=”centerLeft”    tOrient=”R0”
  18. );end when
  19.          when(cadr(beginPoint)==cadr(endpoint)&&car(beginPoint)<car(endPoint)
  20.            tJust=”centerRight”    tOrient=”R0”
  21. );end when
  22.          when(car(beginPoint)==car(endpoint)&&cadr(beginPoint)>cadr(endPoint)
  23.            tJust=”centerLeft”     tOrient=”R90”
  24. );end when
  25.          when(car(beginPoint)==car(endpoint)&&cadr(beginPoint)<cadr(endPoint)
  26.            tJust=”centerRight”    tOrient=”R90”
  27. );end when
  28.           lText=hiGetClipboard()
  29.           If(lText!=""
  30.           then
  31.           dbCreateLabel(cv lPurpose lPoint lText tJust tOrient tFont lHeight)
  32. );end if
  33. );end if
  34.           If(gv~>objType==“inst”
  35.           then
  36.           bbox=gv~>bBox
  37.           xLL=caar(bbox)
  38.           yLL=cadar(bbox)
  39.           xUR=caadr(bbox)
  40.           yUR=car(cdadr(bbox))
  41.           xcoord=plus(xLL xUR)/2
  42.           ycoord=plus(yLL yUR)/2
  43.           lPurpose=list("text" "drawing")
  44.           lPoint=xcoord:ycoord
  45.           tFont="roman"
  46.           lHeight=round(min((xUR-xLL) (yUR-yLL))/3*100)*0.01
  47.           tJust="centerCenter"
  48.           tOrient="R0"
  49.           lText=hiGetClipboard()
  50.           If(lText!=""
  51.           then
  52.           newLabel=dbCreateLabel(cv lPurpose lPoint lText tJust tOrient tFont lHeight)
  53.           geSelectObject(newLabel)
  54. );end if
  55. );end if
  56. );end foreach
  57. );end let
  58. );end procedure


复制代码
 楼主| 发表于 2023-7-17 09:12:42 | 显示全部楼层
第一个有bug,我把修复的贴在评论区了,大家需要的话直接从评论区复制就好。
这个脚本还是要从电路那边复制pin的内容,然后再版图中边选需要打label的path,按快捷键就可以了。他的方便之处在于不用频繁修改label的属性,脚本会从选中的线来确定label的图层,位置(打的label的位置在path的尾端),和高度(和path的宽度相同)。同时给器件打label脚本也能实现,同样在电路图里复制器件的名字,在版图中选中需要打label的器件,然后按快捷键。
脚本缺点:不能同时打不同内容的label,因为每次复制的内容只能有一个
               

我也刚入行一年,如果大家有什么指正或建议,发在评论区或直接加我QQ
发表于 2023-7-18 17:29:37 | 显示全部楼层
不错
发表于 2023-7-19 10:51:40 | 显示全部楼层
第二个我的只能往一个方向滚金属只能从小到大不能从大到小是为什么
 楼主| 发表于 2023-7-19 10:55:39 | 显示全部楼层
不应该呀,这个脚本的快捷键是shift加滑轮,你截图看一下CIW里报的什么错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-5-9 20:34 , Processed in 0.029948 second(s), 7 queries , Gzip On, Redis On.

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