周惠群,吳建軍
(西北工業(yè)大學(xué)現(xiàn)代設(shè)計與集成制造技術(shù)教育部重點實驗室,陜西西安710072)
快速成形又稱分層制造,是20世紀(jì)80年代末產(chǎn)生和發(fā)展起來的新型制造技術(shù)??焖俪尚卧O(shè)備根據(jù)零件的定向分層CAD模型中的某一層片的二維輪廓信息自動生成截面加工路徑,然后沿該路徑選擇性地固化或切割具有一定層厚的成形材料,形成一層零件薄片,并沿分層方向逐層制造,直到形成零件。換言之,快速成形制造技術(shù)的實質(zhì)是分層切片、層層疊加的過程。其中,分層切片在快速成形過程中起著承上啟下的作用,而層片厚度計算是CAD模型分層的關(guān)鍵,它直接影響加工零件的規(guī)模、復(fù)雜程度及整個快速成形過程的效率。
國內(nèi)外學(xué)者對層片厚度的計算方法進(jìn)行了廣泛的研究。Jamieson等[1]提出比較連續(xù)切片輪廓的邊緣來確定層片厚度;蔡道生等[2]提出基于切片輪廓信息來確定層片厚度。這兩種方法對切片輪廓計算精度要求較高,一般需多次計算切片輪廓,實際應(yīng)用較少。Kulkarni等[3-4]提出根據(jù)頂尖高度計算層片厚度,其后有多項研究采用了該方法。Zhao等[5]提出根據(jù)相鄰兩截面面積變化率計算層片厚度的方法。
本文在分析CAD模型傳統(tǒng)分層方法的基礎(chǔ)上,提出了基于加權(quán)輪廓曲線的層片厚度計算的新算法,詳細(xì)說明了該算法關(guān)于CAD模型的適應(yīng)性分層的實現(xiàn)過程,并通過實例進(jìn)行了驗證。
快速成形的切層方法分為基于STL模型的切層方法和基于CAD模型的直接切層方法。目前,大多數(shù)快速成形制造系統(tǒng)中采用前者。該方法先將CAD模型文件轉(zhuǎn)換成STL模型文件,再將其導(dǎo)入切層軟件中進(jìn)行切層處理。STL模型是用一系列的三角面片來近似CAD模型的表面輪廓,其切片處理就是平面與三角面片的求交問題。目前,幾乎所有的商用快速成形系統(tǒng)都是先對STL模型切片,然后做數(shù)據(jù)處理,最后快速成形機(jī)再根據(jù)切片處理的數(shù)據(jù)采用疊層制造原理生成制件實體。
雖然該方法具有格式簡單清晰、易于理解和分割等優(yōu)點,但STL格式僅僅是對CAD模型的近似表示,對于復(fù)雜零件且精度要求很高時,三角面片數(shù)就會非常多,分層處理時間也大大增加。此外,雖然該方法相對簡單,但STL模型存在對幾何模型描述的誤差、拓?fù)湫畔G失、數(shù)據(jù)重復(fù)、STL文件易出現(xiàn)錯誤和缺陷等不足之處。
該方法是從精確CAD模型上直接通過剖切獲取數(shù)據(jù),具有精度高、處理速度快等優(yōu)點。直接切層有兩種途徑:一是對模型中的中性數(shù)據(jù)文件 (如STEP、DXF等)進(jìn)行數(shù)據(jù)讀取和求交處理,由于STEP、DXF等文件的尺寸小于STL文件,因而處理容易,也便于異地設(shè)計制造環(huán)境下CAD數(shù)據(jù)的遠(yuǎn)程傳輸與交換;另一種途徑是在CAD軟件系統(tǒng)中,利用CAD軟件的剖切功能求模型與切平面的交線,進(jìn)而生成截面輪廓線。大部分CAD軟件中具有剖切功能,如AutoCAD中有Section和Slice命令;在Pro/E軟件環(huán)境里對CAD模型直接進(jìn)行分層通常是通過調(diào)用prodb_create_parallel_xsec函數(shù)來實現(xiàn)的;在Solidworks環(huán)境里的模型直接切層也是通過該軟件在工程圖環(huán)境下的剖切功能來進(jìn)行的。Solidworks軟件在工程圖環(huán)境下有可用的剖切功能,利用該功能可對工程圖中的零件任一位置進(jìn)行剖切,并顯示截面信息。
上述直接分層方法不外乎兩種方法,即頂尖高度法和相鄰截面面積變化率法。頂尖高度法計算層厚公式形式太多,其中曲率半徑的計算較困難;而相鄰截面面積變化率法計算截面面積精度要求高,且難以找到最佳層厚。
針對傳統(tǒng)CAD模型分層方法的不足,本文提出了一種基于CAD模型加權(quán)輪廓曲線的直接分層新方法。在切片厚度的選擇方式上采用自適應(yīng)切片法,切片時對CAD模型先按輪廓求出3條均布的輪廓曲線,再將這3條輪廓曲線分段加權(quán),進(jìn)而求出最佳切片厚度值,進(jìn)行直接切片。
為解決均勻分層方法存在的問題,本文在分層厚度的選擇上采用自適應(yīng)分層,即在Z軸方向上根據(jù)零件輪廓的表面形狀自動地改變分層厚度,以滿足零件表面精度的要求。
2.1.1 輪廓曲線的求法
在創(chuàng)建完三維CAD模型后,采用CAD系統(tǒng)的剖切功能Section創(chuàng)建3條輪廓曲線。如圖1所示,L1、L2、L3是用3個過Z軸的平面C與CAD模型的側(cè)面相交得到的側(cè)面輪廓曲線。將這3條曲線作為考慮切片厚度的模型輪廓曲線,主要是為了更全面地表示模型的側(cè)面輪廓特征。注意在選取C平面時,要盡量使求出的輪廓線能反映出CAD模型在Z軸方向的變化特征,且這3條輪廓線的間距應(yīng)均布,當(dāng)然也可根據(jù)情況不均布。
圖1 CAD模型及其輪廓曲線
2.1.2 分層厚度的計算
在數(shù)學(xué)中,導(dǎo)數(shù)的數(shù)學(xué)含義是兩個變量的變化量之比,其幾何含義是曲線上點的切線斜率。二階導(dǎo)數(shù)則和曲線的凹凸性有關(guān)。在此,先根據(jù)數(shù)學(xué)中導(dǎo)數(shù)的含義作如下判斷:
(1)如圖2所示,一階導(dǎo)數(shù)是曲線的切線與X軸夾角的正切(tan)。判斷曲線的單調(diào)區(qū)間,若一階導(dǎo)數(shù)>0,則單調(diào)遞增;若一階導(dǎo)數(shù)<0,則單調(diào)遞減;隨后找出拐點。
(2)如圖3所示,二階導(dǎo)數(shù)是曲線的切線與X軸夾角的正切(tan)的導(dǎo)數(shù),即正切的變化率。判斷曲線形狀,若二階導(dǎo)數(shù)≤0,則上凸,即二階導(dǎo)數(shù)的值越來越??;若二階導(dǎo)數(shù)≥0,則上凹,即二階導(dǎo)數(shù)的值越來越大。
圖2 輪廓曲線的切線
圖3 輪廓曲線的凹凸性
計算分層厚度時,如果CAD模型的3條輪廓曲線中,不管哪一條中有一段是直線段,則該線段部分按等層厚的分層方法處理,而本文的關(guān)鍵問題是輪廓曲線的曲線部分。依據(jù)前面求出的3條側(cè)面輪廓曲線來計算切片厚度。在此過程中,根據(jù)實際情況確定一個最大切片厚度Zmax和一個最小切片厚度Zmin。因為CAD模型輪廓曲線上的各點是連續(xù)的,某一點的曲率變化與上一點的曲率變化有一定的相關(guān)性,因此,本文采用的算法是根據(jù)當(dāng)前點的曲率變化情況確定下一個切片的厚度。
CAD模型的分層輪廓曲線任意一點的切線和水平正方向的夾角情況見圖4。從圖4a和圖4b可看出,均勻切片時,當(dāng)夾角在0~90°之間時,夾角越大,則輪廓面的臺階效應(yīng)越小,自適應(yīng)切片算法中的厚度應(yīng)逐漸加大;當(dāng)夾角在90~180°之間時,夾角越大,則輪廓面的臺階效應(yīng)越大,自適應(yīng)切片算法中的厚度應(yīng)逐漸減小。經(jīng)分析可得出根據(jù)夾角求切片厚度的公式為:
從圖4c可看出,切線與水平正方向垂直,若采用同樣的厚度進(jìn)行疊層,則產(chǎn)生的面積偏移最小,不會出現(xiàn)CAD模型的輪廓臺階現(xiàn)象。因此,在自適應(yīng)切片算法中,這種情況下可取最大切片厚度Zmax。
從圖4d和圖4e可看出,切線與水平正方向分別成0°和180°,若采用同樣的厚度進(jìn)行疊層,產(chǎn)生的輪廓臺階現(xiàn)象最明顯。因此,在自適應(yīng)切片算法中,這兩種情況下可取最小切片厚度Zmin。
在每次求厚度時,3條輪廓曲線上分別求得一個 Z1、Z2、Z3值, 則下一個切片的厚度可取 Z1、Z2、Z3這3個值的平均值Z。當(dāng)然,取平均值是一種折衷的考慮。如果制件的外形不是規(guī)則的回轉(zhuǎn)體類,那么,多數(shù)情況下從3條輪廓曲線求得的Z值差別較大,這時可考慮采用加權(quán)的方法:
圖4 輪廓曲線與X軸的夾角
式中:T1、T2、T3為求 Z 值時的權(quán)因子,可根據(jù) 3 條輪廓曲線的形狀不斷地調(diào)整該值,進(jìn)而得到更合適的分層厚度Z值。
由于目前計算機(jī)的計算速度很快,所以不斷調(diào)整權(quán)因子可得到許多Z值,再通過分析對比,取得一個最優(yōu)的厚度Z值。圖5是對不規(guī)則制件采用加權(quán)方法得到的輪廓曲線,可見其遠(yuǎn)遠(yuǎn)好于求3條輪廓曲線平均值的方法。
圖5 不規(guī)則制件的輪廓曲線
由于CAD模型轉(zhuǎn)換成STL模型時有上述缺陷,故本文采用對CAD模型進(jìn)行直接分層。對三維CAD實體模型進(jìn)行切片處理就是用一組平行的剖切面對三維實體進(jìn)行剖切,然后將實體切片,其實質(zhì)就是在剖切平面與幾何體求交的同時,記錄交線數(shù)據(jù),也就是求切片的二維輪廓線。
為減少開發(fā)工作量,利用已有商用造型軟件二次開發(fā)不失為一種很好的選擇。在當(dāng)前的UG、Pro/E、AutoCAD等軟件中,都有求截面輪廓的函數(shù),調(diào)用已有的求截面函數(shù),可得到精確的層片輪廓信息。AutoCAD是目前應(yīng)用最廣泛的大眾化CAD系統(tǒng)之一,可利用AutoCAD的Section命令完成剖切,進(jìn)而得出3條CAD模型的輪廓曲線,再按上述方法求出分層厚度的最優(yōu)值。
創(chuàng)建CAD模型后,依據(jù)快速成形制件的形狀,確定分層切片的方向,并將其設(shè)置為Z軸方向;然后,用上述方法求出能基本反映模型形狀的3條側(cè)面輪廓曲線;再根據(jù)3條輪廓曲線的加權(quán)曲率計算切片層厚,進(jìn)而完成切片過程。
基于加權(quán)輪廓曲線的CAD模型直接切片算法可表示為如下過程:
根據(jù)上述算法在AutoCAD環(huán)境中進(jìn)行了相關(guān)實例制作和數(shù)據(jù)分析,并對不規(guī)則回轉(zhuǎn)體類制件(圖5)分別用“對STL模型均勻切片方法”和本文的算法進(jìn)行了處理。分析得出,用“對STL模型均勻切片方法”時,切片厚度選擇0.04 mm,切片后的層數(shù)為228;用面積變化率進(jìn)行自適應(yīng)切片時,最大切片厚度選擇 0.05 mm,最小切片厚度選擇 0.01 mm,切片后的層數(shù)為188;用本文的算法進(jìn)行切片處理時,允許的最大切片厚度為0.05 mm,最小切片厚度為0.01 mm,切片后的層數(shù)為108。不僅如此,用本文的算法切片處理后的成形件表面精度和質(zhì)量比用另外2種方法得到的成形件更優(yōu)。實踐證明,本文的算法無論對規(guī)則或不規(guī)則的零件都非常適應(yīng),呈現(xiàn)出明顯的優(yōu)勢。
本文提出的自適應(yīng)分層算法在控制分層結(jié)果的表面精度及層數(shù)時計算簡單,運算量小,易于編程實現(xiàn)。該算法依靠AutoCAD系統(tǒng)的強(qiáng)大功能,利用Visual Basic語言進(jìn)行編程,完成三維CAD模型的自動切片,與傳統(tǒng)切片方法相比,能很好地提高切片的精度和效率,在模型的制作精度等方面呈現(xiàn)出明顯的優(yōu)勢。與其他直接適應(yīng)性切片算法相比,該算法具有其獨特的一面,特別是對于輪廓面積變化不大的模型,效果更明顯,能大大提高加工效率,既省略了CAD模型到STL模型的轉(zhuǎn)換步驟,減少了轉(zhuǎn)換時的誤差,同時,模型的精度也得到了提高。此外,該算法并不是簡單利用現(xiàn)有的CAD系統(tǒng)對CAD模型進(jìn)行直接適應(yīng)性切片,而是利用快速成形制件的外部輪廓曲線進(jìn)行加權(quán),為形狀完全不規(guī)則的快速成形制件的分層提供了廣泛且有意義的借鑒作用。
[1] Jamieson R,Hacker H.Direct slicing of CAD models for rapid prototyping[J].Rapid Prototyping Journal,1995,1(2):4-12.
[2] 蔡道生,史玉升,黃樹槐.快速成形技術(shù)中基于切片輪廓信息的自適應(yīng)分層算法 [J].機(jī)械科學(xué)與技術(shù),2004,23(7):849-851.
[3] Kulkarni P,Dutta D.An accurate slicing procedure for layered manufacturing [J].Computer-Aided Design,1996,28(9):683-697.
[4] Mani K,Kulkarni P,Dutta D.Region-based adaptive slicing[J].Computer-Aided Design,1999,31(5):317-333.
[5] Zhao Zhiwen,Laperriere L.Adaptive direct slicing of the solid model for rapid prototyping[J].International Journal of Production Research,2000,38(1):69-83.