羅繼相 王 志
(武漢理工大學物流工程學院 武漢 430063)
鑄造過程計算機模擬是鑄造學科發展的前沿領域,是當今世界各國專家學者關注的熱點,同時也是改造傳統鑄造產業的必由之路[1].前處理模塊是鑄造模擬軟件開發的基礎,涉及到網格剖分、材質賦予等內容,影響到模擬時間、模擬精度等問題,故而也是鑄造模擬軟件系統開發的一個關鍵所在[2-4].網格剖分是數值模擬前處理軟件中的核心部分,也是前處理軟件所要完成的一項重要工作.
有限差分網格剖分過程實際上就是利用眾多的長方體網格去近視被剖分的實體模型,此過程完成的好壞將直接影響到網格模型近似實體模型的精度.同時,數值模擬又以網格模型為計算對象,所以網格剖分過程也將直接影響到計算的精度和計算的效率,并最終影響數值模擬過程與實際生產過程之間的差異問題[5-6].
對于擠壓鑄造模擬而言,模擬過程還將會涉及多種不同材質網格之間的數值計算,涉及到鑄件、鑄型、保溫體、冷卻水等實體,需要對每個實體范圍內的網格賦予不同的材質屬性,這樣才能保證在后續的模擬計算中得到有效的計算結果.所以對于擠壓鑄造模擬的網格剖分而言,不僅要綜合考慮計算精度和計算效率而確定合理的網格密度,同時還要能夠實現網格的多材質.綜上可見,網格剖分是一項復雜的工作,但也是數值模擬中至關重要的一環.所以,尋找一種快捷、方便、準確的網格剖分方法一直是數值模擬領域研究的重點.
有限差分網格剖分的實質就是運用一系列立方體或長方體去近似被剖分的實體.傳統的剖分過程為:首先,依據實體尺寸建立一個剛好包圍實體的長方體,即包容盒,并使得包容盒的6個面與實體坐標系的3個坐標平面平行;然后分別沿3個坐標方向按指定距離分割此包容盒,得到一系列小長方體網格單元;最后通過對照實體的空間范圍,判斷剖分得到的網格單元中心點的位置,保留處于實體內部的中心點,這樣就實現了對實體的網格剖分.此種算法相對來說剖分原理較為直觀,易于理解和接受,為后續其他網格剖分算法的開發提供了依據.
在實際應用中若采用上述方法進行網格剖分,則會發現其具有很大的局限性,這是因為在進行網格剖分時,剖分范圍并沒有限制于實體本身,而是對其包容盒進行的剖分,但只有實體內部的網格才是所需的網格,所以就要對剖分得到的網格進行判斷.對于鑄造模擬而言,為了提高計算的準確性,每次剖分實體時采用的步長一般較小,得到的網格則會較多,對如此多的網格進行判斷必然要耗費大量的時間和內存空間,不利于程序的運行.另一方面,判斷所采用的算法較為繁瑣,不易理解,給后面的程序設計帶來了困難.
本文在實現網格剖分時,對上述過程進行了優化和改進,方便了程序的實現.首先,為了簡化對網格的判斷,在剖分網格時,將剖分的范圍由包容盒縮小到只剖分實體本身,這樣剖分所得到的網格都是有用的網格,無需再進行判斷挑選.其次,由于后續的模擬計算是以剖分網格的中心點為對象,所以為了方便后續計算,在剖分時直接得到中心點,而不是先切割實體得到網格,再由網格去推算中心點.正是因為剖分后直接得到網格中心點,在設計切割平面時,平面位置應位于網格中心面上.最后,切割實體時須遵循面-線-點的剖分次序,先沿Z方向由下至上切割實體,得到一系列的平面,再沿Y方向逐次切割這一系列的面,得到一簇簇平行于Y軸的線,最后沿X軸切割這些線,就得到了所需的中心點,具體剖分過程見圖1.

