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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2130|回复: 13

[求助] 求助skill脚本大佬

[复制链接]
发表于 2023-12-4 17:02:19 | 显示全部楼层 |阅读模式

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

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

x
有没有脚本大佬有pad上lable一键居中的脚本啊,急急急
发表于 2023-12-5 08:55:36 | 显示全部楼层
要获取pad位置坐标?
 楼主| 发表于 2023-12-5 09:52:35 | 显示全部楼层


gxc_cjgs 发表于 2023-12-5 08:55
要获取pad位置坐标?


是的,需求就是框选pad这个cell和lable,一键居中lable,是需要先获取坐标,不知道怎么写
发表于 2023-12-5 10:15:12 | 显示全部楼层


sr1245648455 发表于 2023-12-5 09:52
是的,需求就是框选pad这个cell和lable,一键居中lable,是需要先获取坐标,不知道怎么写 ...



procedure(test_LabelCenter()
let((objs pad Label Location)
objs = geGetSelSet()
unless(length(objs) == 2 warn("Please check select two objs. \n"))
pad = car(setof(x objs x->objType != "label"))
when(pad
    Label = car(setof(x objs x != pad))
    Location = centerBox(pad->bBox)
     Label->xy = Location
);end when
);end let
);end proc
 楼主| 发表于 2023-12-5 11:51:00 | 显示全部楼层


YuSHL 发表于 2023-12-5 10:15
procedure(test_LabelCenter()
let((objs pad Label Location)
objs = geGetSelSet()


大佬,因为pad这个cell存在prboundry那些,我想让lable居中在CB drawing 这层的中心点,能否再帮忙修改下呢
发表于 2023-12-5 14:00:29 | 显示全部楼层


sr1245648455 发表于 2023-12-5 11:51
大佬,因为pad这个cell存在prboundry那些,我想让lable居中在CB drawing 这层的中心点,能否再帮忙修改下 ...


procedure(test_GetLPPTransformBBOX(Lpp \@optional obj(css()))
    let((cv shape BBox)
        cv = geGetEditCellView()
        when(obj->objType=="inst"
            shape = car(setof(x obj->master->shapes x->lpp==Lpp))
            BBox = dbTransformBBox(shape->bBox obj->transform)
        )
        BBox
)
)


把上面这个proc加到脚本里,然后改一下Location那句
Location = centerBox(test_GetLPPTransformBBOX(list("CB" "drawing") pad))
 楼主| 发表于 2023-12-5 14:19:46 | 显示全部楼层


YuSHL 发表于 2023-12-5 14:00
procedure(test_GetLPPTransformBBOX(Lpp \@optional obj(css()))
    let((cv shape BBox)
        cv = ...


非常感谢!
 楼主| 发表于 2023-12-13 18:33:34 | 显示全部楼层


YuSHL 发表于 2023-12-5 14:00
procedure(test_GetLPPTransformBBOX(Lpp \@optional obj(css()))
    let((cv shape BBox)
        cv = ...



大佬,我参考你给的脚本,自己写了一个,目前能实现批量选中AP pin,一键居中到对应的CB层中心点,但是如果CB层和AP pin不在同一层的话需要添加什么函数来实现呢,有点不会了,还请指点一下



procedure(center_label()
let((shapes cv a pins centerpoint)
cv=geGetEditCellView()
a=geGetSelSet()
pins=setof(x a x~>lpp==list("AP" "pin" ))
foreach(pin pins
shapes=dbshapeQuery(cv list("CB" "drawing")  pin~>bBox)
foreach(shape shapes
centerpoint=centerBox(shape~>bBox)
pin~>xy=centerpoint
))))

发表于 2023-12-14 21:43:03 | 显示全部楼层


sr1245648455 发表于 2023-12-13 18:33
大佬,我参考你给的脚本,自己写了一个,目前能实现批量选中AP pin,一键居中到对应的CB层中心点,但是 ...


你用的那个dbShapeQuery,可以输入level
发表于 2023-12-15 09:35:08 | 显示全部楼层


sr1245648455 发表于 2023-12-5 09:52
是的,需求就是框选pad这个cell和lable,一键居中lable,是需要先获取坐标,不知道怎么写 ...


有自带的功能可以获取PAD坐标
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-18 04:44 , Processed in 0.027414 second(s), 6 queries , Gzip On, Redis On.

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