姜化凱 于文強(qiáng)
(山東理工大學(xué)機(jī)械工程學(xué)院,山東 淄博 255000)
?
基于FDM成型工藝的適應(yīng)性分層方法研究
姜化凱于文強(qiáng)
(山東理工大學(xué)機(jī)械工程學(xué)院,山東 淄博 255000)
為了兼顧FDM快速成型工藝的精度和效率,提出基于STL模型的適應(yīng)性分層方法。從FDM快速成型工藝的特殊性和STL文件的數(shù)據(jù)結(jié)構(gòu)特點(diǎn)出發(fā),提出了不同F(xiàn)DM設(shè)備的最佳適應(yīng)性層厚范圍的理論計(jì)算方法,并針對STL格式文件中三角形面之間相互孤立、相鄰三角形信息冗余度高和相鄰兩層之間信息繼承性高的特點(diǎn),采用了按三角形高度分組并建立自由三角形表及其動態(tài)拓?fù)浣Y(jié)構(gòu)求閉環(huán)輪廓的方法,適應(yīng)性層厚根據(jù)同一面上相鄰兩層上的閉環(huán)輪廓長度差值比率來確定。結(jié)果表明,在提高成型精度的前提下,分層效率同時(shí)得到保證。
FDM;適應(yīng)性分層;自由三角形表;動態(tài)拓?fù)?/p>
熔融沉積成型(FDM)的分層方法有等厚度和適應(yīng)性分層兩種[1-2]。等厚度分層存在精度失效率這一現(xiàn)象;適應(yīng)性分層在分層方向上,能夠根據(jù)零件的表面輪廓形狀自動地改變分層厚度,兼顧了成型效率和精度。在熔融沉積成型工藝過程中,熱塑性材料通過噴頭時(shí)被加熱擠壓成熔融狀態(tài)的細(xì)絲,噴頭按照CAD模型分層后的二維層面上的信息運(yùn)動,沿分層方向?qū)訉佣逊e成型。因此,CAD模型的分層效果直接決定了零件成型時(shí)的精度和效率。CAD模型經(jīng)過表面三角離散化后就形成了FDM快速成型工藝中最常用的STL格式文件,它表現(xiàn)為一組無序的三角形集合?;赟TL模型的適應(yīng)性分層效率主要取決于:搜索與分層平面相交三角形、閉環(huán)輪廓和適應(yīng)性層厚計(jì)算等方面。
目前搜索相交三角形主要有基于全局拓?fù)湫畔⒑腿切螏缀翁卣鲀煞N[3-4],前者建立全局拓?fù)潢P(guān)系相當(dāng)耗時(shí),后者需要對三角形在分層方向上進(jìn)行高低位置排序且求出的交點(diǎn)還需排序;適應(yīng)性層厚的計(jì)算目前主要有相鄰兩層面積差比率法、表面曲率法和頂尖誤差法,計(jì)算閉環(huán)輪廓面積采用三角形分割耗時(shí)多而用掃描線求解精度不高,曲率求解困難且一層上要計(jì)算多點(diǎn)的曲率,頂尖高度計(jì)算法公式多而復(fù)雜[5-7]。本文計(jì)算了理論上FDM快速成型的適應(yīng)性分層過程中的最大和最小層厚,采用最大層厚值將所有三角形分組并建立自由三角形表減少三角形的搜索次數(shù),適應(yīng)性層厚計(jì)算采用相鄰兩層閉環(huán)輪廓長度差比率的方法,有效提高了分層效率。
受成型設(shè)備自身的條件限制,不同的FDM成型設(shè)備可允許的最大和最小分層厚度不同,具體表現(xiàn)為噴嘴直徑的不同和所用耗材的不同。耗材經(jīng)送絲機(jī)構(gòu)進(jìn)入噴頭被加熱至熔融態(tài),以熔融態(tài)細(xì)絲形式從噴嘴處擠出落到加工層面上。細(xì)絲從噴嘴處被擠出那一刻到其上下左右都有細(xì)絲覆蓋時(shí),細(xì)絲的橫截面形狀由最初的圓形變成橢圓形最后受到力的擠壓作用變形成帶圓角的矩形。截面形狀變化過程如圖1所示。
聚乳酸(PLA)材料是由可再生植物資源中的淀粉制成的生物降解材料,成型溫度200 ℃左右、無刺鼻性氣味、收縮率低。在實(shí)際成型中細(xì)絲在橫截面形狀的變化過程中截面面積變化不大,在這里假定圖1所示的各過程中截面面積相等來計(jì)算層厚范圍,式(1)是面積計(jì)算公式,式(2)是計(jì)算截面高度的公式。
(1)
(2)
式中:d是噴嘴直徑;β是PLA材料的面熱膨脹系數(shù);Δt是溫差;a、b是橢圓長、短半軸長度;a1、b1是圓角矩形的長和高(厚)。
PLA材料在205 ℃的成型溫度下線熱膨脹系數(shù)α=260×10-6[8]。在測量PLA材料線熱膨脹系數(shù)時(shí)試體為一長方體 ,邊長為L1,底面積為S1。當(dāng)溫度由T1升到T2時(shí),長度變?yōu)長2,底面積變?yōu)镾2,下面是由線膨脹系數(shù)α推導(dǎo)面膨脹系數(shù)β的計(jì)算過程。
(3)
(4)
由于式(4)中線膨脹系數(shù)較小,可忽略高階無窮小,取一階近似:β=2α。已知橫截面的最佳長高比a1/b1的范圍在3.5到6之間[9],即3.5≤a1/b1≤6,Δt取200 ℃,當(dāng)a1/b1的值取3.5時(shí),可以求得最大層厚值。
(5)
當(dāng)a1/b1的值取6時(shí),可以求得最小層厚值。
(6)
由式(5)、(6)可知,F(xiàn)DM設(shè)備在使用PLA耗材時(shí)不同的噴嘴直徑d對應(yīng)的理論最佳層厚范圍是:[0.380 1d,0.497 7d]。
STL格式文件最先由3D System公司發(fā)明,它是由充滿模型表面的無序三角形組成,相鄰兩個(gè)三角形共用兩個(gè)頂點(diǎn),每個(gè)頂點(diǎn)至少被3個(gè)三角形共用,其中每個(gè)三角形又包括3個(gè)頂點(diǎn)坐標(biāo)和右手法則定義下的朝模型外側(cè)的法矢量,這就容易在分層過程中產(chǎn)生冗余數(shù)據(jù)[10-11]。
由于STL模型上所有的三角形之間沒有幾何拓?fù)潢P(guān)系,所以能否高效地尋找與分層平面相交的所有三角形是提升分層效率的關(guān)鍵。首先,按三角形的高低位置將所有的三角形分組,大體確定三角形位置;其次,建立自由三角形表直接得到與分層平面相交的三角形;最后,把相交三角形的數(shù)據(jù)信息建立鏈表分類處理,創(chuàng)建動態(tài)拓?fù)浣Y(jié)構(gòu)得到閉環(huán)輪廓。
2.1三角形分組規(guī)則
在STL文件中,每個(gè)三角形都存儲有3個(gè)頂點(diǎn)的坐標(biāo)值,在分層方向上把3個(gè)頂點(diǎn)中高度最小點(diǎn)的Z坐標(biāo)值稱之為該三角形的高度。根據(jù)三角形的高度不同,將所有的三角形在Z方向上由低到高分組,分組按照FDM設(shè)備允許的最大加工層厚為每組的長度。這樣做是為了使每個(gè)三角形都有精確的分組位置,在尋找與當(dāng)前分層平面相交的三角形時(shí)就可以減小搜索范圍,同時(shí)也避免三角形被重復(fù)搜索計(jì)算而盡可能地減少冗余數(shù)據(jù)。
如圖2所示,水平的直線就是分組界限,每兩條平行直線之間為一組且距離就是最大層厚值的大小。每個(gè)三角形的最低點(diǎn)的Z坐標(biāo)值代表它的高度,如果一個(gè)三角形的高度出現(xiàn)在高度(Hi-1~Hi)這個(gè)范圍內(nèi),那么該三角形屬于第i組內(nèi)。這樣的分組方法使得出現(xiàn)在組內(nèi)的每個(gè)三角形都是首次出現(xiàn)的三角形。表1是圖2所示的STL模型局部三角形分組情況表。
表1三角形分組
組別所含三角形編號i1、2、3、4、7、8i+15、6、9、10、11、15i+212、13、14
2.2自由三角表的建立
由于STL模型上某些三角形會跨越多個(gè)組別,如果只搜索分層平面所處組別中的三角形就會丟失數(shù)據(jù)使精度下降甚至出錯(cuò)[12]。這就需要在搜索第一層上的三角形時(shí)建立一個(gè)對象來儲存與當(dāng)前層相交的三角形,當(dāng)搜索下一層面上的相交三角形時(shí),除搜索新加入的組別中的三角形還要繼續(xù)沿用上一層上的相交三角形。這個(gè)對象就是自由三角形表,自由三角形表就是與當(dāng)前層所有相交的三角形的集合,是不斷更新的。這些三角形包括:上一層中的相交三角形除去那些最高點(diǎn)坐標(biāo)小于當(dāng)前分層平面的和當(dāng)前分層平面所處分組中那些三角形高度大于分層平面高度的。
適應(yīng)性分層首先以最大加工厚度對第一層進(jìn)行分層,由于分層平面處于第一組內(nèi),把第一組內(nèi)的三角形全部存入自由三角形表。第一層分層結(jié)束后進(jìn)行下一層上的分層工作,與第二層上的分層平面相交的三角形一部分來自分層平面所處的組內(nèi)的三角形,還有一部分可能來自上一層上的自由三角形表中,舍去上一層自由三角形表中那些三角形的最高點(diǎn)的Z坐標(biāo)值小于分層平面高度的三角形和本組中三角形高度大于分層平面高度的三角形,其中本組中不符合條件的三角形存入下一組。把這兩部分的三角形重新賦給新的自由三角形表,即為第二層上的自由三角形表。把第i層上的自由三角形表用Ti表示,該層所處的組別是Gi,那么當(dāng)前層上的自由三角形表就可以表示為:
Ti=Ti-1-F+Gi-F′
(7)
式中:F代表上一層的自由三角形表中位于分層平面下方的三角形;F′表示當(dāng)前組別中高度值大于分層平面高度的那些三角形。
自由三角形表隨著分層平面的升高不斷有新的三角形加入也有不符合條件的三角形被刪除,自由三角形表的存在大大減少了分層平面與三角形位置關(guān)系的判斷次數(shù)。
2.3動態(tài)拓?fù)浣Y(jié)構(gòu)創(chuàng)建
動態(tài)拓?fù)鋭?chuàng)建的數(shù)據(jù)結(jié)構(gòu)有3類,分別為點(diǎn)(Vertex)、邊(Edge)和面(Facet)。建立這三類數(shù)據(jù)結(jié)構(gòu)的雙向循環(huán)鏈表:點(diǎn)表(VertexList)、邊表(EdgeList)、面表(FacetList)。
雙向循環(huán)鏈表節(jié)點(diǎn)結(jié)構(gòu)體定義:
typedef struct NameList
{
DataType data;
struct NameList *next;
struct NameList *prev;
}
每個(gè)節(jié)點(diǎn)結(jié)構(gòu)體內(nèi)定義了指向前后節(jié)點(diǎn)的前驅(qū)指針*prev、后繼指針*next和數(shù)據(jù)信息(data)。點(diǎn)表儲存每個(gè)點(diǎn)的3個(gè)坐標(biāo)(floatv1,v2,v3)和索引號(VIndex),邊表儲存每條邊的兩個(gè)端點(diǎn)的索引號(EVIndex)和共享該邊的兩個(gè)三角形的索引號(EFIndex),面表儲存組成三角形三邊的索引號(EIndex)和該三角形的索引號(FIndex)。圖3是雙向循環(huán)鏈表的結(jié)構(gòu)圖。下面是動態(tài)拓?fù)浣Y(jié)構(gòu)的構(gòu)建過程。
(1)首先建立第一層上的拓?fù)潢P(guān)系,從第一層的自由三角形表中任選一個(gè)三角形,將三角形的三點(diǎn)、三邊及面賦初始索引值并將相應(yīng)數(shù)據(jù)存入三個(gè)鏈表中。
(2)搜索下一個(gè)三角形,若三角形的點(diǎn)與已存在的點(diǎn)表中有重復(fù),則把點(diǎn)表中的索引值賦給該三角形中共享該點(diǎn)的兩條邊的索引EVIndex;若沒有,則表示該點(diǎn)是一個(gè)新出現(xiàn)的點(diǎn),則給該點(diǎn)賦新索引值并添加到VertexList中,同時(shí)將新索引值賦給共享該點(diǎn)的兩條邊的EVIndex。依次遍歷該三角形的三點(diǎn)。
(3)搜索三邊中的一邊,判斷邊表中有無該邊。若有則將邊表中的邊索引號賦給面表中該三角形的FEIndex1并把該三角形面表的索引號賦給EFIndex2;若沒有則表示該邊是新出現(xiàn)的邊,則給該邊賦新索引值并添加至EdgeList中,同時(shí)將該三角形的面索引號賦給該邊的EFIndex1。依次遍歷該三角形中的三邊。
(4)讀取該層上自由三角形表中的所有三角形,至此該層上的拓?fù)浣Y(jié)構(gòu)完畢。
如果下一層的自由三角形表無新三角形加入,則沿用上一層上的拓?fù)浣Y(jié)構(gòu)。若有更新則按照上面的方法,將新增的三角形的3類數(shù)據(jù)進(jìn)行相應(yīng)的鏈表更新,那些已被判定為不與分層平面相交的三角形將其從FacetList鏈表中刪除。
表2拓?fù)浣Y(jié)構(gòu)
三角形點(diǎn)索引值邊索引值相鄰三角形索引值F10、1、20、1、21、5F21、2、32、3、40、2F32、3、44、5、61、3F43、4、56、7、82、4F50、4、58、9、113、5F60、1、50、10、110、4
圖4表示的是某層上的能夠閉合的三角形環(huán)結(jié)構(gòu),表2表示的是圖4結(jié)構(gòu)的拓?fù)潢P(guān)系,其中每類數(shù)據(jù)的索引值從0開始遞增,即V1、E1和F1的索引值都為0。
3.1閉環(huán)輪廓的計(jì)算
(8)
按照拓?fù)湫畔⒁来斡?jì)算相鄰三角形各邊與分層平面的交點(diǎn),直至首尾相接完成一個(gè)封閉環(huán)。有些層面上可能有多個(gè)閉環(huán)輪廓,繼續(xù)搜索自由三角形表中剩余的三角形求出所有的閉環(huán)輪廓為止。
3.2分層厚度計(jì)算
在第1節(jié)中計(jì)算了理論上的PLA材料在FDM成型工藝中設(shè)備所允許的最小和最大加工厚度,適應(yīng)性分層就是在這個(gè)加工范圍之內(nèi)根據(jù)表面形狀變化自動地計(jì)算分層厚度,以減小階梯誤差。目前適應(yīng)性層厚計(jì)算的方法主要有基于模型表面曲率的方法,該方法是通過計(jì)算模型表面輪廓上各點(diǎn)的曲率值來確定分層厚度,在輪廓上的點(diǎn)的曲率計(jì)算是比較困難的,且一個(gè)層面上要對多個(gè)點(diǎn)進(jìn)行計(jì)算這就加大了算法的復(fù)雜程度;基于面積變化率的方法是比較相鄰兩層面積差值大小進(jìn)而改變分層厚度,在求面積的時(shí)候如果采用三角形分割截面圖形那么計(jì)算量會很大,如果用掃描線求面積則精度難以保證;基于頂尖高度誤差的計(jì)算方法計(jì)算公式多而繁瑣。所以提出基于同一表面相鄰兩層之間閉環(huán)輪廓長度差值比率的判斷方法來計(jì)算當(dāng)前分層層厚。
由于在求閉環(huán)輪廓的時(shí)候已經(jīng)建立了動態(tài)拓?fù)浣Y(jié)構(gòu),且求交后得到的點(diǎn)是有序的,因此就可以利用兩點(diǎn)之間的距離公式計(jì)算出兩點(diǎn)之間的距離,把相鄰的所有的線段長度相加就得到了閉環(huán)輪廓的長度。根據(jù)相鄰兩層在同一個(gè)表面上的閉環(huán)輪廓的長度差值比率來控制分層厚度。給定相鄰兩層最大長度差值比率為[η],當(dāng)比率小于[η]則沿用最大層厚,否則將減小分層厚度。
(9)
(10)
式(9)是閉環(huán)輪廓的長度計(jì)算公式,i代表的是有動態(tài)拓?fù)浣Y(jié)構(gòu)求交后的有序點(diǎn)的序號;式(10)是相鄰兩層之間閉環(huán)輪廓長度的差值比率,其中Li代表第i層上的閉環(huán)輪廓長度。
基于STL格式文件的FDM成型工藝的適應(yīng)性分層方法步驟如下:
(1)讀取STL數(shù)據(jù)文件,獲取模型的高度值。
(2)借助最大層厚值將模型上的所有三角形分組。
(3)建立自由三角形表并構(gòu)建其動態(tài)拓?fù)浣Y(jié)構(gòu)。
(4)分層平面與三角形求交點(diǎn),得出當(dāng)前層閉環(huán)輪廓并計(jì)算長度。
(5)判斷當(dāng)前層閉環(huán)輪廓與上一層長度差值比率并與[η]比較,若大于給定值則改變層厚并返回步驟(3),否則繼續(xù)步驟(6)。
(6)當(dāng)前層上成型。
(7)判斷分層平面的高度是否大于模型高度,若大于則成型結(jié)束,否則返回步驟(3)。
本文算法已經(jīng)通過VC++6.0和OpenGL實(shí)現(xiàn)。圖6是1個(gè)以STL格式表示的CAD模型[13],模型含960個(gè)三角形面,482個(gè)頂點(diǎn),1 440條邊,模型高度28.27 mm,表面積約24.913 3 cm2,體積11.645 9 cm3,F(xiàn)DM設(shè)備噴嘴直徑0.5 mm。圖7~9和表3是對圖6模型進(jìn)行不同分層情況的比較。
表3不同分層方式對比
分層方式層厚值/mm層數(shù)耗時(shí)/s精度最小值等厚度0.191491.594高最大值等厚度0.251141.371低適應(yīng)性分層0.19~0.251331.412高
通過截面形狀變化規(guī)律結(jié)合噴嘴直徑以及耗材膨脹系數(shù)求得最大和最小層厚,為FDM后續(xù)適應(yīng)性分層提供了理論取值范圍。
以最大分層厚度值對STL模型上的三角形分組并建立自由三角形表和其動態(tài)拓?fù)潢P(guān)系,自由表的建立減少了分層平面與相交三角形位置關(guān)系判斷次數(shù),動態(tài)拓?fù)浣Y(jié)構(gòu)直接獲得了有序交點(diǎn)提高了分層效率。
相鄰閉環(huán)輪廓長度差值比率的層厚計(jì)算方法,直接沿用了動態(tài)拓?fù)浣Y(jié)構(gòu)求交后獲得的有序交點(diǎn),利用該方法確定當(dāng)前層加工層厚簡單有效。
[1]趙吉賓, 劉偉軍. 快速成形技術(shù)中基于STL模型的分層算法研究[J]. 應(yīng)用基礎(chǔ)與工程科學(xué)學(xué)報(bào), 2008, 16(2):224-233.
[2]張嘉易, 劉偉軍, 王天然. 三維模型的適應(yīng)性切片方法研究[J]. 中國機(jī)械工程, 2003, 14(9):750-752.
[3]謝存禧, 李仲陽, 成曉陽. STL文件毗鄰關(guān)系的建立與切片算法研究[J]. 華南理工大學(xué)學(xué)報(bào), 2000, 28(3):33-38.
[4]胡德洲, 李占利, 李滌塵,等. 基于STL模型幾何特征分類的快速分層處理算法研究[J]. 西安交通大學(xué)學(xué)報(bào), 2000, 34(1):37-40.
[5]畢曉亮, 朱昌明, 侯麗雅.快速成型中的自適應(yīng)切片方法研究[J]. 計(jì)算機(jī)應(yīng)用研究,2002, 19(4):21-22.
[6]周巖, 盧清萍, 郭戈,等.快速原型技術(shù)(RP)中的自適應(yīng)分層[J]. 昆明理工大學(xué)學(xué)報(bào):自然科學(xué)版,2001,26(4):51-54.
[7]黎步松, 周鋼, 王從軍,等. 基于STL文件格式的實(shí)體分割算法研究與實(shí)現(xiàn)[J]. 華中科技大學(xué)學(xué)報(bào):自然科學(xué)版, 2002, 30(3):40-42.
[8]李明珠. 納米纖維素/聚乳酸復(fù)合材料的制備與研究[J].塑料工業(yè),2012,40(7):17-20.
[9]吳大鳴 劉穎 李曉林. 精密擠出成型原理及技術(shù)[M].北京:化學(xué)工業(yè)出版社, 2004.
[10]Szilvi-Nagy M, si, Gy. Analysis of STL files[J]. Mathematical & Computer Modelling, 2003, 38(7-9):945-960.
[11]趙保軍, 汪蘇, 陳五一. STL數(shù)據(jù)模型的快速切片算法[J]. 北京航空航天大學(xué)學(xué)報(bào), 2004, 30(4):329-333.
[12]周華民, 成學(xué)文, 劉芬,等. STL文件錯(cuò)誤的修復(fù)算法研究[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2005, 17(4):761-767.
[13]陳太喜, 方亮, 劉艷偉,等. 基于OpenGL的STL數(shù)據(jù)模型建模方法[J]. 機(jī)床與液壓, 2009, 37(3):155-158.
如果您想發(fā)表對本文的看法,請將文章編號填入讀者意見調(diào)查表中的相應(yīng)位置。
Research on the method of adaptive slicing based on FDM
JIANG Huakai, YU Wenqiang
(School of Mechanical Engineering,Shandong University of Technology,Zibo 255000,CHN)
In order to take into account the accuracy and efficiency of the FDM rapid prototyping, an adaptive slicing method based on STL model is proposed. Starting from the special characteristics of FDM rapid prototyping and the characteristics of the data structure of STL file, a theoretical calculation method for the adaptive slicing thickness range of different FDM devices is proposed. Based on the STL format file, the high degree of information redundancy between adjacent two layers is high and the information inheritance between the adjacent triangles is high. Proposed establish free triangle table and its dynamic topology structure to solve the closed loop profile. The thickness of slicing maximum and minimum of the FDM device are calculated, and the adaptive slicing thickness is controlled by the ratio of the length of the closed loop profile of two adjacent layers on the same surface. The results show that, under the premise of improving the molding precision, the efficiency of the delamination can be guaranteed.
FDM; adaptive slicing; free triangle table; dynamic topology
TP391
A
10.19287/j.cnki.1005-2402.2016.10.006
姜化凱,男,1991年生,碩士,研究方向?yàn)榭焖俪尚?、增材制造技術(shù)。
(編輯陳綱)
2016-06-21)
161010