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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1200|回复: 5

[求助] 请教关于两条相交的metal,使用脚本重叠区域的设置

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

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

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

x
       之前在论坛里面搬运的别人的脚本,目前有点自己的小想法,想让修边重叠区域的面积为1/4(使2根metal正好对准对方的中点),这样手动打孔放置的时候可以放置到中心点,不用再肉眼对准,希望有大神可以指点更改的方法,谢谢~

                               
登录/注册后可看大图


procedure(Metal_X_Metal()
let((OBJ1 OBJ2 obj1 obj2 Vline Hline HW VW HBP VBP xHBP yHEP xVBP yVBP xVEP yVEP
      Space1 Space2 Space3 Space4 )
      
OBJ1=geGetSortedSelectByLine()
OBJ2=geGetSortedSelectByLine()
Setlist=mapcar('list OBJ1 OBJ2)
foreach(Set Setlist
  if(caar(Set)~>objType=="pathSeg"
     then obj1 =car(leConvertShapeToPathSeg(leConvertShapeToPolygon(caar(Set))))
     dbDeleteObject(caar(Set))
     else obj1 =car(leConvertShapeToPathSeg(leConvertShapeToPolygon(caar(Set))))
    )

  if(caadr(Set)~>objType=="pathSeg"
     then obj2 =car(leConvertShapeToPathSeg(leConvertShapeToPolygon(caadr(Set))))
     dbDeleteObject(caadr(Set))
     else obj2 =car(leConvertShapeToPathSeg(leConvertShapeToPolygon(caadr(Set))))
     )
  if(xCoord(obj1~>beginPt)==xCoord(obj1~>endPt)&&yCoord(obj2~>beginPt)==yCoord(obj2~>endPt)
  then Vline=obj1 Hline=obj2)
  if(xCoord(obj2~>beginPt)==xCoord(obj2~>endPt)&&yCoord(obj1~>beginPt)==yCoord(obj1~>endPt)
  then Vline=obj2 Hline=obj1)

HW=Hline~>width/2   VW=Vline~>width/2
HBP=Hline~>beginPt  HEP=Hline~>endPt
VBP=Vline~>beginPt  VEP=Vline~>endPt

xHBP=xCoord(HBP)  yHBP=yCoord(HBP)
xHEP=xCoord(HEP)  yHEP=yCoord(HEP)
xVBP=xCoord(VBP)  yVBP=yCoord(VBP)
xVEP=xCoord(VEP)  yVEP=yCoord(VEP)

Space1=expt((xHBP-xVBP) 2)+expt((yHBP-yVBP) 2)
Space2=expt((xHBP-xVEP) 2)+expt((yHBP-yVEP) 2)
Space3=expt((xHEP-xVBP) 2)+expt((yHEP-yVBP) 2)
Space4=expt((xHEP-xVEP) 2)+expt((yHEP-yVEP) 2)

cond(
(min(Space1 Space2 Space3 Space4)==Space1
dbSetPathSegPoints(Hline list(xVBP-VW yHBP) HEP)
dbSetPathSegPoints(Vline list(xVBP yHBP-HW) VEP)
)
(min(Space1 Space2 Space3 Space4)==Space2
dbSetPathSegPoints(Hline list(xVBP-VW yHBP) HEP)
dbSetPathSegPoints(Vline VBP list(xVEP yHEP+HW))
)
(min(Space1 Space2 Space3 Space4)==Space3
dbSetPathSegPoints(Hline HBP list(xVBP+VW yHEP))
dbSetPathSegPoints(Vline list(xVBP yHBP-HW) VEP)
)
(min(Space1 Space2 Space3 Space4)==Space4
dbSetPathSegPoints(Hline HBP list(xVBP+VW yHEP))
dbSetPathSegPoints(Vline VBP list(xVEP yHEP+HW))
))
CorePoint=list(xVBP yHBP)
LeftDown=list(xVBP-VW yHBP-HW) LeftUp=list(xVBP-VW yHBP+HW)
RightDown=list(xVBP+VW yHBP-HW) RightUp=list(xVBP+VW yHBP+HW)
)
)
)

 楼主| 发表于 2023-6-6 14:55:15 | 显示全部楼层
修改这个这里的运算方式和数值就可以,根据自己工艺的线宽调整即可HW=Hline~>width/2   VW=Vline~>width/2
发表于 2023-6-6 17:42:23 | 显示全部楼层
打孔的时候记得对孔的层次进行定义 要不要如果有别的金属在打孔区域 用以打穿
发表于 2023-6-7 16:21:31 | 显示全部楼层
好像之前看到连线的脚本就是这样处理的,顺便也打上了孔
 楼主| 发表于 2023-6-14 09:35:25 | 显示全部楼层


ljh065216 发表于 2023-6-7 16:21
好像之前看到连线的脚本就是这样处理的,顺便也打上了孔


那个脚本自动打孔不知道怎么设置打孔的方向还有metal的覆盖
 楼主| 发表于 2023-6-15 15:46:49 | 显示全部楼层


杨原仪 发表于 2023-6-6 17:42
打孔的时候记得对孔的层次进行定义 要不要如果有别的金属在打孔区域 用以打穿 ...


以前一直没有注意这个事情,谢谢提醒
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-18 21:59 , Processed in 0.029906 second(s), 7 queries , Gzip On, Redis On.

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