董嫣然,譚躍剛,張 帆,張 俊
(武漢理工大學(xué) 機(jī)電工程學(xué)院,湖北 武漢 430070)
碳纖維材料具有質(zhì)輕高強(qiáng)、內(nèi)柔外剛、耐高溫、耐腐蝕等諸多優(yōu)良特性,被廣泛應(yīng)用于航空航天、國(guó)防軍工、汽車(chē)電子及化工醫(yī)療等各大尖端科學(xué)領(lǐng)域[1-3]。3D打印技術(shù)是一種快速成型技術(shù),以數(shù)字模型文件為基礎(chǔ),運(yùn)用粉末狀金屬或塑料等可粘合材料,通過(guò)逐層打印的方式來(lái)構(gòu)造物體。該技術(shù)極大地縮短了產(chǎn)品的研制周期,提高了生產(chǎn)效率,是先進(jìn)制造技術(shù)的重要組成部分[4-5]。將碳纖維材料與3D 打印技術(shù)相結(jié)合,能夠同時(shí)發(fā)揮碳纖維材料的優(yōu)良特性和3D打印技術(shù)成型方式的優(yōu)勢(shì),解決了碳纖維復(fù)合材料成型工藝繁瑣、零件結(jié)構(gòu)受限等問(wèn)題[6-9]。
碳纖維復(fù)合材料3D打印通過(guò)基體材料從熔化到凝固自然粘結(jié),在沒(méi)有外界壓力作用下,相鄰層之間出現(xiàn)無(wú)法緊密粘連,難以成型的情況,極大地降低了打印件的強(qiáng)度、剛度和致密性。針對(duì)增強(qiáng)成型件致密性提高力學(xué)性能這類(lèi)問(wèn)題,施加壓力被廣泛使用。一種自動(dòng)鋪絲技術(shù)設(shè)計(jì)了施壓裝置,利用施壓氣缸和壓輥對(duì)碳纖維絲束施加壓力以適應(yīng)不同的鋪放表面。一種碳纖維展纖碾壓裝置,在導(dǎo)紗輥碾壓作用下對(duì)碳纖維絲束進(jìn)行展纖,使碳纖維絲束變得更輕薄[10]。一種應(yīng)用機(jī)器人自動(dòng)鋪絲技術(shù),通過(guò)分析鋪放過(guò)程中鋪放壓力、覆蓋完整性以及鋪放平整性對(duì)軌跡規(guī)劃的要求,確定合適的鋪放壓力以達(dá)到最佳效果[11]。綜上所述,傳統(tǒng)纖維鋪放成型過(guò)程中壓輥起到增強(qiáng)機(jī)械性能的作用,但由于3D打印疊加成型的特性以及打印軌跡的自由性與復(fù)雜性,要求壓力裝置能夠識(shí)別路徑軌跡,實(shí)時(shí)跟蹤軌跡變化,以保證壓力實(shí)施的準(zhǔn)確性。
針對(duì)上述問(wèn)題,筆者提出了一種基于連續(xù)碳纖維3D打印滾輪壓力裝置的壓力軌跡實(shí)時(shí)跟蹤算法。以3D打印軌跡坐標(biāo)集為處理源,介紹了壓力軌跡跟隨算法對(duì)打印軌跡各部分的處理方式,得到了完整的壓力軌跡及壓力裝置的旋轉(zhuǎn)指令。保證了壓力裝置對(duì)所有打印絲束的精確實(shí)時(shí)跟蹤碾壓,有效提高了連續(xù)碳纖維打印件的力學(xué)性能。
將連續(xù)碳纖維外圍包裹尼龍等熱塑性材料,制備成適合3D打印的連續(xù)碳纖維復(fù)合材料。碳纖維復(fù)合材料通過(guò)擠料機(jī)到達(dá)打印噴頭處加熱熔融,根據(jù)打印指令,噴頭在三軸的運(yùn)動(dòng)配合下,逐層打印出模型[12]。為解決連續(xù)層無(wú)法緊密粘連的問(wèn)題,在3D打印機(jī)上設(shè)計(jì)了滾輪壓力裝置,如圖1所示。
圖1 基于壓力裝置的3D打印機(jī)結(jié)構(gòu)示意圖
碾壓滾輪設(shè)計(jì)安裝在打印噴頭旁,可繞噴頭360°旋轉(zhuǎn)并且輔以加熱裝置,以“邊打邊壓”的方式工作。在噴頭打印材料的同時(shí),滾輪跟隨后方進(jìn)行碾壓,當(dāng)打印軌跡轉(zhuǎn)變方向時(shí),壓力裝置抬起滾輪變換方向后放下滾輪碾壓下一方向打印軌跡,在噴頭進(jìn)行跳轉(zhuǎn)時(shí)抬起滾輪一同跳轉(zhuǎn),打印實(shí)際軌跡時(shí)落下碾壓,直至碾壓完所有打印軌跡。
STL模型作為3D打印最通用的文件格式,需要先通過(guò)切片處理轉(zhuǎn)化為打印機(jī)可執(zhí)行的動(dòng)作指令,即生成3D打印軌跡。所謂切片即采用分層制造的思想,將三維模型沿分層方向離散為一組二維圖形,逐層疊加合成整體。如圖2所示,經(jīng)過(guò)切片軟件處理后的打印指令文件稱(chēng)之Gcode文件。文件中的指令控制三軸運(yùn)動(dòng)完成打印動(dòng)作,即表示打印軌跡。將Gcode文件用壓力軌跡實(shí)時(shí)跟蹤算法進(jìn)行處理,得到壓力裝置運(yùn)行指令,即碾壓軌跡。Gcode打印指令控制三軸及噴頭完成打印軌跡,壓力裝置指令控制碾壓滾輪完成碾壓軌跡,最終得到完整打印件。
圖2 面向軟件處理的成型過(guò)程
壓力軌跡實(shí)時(shí)跟蹤算法實(shí)現(xiàn)流程如圖3所示,首先讀取Gcode文件的坐標(biāo)點(diǎn),再對(duì)坐標(biāo)點(diǎn)進(jìn)行提取分類(lèi),分別處理打印模型的輪廓軌跡和填充軌跡,得到完整的碾壓軌跡后,計(jì)算得到每個(gè)轉(zhuǎn)折點(diǎn)坐標(biāo)及變化角度。
圖3 壓力軌跡實(shí)時(shí)跟蹤算法流程圖
將Gcode文件中的每個(gè)坐標(biāo)點(diǎn)進(jìn)行提取作為算法處理數(shù)據(jù)源。在Gcode文件中,帶有坐標(biāo)的指令形式共有5種,如圖4所示,其中前3種指令以G0開(kāi)頭,稱(chēng)之為跳轉(zhuǎn)指令,用于位置變化,不進(jìn)行實(shí)際打印。其中跳轉(zhuǎn)指令(1)不僅包含X,Y坐標(biāo),還包含Z軸坐標(biāo),表示用于不同層之間的跳轉(zhuǎn)。跳轉(zhuǎn)指令(2)和指令(3)不含Z軸坐標(biāo),即表示同一層之中的跳轉(zhuǎn)。指令(4)和指令(5)以G1開(kāi)頭,代表打印指令,其后的X,Y坐標(biāo)均為實(shí)際打印點(diǎn)。該5種指令后的X,Y坐標(biāo)值都需要提取,由于壓力裝置與打印噴頭在Z軸方向一同動(dòng)作,故不需要考慮Z軸坐標(biāo)。
圖4 Gcode文件中的5種指令形式
通過(guò)從Gcode文件中循環(huán)讀入每一行指令,當(dāng)每行以G0/G1開(kāi)頭時(shí),找出每行指令中X,Y,Z,E字符的坐標(biāo)位置,循環(huán)讀入兩位置之間的數(shù),并依次加權(quán)累加,由此得出上述指令中所有的X軸和Y軸坐標(biāo)值。為了后續(xù)處理的邏輯性,給以上提取出的坐標(biāo)點(diǎn)進(jìn)一步分類(lèi)。首先將打印點(diǎn)和跳轉(zhuǎn)點(diǎn)進(jìn)行區(qū)分,加入?yún)?shù)1/0,在坐標(biāo)值后用1表示G1打印點(diǎn),用0表示G0跳轉(zhuǎn)點(diǎn)。每個(gè)模型在3D打印過(guò)程中都有輪廓部分和填充部分,添加第二參數(shù)W/F,將兩者進(jìn)行區(qū)分。W為輪廓坐標(biāo)點(diǎn),F為填充坐標(biāo)點(diǎn)。數(shù)據(jù)處理結(jié)果如圖5所示。
圖5 提取分類(lèi)后的數(shù)據(jù)結(jié)果
根據(jù)數(shù)據(jù)結(jié)果后的兩個(gè)參數(shù)標(biāo)識(shí)來(lái)區(qū)分,共有4種類(lèi)型的坐標(biāo)點(diǎn)。
Class={W0,W1,F0,F1}
(1)
式中:Class為所有類(lèi)型坐標(biāo)點(diǎn)的集合;W0為輪廓跳轉(zhuǎn)點(diǎn);W1為輪廓打印點(diǎn);F0為填充跳轉(zhuǎn)點(diǎn);F1為填充打印點(diǎn)。
研究單點(diǎn)無(wú)法判斷其在打印過(guò)程中的位置和作用,需要聯(lián)系前后點(diǎn)進(jìn)行識(shí)別。實(shí)際應(yīng)用中這4種坐標(biāo)點(diǎn)有8種排列形式:
CPP={W0-W1,W1-W1}
(2)
CJP={W1-W0,W0-W0}
(3)
FP={F0-F1,F1-F0}
(4)
CP={F0-W1,W0-F1}
(5)
集合CPP表示輪廓打印點(diǎn),在W0-W1,W1-W1的排列中后者W1為輪廓打印點(diǎn)。集合CJP為輪廓跳轉(zhuǎn)點(diǎn),在W1-W0,W0-W0的排列中后者W0為輪廓跳轉(zhuǎn)點(diǎn)。集合FP為直線填充點(diǎn)。集合CP為輪廓部分和填充部分的銜接點(diǎn)。在打印輪廓的過(guò)程中,直線線段由收尾兩點(diǎn)連接而成。分析所有輪廓均為直線型情況,如圖6所示,由原點(diǎn)跳轉(zhuǎn)到W0處,按圖示箭頭方向依次經(jīng)過(guò)每一個(gè)實(shí)際打印點(diǎn)W1,直至回到起始點(diǎn)完成閉合輪廓。在此情況下的W0與W1都是實(shí)際打印點(diǎn),都需要獲取,得到完整碾壓軌跡后,根據(jù)整體軌跡算出每次轉(zhuǎn)折點(diǎn)的角度值α,β。
圖6 直線型輪廓壓力軌跡
3D打印在切片過(guò)程中將曲線型軌跡離散為許多折線段,離散度越高,曲線打印精度越高。處理曲線時(shí)若仍按照直線型軌跡的處理方法,則要求壓力裝置不停重復(fù)抬起旋轉(zhuǎn)落下碾壓的過(guò)程,如此不僅可能造成碾壓裝置不能及時(shí)變角度產(chǎn)生碾壓延遲,長(zhǎng)時(shí)間更會(huì)損壞壓力裝置?;谶@一問(wèn)題,筆者提出一種將曲線擬合成一定長(zhǎng)度的折線段的設(shè)計(jì)思路來(lái)解決曲線輪廓的問(wèn)題。
由于壓力軌跡在直線和曲線上的處理方式不同,需要先將打印直線的點(diǎn)和打印曲線的點(diǎn)分開(kāi)。而唯一區(qū)分直線和曲線的標(biāo)準(zhǔn)就是線段的長(zhǎng)度。通過(guò)對(duì)3D打印機(jī)尺寸大小和對(duì)不同模型的切片結(jié)果分析,得到一個(gè)長(zhǎng)度的分界值(limitValue),若兩點(diǎn)間的距離(length(i,i+1))滿(mǎn)足式(6)則為直線型部分,若滿(mǎn)足條件(7)認(rèn)為進(jìn)入曲線,若符合條件(8),則這些點(diǎn)忽略不計(jì)。
length(i,i+1)≥limitValue
(6)
length(i,i+1)≤limitValuei≤i≤i+2
(7)
length(i,i+1)≤limitValve
(8)
orlength(i,i+1)≤limitValuei≤i≤i+1
將曲線折線化并保證相同的碾壓效果,就需使曲線上所有點(diǎn)都在按照直線碾壓的碾壓軌跡范圍內(nèi),這依賴(lài)于滾輪有一定的寬度,滾輪寬度越寬,曲線就能分為更少的折線段。故可得出如下關(guān)系:若某一曲線段內(nèi)所有曲線點(diǎn)到該曲線段首尾連成的線段距離小于滾輪寬度的一半(width),則可以用這段直線代替該段曲線,依照這一關(guān)系處理打印輪廓的曲線部分。
具體算法過(guò)程如下:
(1)如果滿(mǎn)足式(7),則曲線從i(x,y)點(diǎn)開(kāi)始。
(2)判斷式(9)直至不滿(mǎn)足式(9),則曲線的終點(diǎn)為j(x,y),即曲線上共有j-i+1個(gè)點(diǎn),j-i條線段。
length(j,j+1)≤limitValue
(j=i+n,n=3,4,5,…)
(9)
(3)根據(jù)式(10)依次判斷點(diǎn)到線段距離,過(guò)程如圖7所示。
Distance(x+i(x,x+j))≤width
(10)
(Distance為點(diǎn)到直線距離,且0
(4)直到不滿(mǎn)足式(10),記入x+j-1,隨后執(zhí)行式(11)后,重復(fù)第3步,直至遇到曲線終點(diǎn)j(x,y)。
i=j-1
(11)
(5)若曲線不能按照寬度均分,則將曲線余下的點(diǎn)歸為一條直線。
圖7 曲線折線化判定點(diǎn)示意圖
至此完成了曲線型輪廓到折線型輪廓的等效碾壓替換。完成模型輪廓部分的所有壓力軌跡的處理。
3D打印有許多填充方式,如直線型填充,Z字填充,網(wǎng)格填充等。采用最常見(jiàn)的直線型填充,其打印方式如圖8所示,直線填充打印點(diǎn)F1和直線填充跳轉(zhuǎn)點(diǎn)F0交替出現(xiàn),按圖示箭頭方向打印直線填充軌跡,F(xiàn)1,F(xiàn)0點(diǎn)都需要記入,但壓力裝置只需在所有F1點(diǎn)旋轉(zhuǎn)180°,F(xiàn)0點(diǎn)不動(dòng)作即可碾壓到每一根直線填充軌跡。
圖8 45°直線填充打印軌跡
根據(jù)上述處理得出的完整壓力軌跡計(jì)算壓力裝置轉(zhuǎn)向坐標(biāo)點(diǎn)及相應(yīng)角度。在同一輪廓軌跡與同一填充軌跡上的轉(zhuǎn)折點(diǎn)角度變化上面已經(jīng)敘述過(guò)。但從輪廓到輪廓的跳轉(zhuǎn)以及從輪廓到填充,從填充到輪廓的跳轉(zhuǎn)角度也需要獲取,下面結(jié)合圖9詳述。
圖9 完整壓力軌跡角度轉(zhuǎn)換示意圖
圖9為三維模型部分打印軌跡的簡(jiǎn)化圖,輪廓部分包括打印范圍墻和里層模型外墻兩層。由初始點(diǎn)B開(kāi)始打印,按箭頭所示逆時(shí)針?lè)较虼蛴』氐紹點(diǎn)完成范圍墻打印,其中角度獲取即為直線型輪廓角度獲取法。然后從B點(diǎn)跳轉(zhuǎn)到C點(diǎn)開(kāi)始打印內(nèi)圈輪廓,此刻在B點(diǎn)壓力裝置需要變向以完成從線段AB到線段CD的碾壓轉(zhuǎn)換。θ1為AB與CD的夾角,故在B點(diǎn)旋轉(zhuǎn)θ1角度后,壓力裝置隨即進(jìn)入軌跡CD進(jìn)行對(duì)內(nèi)圈的碾壓,即從C點(diǎn)起逆時(shí)針碾壓回C點(diǎn),至此完成內(nèi)外兩層輪廓的碾壓。下面將從輪廓進(jìn)入到填充,此刻點(diǎn)C為內(nèi)層輪廓到填充線的跳轉(zhuǎn)點(diǎn),θ2為EC與CG的夾角,在C點(diǎn)轉(zhuǎn)動(dòng)角度θ2,轉(zhuǎn)向后即可垂直碾壓第一條填充線CG。后續(xù)按照直線填充的碾壓方式,在F1填充打印點(diǎn)旋轉(zhuǎn)180°,在F0填充跳轉(zhuǎn)點(diǎn)不動(dòng)作,即可完成模型第一層碾壓。然后逐層碾壓直至打印結(jié)束。至此完成壓力裝置對(duì)所有碳纖維打印絲束的實(shí)時(shí)跟蹤碾壓。
測(cè)試樣件選擇如圖10所示的模型,為測(cè)試算法對(duì)不同線型軌跡的處理效果,故選擇外圍輪廓直線曲線相鄰的模型。由于每層處理方式均相同,為簡(jiǎn)化數(shù)據(jù),選擇模型厚度為1 mm,以0.2 mm的層高進(jìn)行打印,共5層。
圖10 測(cè)試樣件三維模型圖
由于數(shù)據(jù)表格長(zhǎng)度有限,將內(nèi)圈三層輪廓線簡(jiǎn)化為一圈輪廓線,圖11的數(shù)據(jù)處理結(jié)果如表1所示。
圖11 測(cè)試樣件部分打印軌跡示意圖
表1 測(cè)試樣件壓力軌跡部分?jǐn)?shù)據(jù)結(jié)果
在表1中,提取Gcode文件中的坐標(biāo)點(diǎn)分類(lèi)處理,將打印軌跡的曲線部分轉(zhuǎn)化為折線。表1第一列第三行中,原有曲線軌跡打印點(diǎn)有49個(gè),處理后僅有3個(gè)點(diǎn),第九行中也將外墻曲線部分43個(gè)打印點(diǎn)減少為2個(gè),均極大減少了壓力裝置在曲線部分的轉(zhuǎn)向次數(shù)。表1中第三列得出在每個(gè)轉(zhuǎn)折點(diǎn)對(duì)應(yīng)的轉(zhuǎn)向角度,由于第一個(gè)點(diǎn)的旋轉(zhuǎn)角度依賴(lài)于碾壓裝置的起始設(shè)置,故沒(méi)有得出明確角度。除此之外,由外圈輪廓到內(nèi)圈輪廓的跳轉(zhuǎn)角度為90°,內(nèi)圈輪廓到填充部分的跳轉(zhuǎn)角度為135°,打印直線填充時(shí),在F1點(diǎn)旋轉(zhuǎn)180°,F(xiàn)0點(diǎn)不轉(zhuǎn)動(dòng),和理論推測(cè)一致,故壓力軌跡算法測(cè)試結(jié)果正確無(wú)誤。
以圖10的三維模型為例驗(yàn)證該算法,圖11是三維模型經(jīng)過(guò)切片處理得到Gcode文件的部分打印軌跡,將Gcode文件使用壓力軌跡算法進(jìn)行處理,得出如圖12所示的對(duì)應(yīng)壓力軌跡圖。從圖12中可以清晰地看到打印軌跡的曲線部分被處理為有限個(gè)折線段,避免了壓力裝置不停旋轉(zhuǎn)角度的問(wèn)題,且保證所有打印點(diǎn)均可被碾壓到,將該算法應(yīng)用于3D打印機(jī)的壓力裝置中,將對(duì)所有打印軌跡進(jìn)行實(shí)時(shí)跟蹤碾壓。
圖12 測(cè)試樣件部分壓力軌跡示意圖
使用圖13所示的增設(shè)壓力裝置的連續(xù)碳纖維3D打印機(jī)進(jìn)行打印實(shí)驗(yàn)。實(shí)驗(yàn)使用長(zhǎng)77 mm,寬13 mm,高2 mm的長(zhǎng)方體數(shù)學(xué)模型進(jìn)行測(cè)試,碳纖維材料的直徑為0.5 mm,分別在施壓和未施壓條件下進(jìn)行打印。
圖13 增設(shè)壓力裝置的連續(xù)碳纖維3D打印機(jī)
圖14為在未施壓狀態(tài)下打印,高度2 mm共打印5層,層高0.4 mm。圖15為在施加壓力下打印,此時(shí)碳纖維材料被碾壓,打印高度2 mm共7層,層高0.286 mm。在滿(mǎn)足模型尺寸的前提下,施壓后的成型件層數(shù)大于未施壓的層數(shù),層間更密集,性能更佳。
圖14 施壓前的連續(xù)碳纖維3D打印樣件
圖15 施壓后的連續(xù)碳纖維3D打印樣件
使用電子萬(wàn)能試驗(yàn)機(jī)對(duì)打印樣件進(jìn)行具體性能測(cè)試。得到圖16和圖17施壓前后測(cè)試件的拉伸和彎曲應(yīng)力時(shí)間曲線圖。
圖16 施壓前的打印件性能測(cè)試應(yīng)力時(shí)間曲線
圖17 施壓后的打印件性能測(cè)試應(yīng)力時(shí)間曲線
測(cè)試件在逐漸施加力的過(guò)程中斷裂,電子萬(wàn)能試驗(yàn)機(jī)由應(yīng)力曲線圖得到的最大破壞載荷計(jì)算出拉伸強(qiáng)度和彎曲強(qiáng)度。如表2所示。未施壓測(cè)試件的拉伸強(qiáng)度為89.21 MPa,施壓后的拉伸強(qiáng)度為212.42 MPa,施壓后的拉伸強(qiáng)度增加了138.11%。未施壓測(cè)試件的彎曲強(qiáng)度為68.47 MPa,施壓后的彎曲強(qiáng)度為230.40 MPa,施壓后的彎曲強(qiáng)度增加了236.50%,由此可得出施加壓力明顯提高了連續(xù)碳纖維3D打印件的力學(xué)性能。對(duì)施加壓力的大小進(jìn)行調(diào)整,可打印出不同致密性的碳纖維打印件,以滿(mǎn)足不同性能需求。
表2 施壓前后測(cè)試件性能參數(shù)表
針對(duì)連續(xù)碳纖維在3D打印過(guò)程中相鄰層無(wú)法緊密粘連,導(dǎo)致打印件的致密性和力學(xué)性能大幅度下降的問(wèn)題,提出基于碳纖維3D打印壓力裝置的壓力軌跡實(shí)時(shí)跟蹤算法。該算法完成了滾輪碾壓裝置的軌跡處理,確認(rèn)了壓力裝置進(jìn)行旋轉(zhuǎn)動(dòng)作的位置及角度,保證了3D打印機(jī)滾輪壓力裝置對(duì)連續(xù)碳纖維的實(shí)時(shí)精確跟蹤碾壓。根據(jù)壓力軌跡算法的數(shù)據(jù)處理分析及仿真圖線驗(yàn)證了算法的正確性與可行性,符合連續(xù)碳纖維3D打印滾輪壓力裝置的要求。打印實(shí)驗(yàn)結(jié)果表明,施壓后測(cè)試件的拉伸強(qiáng)度和彎曲強(qiáng)度較未施壓測(cè)試件的對(duì)應(yīng)參數(shù)增加了138.11%和236.50%。實(shí)驗(yàn)數(shù)據(jù)證明了施壓后連續(xù)碳纖維打印件力學(xué)性能明顯提升。該算法為提高連續(xù)碳纖維打印件的致密性,增強(qiáng)連續(xù)碳纖維打印件的質(zhì)量,增加其應(yīng)用廣度,擴(kuò)展其應(yīng)用領(lǐng)域提供了參考。