基于Qt的微喷射粘结快速成形系统软件

2017-06-10 23:58李元叶春生赵火平
电子技术与软件工程 2017年11期

李元++叶春生++赵火平

摘 要本文实现了基于Qt平台的微喷射粘结快速成形系统控制软件,提出了基于三角形位置信息的分层邻接查找算法。该切片算法在打印成型过程中无需生成G-code作为加工路径,而且大大减少了判断STL文件中三角面片与切层平面位置关系的次数,能够迅速查找到邻接三角形而获得首尾相连的切层轮廓,节省了系统资源,提高了切片效率。最后通过对叶片实体打印实例的分析,验证了该软件的可行性和高成型精度。

【關键词】Qt微喷射粘结 控制软件分层 邻接查找算法

3D打印技术是采用由面到体的增材制造方式堆叠成型,具有无需模具、几何形状复杂度无限制、加工周期短、成型精度高、综合性能优异等显著优势[1]。该技术已成为各国竞相优先发展的一种先进制造技术,被誉为第三次工业革命的重要标志之一[2-3]。作为3D打印技术中的一种,微喷射粘结快速成形具有成型设备简单,运行和维护成本低,可供选择的成型粉末种类多等优点。微喷射粘结快速成形工艺图如图1所示:先将供粉缸里的粉末均匀地在成型缸上铺上一层,然后打印喷头根据零件切片后得到的二维截面信息,在粉末上喷射粘结剂,再下降平台,继续打印,直至最后一层得到三维实体模型。

微喷射粘结快速成形技术不需要使用激光烧结成型,适合于办公室或家庭中使用,所以其控制软件应该具有很好的用户体验。而现在很多3D打印控制软件需要设置的参数太多,操作过于复杂[4],数据处理效率及内存占用情况不是很理想,智能性不足,成为限制该技术得到广泛应用的重要影响因素之一。为了克服操作复杂、占用系统资源较多,以及分层切片算法效率不高等问题,本文提出了基于三角形位置信息的分层邻接查找算法,实现了微喷射粘结快速成形系统控制软件。该切片算法根据三角面片坐标与切平面的位置关系,在处理完每一切片层上的三角形信息后将其从容器中删除,避免了重复查找。在每一切片层的交点容器中查找邻接三角形,从而获得完整的封闭截面轮廓曲线,大大提高了切片速度。同时,软件操作简单,人机界面友好,具有较高的成型效率和成型精度。

1 软件架构设计

得益于开源软件,应用于3D打印中的控制软件及其所支持的操作系统平台越来越多,使3D打印设备成本大幅降低,但很多开源软件的设计思路都是基于STL模型分层切片生成G-code加工代码,这种加工路径成形方式并不完全适用于微喷射粘结快速成形中。

控制软件主要由五个模块组成,如图2所示。首先利用OpenGL(Open Graphics Library)库将STL文件中的三角面片显示在程序图形窗口中,通过基于三角形位置信息的分层邻接查找算法对STL模型进行切片处理并运用QWT(QT Widgets for Technical Applications)库显示切层平面轮廓曲线,采用奇偶填充规则实现轮廓填充。然后采用Sobel算子提取填充图形灰度图的边缘点坐标,通过反馈喷头位置信号实时控制喷头脉冲,实现对模型边缘部位的打印控制,最后运用QtSerialPort模块完成通信协议设计,实现与下位机通信,该流程如图3所示。

2 软件实现

2.1 主界面

在主界面的菜单栏和工具栏上实现了文件导入、分层填充及边缘检测等所有模块功能,如图4所示。此外,打印前可以根据成型要求和粉末材料属性,选定切片层厚及填充颜色,设置打印参数。同时,为了避免发生断电等故障时需要从第一层重新打印,使用日志文件记录打印流程,提高了软件的安全性与实用性。同时软件代码基于面向对象程序设计,支持二次开发。

2.2 模型预览

STL文件是最多快速原型系统所应用的标准文件类型,由三角形网格单元顶点坐标和外法向量构成,离散近似地表现三维CAD模型[5]。OpenGL定义了一个跨编程语言、跨平台的编程接口规格的专业图形程序接口,具有很好的可移植性。程序载入STL文件时,将文件中的三角面片及其法向量提取保存,基于OpenGL在图形窗口中显示,同时为对模型分层切片做好准备。导入STL文件时处理流程如图5所示。

2.3 分层切片

为了克服基于拓扑信息的切片算法处理拓扑信息时间长、占用资源较多,以及分组排序算法中分组排序耗时较长等问题[5],本文提出了基于三角形位置信息的分层邻接查找算法。对于切层平面高度Zi,首先遍历保存在容器V1中的STL文件三角形,运用线性插值算法对有交集的三角面片求取交点坐标,同时把两个交点组成结构体并存储于容器V2中;然后基于STL中相邻三角形之间只有一条公共边的规则,可以迅速、依次地从容器vector中找出两两相关的结构体,并通过对有连接关系的结构体的追踪得到轮廓曲线。此后每次求取高度Zj(j=i+1,..,n)切平面上的轮廓曲线前,先将与Zi平面相交的三角形从容器V1中剔除,减小容器大小,然后重复上述步骤得出每切片层的轮廓曲线,其算法流程如图6所示。

