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

3D打印系统中智能分区控制系统及其控制方法与流程

2022-05-31 16:17:42 来源:中国专利 TAG:

3d打印系统中智能分区控制系统及其控制方法
技术领域
1.本技术涉及3d打印分区控制技术领域,具体涉及一种3d打印系统中智能分区控制系统及其控制方法。


背景技术:

2.3d打印是以计算机三维设计模型为蓝本,采用与传统减材制造技术(对原材料去除、切削、组装的加工模式)完全相反的逐层叠加材料的方式,通过软件分层离散和数控成型系统,利用激光束、热熔喷嘴等方式将金属粉末、陶瓷粉末、塑料、细胞组织等特殊材料进行逐层堆积黏结,最终叠加成型,制造出与相应数字模型完全一致的三维物理实体模型的制造方法。随着3d打印研发技术的不断突破,3d打印已经成功应用于航空航天、生物医疗、建筑、汽车等领域,并不断取得突破性进展。
3.双激光打印能够比单激光打印具备打印速度更加快捷、打印时间更短的特点,所以双激光打印被广泛使用。由于双激光打印存在将一个完整的零件分割成两个部分并且由两个不同的激光分别打印,尽管两个激光在位置拼接校准上取得了很大突破,但误差总是有的,只不过减少了很多,还不能从根本上消除掉。所以,在被打印完成后的零件上总是存在拼接的不绝对完整的缺陷。经过实践测试证明,最小都会有约0.2mm的误差。如图1所示,使用x=0标记的竖向直线作为双激光的分割线。在x=0标记的竖向直线左边的区域为左边激光的照射范围,在红线右边的区域为右边激光的照射范围。当使用双激光分割以后,测量实际打印出来零件上的点的距离与电子模型排版数据中零件上点的距离进行比较,发现落在同一个激光照射范围内打印出来的零件上点距离与电子模型排版数据中零件上对应点的距离完全相等,但是落在两个激光打印区域内零件上点连线之间的距离比电子模型排版数据中零件上对应点的距离减少了0.2毫米。如图1中使用游标卡尺测量1号正方形柱体与2号正方形柱体之间的距离,与电子模型排版数据上是一样的,他们同时落在左边激光的照射范围内;使用游标卡尺测量1号正方形柱体与3号正方形柱体之间的距离比电子模型排版数据上减少了0.2毫米,2号正方形柱体与4号正方形柱体也存在同样问题。这就是双激光分割带来的拼接误差。
4.造成这种拼接的误差,主要是由于一个零件被两个激光分割成两个部分打印了,而每一个部分由不同的激光打印。如果是单激光打印这个零件,由于单激光全幅照射打印这个零件,就不存在拼接的问题了。
5.解决这种缺陷可以从很多种角度去构思解决方案。例如,现有技术常常从工艺制造的角度去构思,也常常从零件排版技巧角度去构思,但都不能从根本上解决双激光3d打印时的拼接误差。


技术实现要素:

6.为解决上述问题,本技术给出了一种3d打印系统中智能分区控制系统及传递方法,有效避免了现有技术中不能从根本上解决双激光3d打印时的拼接误差的缺陷。
7.为了克服现有技术中的不足,本技术给出了一种3d打印系统中智能分区控制系统及传递方法的解决方案,具体如下:一种3d打印系统中智能分区控制系统,包括:在3d打印设备上安装了两个激光器和两个振镜,两个激光器分别为处在左边的左边激光器和处在右边的右边激光器,左边激光器和处在右边的右边激光器均同上位机控制连接,两个激光器下方设有基板;运行在上位机上的模块包括:解析模块、划分模块、分配模块一、分配模块二、分配模块三与打印模块;所述解析模块用于解析欲打印的零件的电子模型的vbf数据格式;所述划分模块用于给每个欲打印的零件划分所属区域,即判断每个欲打印的零件的包围盒信息中的横坐标x最小值xmin与横坐标x最大值xmax同两条设定的横坐标x分别为x=-a和x=a的竖向直线的横坐标的大小关系,从而确定每个欲打印的零件属于a区域、b区域、公共区域还是合占ab区域;所述分配模块一用于如果欲打印的零件属于a区域,就将该零件的零件数据加入到配置给左边激光器的数据数组;如果欲打印的零件属于b区域,就将该零件的零件数据加入到配置给左边激光器的数据数组;所述分配模块二用于如果欲打印的零件属于公共区域,将该零件的零件数据交错地分给左边激光器的数据数组或右边激光器的数据数组;所述分配模块三用于如果欲打印的零件属于合占ab区域,就弹出对话框让用户选择是运用双激光分割还是重新对该零件进行排版,用户选择后执行相应的处理;所述打印模块用于启动两个线程分别控制左边激光器打印左边激光器的数据数组中的数据和控制右边激光器打印右边激光器的数据数组中的数据。
8.进一步的,所述解析模块还用于解析出每一个零件的包围盒信息,包围盒信息包括:包围盒的横坐标x最小值xmin、包围盒的横坐标x最大值xmax,包围盒的纵坐标y最小值ymin、包围盒的纵坐标y最大值ymax和包围盒的z轴方向上的z最小值zmin以及包围盒的z轴方向上的z最大值zmax数据。
9.进一步的,所述两条设定的横坐标x分别为x=-a和x=a的竖向直线是在左边激光的照射范围、右边激光的照射范围以及基板区域交叉重叠且三者共有的公共区域的四个顶点中,连接四个顶点中的处在左边的两个顶点的直线就形成横坐标x为x=-a的竖向直线,连接四个顶点中的处在右边的两个顶点的直线就形成横坐标x为x=a的竖向直线,a为正实数,横坐标为0的竖向直线为竖向中分基板区域的中分线的横坐标;所述划分模块还用于步骤2-1:如果欲打印的零件满足:-a《xmax《=a,同时xmin《-a,则其属于a区域内;如果欲打印的零件满足:-a《=xmin《a,同时xmax》a,则其属于b区域内;如果欲打印的零件满足:-a《xmax《=a,同时-a《=xmin《a,即该零件属于两竖向直线之间,则其属于公共区域内;如果欲打印的零件满足:xmin《-a,同时xmax》a,则其属于合占ab区域。
10.进一步的,所述分配模块三用于如果用户选择重新对该零件进行排版,则重新制作vbf数据,并执行解析模块;如果用户选择运用双激光分割,就运用双激光分割算法对这个零件数据上的点线坐标进行双激光分割。
11.进一步的,所述分配模块三还用于执行对比法,该对比法包括:依序读取该零件的
零件数据中的每一个点坐标,判断当前点的横坐标与横坐标为0的竖向直线的位置关系,如果当前点的横坐标k小于横坐标为0的竖向直线的横坐标,即k《=0,且不存在上一个顶点,就将当前点加入左边激光器的数据数组;如果k《=0,且存在上一个顶点并且上一个顶点的横坐标l《=0,就将当前点加入左边激光器的数据数组;如果k《0,且存在上一个顶点并且上一个顶点的横坐标l》0,就取得当前点与上一个点组成的直线与横坐标为0的竖向直线的交点,将该交点加入左边激光器的数据数组,也加入右边激光器的数据数组,再将当前点加入左边激光器的数据数组;如果k=0,且存在上一个顶点并且上一个顶点的横坐标l》0,就直接加入右边激光器的数据数组;如果k》0,且存在上一个点,如果上一个点的横坐标m《0,就先取得当前点与上一个点组成的直线与横坐标为0的竖向直线的交点,同时将该交点加入左边激光器的数据数组和右边激光器的数据数组,再将当前点加入右边激光器的数组;如果k》0,但不存在上一个点,就直接将当前点加入到右边激光器的数据数组;如果k》0,且存在上一个点,且上一个点的横坐标m》0,就直接加入右边激光器的数据数组;这样用对比法处理完一个点,再采用同样的对比法判断下一个点,直到当前零件的零件数据中的所有点都处理完成。
12.一种3d打印系统中智能分区控制系统的控制方法,包括如下步骤:步骤1:解析欲打印的零件的电子模型的vbf数据格式;进一步的,所述步骤1具体包括:解析出每一个零件的包围盒信息,包围盒信息包括:包围盒的横坐标x最小值xmin、包围盒的横坐标x最大值xmax,包围盒的纵坐标y最小值ymin、包围盒的纵坐标y最大值ymax和包围盒的z轴方向上的z最小值zmin以及包围盒的z轴方向上的z最大值zmax数据。
13.步骤2:给每个欲打印的零件划分所属区域,即判断每个欲打印的零件的包围盒信息中的横坐标x最小值xmin与横坐标x最大值xmax同两条设定的横坐标x分别为x=-a和x=a的竖向直线的横坐标的大小关系,从而确定每个欲打印的零件属于a区域、b区域、公共区域还是合占ab区域;进一步的,所述两条设定的横坐标x分别为x=-a和x=a的竖向直线是在左边激光的照射范围、右边激光的照射范围以及基板区域交叉重叠且三者共有的公共区域的四个顶点中,连接四个顶点中的处在左边的两个顶点的直线就形成横坐标x为x=-a的竖向直线,连接四个顶点中的处在右边的两个顶点的直线就形成横坐标x为x=a的竖向直线,a为正实数,横坐标为0的竖向直线为竖向中分基板区域的中分线的横坐标;所述步骤2具体包括:步骤2-1:如果欲打印的零件满足:-a《xmax《=a,同时xmin《-a,则其属于a区域内;步骤2-2:如果欲打印的零件满足:-a《=xmin《a,同时xmax》a,则其属于b区域内;步骤2-3:如果欲打印的零件满足:-a《xmax《=a,同时-a《=xmin《a,即该零件属于两竖向直线之间,则其属于公共区域内;步骤2-4:如果欲打印的零件满足:xmin《-a,同时xmax》a,则其属于合占ab区域。
14.步骤3:如果欲打印的零件属于a区域,就将该零件的零件数据加入到配置给左边激光器的数据数组;如果欲打印的零件属于b区域,就将该零件的零件数据加入到配置给左边激光器的数据数组;步骤4:如果欲打印的零件属于公共区域,将该零件的零件数据交错地分给左边激
光器的数据数组或右边激光器的数据数组;步骤5:如果欲打印的零件属于合占ab区域,就弹出对话框让用户选择是运用双激光分割还是重新对该零件进行排版,用户选择后执行相应的处理;进一步的,在步骤5中,如果用户选择重新对该零件进行排版,则重新制作vbf数据,并返回步骤1去执行;如果用户选择运用双激光分割,就运用双激光分割算法对这个零件数据上的点线坐标进行双激光分割。
15.进一步的,所述运用双激光分割算法对这个零件数据上的点线坐标进行双激光分割的方法,包括:对比法,该对比法包括:依序读取该零件的零件数据中的每一个点坐标,判断当前点的横坐标与横坐标为0的竖向直线的位置关系,如果当前点的横坐标k小于横坐标为0的竖向直线的横坐标,即k《=0,且不存在上一个顶点,就将当前点加入左边激光器的数据数组;如果k《=0,且存在上一个顶点并且上一个顶点的横坐标l《=0,就将当前点加入左边激光器的数据数组;如果k《0,且存在上一个顶点并且上一个顶点的横坐标l》0,就取得当前点与上一个点组成的直线与横坐标为0的竖向直线的交点,将该交点加入左边激光器的数据数组,也加入右边激光器的数据数组,再将当前点加入左边激光器的数据数组;如果k=0,且存在上一个顶点并且上一个顶点的横坐标l》0,就直接加入右边激光器的数据数组;如果k》0,且存在上一个点,如果上一个点的横坐标m《0,就先取得当前点与上一个点组成的直线与横坐标为0的竖向直线的交点,同时将该交点加入左边激光器的数据数组和右边激光器的数据数组,再将当前点加入右边激光器的数组;如果k》0,但不存在上一个点,就直接将当前点加入到右边激光器的数据数组;如果k》0,且存在上一个点,且上一个点的横坐标m》0,就直接加入右边激光器的数据数组;这样用对比法处理完一个点,再采用同样的对比法判断下一个点,直到当前零件的零件数据中的所有点都处理完成。
16.步骤6:启动两个线程分别控制左边激光器打印左边激光器的数据数组中的数据和控制右边激光器打印右边激光器的数据数组中的数据。
17.本发明的有益效果为:充分利用基板的实际空间区域,对零件进行打印区域的划分,分为左边激光(a激光)打印区域,右边激光(b激光)打印区域,公共区域,合占ab打印区域。并且在零件分配算法设计时采用打印区域作为匹配原则。而且第一层确定了某个区域划分方法,后面所有层都采用这种区域划分方法,确保打印数据的零件完整性。在算法设计时智能分区打印零件数据的打印顺序和原来保持一致,不会随意改变。智能分区对合占ab区域的零件提供了两种处理方法,一种是提醒用户重新进行排版,尽量不要把零件排版在横跨三个区域;另一种是允许用户对这个横跨三个区域的零件进行双激光分割,即使也会存在拼接误差,但是由于这样的零件数量很少,这种处理方式更加灵活多样。
18.有效避免了现有技术中不能从根本上解决双激光3d打印时的拼接误差的缺陷。
附图说明
19.图1是现有技术的双激光打印的示例图。
20.图2是本发明的在3d打印系统里双激激光照射示意图。
21.图3是本发明的公共区域的示意图。
22.图4是本发明的左边激光或右边激光的照射范围示意图。
23.图5是本发明的基板被划分成几个小块区域的示意图。
24.图6是本发明的基板上激光照射范围的三块区域的示意图。
25.图7是本发明的包围盒信息的示意图。
26.图8是本发明的给每个欲打印的零件划分所属区域的示意图。
27.图9是本发明的运行在所述上位机上的模块的结构图。
28.图10是本发明的步骤1到步骤6的流程图。
29.图11是本发明的步骤2-1到步骤2-4的流程图。
具体实施方式
30.下面将结合附图和实施例对本技术做进一步地说明。
31.造成双激光3d打印时的拼接误差,主要是由于一个零件被两个激光分割成两个部分打印了,而每一个部分由不同的激光打印。如果是单激光打印这个零件,由于单激光全幅照射打印这个零件,就不存在拼接的问题了。解决这种缺陷可以从很多种角度去构思解决方案。例如,现有技术常常从工艺制造的角度去构思,也常常从零件排版技巧角度去构思,但都不能从根本上解决双激光3d打印时的拼接误差。本发明提供了一种用智能分区方案来解决双激光拼接的问题。以vbf数据格式为例,描述如何实现智能分区算法的解决方案。
32.如图1-图11所示,3d打印系统中智能分区控制系统,包括:在3d打印设备上安装了两个激光器和两个振镜,两个激光器分别为处在左边的左边激光器和处在右边的右边激光器,左边激光器和处在右边的右边激光器均同上位机控制连接,两个激光器下方设有基板;双激光打印零件时,有两个激光通过各自的振镜在基板上折射光源,产生激光打印的效果。
33.在3d打印设备上安装了两个激光器和两个振镜的结构为:在3d打印舱室内左右两边分别设置有两个激光器,处在左边的激光器为左边激光器,处在右边的激光器为右边激光器,左边激光器发出的激光就是左边激光,右边激光器发出的激光就是右边激光,左边激光和右边激光就构成了双激光;左边激光器和处在右边的右边激光器均同上位机控制连接的结构为:所述左边激光器和右边激光器分别同左边激光振镜和右边激光振镜连接,所述左边激光振镜和右边激光振镜分别同左边振镜板卡和右边振镜板卡连接,所述左边振镜板卡和右边振镜板卡均同上位机通讯连接,左边激光振镜和右边激光振镜就是两个振镜,这样上位机就能通过控制所述左边振镜板卡和右边振镜板卡来分别让左边激光器和右边激光器对处在其下方的基板上的零件执行3d打印。
34.运行在上位机上的模块包括:解析模块、划分模块、分配模块一、分配模块二、分配模块三与打印模块;所述解析模块用于解析欲打印的零件的电子模型的vbf数据格式;所述划分模块用于给每个欲打印的零件划分所属区域,即判断每个欲打印的零件的包围盒信息中的横坐标x最小值xmin与横坐标x最大值xmax同两条设定的横坐标x分别为x=-a和x=a的竖向直线的横坐标的大小关系,从而确定每个欲打印的零件属于a区域、b区
域、公共区域还是合占ab区域;所述分配模块一用于如果欲打印的零件属于a区域,就将该零件的零件数据加入到配置给左边激光器的数据数组;如果欲打印的零件属于b区域,就将该零件的零件数据加入到配置给左边激光器的数据数组;所述分配模块二用于如果欲打印的零件属于公共区域,将该零件的零件数据交错地分给左边激光器的数据数组或右边激光器的数据数组;所述分配模块三用于如果欲打印的零件属于合占ab区域,就弹出对话框让用户选择是运用双激光分割还是重新对该零件进行排版,用户选择后执行相应的处理;所述打印模块用于启动两个线程分别控制左边激光器打印左边激光器的数据数组中的数据和控制右边激光器打印右边激光器的数据数组中的数据。
35.进一步的,所述解析模块还用于解析出每一个零件的包围盒信息,包围盒信息包括:包围盒的横坐标x最小值xmin、包围盒的横坐标x最大值xmax,包围盒的纵坐标y最小值ymin、包围盒的纵坐标y最大值ymax和包围盒的z轴方向上的z最小值zmin以及包围盒的z轴方向上的z最大值zmax数据。
36.进一步的,所述两条设定的横坐标x分别为x=-a和x=a的竖向直线是在左边激光的照射范围、右边激光的照射范围以及基板区域交叉重叠且三者共有的公共区域的四个顶点中,连接四个顶点中的处在左边的两个顶点的直线就形成横坐标x为x=-a的竖向直线,连接四个顶点中的处在右边的两个顶点的直线就形成横坐标x为x=a的竖向直线,a为正实数,横坐标为0的竖向直线为竖向中分基板区域的中分线的横坐标;所述划分模块还用于步骤2-1:如果欲打印的零件满足:-a《xmax《=a,同时xmin《-a,则其属于a区域内;如果欲打印的零件满足:-a《=xmin《a,同时xmax》a,则其属于b区域内;如果欲打印的零件满足:-a《xmax《=a,同时-a《=xmin《a,即该零件属于两竖向直线之间,则其属于公共区域内;如果欲打印的零件满足:xmin《-a,同时xmax》a,则其属于合占ab区域。
37.进一步的,所述分配模块三用于如果用户选择重新对该零件进行排版,则重新制作vbf数据,并执行解析模块;如果用户选择运用双激光分割,就运用双激光分割算法对这个零件数据上的点线坐标进行双激光分割。
38.进一步的,所述分配模块三还用于执行对比法,该对比法包括:依序读取该零件的零件数据中的每一个点坐标,判断当前点的横坐标与横坐标为0的竖向直线的位置关系,如果当前点的横坐标k小于横坐标为0的竖向直线的横坐标,即k《=0,且不存在上一个顶点,就将当前点加入左边激光器的数据数组;如果k《=0,且存在上一个顶点并且上一个顶点的横坐标l《=0,就将当前点加入左边激光器的数据数组;如果k《0,且存在上一个顶点并且上一个顶点的横坐标l》0,就取得当前点与上一个点组成的直线与横坐标为0的竖向直线的交点,将该交点加入左边激光器的数据数组,也加入右边激光器的数据数组,再将当前点加入左边激光器的数据数组;如果k=0,且存在上一个顶点并且上一个顶点的横坐标l》0,就直接加入右边激光器的数据数组;如果k》0,且存在上一个点,如果上一个点的横坐标m《0,就先取得当前点与上一个点组成的直线与横坐标为0的竖向直线的交点,同时将该交点加入左边激光器的数据数组和右边激光器的数据数组,再将当前点加入右边激光器的数组;如果k》0,但不存在上一个点,就直接将当前点加入到右边激光器的数据数组;如果k》0,且存在上一个点,且上一个点的横坐标m》0,就直接加入右边激光器的数据数组;
这样用对比法处理完一个点,再采用同样的对比法判断下一个点,直到当前零件的零件数据中的所有点都处理完成。
39.一种3d打印系统中智能分区控制系统的控制方法,包括如下步骤:该控制方法中所运用的智能分区算法主要解决双激光打印完成的零件在分割线拼接处存在0.2mm误差的问题,其本质是将双激光打印区域切换成单激光打印区域。
40.在3d打印系统里,双激光照射示意图如图2所示。左边一个大圆表示左边激光的照射范围,右边一个大圆表示右边激光的照射范围。中间那个小圆表示作为基板区域的基板的空间区域大小,用x=0标记的竖向线为基板竖向的中分线。图2中左边大圆与右边大圆在基板区域上有一个交叉重叠的类似椭圆形区域,堪称公共区域。如图3中灰色填充区域所示。
41.如果用户在对零件的电子模型数据进行排版时能够将零件摆放在某一个激光的照射范围区域内就能够避免双激光分割拼接的问题。例如将零件尽可能放在基板上左边激光的照射范围(左边大圆与基板区域的重叠区域,即图4中处在左边的同公共区域相接的灰色填充的弧形区域一和公共区域的总和)或右边激光的照射范围(右边大圆与基板区域的重叠区域,即图4中公共区域和处在右边的同公共区域相接的灰色填充的弧形区域二的总和),让零件只留给一个激光打印,将双激光打印转化为单激光打印。
42.将公共区域的四个顶点在竖向上连成两条直线,如图5所示产生两条竖向的直线。这两条直线将基板区域划分成如图5所示的几个毗邻的小块区域。为了方便于概念上的理解和算法上的设计,左边激光照射范围放弃最右边那块所述小块区域,并将它划归为右边激光照射范围;右边激光照射范围放弃最左边那块所述小块区域,并将它划归为左边激光照射范围。
43.将图5中基板的所述小块区域重新进行整合,得到如图6所示的三块区域.左边激光的照射范围为a区域(图中属于基板区域且在左侧邻接公共区域的区域与公共区域的总和);右边激光的照射范围为b区域(图中属于基板区域且在右侧邻接公共区域的区域与公共区域的总和);中间公共区域的照射范围既可以给左边激光,也可以给右边激光,取决于具体的算法设计。通过左边激光和右边激光的大圆的照射范围与基板的位置关系能够计算出这两条竖向直线的横坐标值x,例如x=-a或x=a,a为实数,如图6所示。
44.当用户排版零件时,遇到某些零件实在无法摆放到某一个激光区域,而导致占用了ab两个区域。软件程序此时提醒用户“某零件横跨两个激光的打印范围,是采用双激光分割方式进行分割打印,还是重新对该零件排版,”如果用户选择前者,就按双激光分割方式打印;如果用户选择后者,就要重新对这个零件进行排版。这样的处理措施就更加灵活,最大化地满足客户的需求。如果用户选择仍旧采用双激光的分割方法,在极个别零件拼接处还会存在0.2毫米的拼接误差。相信这样的零件毕竟是少数的,在界面上也可以提醒用户会有0.2mm误差让用户综合权衡是否采用双激光分割方式。
45.具体步骤如下:步骤1:解析欲打印的零件的电子模型的vbf数据格式;在解析欲打印零件的电子模型的vbf数据格式之前,用户使用如simplify3d软件这样的3d打印排版软件将实际欲打印的零件做成电子模型数据,也就是零件数据,这样的零件可能会有很多个,相互独立摆布在基板的空间区域内。设计模型数据时模拟实际零件
的尺寸大小、图形路径规划以及设置打印具体部位的工艺参数。完成排版以后按照微积分切片形式存储,最终输出vbf格式数据。vbf数据包括xml文件和bin文件。xml部分存储零件总数以及每个零件的包围盒(外接矩形)信息、工艺参数。bin部分以二进制形式存储零件按微积分切片后每一层的数据信息。所以在做智能分区的控制方法时首先必须解析出xml 数据和bin数据。所述步骤1具体包括:解析出每一个零件的包围盒信息,xml部分的包围盒信息如图7所示,即dimensions节点部分的包围盒信息包括:包围盒的横坐标x最小值xmin、包围盒的横坐标x最大值xmax,包围盒的纵坐标y最小值ymin、包围盒的纵坐标y最大值ymax和包围盒的z轴方向上的z最小值zmin以及包围盒的z轴方向上的z最大值zmax数据。
46.步骤2:给每个欲打印的零件划分所属区域,即判断每个欲打印的零件的包围盒信息中的横坐标x最小值xmin与横坐标x最大值xmax值同图6中两条设定的横坐标x分别为x=-a和x=a的竖向直线的横坐标的大小关系,从而确定每个欲打印的零件属于a区域、b区域、公共区域还是合占ab区域;例如,这里举一个具体的例子说明零件数据是怎么进行划分所属区域的,如图8所示,左边竖向直线的横坐标-a=-30,右边竖向直线的横坐标a=30,所述两条设定的横坐标x分别为x=-a和x=a的竖向直线是在左边激光的照射范围、右边激光的照射范围以及基板区域交叉重叠且三者共有的公共区域的四个顶点中,连接四个顶点中的处在左边的两个顶点的直线就形成横坐标x为x=-a的竖向直线,连接四个顶点中的处在右边的两个顶点的直线就形成横坐标x为x=a的竖向直线,a为正实数,横坐标为0的竖向直线为竖向中分基板区域的中分线的横坐标;所述步骤2具体包括:步骤2-1:如果欲打印的零件满足:-a《xmax《=a,同时xmin《-a,则其属于图6中所示的a区域内;例如零件1。
47.步骤2-2:如果欲打印的零件满足:-a《=xmin《a,同时xmax》a,则其属于图6中所示的b区域内;例如零件3。
48.步骤2-3:如果欲打印的零件满足:-a《xmax《=a,同时-a《=xmin《a,即该零件属于两竖向直线之间,则其属于图6中所示的公共区域内;这样该零件就可以给左边激光器或右边激光器中任一个打印,可以依序分给左边激光器或右边激光器打印。例如这次是给左边激光器打印,下次给右边激光器打印,例如零件2。
49.步骤2-4:如果欲打印的零件满足:xmin《-a,同时xmax》a,即该零件横穿两条竖向直线所在的三块整体区域,例如零件4。则其属于合占ab区域。此时就要询问用户是采用结合横坐标为0的竖向直线进行双激光分割,还是重新对该零件进行排版,如果用户选择重新排版,则重新制作vbf数据,程序执行流程又回到了步骤1。如果用户选择双激光分割,程序继续往下执行。
50.这里确定了每个零件归属于哪个激光器打印。一旦确定之后,所有层上那个零件的数据都要使用那个激光来打印。
51.根据解析出来的vbf数据依次对每一层上的欲打印的零件的零件数据,按照上面确定的每个零件采用哪个激光的打印方式进行打印。先解析出第一层中所有欲打印的零件的零件数据,进行处理,即依次读取当前层上每个零件数据并判断他的区域类型。
52.步骤3:如果欲打印的零件属于a区域,就将该零件的零件数据加入到配置给左边
激光器的数据数组;如果欲打印的零件属于b区域,就将该零件的零件数据加入到配置给左边激光器的数据数组;步骤4:如果欲打印的零件属于公共区域,取决于具体的处理算法,这里暂时采用将该零件的零件数据交错地分给左边激光器的数据数组或右边激光器的数据数组,例如这次分给左边激光器的数据数组,下次给右边激光器的数据数组,以后不断地如此交错循环往复;步骤5:如果欲打印的零件属于合占ab区域,就弹出对话框让用户选择是运用双激光分割还是重新对该零件进行排版,用户选择后执行相应的处理;在步骤5中,如果用户选择重新对该零件进行排版,则重新制作vbf数据,并返回步骤1去执行;如果用户选择运用双激光分割,就运用双激光分割算法对这个零件数据上的点线坐标进行双激光分割。
53.所述运用双激光分割算法对这个零件数据上的点线坐标进行双激光分割的方法,包括:对比法,该对比法包括:依序读取该零件的零件数据中的每一个点坐标,判断当前点的横坐标与横坐标为0的竖向直线的位置关系,如果当前点的横坐标k小于横坐标为0的竖向直线的横坐标,即k《=0,且不存在上一个顶点,就将当前点加入左边激光器的数据数组;如果k《=0,且存在上一个顶点并且上一个顶点的横坐标l《=0,就将当前点加入左边激光器的数据数组;如果k《0,且存在上一个顶点并且上一个顶点的横坐标l》0,就取得当前点与上一个点组成的直线与横坐标为0的竖向直线的交点,将该交点加入左边激光器的数据数组,也加入右边激光器的数据数组,再将当前点加入左边激光器的数据数组;如果k=0,且存在上一个顶点并且上一个顶点的横坐标l》0,就直接加入右边激光器的数据数组;如果k》0,且存在上一个点,如果上一个点的横坐标m《0,就先取得当前点与上一个点组成的直线与横坐标为0的竖向直线的交点,同时将该交点加入左边激光器的数据数组和右边激光器的数据数组,再将当前点加入右边激光器的数组;如果k》0,但不存在上一个点,就直接将当前点加入到右边激光器的数据数组;如果k》0,且存在上一个点,且上一个点的横坐标m》0,就直接加入右边激光器的数据数组;这样用对比法处理完一个点,再采用同样的对比法判断下一个点,直到当前零件的零件数据中的所有点都处理完成。
54.这样用上述同样的流程处理完一个零件后继续处理下一个零件。直到欲打印的所有零件都处理完毕。
55.步骤6:启动两个线程分别控制左边激光器打印左边激光器的数据数组中的数据和控制右边激光器打印右边激光器的数据数组中的数据。步骤6执行完毕后,还能够返回步骤1去执行后续零件的打印。
56.双激光3d打印零件时,落在两个激光打印区域内的零件存在拼接处约0.2mm的误差。为了解决这种拼接误差,提出了智能分区算法的解决方案。将双激光打印区域转化为单激光打印区域,从而避免拼接误差。
57.以上以用实施例说明的方式对本技术作了描述,本领域的技术人员应当理解,本公开不限于以上描述的实施例,在不偏离本技术的区域的状况下,能够做出各种变化、改变
和替换。
再多了解一些

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

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

相关文献