李元++葉春生++趙火平
摘 要本文實(shí)現(xiàn)了基于Qt平臺的微噴射粘結(jié)快速成形系統(tǒng)控制軟件,提出了基于三角形位置信息的分層鄰接查找算法。該切片算法在打印成型過程中無需生成G-code作為加工路徑,而且大大減少了判斷STL文件中三角面片與切層平面位置關(guān)系的次數(shù),能夠迅速查找到鄰接三角形而獲得首尾相連的切層輪廓,節(jié)省了系統(tǒng)資源,提高了切片效率。最后通過對葉片實(shí)體打印實(shí)例的分析,驗(yàn)證了該軟件的可行性和高成型精度。
【關(guān)鍵詞】Qt微噴射粘結(jié) 控制軟件分層 鄰接查找算法
3D打印技術(shù)是采用由面到體的增材制造方式堆疊成型,具有無需模具、幾何形狀復(fù)雜度無限制、加工周期短、成型精度高、綜合性能優(yōu)異等顯著優(yōu)勢[1]。該技術(shù)已成為各國競相優(yōu)先發(fā)展的一種先進(jìn)制造技術(shù),被譽(yù)為第三次工業(yè)革命的重要標(biāo)志之一[2-3]。作為3D打印技術(shù)中的一種,微噴射粘結(jié)快速成形具有成型設(shè)備簡單,運(yùn)行和維護(hù)成本低,可供選擇的成型粉末種類多等優(yōu)點(diǎn)。微噴射粘結(jié)快速成形工藝圖如圖1所示:先將供粉缸里的粉末均勻地在成型缸上鋪上一層,然后打印噴頭根據(jù)零件切片后得到的二維截面信息,在粉末上噴射粘結(jié)劑,再下降平臺,繼續(xù)打印,直至最后一層得到三維實(shí)體模型。
微噴射粘結(jié)快速成形技術(shù)不需要使用激光燒結(jié)成型,適合于辦公室或家庭中使用,所以其控制軟件應(yīng)該具有很好的用戶體驗(yàn)。而現(xiàn)在很多3D打印控制軟件需要設(shè)置的參數(shù)太多,操作過于復(fù)雜[4],數(shù)據(jù)處理效率及內(nèi)存占用情況不是很理想,智能性不足,成為限制該技術(shù)得到廣泛應(yīng)用的重要影響因素之一。為了克服操作復(fù)雜、占用系統(tǒng)資源較多,以及分層切片算法效率不高等問題,本文提出了基于三角形位置信息的分層鄰接查找算法,實(shí)現(xiàn)了微噴射粘結(jié)快速成形系統(tǒng)控制軟件。該切片算法根據(jù)三角面片坐標(biāo)與切平面的位置關(guān)系,在處理完每一切片層上的三角形信息后將其從容器中刪除,避免了重復(fù)查找。在每一切片層的交點(diǎn)容器中查找鄰接三角形,從而獲得完整的封閉截面輪廓曲線,大大提高了切片速度。同時,軟件操作簡單,人機(jī)界面友好,具有較高的成型效率和成型精度。
1 軟件架構(gòu)設(shè)計(jì)
得益于開源軟件,應(yīng)用于3D打印中的控制軟件及其所支持的操作系統(tǒng)平臺越來越多,使3D打印設(shè)備成本大幅降低,但很多開源軟件的設(shè)計(jì)思路都是基于STL模型分層切片生成G-code加工代碼,這種加工路徑成形方式并不完全適用于微噴射粘結(jié)快速成形中。
控制軟件主要由五個模塊組成,如圖2所示。首先利用OpenGL(Open Graphics Library)庫將STL文件中的三角面片顯示在程序圖形窗口中,通過基于三角形位置信息的分層鄰接查找算法對STL模型進(jìn)行切片處理并運(yùn)用QWT(QT Widgets for Technical Applications)庫顯示切層平面輪廓曲線,采用奇偶填充規(guī)則實(shí)現(xiàn)輪廓填充。然后采用Sobel算子提取填充圖形灰度圖的邊緣點(diǎn)坐標(biāo),通過反饋噴頭位置信號實(shí)時控制噴頭脈沖,實(shí)現(xiàn)對模型邊緣部位的打印控制,最后運(yùn)用QtSerialPort模塊完成通信協(xié)議設(shè)計(jì),實(shí)現(xiàn)與下位機(jī)通信,該流程如圖3所示。
2 軟件實(shí)現(xiàn)
2.1 主界面
在主界面的菜單欄和工具欄上實(shí)現(xiàn)了文件導(dǎo)入、分層填充及邊緣檢測等所有模塊功能,如圖4所示。此外,打印前可以根據(jù)成型要求和粉末材料屬性,選定切片層厚及填充顏色,設(shè)置打印參數(shù)。同時,為了避免發(fā)生斷電等故障時需要從第一層重新打印,使用日志文件記錄打印流程,提高了軟件的安全性與實(shí)用性。同時軟件代碼基于面向?qū)ο蟪绦蛟O(shè)計(jì),支持二次開發(fā)。
2.2 模型預(yù)覽
STL文件是最多快速原型系統(tǒng)所應(yīng)用的標(biāo)準(zhǔn)文件類型,由三角形網(wǎng)格單元頂點(diǎn)坐標(biāo)和外法向量構(gòu)成,離散近似地表現(xiàn)三維CAD模型[5]。OpenGL定義了一個跨編程語言、跨平臺的編程接口規(guī)格的專業(yè)圖形程序接口,具有很好的可移植性。程序載入STL文件時,將文件中的三角面片及其法向量提取保存,基于OpenGL在圖形窗口中顯示,同時為對模型分層切片做好準(zhǔn)備。導(dǎo)入STL文件時處理流程如圖5所示。
2.3 分層切片
為了克服基于拓?fù)湫畔⒌那衅惴ㄌ幚硗負(fù)湫畔r間長、占用資源較多,以及分組排序算法中分組排序耗時較長等問題[5],本文提出了基于三角形位置信息的分層鄰接查找算法。對于切層平面高度Zi,首先遍歷保存在容器V1中的STL文件三角形,運(yùn)用線性插值算法對有交集的三角面片求取交點(diǎn)坐標(biāo),同時把兩個交點(diǎn)組成結(jié)構(gòu)體并存儲于容器V2中;然后基于STL中相鄰三角形之間只有一條公共邊的規(guī)則,可以迅速、依次地從容器vector中找出兩兩相關(guān)的結(jié)構(gòu)體,并通過對有連接關(guān)系的結(jié)構(gòu)體的追蹤得到輪廓曲線。此后每次求取高度Zj(j=i+1,..,n)切平面上的輪廓曲線前,先將與Zi平面相交的三角形從容器V1中剔除,減小容器大小,然后重復(fù)上述步驟得出每切片層的輪廓曲線,其算法流程如圖6所示。
2.4 填充與邊緣檢測
分層切片后得到二維截面輪廓路徑,Qt中在填充路徑時提供兩種填充規(guī)則:Qt::OddEvenFill和Qt::WindingFill。Qt::OddEvenFill采用奇偶填充規(guī)則,算法思路是要判斷一個點(diǎn)是否在圖形中,從該點(diǎn)向圖形外引一條水平線,如果該水平線與圖形的交點(diǎn)的個數(shù)為奇數(shù),則該點(diǎn)就在圖形中。而Qt::WindingFill使用非零彎曲規(guī)則,就是要判斷一個點(diǎn)是否在圖形中,可以從該點(diǎn)向圖形外引一條水平線,如果水平線與圖形的邊線相交,且這個邊線是順時針繪制的,記為1,否則記為-1,然后將所有數(shù)值相加,如果結(jié)果不為0,那么該點(diǎn)就在圖形中[6]。本文采用奇偶填充規(guī)則對路徑輪廓曲線進(jìn)行填充。
如果打印噴頭噴射粘接劑的液滴大小始終保持不變,當(dāng)打印至模型邊緣時,容易造成粉末飛濺而堵塞噴嘴,同時導(dǎo)致邊緣精度降低,影響模型質(zhì)量。為了改善打印精度,必須實(shí)現(xiàn)對模型邊緣的打印控制。這里使用Sobel算子提取填充圖形的邊緣點(diǎn)信息。Sobel算子是一個離散差分算子,用來計(jì)算圖像亮度函數(shù)的灰度的近似值,在圖像的任何一點(diǎn)使用此算子,將會產(chǎn)生對應(yīng)的灰度矢量或是其法矢量,然后選取合適的閾值以提取邊緣點(diǎn)。
2.5 串口通信
完成圖形填充及邊緣檢測后,就可以通過通信模塊將圖像數(shù)據(jù)傳送到打印機(jī)實(shí)現(xiàn)打印。QtSerialPort模塊是Qt5庫的附加部分,為硬件和虛擬的串口提供統(tǒng)一的接口,該模塊也增加了對Qt4的支持。串口通信由于其簡單及可靠,目前在像嵌入式系統(tǒng)等很多工業(yè)中仍然廣泛使用。使用QtSerialPort模塊可以大大縮短開發(fā)串口相關(guān)的應(yīng)用軟件的周期。本文基于該類編寫并實(shí)現(xiàn)了通信模塊。QtSerialPort模塊的使用比較簡單,在Windows或Linux平臺下添加相應(yīng)的頭文件和源文件,即可調(diào)用QtSerialPort接口函數(shù)。
3 實(shí)驗(yàn)驗(yàn)證
為了使模型具有更好的觀賞性和表現(xiàn)力,分層切片后對切平面輪廓采用多色線性漸變方式填充,打印后得到彩色模型,如圖7所示。實(shí)驗(yàn)選用純氧化鋯粉末和純氧化鈣粉末作為成形粉末原材料,使用醇溶性聚乙烯吡咯烷酮和無水乙醇配置的溶液作為氧化鈣基陶瓷型芯粘結(jié)劑體系的預(yù)混液,氧化鋯以納米粉末和預(yù)混液配置成分散液作為粘結(jié)劑通過噴頭噴嘴以噴射方式加入氧化鈣粉末當(dāng)中??偣泊蛴×?組模型,每組包含4個葉片。葉片設(shè)計(jì)尺寸為70.0mm×70.0mm×22.0mm,打印烘干后5組葉片實(shí)體中與原尺寸差異最大的尺寸為70.8mm×71.1mm×22.2mm,尺寸誤差在要求范圍內(nèi),成型精度較好,打印過程中軟件運(yùn)行也比較流暢。
4 結(jié)語
本文主要目的是基于Qt平臺自主開發(fā)實(shí)現(xiàn)了微噴射粘結(jié)快速成形系統(tǒng)控制軟件,提出了基于三角形位置信息的分層鄰接查找算法。該控制軟件在算法效率及系統(tǒng)消耗、成型效率和成型精度上都具有一定的優(yōu)勢,為3D打印技術(shù)的研究與應(yīng)用提供了一定的理論和實(shí)踐基礎(chǔ)。但軟件還存在待完善的方面,如彩色切片處理等,這些將作為今后繼續(xù)研究的方向。
(通訊作者:葉春生)
參考文獻(xiàn)
[1]賀強(qiáng),程涵,楊曉強(qiáng).面向3D打印的三維模型處理技術(shù)研究綜述[J].制造技術(shù)與機(jī)床,2016(06):54-57+61.
[2]劉利剛,徐文鵬,王偉明,楊周旺,劉秀平.3D打印中的幾何計(jì)算研究進(jìn)展[J]. 計(jì)算機(jī)學(xué)報(bào),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的微噴射粘結(jié)成型設(shè)備的控制系統(tǒng)設(shè)計(jì)[J].電子技術(shù)與軟件工程,2015(11):43-45.
[5]王素,劉恒,朱心雄.STL模型的分層鄰接排序快速切片算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2011(04):600-606.
[6]霍亞飛.Qt Creator快速入門(第2版)[M].北京航空航天大學(xué)出版社,2014.
作者簡介
李元(1989-),男,廣西壯族自治區(qū)上林縣人?,F(xiàn)為華中科技大學(xué)在讀研究生。主要研究方向?yàn)檐浖夹g(shù)及應(yīng)用。
作者單位
華中科技大學(xué)材料成形及模具技術(shù)重點(diǎn)實(shí)驗(yàn)室 湖北省武漢市 430074