一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

坐标文件和Gerber文件中焊盘的自动对位方法与流程

2022-02-21 04:35:43 来源:中国专利 TAG:

坐标文件和gerber文件中焊盘的自动对位方法
【技术领域】
1.本发明涉及smt生产加工技术领域,特别涉及坐标文件和gerber文件中焊盘的自动对位方法。


背景技术:

2.smt加工中,一般是使用pcb的生产gerber作为原始资料,而在pcb生产过程中,有可能对gerber文件进行set拼版、重定坐标原点、整体旋转、整体镜像等操作,导致做smt时,坐标文件与gerber文件存在整体变换的情况,smt工程人员需要花费较大的精力去整体对位。
3.在pcb设计阶段,每个pcb设计工程师的设计习惯不同,在设计pcb封装库时设定的坐标原点位置各有差异。从而导出的坐标文件,坐标点与焊盘的相对位置可能不同。而smt工厂在加工时统一以元器件中心位置作为贴片程序的坐标。这就会导致客户提供的坐标文件不能直接当做smt贴片程序的坐标。
4.在smt加工过程中,需要确保贴片程序中的每个元器件的坐标位置都正确,否则可能贴偏造成生产报废。如上所述,客户提供的坐标文件不能直接当做smt贴片程序的坐标,需要核对正确,方能进行生产。
5.目前行业内普遍的核对做法是逐个坐标点人工核对,核对步骤如下:
6.1.将gerber文件与坐标文件导入图形软件中,并利用坐标文件生成虚拟元器件层,同时将坐标文件与bom文件合并;
7.2.整体检查坐标器件层与gerber文件焊盘是否对齐,如不对齐,手动操作,整体旋转、镜像、平移坐标器件层等操作,使之与gerber文件对齐;
8.3.逐个切换每个器件坐标位置,核对坐标位置是否准确。
9.但是近年来,pcb板设计复杂度也在大大提升,使用元器件种类和数量也越来越多,特别是产品越来越向多品种、小批量方向发展,贴片厂订单数量越来越多,工程师核对坐标工作量越来越大。这种传统的核对坐标模式非常依赖于工程师的经验,同时容易遗漏,造成生产品质风险。


技术实现要素:

10.为了克服上述问题,本发明提出一种可有效解决上述问题的坐标文件和gerber文件中焊盘的自动对位方法。
11.本发明解决上述技术问题提供的一种技术方案是:提供一种坐标文件和gerber文件中焊盘的自动对位方法,包括如下步骤:
12.步骤s1,对gerber文件进行预处理;
13.步骤s2,创建虚拟元器件;
14.步骤s3,虚拟元器件与坐标文件进行对位;
15.步骤s4,坐标文件与虚拟元器件对位校验;
16.步骤s5,坐标核对与调整。
17.优选地,所述步骤s2中,参照gerber文件中的字符层和焊盘层的位置关系,创建虚拟元器件,当字符层和焊盘层符合预设情况,认为当前搜索到的焊盘组成一个元器件,利用这些焊盘创建虚拟元器件对象,将虚拟元器件添加到虚拟元器件数组中。
18.优选地,所述步骤s2包括如下步骤:
19.步骤sa1,将字符层元素抽网络分析;
20.步骤sa2,遍历字符层中每个网络,在当前网络极限矩形范围内,搜索与字符接触的焊盘,如果搜索到的焊盘数低于2个,则不符合当前预设;
21.步骤sa3,将步骤sa2中的焊盘组极限矩形与字符层当前网络的极限矩形对比,当两者的中心距离不超过焊盘组的长或宽的75%,则判断为有效焊盘组,利用该焊盘组创建虚拟元器件,并添加到虚拟元器件数组。
22.优选地,所述步骤s2包括如下步骤:
23.步骤sb1,确定搜索矩形;
24.步骤sb2,在搜索矩形范围内,搜索焊盘层与搜索矩形接触的焊盘;
25.步骤sb3,当搜索到的焊盘数量为2,且两焊盘为水平或垂直关系时,筛选出满足贴片焊盘特征的焊盘创建虚拟元器件,并添加到虚拟元器件数组。
26.优选地,所述步骤s2包括如下步骤:
27.步骤sc1,遍历未组成有效焊盘组的方形焊盘,将该焊盘加入队列并标记未搜索状态,以第一矩形为搜索范围,搜索周围焊盘;
28.步骤sc2,如果步骤sc1中搜索到的焊盘没有搜索标记,则将所有搜索到的焊盘添加到待搜索队列;
29.步骤sc3,将待搜索队列中的种子焊盘删除,以下一个待搜索焊盘为种子焊盘,重复步骤sc1,直到待搜索队列中焊盘数量为零;
30.步骤sc4,当前搜索到两个焊盘,且焊盘大小误差小于0.1,呈水平或垂直分布,两焊盘距离在0.2到1.0之间,判断搜索到。
31.优选地,所述步骤s3包括如下步骤:
32.步骤s31,创建虚拟元器件的器件数组zrcomp数组,将pin角数量为2的虚拟元器件放到zrcomp数组里面;
33.步骤s32,对zrcomp数组的虚拟元器件进行排序,将每个虚拟元器件的中心坐标x与y相加得到坐标之和,按坐标之和从小到大的顺序排列虚拟元器件;
34.步骤s33,创建一个虚拟坐标层,将坐标文件的对象复制到虚拟坐标层;
35.步骤s34,将虚拟坐标层的元素按照中心坐标x与y相加得到坐标之和,坐标之和从小到大的顺序排列;
36.步骤s35,遍历虚拟元器件的元素,将虚拟元器件的当前元素与当前后的所有元素的中心坐标组成向量,将这些向量放到veclist数组里;
37.步骤s36,遍历坐标文件,样本找的次数超过了总数的20%就跳过;
38.步骤s37,遍历veclist数组,将当前的坐标与veclist数组的每一个向量相加,得到新的坐标点,在坐标层搜索到器件,记录搜索到和没搜索到的数量,如果搜索到的数量在90%以上,或者5个以上至少搜索到80%,则找到坐标偏移值;
39.步骤s38,对虚拟坐标层的每个元素按坐标偏移值偏移,对位成功;
40.步骤s39,如果对位不成功,虚拟坐标层分别旋转90度、180度、270度、x轴镜像、y轴镜像,重复步骤s34到步骤s38进行对位,直到对位成功。
41.优选地,所述步骤s4包括如下步骤:
42.步骤s41,遍历坐标层下所有器件,通过器件的位号与bom信息,在元件库中获取元件库模型信息;
43.步骤s42,在坐标点上将获取到的元件库以坐标位置为中心放置,以元件库的每个引脚为搜索区域,在焊盘层搜索焊盘;
44.步骤s43,如果搜索到焊盘,当引脚与焊盘接触的面积超过元件引脚面积的70%,视为引脚与焊盘匹配;当所有引脚都匹配到焊盘,即为元件库匹配到焊盘;
45.步骤s44,如果未匹配到,元件库分别按照90
°
、180
°
、270
°
进行旋转,重复步骤s42,直到匹配为止;
46.步骤s45,步骤s44中匹配成功,记为true,匹配不成功,记为false,当成功数量超过总数量80%以上,认为虚拟元器件校验成功,否则校验失败,重复步骤s3。
47.优选地,所述步骤s5包括如下步骤:
48.步骤s51,遍历坐标层中的坐标元素,获取关联的焊盘,获取所有关联的焊盘极限矩形,计算极限矩形的中心点和坐标值的距离;
49.步骤s51,如果上述步骤s51中距离偏差在0.2mm以内,记录该坐标核对正确,并将坐标值调整至焊盘极限矩形的中心。
50.优选地,所述步骤s1中,对gerber文件的预处理包括如下两种情形:
51.情形a,gerber文件焊盘层存在线弧元素填充的焊盘,将这些线弧元素做铜皮化处理,转成surface;
52.情形b,gerber文件是拼版文件,将gerber文件中字符层和焊盘层处理成单pcs。
53.优选地,所述步骤s2中,包括如下三种情形;
54.情形a,焊盘与字符元素接触;情形b,成对焊盘与字符存在特定位置关系;情形c,根据焊盘层找成对的双焊盘器件。
55.与现有技术相比,本发明的坐标文件和gerber文件中焊盘的自动对位方法解决了目前在pcb生成坐标文件,存在位置偏差时,导致效率和质量低,以及处理耗费人力过多的问题,取得了通用性强、能够快速的自动对位,提高设计效率及加工效率,确保生产质量,降低生产品质风险。
【附图说明】
56.图1为本发明坐标文件和gerber文件中焊盘的自动对位方法的整体步骤流程图;
57.图2为本发明坐标文件和gerber文件中焊盘的自动对位方法的步骤s3具体流程图;
58.图3为本发明坐标文件和gerber文件中焊盘的自动对位方法的步骤s4具体流程图;
59.图4为本发明坐标文件和gerber文件中焊盘的自动对位方法的步骤s5具体流程图。
【具体实施方式】
60.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施实例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
61.需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后
……
)仅限于指定视图上的相对位置,而非绝对位置。
62.另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
63.请参阅图1至图4,本发明的坐标文件和gerber文件中焊盘的自动对位方法,包括如下步骤:
64.步骤s1,对gerber文件进行预处理。
65.所述步骤s1中,对gerber文件的预处理包括如下两种情形。
66.情形a,gerber文件焊盘层存在线弧元素(线段和圆弧)填充的焊盘,将这些线弧元素做铜皮化处理,转成surface。具体包括如下步骤:
67.步骤sa1,将焊盘层中所有元素抽网络分析;
68.步骤sa2,遍历步骤sa1分析后的所有网络,如果组成该网络的线弧元素数量大于等于1,将当前网络的所有元素做布尔运算求并,即铜皮化处理,得到一个surface;
69.步骤sa3,删除铜皮化前的原始元素,将铜皮化后的surface添加到焊盘层中。
70.情形b,gerber文件是拼版文件,将gerber文件中字符层和焊盘层处理成单pcs。具体包括如下步骤:
71.步骤sb1,找到pcb板的外形线,将外形线元素抽网络分析;
72.步骤sb2,获取步骤sb1分析结果中极限矩形最大的网络,取其所有元素;
73.步骤sb3,将步骤sb2中所有元素做铜皮化处理,得到一个island(外环)和若干个hole(内环)的surface结构;
74.步骤sb4,将步骤sb3中所有内环,按从左到右、从下到上排序,遍历排序后的内环,判断当前内环是否为pcb板单pcs;判断方法为,分别以内环为边界范围,在焊盘层搜索被内环包含的焊盘元素,统计被包含的焊盘元素个数,焊盘数量最多的若干个内环为pcb板单pcs;
75.步骤sb5,将步骤sb4中找到的pcb板单pcs,取左下角;
76.步骤sb6,使用步骤sb5中左下角的内环为边界范围,从焊盘层中搜索所有被内环包含的焊盘元素,将这些焊盘元素复制出来,作为新的焊盘层;
77.步骤sb7,使用步骤sb5中左下角的内环为边界范围,从字符层中搜索所有被内环包含的字符元素,将这些字符元素复制出来,作为新的字符层。
78.特别说明:坐标文件与gerber文件可能存在不对齐情况,产生不对齐其原因有以下两点:1、客户提供的gerber文件大部分是pcb cam工程处理过后的gerber,其坐标原点和原始pcb的坐标可能存在偏移;2、从eda设计软件中导出坐标文件和gerber的文件,参考原点、坐标变换方式(如旋转角度、镜像)设置可能不一样,导致导出的坐标文件和gerber存在
旋转、镜像和偏移的情况。
79.步骤s2,创建虚拟元器件。
80.所述步骤s2中,参照gerber文件中的字符层和焊盘层的位置关系,创建虚拟元器件,当字符层和焊盘层符合预设情况,认为当前搜索到的焊盘组成一个元器件,利用这些焊盘创建虚拟元器件对象,将虚拟元器件添加到虚拟元器件数组中。
81.所述步骤s2中,包括如下三种情形。
82.情形a,焊盘与字符元素接触,创建虚拟元器件包括如下步骤:
83.步骤sa1,将字符层元素抽网络分析;
84.步骤sa2,遍历字符层中每个网络,在当前网络极限矩形范围内,搜索与字符接触的焊盘,如果搜索到的焊盘数低于2个,则不符合当前预设;
85.步骤sa3,将步骤sa2中的焊盘组极限矩形与字符层当前网络的极限矩形对比,当两者的中心距离不超过焊盘组的长或宽的75%,则判断为有效焊盘组,利用该焊盘组创建虚拟元器件,并添加到虚拟元器件数组;
86.步骤sa4,将当前丝印网络标号标记下来,表示该网络已经创建了虚拟元器件。
87.情形b,成对焊盘与字符存在特定位置关系,利用这两焊盘,创建虚拟元器件,并添加到虚拟元器件数组中。所述特定位置关系包括如下几种:
88.关系一、丝印为单条短线段,两焊盘对称分布在这条短线段两侧;
89.关系二、丝印为两条相隔较近的短线段,两焊盘对称分布在这两条短线段中间或者两侧;
90.关系三、丝印为“中括号”形状,两焊盘分布在中括号内;
91.关系四、丝印为“矩形框”形状,两焊盘分布在矩形框内。
92.在丝印上搜索满足以上任意一种特定位置关系的情况,遍历丝印层中每个网络,排除已经提取过虚拟元器件封装的网络,满足以下四种情况,即为有效焊盘。
93.在情形b中,创建虚拟元器件包括如下步骤:
94.步骤sb1,确定搜索矩形;
95.步骤sb2,在搜索矩形范围内,搜索焊盘层与搜索矩形接触的焊盘;
96.步骤sb3,当搜索到的焊盘数量为2,且两焊盘为水平或垂直关系时,筛选出满足贴片焊盘特征的焊盘创建虚拟元器件,并添加到虚拟元器件数组。
97.所述步骤sb1中,确定搜索矩形时分别对应上述四种特定位置关系,包括如下步骤:
98.步骤sb11,搜索一条独立的线段,该线段需满足如下条件:水平或垂直线段,长度范围(0.2,2.5),宽度范围(0.05,0.5);以当前线段的极限矩形为基准,如果线段为水平,分别向上、下扩展第一阈值范围;如果线段为垂直,分别向左、右扩展第一阈值范围,得到搜索矩形。此步骤对应关系一。
99.步骤sb12,搜索两条成对的线段,这两条线段需满足如下条件:水平或者垂直线段,长度范围(0.2,2.5),宽度范围(0.05,0.5),且满足两条线段等长、等宽、平行、距离范围(0.2,2.5);以当前两条线段的极限矩形为基准,如果线段为水平,分别向上、下扩展第一阈值范围;如果线段为垂直,分别向左、右扩展第一阈值范围,得到搜索矩形。此步骤对应关系二。
100.步骤sb13,搜索一组近似“中括号[]”布局的字符网络,满足每半边由3条线段组成,整组“中括号[]”极限矩形长度范围(0.5,2.5),宽度范围(0.3,1.0),并以整组“中括号[]”极限矩形为搜索矩形。此步骤对应关系三。
[0101]
步骤sb14,搜索“矩形框”布局的字符网络,满足由四条首尾相连的线段组成,整个“矩形框”的极限矩形长度范围(0.5,2.5),宽度范围(0.3,1.0),并以整个“矩形框”的极限矩形为搜索矩形。此步骤对应关系四。
[0102]
情形c,根据焊盘层找成对的双焊盘器件,包括如下步骤:
[0103]
步骤sc1,遍历未组成有效焊盘组的方形焊盘,将该焊盘加入队列并标记未搜索状态,以第一矩形(长2.5mm、宽2.5mm)为搜索范围,搜索周围焊盘;
[0104]
步骤sc2,如果步骤sc1中搜索到的焊盘没有搜索标记,则将所有搜索到的焊盘添加到待搜索队列;
[0105]
步骤sc3,将待搜索队列中的种子焊盘删除,以下一个待搜索焊盘为种子焊盘,重复步骤sc1,直到待搜索队列中焊盘数量为零;
[0106]
步骤sc4,当前搜索到两个焊盘,且焊盘大小误差小于0.1,呈水平或垂直分布,两焊盘距离在0.2到1.0之间,判断搜索到。
[0107]
步骤s3,虚拟元器件与坐标文件进行对位。
[0108]
所述步骤s3包括如下步骤:
[0109]
步骤s31,创建虚拟元器件的器件数组zrcomp数组,将pin角数量为2的虚拟元器件放到zrcomp数组里面,zrcomp数组的虚拟元器件数量3个以下则不自动对位;
[0110]
步骤s32,对zrcomp数组的虚拟元器件进行排序,将每个虚拟元器件的中心坐标x与y相加得到坐标之和,按坐标之和从小到大的顺序排列虚拟元器件;
[0111]
步骤s33,创建一个虚拟坐标层,将坐标文件的对象复制到虚拟坐标层,方便计算;
[0112]
步骤s34,将虚拟坐标层的元素按照中心坐标x与y相加得到坐标之和,坐标之和从小到大的顺序排列;
[0113]
步骤s35,遍历虚拟元器件的元素,将虚拟元器件的当前元素与当前后的所有元素的中心坐标组成向量,将这些向量放到veclist数组里;
[0114]
步骤s36,遍历坐标文件,样本找的次数超过了总数的20%就跳过;
[0115]
步骤s37,遍历veclist数组,将当前的坐标与veclist数组的每一个向量相加,得到新的坐标点,在坐标层搜索到器件,记录搜索到和没搜索到的数量,如果搜索到的数量在90%以上,或者5个以上至少搜索到80%,则找到坐标偏移值;
[0116]
步骤s38,对虚拟坐标层的每个元素按坐标偏移值偏移,对位成功;
[0117]
步骤s39,如果对位不成功,虚拟坐标层分别旋转90度、180度、270度、x轴镜像、y轴镜像,重复步骤s34到步骤s38进行对位,直到对位成功。
[0118]
步骤s4,坐标文件与虚拟元器件对位校验。
[0119]
所述步骤s4中,坐标位置对准后,进行焊盘核对,校验对位正确性。针对每个物料建立元件库的2d实物模型,包括本体和引脚的几何信息,通过bom中的型号、制造商、参数等信息,匹配到元器件,获取元器件所关联的元件库模型。通过元件库引脚的几何数据去搜索该元件的焊盘进行校验。如果整体对齐校验不成功,重复步骤s3中的步骤s39。
[0120]
坐标文件与虚拟元器件对位校验包括如下步骤:
[0121]
步骤s41,遍历坐标层下所有器件,通过器件的位号与bom信息(包括型号、制造商、参数等),在元件库中获取元件库模型信息;
[0122]
步骤s42,在坐标点上将获取到的元件库以坐标位置为中心放置,以元件库的每个引脚为搜索区域,在焊盘层搜索焊盘;
[0123]
步骤s43,如果搜索到焊盘,当引脚与焊盘接触的面积超过元件引脚面积的70%,视为引脚与焊盘匹配;当所有引脚都匹配到焊盘,即为元件库匹配到焊盘;
[0124]
步骤s44,如果未匹配到,元件库分别按照90
°
、180
°
、270
°
进行旋转,重复步骤s42,直到匹配为止;
[0125]
步骤s45,步骤s44中匹配成功,记为true,匹配不成功,记为false,当成功数量超过总数量80%以上,认为虚拟元器件校验成功,否则校验失败,重复步骤s3;
[0126]
步骤s46,将步骤s44中搜索到并匹配成功的焊盘关联坐标元素,后续验证坐标时使用。
[0127]
步骤s5,坐标核对与调整。
[0128]
所述步骤s5包括如下步骤:
[0129]
步骤s51,遍历坐标层中的坐标元素,获取关联的焊盘,获取所有关联的焊盘极限矩形,计算极限矩形的中心点和坐标值的距离;
[0130]
步骤s51,如果上述步骤s51中距离偏差在0.2mm以内,记录该坐标核对正确,并将坐标值调整至焊盘极限矩形的中心;否则记录坐标核对可能有问题,需要人工核对。
[0131]
与现有技术相比,本发明的坐标文件和gerber文件中焊盘的自动对位方法解决了目前在pcb生成坐标文件,存在位置偏差时,导致效率和质量低,以及处理耗费人力过多的问题,取得了通用性强、能够快速的自动对位,提高设计效率及加工效率,确保生产质量,降低生产品质风险。
[0132]
以上所述仅为本发明的较佳实施例,并非因此限制本发明的专利范围,凡是在本发明的构思之内所作的任何修改,等同替换和改进等均应包含在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献