王开鑫55 发表于 2017-10-18 14:39:44

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

本帖最后由 王开鑫55 于 2017-10-18 14:50 编辑

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


leilei4908 发表于 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的函数

leilei4908 发表于 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过滤一下在用
页: [1]
查看完整版本: 求文字是否压到焊盘精准的方法代码?