來旭輝,魏正英
面向數(shù)控加工系統(tǒng)的3D打印切片算法與分區(qū)掃描策略
來旭輝,魏正英※
(西安交通大學(xué)機(jī)械制造系統(tǒng)工程國家重點(diǎn)試驗(yàn)室,西安 710049)
為實(shí)現(xiàn)大型農(nóng)機(jī)零部件的快速修復(fù)與更換,該文針對(duì)3D打印協(xié)同數(shù)控成形大型零件中的折線拐點(diǎn)金屬過堆積、工件翹曲變形、層厚難以實(shí)時(shí)調(diào)整等問題,提出數(shù)控系統(tǒng)與電子束成形相結(jié)合的3D打印切片算法與分區(qū)掃描策略。為提高切片速度,實(shí)現(xiàn)成形過程中的層厚實(shí)時(shí)調(diào)整,采用反向光線追蹤算法對(duì)三維模型渲染切片,通過MS(marching squares)算法提取二值圖像的坐標(biāo)序列,快速獲取指定層的輪廓坐標(biāo);為避免成形過程中電子槍運(yùn)行速度不均勻引起的金屬過堆積現(xiàn)象,選用B樣條基函數(shù)對(duì)輪廓數(shù)據(jù)進(jìn)行曲線插值,結(jié)合數(shù)控系統(tǒng)的曲線插補(bǔ)命令,實(shí)現(xiàn)恒定線速度成形。針對(duì)大型零件在成形過程中的變形問題,采用六邊形分區(qū)與平行線變角度掃描技術(shù),根據(jù)各分區(qū)圖案的形心歐式距離規(guī)劃掃描順序,實(shí)現(xiàn)變形控制。結(jié)果表明:采用非均勻有理B樣條曲線和直線分段插值后,擬合曲線對(duì)原始多重曲面截線的逼近誤差范圍與切片數(shù)據(jù)相比減少了30%。選用網(wǎng)格數(shù)量為1 483 132的STL(stereolithography)模型進(jìn)行效率測(cè)試,該算法切片用時(shí)90 s,與商用軟件Magics15.01切片相比用時(shí)減少了34.6%,與開源軟件Cura15.06切片相比用時(shí)減少了31.4%,研究結(jié)果可為大型零件成形過程中的層厚動(dòng)態(tài)調(diào)整及變形控制等提供新的思路。
數(shù)控系統(tǒng);電子束;3D打印;切片;曲線插值;分區(qū);掃描順序
3D打印技術(shù)在以激光或電子束為熱源的選區(qū)熔化領(lǐng)域取得了飛速的發(fā)展[1-7],可實(shí)現(xiàn)小尺度零件的精密成形,但在大尺度零件成形過程中,隨著平面層填充面積的增加,掃描線兩端溫度梯度急劇變大[8-16],當(dāng)逐層累積的熱應(yīng)力超過成形材料的屈服強(qiáng)度時(shí),將引起極大的局部翹曲變形,導(dǎo)致當(dāng)前的工藝參數(shù)不再適用,而且大的變形不利于后處理精加工中的定位與切削。為快速成形出與原始零件形體一致的大型毛坯,利用數(shù)控加工的高精度和電子束成形的高效率,結(jié)合面向數(shù)控加工系統(tǒng)的3D打印切片算法與分區(qū)掃描策略,可根據(jù)層厚反饋信息實(shí)時(shí)調(diào)整切片厚度,形成閉環(huán)控制,解決大型農(nóng)機(jī)裝備的關(guān)鍵零件快速修復(fù)與更換問題。
國內(nèi)外學(xué)者在3D打印切片算法和分區(qū)策略等方面做出了大量的研究。Minetto等[17]采用一組等間距或自適應(yīng)間距的掃描平面,對(duì)STL文件中的三角網(wǎng)格進(jìn)行歸類,通過哈希表建立輪廓數(shù)據(jù)間的拓?fù)潢P(guān)系,這種方式在面片排序過程浪費(fèi)大量時(shí)間,在層厚實(shí)時(shí)調(diào)整方面穩(wěn)定性不高;Pandey等[18]根據(jù)階梯效應(yīng)和成形件表面粗糙度要求,推導(dǎo)出了切片厚度遞推公式,實(shí)現(xiàn)自適應(yīng)分層,成形過程中根據(jù)層厚變化調(diào)整工藝參數(shù),但需要建立龐大的工藝參數(shù)庫;Song等[19]采用MS算法和二分法對(duì)隱式曲面直接切片,通過改變采樣點(diǎn)的數(shù)量控制切片效率與精度,雖然避免隱式曲面和STL文件相互轉(zhuǎn)化帶來的精度損失,但計(jì)算時(shí)間與傳統(tǒng)STL模型轉(zhuǎn)換的方案相比,并無明顯提高;Manmadhachary等[20]通過FFT(fast fourier transformation)方法平滑CT圖像中的輪廓數(shù)據(jù),采用三角網(wǎng)格剖分算法重建并修補(bǔ)三維網(wǎng)格提高模型表面質(zhì)量,之后采用傳統(tǒng)切片方式進(jìn)行二次切片,該算法在下頜骨模型打印中取得了較好的精度。Zrnic等[21-22]通過熱間接結(jié)構(gòu)耦合模擬研究3種掃描方式下不同掃描角度對(duì)零件變形的影響,發(fā)現(xiàn)15°旋轉(zhuǎn)掃描策略產(chǎn)生的應(yīng)力最小,而各種掃描策略對(duì)熔池尺寸的影響不大;鄧詩詩等[23-27]對(duì)比了 s 形掃描和分區(qū)掃描方式下層內(nèi)殘余應(yīng)力的累積情況,驗(yàn)證了分區(qū)策略對(duì)減小零件邊界拉應(yīng)力的有效性,但驗(yàn)證模型尺度較小,不具有普適性。以上算法主要是對(duì)模型進(jìn)行離線處理,難以根據(jù)閉環(huán)控制的反饋信息動(dòng)態(tài)調(diào)整各項(xiàng)數(shù)據(jù)。采用數(shù)值模擬的手段進(jìn)行分區(qū)和掃描策略優(yōu)化的方式,主要局限于對(duì)填充線角度變化的模擬,在宏觀尺度或區(qū)塊掃描順序模擬方面難以開展大規(guī)模計(jì)算,因此還需通過試驗(yàn)的手段開展深入研究。
本文在前人研究的基礎(chǔ)上,針對(duì)大型零件成形中拐點(diǎn)金屬過堆積問題,提出了層內(nèi)變角度填充的成形策略,采用NURBS(non-uniform rational b-splines)基函數(shù)擬合輪廓數(shù)據(jù)保證成形線速度恒定,將熔積體余高波動(dòng)控制在1 mm之內(nèi);針對(duì)單道掃描線過長引起的翹曲變形問題,提出分區(qū)掃描策略,根據(jù)各分區(qū)的形心,按距離最遠(yuǎn)原則規(guī)劃成形順序;針對(duì)大型零件在成形過程中的層厚動(dòng)態(tài)調(diào)整問題,提出基于反向光線追蹤算法的三維模型切片算法,在2個(gè)平面層打印間隙,動(dòng)態(tài)計(jì)算切片與分區(qū)填充數(shù)據(jù),實(shí)現(xiàn)成形過程的閉環(huán)控制。
以電子束為熱源的3D打印技術(shù)與弧焊成形類似,但其能量輸入更高,成形過程中急冷急熱過程更加明顯。在實(shí)際加工中零件的厚度往往低于三維模型的切片高度,需要在后續(xù)加工開始之前,快速計(jì)算出下一成形層的填充方式或重新提取指定高度處的輪廓數(shù)據(jù)。因此可以根據(jù)視野中各像素點(diǎn)處三角網(wǎng)格的可見性,采用GPU(graphics processing unit)渲染加速和并行計(jì)算技術(shù),快速提取指定高度處的截面二值圖像。在2個(gè)平面層的成形間隙,根據(jù)加工厚度的反饋信息,快速調(diào)整實(shí)際切片厚度,補(bǔ)償材料收縮引起的尺寸誤差。
本文采用STL(stereolithography)格式的三維模型進(jìn)行3D打印切片。STL文件是通過三角網(wǎng)格逼近三維曲面,存儲(chǔ)時(shí)所有網(wǎng)格的頂點(diǎn)沿其法線方向逆時(shí)針排列,各網(wǎng)格之間在STL文件中無序分布。為提高切片效率,避免拓補(bǔ)關(guān)系建立帶來的時(shí)間等待,采用GPU對(duì)網(wǎng)格直接切片,其核心是根據(jù)不同像素處網(wǎng)格法向量方向標(biāo)記像素顏色,因此需要判斷網(wǎng)格法線與切片方向相同還是相反。設(shè)從像素點(diǎn)發(fā)出指向視點(diǎn)的方向?yàn)檎较?,?dāng)網(wǎng)格法向量與正方向相同,即3個(gè)頂點(diǎn)按照逆時(shí)針順序存儲(chǔ),網(wǎng)格為正向網(wǎng)格;反之則為反向網(wǎng)格,如圖1所示。
注:A,B,C為三角網(wǎng)格的3個(gè)頂點(diǎn),圖中箭頭表示三角網(wǎng)格的法線方向
Fig1 Triangulation strategy of three-dimensional model
為了提高計(jì)算效率,本文采用反向光線追蹤算法裁剪STL模型中的不可見片元,僅將可見片元提交給GPU進(jìn)行計(jì)算。STL模型的三角網(wǎng)格遍歷過程不考慮光線的折射和反射,當(dāng)光線與片元相交,對(duì)應(yīng)像素點(diǎn)渲染為白色,反之為黑色。
STL模型中的三角網(wǎng)格與空間中任意坐標(biāo)點(diǎn)間的位置關(guān)系用式(1)表示,當(dāng)()值為負(fù)則三角網(wǎng)格與光線不相交,反之則相交。
從攝像機(jī)位置發(fā)出的射線()為
式中為光線距離,c為視點(diǎn)位置坐標(biāo),為射線的方向向量??臻g中任意三角網(wǎng)格的平面方程為
式中1和2為三角網(wǎng)格頂點(diǎn)坐標(biāo),為該三角網(wǎng)格的法向量。聯(lián)立式(2)式(3)解得帶入式(1)判斷從視點(diǎn)發(fā)出指向像素點(diǎn)的射線與三維網(wǎng)格是否相交。若交點(diǎn)的高度與切片高度相同,則該網(wǎng)格為可見片元,否則為不可見片元。
根據(jù)每個(gè)像素點(diǎn)處三角網(wǎng)格的可見性判斷結(jié)果,采用模板緩沖技術(shù)將可見網(wǎng)格渲染為白色,不可見網(wǎng)格及反射空間渲染為黑色,依次遍歷視野中的所有像素點(diǎn),輸出三維模型的截面二值圖像。具體步驟如下:
1)加載STL文件,獲取三維模型的包圍盒信息(長寬高),根據(jù)模型的長度和寬度初始化視野范圍,同時(shí)啟用模板緩存的寫入功能;
2)指定切片高度,將模板緩沖區(qū)以無符號(hào)整形數(shù)據(jù)0填充,表示整個(gè)視野的片元都不需要繪制;
如圖1所示,本文算法流程主要包括三個(gè)部分,首先計(jì)算待分類數(shù)據(jù)和已知數(shù)據(jù)之間的相似性,其次根據(jù)相似性生成待分類數(shù)據(jù)的K近鄰集合,最后根據(jù)K近鄰中學(xué)生的答題結(jié)果預(yù)測(cè)待分類學(xué)生的答題結(jié)果。
3)選用從視點(diǎn)發(fā)出的有向線段與視野中所有體素做相交判斷,當(dāng)有向線段與正向網(wǎng)格相交時(shí)模板緩沖區(qū)的值+1,表示該像素需要繪制;當(dāng)與反向網(wǎng)格相交時(shí)模板緩沖區(qū)的值-1;
4)遍歷結(jié)束后渲染緩沖區(qū)中值為1或2的片元,丟棄值為0的片元。
圖2a為原始的多重曲面模型,根據(jù)上述算法輸出的某一截面二值圖如圖2b所示。
注:1為黑白顏色邊界處的任一矩形區(qū)域,大小為4×5(像素)。
采用MS(marching square)等值線提取算法從二值圖像的左上方按照順時(shí)針方向讀入像素信息,每次讀取1個(gè)像素位置和顏色值,取右側(cè)、下側(cè)以及左下側(cè)3個(gè)相鄰位置的像素值組成一個(gè)由4個(gè)像素組成的小區(qū)塊,區(qū)塊中4個(gè)像素的顏色狀態(tài)一共可以分為24=16種情況,如圖3所示。二值圖像中白色表示實(shí)體區(qū)域,像素點(diǎn)對(duì)應(yīng)的三角網(wǎng)格為可見網(wǎng)格,用空心圓點(diǎn)表示。黑色表示空腔區(qū)域,像素點(diǎn)對(duì)應(yīng)的三角網(wǎng)格為不可見網(wǎng)格,用實(shí)心圓點(diǎn)表示。黑白顏色的分界線即需要提取的切片輪廓線位置。
a. 向右搜索a. Search rightb. 向上搜索b. Search up c. 向右搜索c. Search rightd. 向右搜索d. Search right
以圖2b中點(diǎn)1所在位置為例,其二值圖像輪廓提取過程如圖3所示。具體步驟為:1)由二值圖像的位置坐標(biāo)和顏色值確定搜索矩陣,同時(shí)初始化輪廓矩陣為空;2)取出4個(gè)像素點(diǎn),當(dāng)顏色均為白色時(shí),按照從左向右由上至下的順序繼續(xù)搜索;3)當(dāng)4個(gè)點(diǎn)像素值中首次出現(xiàn)黑色時(shí),將其標(biāo)記為搜索起點(diǎn),并將所有第一次出現(xiàn)的黑色像素位置坐標(biāo)存入輪廓矩陣;4)對(duì)照MS搜索方向表(如圖3所示)向下一搜索方向移動(dòng)一個(gè)像素寬度,如圖4a、4b所示;5)重復(fù)執(zhí)行第2),3),4)步,當(dāng)回到搜索起點(diǎn)時(shí),完成一個(gè)封閉輪廓的提取,按照從左向右、由上至下的順序?qū)ふ倚碌乃阉髌瘘c(diǎn);6)根據(jù)模型包圍盒長度與像素寬度的比值,將輪廓矩陣轉(zhuǎn)化為二維坐標(biāo)。
STL切片產(chǎn)生的輪廓由大量微段直線組成,相鄰小線段間存在夾角。實(shí)際成形中電子槍在拐點(diǎn)處減小運(yùn)動(dòng)速度以改變方向,導(dǎo)致單位時(shí)間送入熔池的絲材質(zhì)量增加,隨著折線夾角的減小拐點(diǎn)處材料過堆積現(xiàn)象越來越嚴(yán)重,如圖5所示。通過試驗(yàn)發(fā)現(xiàn),當(dāng)直線夾角大于140°時(shí),拐點(diǎn)處材料過堆積現(xiàn)象基本消失。因此本文以140°作為臨界角度,當(dāng)相鄰2條線段夾角小于140°,則數(shù)據(jù)點(diǎn)屬于曲線部分,反之屬于直線部分。曲線部分采用NURBS基函數(shù)擬合,結(jié)合數(shù)控系統(tǒng)中BSPLINE命令的恒定線速度插補(bǔ)功能,通過控制點(diǎn)和權(quán)因子平滑連接分散的坐標(biāo)點(diǎn),以減少切片輪廓中的直線和曲線數(shù)量,進(jìn)而減少電機(jī)的啟停次數(shù),避免拐點(diǎn)處材料過堆積。
注:黑色方框表示黑色像素點(diǎn);白色方框表示白色像素點(diǎn);空心圓點(diǎn)表示可見網(wǎng)格;實(shí)心圓點(diǎn)表示不可見網(wǎng)格。
注:圖中標(biāo)記處為折線拐點(diǎn)處的材料過堆積區(qū)域。
大型零件成形過程中,溫度梯度在大段掃描線兩端尤為明顯。電子束成形件是包括加工余量的毛坯件,往往需要后續(xù)精加工處理,過大的變形可能會(huì)導(dǎo)致整個(gè)零件報(bào)廢,因此傳統(tǒng)的直線掃描方式難以適用于大型零件成形。Y S Lee等[28-31]的研究表明,通過分區(qū)和掃描順序規(guī)劃可以降低溫度梯度減小應(yīng)力集中,進(jìn)而控制零件變形在合理范圍內(nèi)。為減少掃描線長度降低溫度梯度,本文根據(jù)模型特征的調(diào)整輪廓填充方式和分區(qū)掃描策略。
沿著切片輪廓最小外接矩形的短邊鑲嵌填充圖案可以極大減少填充圖案數(shù)量。設(shè)某輪廓數(shù)據(jù)的初始包絡(luò)矩形為{[0_min,0_min],[0_max,0_max]},目標(biāo)函數(shù)的最小值即為最小包絡(luò)矩形。
注:d為六邊形邊長;L1和L2分別為包絡(luò)矩形的短邊和長邊;A~J分別為六邊形的頂點(diǎn);包絡(luò)矩形內(nèi)的圖案為待填充圖案。