2.4 填充与边缘检测

分层切片后得到二维截面轮廓路径,Qt中在填充路径时提供两种填充规则:Qt::OddEvenFill和Qt::WindingFill。Qt::OddEvenFill采用奇偶填充规则,算法思路是要判断一个点是否在图形中,从该点向图形外引一条水平线,如果该水平线与图形的交点的个数为奇数,则该点就在图形中。而Qt::WindingFill使用非零弯曲规则,就是要判断一个点是否在图形中,可以从该点向图形外引一条水平线,如果水平线与图形的边线相交,且这个边线是顺时针绘制的,记为1,否则记为-1,然后将所有数值相加,如果结果不为0,那么该点就在图形中[6]。本文采用奇偶填充规则对路径轮廓曲线进行填充。

如果打印喷头喷射粘接剂的液滴大小始终保持不变,当打印至模型边缘时,容易造成粉末飞溅而堵塞喷嘴,同时导致边缘精度降低,影响模型质量。为了改善打印精度,必须实现对模型边缘的打印控制。这里使用Sobel算子提取填充图形的边缘点信息。Sobel算子是一个离散差分算子,用来计算图像亮度函数的灰度的近似值,在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量,然后选取合适的阈值以提取边缘点。

2.5 串口通信

完成图形填充及边缘检测后,就可以通过通信模块将图像数据传送到打印机实现打印。QtSerialPort模块是Qt5库的附加部分,为硬件和虚拟的串口提供统一的接口,该模块也增加了对Qt4的支持。串口通信由于其简单及可靠,目前在像嵌入式系统等很多工业中仍然广泛使用。使用QtSerialPort模块可以大大缩短开发串口相关的应用软件的周期。本文基于该类编写并实现了通信模块。QtSerialPort模块的使用比较简单,在Windows或Linux平台下添加相应的头文件和源文件,即可调用QtSerialPort接口函数。

3 实验验证

为了使模型具有更好的观赏性和表现力,分层切片后对切平面轮廓采用多色线性渐变方式填充,打印后得到彩色模型,如图7所示。实验选用纯氧化锆粉末和纯氧化钙粉末作为成形粉末原材料,使用醇溶性聚乙烯吡咯烷酮和无水乙醇配置的溶液作为氧化钙基陶瓷型芯粘结剂体系的预混液,氧化锆以纳米粉末和预混液配置成分散液作为粘结剂通过喷头喷嘴以喷射方式加入氧化钙粉末当中。总共打印了5组模型,每组包含4个叶片。叶片设计尺寸为70.0mm×70.0mm×22.0mm,打印烘干后5组叶片实体中与原尺寸差异最大的尺寸为70.8mm×71.1mm×22.2mm,尺寸误差在要求范围内,成型精度较好,打印过程中软件运行也比较流畅。

4 结语

本文主要目的是基于Qt平台自主开发实现了微喷射粘结快速成形系统控制软件,提出了基于三角形位置信息的分层邻接查找算法。该控制软件在算法效率及系统消耗、成型效率和成型精度上都具有一定的优势,为3D打印技术的研究与应用提供了一定的理论和实践基础。但软件还存在待完善的方面,如彩色切片处理等,这些将作为今后继续研究的方向。

(通讯作者:叶春生)

参考文献

[1]贺强,程涵,杨晓强.面向3D打印的三维模型处理技术研究综述[J].制造技术与机床,2016(06):54-57+61.

[2]刘利刚,徐文鹏,王伟明,杨周旺,刘秀平.3D打印中的几何计算研究进展[J]. 计算机学报,2015(06):1243-1267.

[3]Gao W,Zhang Y B,Ramanujan D,et al.The status,challenges,and future of additive manufacturing in engineering [J].Computer-Aided Design,2015,69(08):65-89.

[4]肖翔,葉春生,赵火平.基于Qt的微喷射粘结成型设备的控制系统设计[J].电子技术与软件工程,2015(11):43-45.

[5]王素,刘恒,朱心雄.STL模型的分层邻接排序快速切片算法[J].计算机辅助设计与图形学学报,2011(04):600-606.

[6]霍亚飞.Qt Creator快速入门(第2版)[M].北京航空航天大学出版社,2014.

作者简介

李元(1989-),男,广西壮族自治区上林县人。现为华中科技大学在读研究生。主要研究方向为软件技术及应用。

作者单位

华中科技大学材料成形及模具技术重点实验室 湖北省武汉市 430074