圖1 網格剖分原理示意圖
在剖分的過程中,依據面-線-點的次序進行的剖分,首先選擇一個平行于坐標軸的面,將復雜的數據模型實體劃分為一系列的面.然后采用與Y軸垂直的面將平行的面劃分為線.最后采用與X軸垂直的面將線劃分為點.依據這種思想,在程序設計過程中,可以通過3步進行網格剖分程序的設計,即Z向平面劃分,Y向直線劃分和X向中心點生成.
由于常規的CAD軟件提供的STL文件轉換功能在生成算法上不夠健全,而STL文件自身也不具有自動糾錯的能力,所以對于生成的STL文件而言,本身難免存在一些缺陷[7].其中STL文件存在孔洞對有限差分網格剖分影響最大,它將給后續的程序運行帶來致命的錯誤,使得剖分過程無法正常進行,見圖2.

圖2 STL文件存在破洞造成多邊形不封閉
在進行Z向剖分時,最后所希望得到的平面為一系列封閉的多邊形.若STL文件自身存在孔洞時,Z向剖分得到的平面域將不再封閉,構成平面域的多邊形將在孔洞的位置斷開,即多邊形的邊出現缺失現象.當進行Y向剖分時,切割平面域的某些切割線恰好穿過多邊形的缺口,這樣得到的切割線將為一條條射線,而非線段,后續對其端點進行配對時,將會使得程序陷入死循環,導致軟件崩潰.
通過建立多邊形鏈表可有效的解決STL文件存在孔洞問題.在求得Z平面與STL文件各三角面片相交所得的線段后,將這些無序的線段根據連接關系建立若干個有序的鏈表,一個鏈表對應一個多邊形,根據鏈表的首尾是否相連來判斷多邊形是否封閉.如果多邊形不封閉,則需對其進行修正.
以圖3為例對修正過程進行說明:(1)建立新鏈表,提取任意線段L1的2個端點作為鏈表頭,沿指定方向搜索與L1第二個端點v2同點的線段L2,將L2插入鏈表頭部.搜索與L2第二個端點v3共點的線段L3,將其插入鏈表頭部 .在對L3的第二個端點v4進行搜索時發現,沒有線段與之共點,說明該多邊形為不封閉多邊形,原STL文件存在孔洞.(2)遍歷鏈表到線段L1的節點,搜索與L1第一點v1共點的線段L4,并將其插入鏈表尾部.在對L4另一端點v5進行搜索時發現,沒有與之共點的線段,這表明缺口存在于L4的端點v5與L3的端點v4之間.(3)在鏈表尾部插入新的節點用于存放點v5與點v4,這樣在原多邊形斷開的位置增加了一條直線,連接了缺口,從而修正了孔洞缺陷.

圖3 鏈表法原理
在切割平面對三角面片進行切割時,切割平面與三角面片有2種關系:相交;不相交.而對于相交的關系又有3種不同的情況(見圖4),第一種情況為切割平面穿過面片的1個頂點,與三角面片存在一個交點.第二種情況為切割平面穿過三角面片的2個頂點或相交于三角面片的兩條棱邊,與三角面片有2個交點.第三種情況為切割平面與穿過三角面片的3個頂點,即三角面片在切割平面上,切割平面與三角面片有3個交點.對于第一種和第三種情況,剖分后將得到多條退化線段,這將為后續文件漏洞修補中多邊形鏈表的建立以及Y向剖分帶來困難,也容易產生錯誤.為避免不必要的復雜性,在程序設計中可通過將剖分平面偏移一段微小距離,使其避開相交的頂點.這樣在剖分時,切割平面在與三角面片相交時,只會產生2個交點.

圖4 Z向剖分平面過三角面片頂點
在進行Y向剖分時,切割平面與多邊形交于多邊形的一個頂點,在該頂點處求出的交點為重合的2個點,但在頂點排序配對時,這2個重合的點只能算一個,將會導致材質判斷的錯誤.為了避免此種情況的發生,在進行剖分時,同樣將剖分平面偏移一段微小距離,避開相交的頂點,見圖5.

圖5 Y向剖分平面過多邊形頂點
在前處理網格繪制過程中,將所有網格繪制出來將會耗費大量的時間和占用大量的內存空間,在后續對其進行變換操作時也將產生滯留現象,使得操作不流暢.在實際應用中,用戶看到的僅僅是實體外圍的表面網格,所以在對網格模型進行繪制時,只需要將表面網格繪制出來,沒必要將所有網格在都繪制出來,見圖6.可采用2種方法對表面網格進行判斷.

