Cadence Skill 论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6977|回复: 3

[求助] 求文字是否压到焊盘精准的方法代码?

[复制链接]
发表于 2017-10-18 14:39:44 | 显示全部楼层 |阅读模式
50SKILL币
本帖最后由 王开鑫55 于 2017-10-18 14:50 编辑

文字的bBox比实际的文字范围要大,焊盘的top,bbox也大,传统的这个方法,很大误差。求一个skill。感谢!
http://www.allegro-skill.com/forum.php?mod=viewthread&tid=6305


最佳答案

查看完整内容

procedure( TextToPoly16_6(text) prog( (lines flattened tPolys polys) lines = axlText2Lines(text) flattened = foreach(mapcan x lines x) tPolys = nil foreach(path flattened polys = axlPolyFromDB(path ?endCapType 'ROUND ?line2poly t) foreach(poly polys if(tPolys then tPolys = axlPolyOperation(poly tPolys 'OR) else tPolys = poly ) ) ) unless(listp(tPolys) tP ...
发表于 2017-10-18 14:39:45 | 显示全部楼层
procedure( TextToPoly16_6(text)
prog( (lines flattened tPolys polys)
        lines = axlText2Lines(text)
        flattened = foreach(mapcan x lines x)
        tPolys = nil
        foreach(path flattened
                polys = axlPolyFromDB(path ?endCapType 'ROUND ?line2poly t)
                foreach(poly polys
                        if(tPolys then
                                tPolys = axlPolyOperation(poly tPolys 'OR)
                        else
                                tPolys = poly
                        )
                )
        )
        unless(listp(tPolys) tPolys = list(tPolys))
        return(tPolys)
))
这是16.6版本,文字转成polys的函数
回复

使用道具 举报

发表于 2017-10-20 17:06:11 | 显示全部楼层
本帖最后由 leilei4908 于 2017-10-20 17:16 编辑

16.6版本可以用axlText2Lines转换成lines,再转换成polys,pad也转换成polys(如pPoly = axlPolyFromDB(pad ?layer "ETCH/TOP"))
再利用axlPolyOperation(tPoly pPoly 'And)判断是否重叠
回复

使用道具 举报

发表于 2020-10-23 11:27:28 | 显示全部楼层
axlPolyOperation这个方法效率很慢的,,最好先bBox过滤一下在用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备13024417号 )

GMT+8, 2024-3-19 19:08 , Processed in 0.133668 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表