圖6 處于實體表面的網格節點
第一種方法為首先記錄以Z向最大值和最小值做為Z向分量的所有點,得到實體的下表面與上表面.然后記錄每層面片上以該層Y向最大值與最小值為Y向分量的所有點.最后提取Y向剖分配對完成用于表示實體邊界的所有點,得到的這些點即為實體外表面和內表面的點,見圖7.

圖7 實體內部網格與表面網格
第二種方法為在節點中提取任意網格節點,判斷其周圍6個方向是否存在其他的網格節點,若6個方向均存在節點,說明其為實體內部的點,將其排除,進行下一節點的判斷.若6個方向中有一個方向沒有節點存在,則說明其表示的網格為表面網格,將其記錄下來,并判斷節點直至所有網格節點記錄完成.
對于第一種方法,理解起來較為復雜,但省去了實體內部節點的判斷,計算量較少.第二種相對來說思路清晰,但要遍歷所有的網格節點,計算量較大.
對于剖分生成的網格模型有線框模型顯示和實體模型顯示2種形式,當采用實體模型顯示時發現,網格線與網格面融合為一體,在對模型進行變換的過程中,網格線會出現時隱時現的現象,稱之為“隱線”現象.這是由于網格線與網格面在像素上不能實現精確的重合,導致了二者顯示時深度值的不同.此現象的發生極大的影響了視覺美觀效果,可通過網格線偏移技術進行解決.在繪制網格線的過程中,給各向的網格線一個小的偏移量,使其與網格的邊緣線相脫離,這樣就可消除“隱線”現象,得到一個線面清晰的網格模型.
以空調器殼體為例,對前處理模塊中網格剖分功能進行展示.首先導入殼體的STL文件,如圖8所示.設置網格剖分步長,零件尺寸為:155.00 mm×48.99 mm×133.86 mm,剖分步長為:1 mm×1 mm×1 mm.在CPU為AMD Athlon 64 X2 3600+(2.00 GHz),RAM 為1.00 GB的計算機上進行剖分,得到的網格模型(見圖9)能很好地反映實體形狀,網格總數為253 499,耗時10 s.剖分所得結果與國外商業化軟件AnyCasting在同樣條件下剖分該實體所得結果相比,AnyCasting剖分耗時4 s,所得網格總數為253 507,二者剖分偏差低于萬分之一.由此可見,本文所討論的剖分方法是可靠的,具有一定的實用價值.

圖8 空調器殼體鑄件實體模型

圖9 空調器殼體鑄件網格剖分圖
本文對擠壓鑄造計算機模擬軟件前處理技術網格剖分進行了較為深入的研究,實現了對數據模型的快速網格剖分.在網格剖分的過程中,針對出現的奇異點問題,開發了錯誤自動診斷和容錯的系統.針對網格顯示過程中出現的網格“隱線”現象和操作滯后現象,提出了解決網格線偏移和表面網格顯示的措施.
[1]柳百成,荊 濤.鑄造工程的模擬仿真及質量控制[M].北京:機械工業出版社,2001.
[2]吳士平,潘顯榮.凝固數值模擬中鑄件三維實體造型及三維網格自動剖分的研究[J].鑄造技術,1995(6):17-19.
[3]徐雪華,蘇仕方.復雜鑄件的三維實體造型及自動剖分[J].鑄造,1995(8):15-19.
[4]閔光國,袁國強.復雜形狀鑄件實體造型及網格剖分[J].鑄造,1997(5):42-44.
[5]Schneider R,Bunten R.Automatic generation of hexahedral finite element meshes[J].Computer-aided Geometric Design,1995(12):693-707.
[6]關 洋.鑄件充型凝固過程數值模擬前后處理技術研究[D].沈陽:沈陽鑄造研究所,2010.
[7]Szilvasi N M,Matyasi G.Analysis of STL files[J].Mathematical and Computer Modelling,2003(9):945-960.