王曉霞
(太原理工大學陽泉學院信息系,山西陽泉045000)
大家都知道,鑄造[1]是制造類產(chǎn)業(yè)發(fā)展的基本條件之一。同時,它又是產(chǎn)品質量不合格、廢品出產(chǎn)比較多的產(chǎn)業(yè)之一。就其原因來說,大部分廢品的出現(xiàn)都是由于鑄造模型制造不準確造成的。隨著社會的發(fā)展和人們的需求,對產(chǎn)品質量要求越來越精,這就使得人們必須尋找出一種合適、精確的工具來提高產(chǎn)品精度,增加產(chǎn)品合格率。
近年來隨著計算機圖形圖像學的發(fā)展,并廣泛的將其應用于計算機輔助設計中,大大提高了產(chǎn)品的生產(chǎn)效率。圖形圖像學是鑄造模型制造中比較突出的一項技術,在現(xiàn)代社會的激烈環(huán)境中,越來越受到人們的普遍關注。比較好的仿真系統(tǒng)可以從仿真的效果和解析得到的一系列數(shù)據(jù)中獲得大量可用信息,以合適的圖形圖像的表示方法,沒有誤差同時又恰當?shù)叵蛐枨蟮挠脩暨M行說明,為用戶進行鑄造提供依據(jù)。
本文通過對STL中的數(shù)據(jù)在計算機的存儲結構、邏輯運算方法的解釋和闡述,以達到使模型的制造流程人性化,制造精度更能達到人們的需求。
計算機圖像學(IP)是一門實現(xiàn)信息處理和加工功能的學科。它致力于怎樣才能把人類社會中的各種圖像用計算機準確描述出來、以及這些數(shù)據(jù)在計算機中如何進行存儲、解析、處理和傳輸?shù)?。其比較前沿的技術有生活中采集的圖像和生成圖像的方法、圖像進行重組、圖像應變化得容易處理和圖像通過某種壓縮方法讓計算機可以識別、解析中的邊邊角角的檢查測量、如何對圖像進行分化、以及圖像在各行各業(yè)的應用等。
圖形學(CG)是解決如何生成、計算并把圖形顯示的一門學科。它的內容有畫面如何描述、造型如何設計、圖形的準確反映、機器和人之間的對話——交互式方式[2]等。就當前來言,計算機圖形學比較新的研究方面有用虛擬設備對現(xiàn)實生活的情景再現(xiàn)、許多物理現(xiàn)象用幾何形式表述、科學計算過程通過屏幕逼真演算、對大自然景象的模仿、用仿生學再現(xiàn)真實情景等。
計算機圖像學和圖形學之間有著千絲萬縷的聯(lián)系。這兩個學科所用的數(shù)據(jù)的存儲結構是比較接近的,它們的公共問題都是如何用計算機對圖像進行處理。但是,所不同的是,計算機圖形學側重于將現(xiàn)實中采集的信息和幾何模型轉換成圖像,而圖像處理則著重在于圖像信息的處理與加工。
計算機圖形圖像技術在鑄造方面的一個比較重要的應用就是實體造型技術[3]。實體造型技術是近來快速突崛起來的一種比較好的幾何描述方法。這種方法在描述三維物體時具有不可忽視的優(yōu)勢——可以完全準確且不會產(chǎn)生歧義性的描述物體。在機械產(chǎn)業(yè)的許多方面,比如產(chǎn)品的構造和分布、解析和試測、產(chǎn)品投入生產(chǎn)等方面得到越來越廣泛的應用,因而受到了機械制造及其它有關行業(yè)越來越多的重視,具有實體造型能力的CAD/CAM正快速涌入市場。
STL(Stereo lithography)文件是三維模型經(jīng)過三角化處理后得到的文件[4]??赡艽蠖鄶?shù)人覺得這句話不太好理解;那么用一種通俗的解釋來說,它就是將實體表面化分為若干個三角形的面。同時在化分時由于不同的人采用的精度不同,相應的三角形網(wǎng)格劃分也不同。通常4個數(shù)據(jù)就可以準確描述某個三角形面,大多數(shù)人都知道對于三角形來說必定有三個頂點,那么這三個頂點就占據(jù)了這4個數(shù)據(jù)的3/4,剩下一個即為三角形面片的外法線矢量,不難想像,STL文件化分的三角形面越恰當?shù)亟咏鼘嶓w模型,它的精度就越高。
STL文件格式的規(guī)則如下:(1)三角形法向量的方向。對于所有的三角形面片,要求其法向量必須全部向外,3個頂點組成矢量的方向按照逆時針來確定(右手法則)。(2)鄰接的三角形共用頂點。所有三角形面必須和與它鄰接的三角形面共用兩個頂點。(3)對實體的全部布滿。對三維模型來說,其表面必須布滿小三角形面,不得有一點點的遺漏。同時,布滿的程度越高,將來建立的模型越精確。(4)三角形面頂點的取值。所有三角形面的頂點坐標要求必須為大于0,0和小于0均為不正確。
STL文件的基本思路是讓許多空間三角形一步步慢慢地無限逼近三維實體表面。前面大家已經(jīng)了解每個三角形面有3個頂點,每個頂點由坐標(x,y,z)表示,因為要知道材料包含在三角形的那條邊上,所以所有三角形都有1個法向量,在這里我們用數(shù)學上常用的表示方法(Lx,Ly,Lz)。這樣,STL提供了所有三角形頂點的絕對坐標值(相對坐標系的原點)和描述三角形方向的外法線矢量,且3個頂點的放置順序與右手規(guī)則得到結果完全一致,拇指指向平面的外法線矢量。為了便于大多數(shù)人理解,下面以一個具體的例子來說明STL文件存儲格式。有1個邊長分別為(20,40,15)的長方體模型,如圖 1:總共由(1,5,8),(4,3,2)……(5,6,8)等12個三角形面布滿長方體的表面。在STL文件中的存儲一般有兩種格式,ASCII碼和二進制格式。ASCII碼格式如圖1:
圖1 STL文件數(shù)據(jù)存儲結構圖
solid try.stl(文件開始標志及此文件名)
facet normal 0.0,0.0,0.2(第 1 個三角面的外法線矢量,由 (1,5,8)組成的三角形為第一個三角形)
outer loop(第1個三角形面頂點定義開始)
vertex 20.0,40.0,15.0(第 1 個頂點坐標)
vertex 20.0,0.0,15.0(第 2 個頂點坐標)
vertex 0.0,0.0,0.0(第 3 個頂點坐標)
end loop(第一個三角形頂點定義結束)
end facet(三角形面定義結束)
…(第i個三角形面片)…(i的值在本例中從2到12)
endsolid try.stl(實體結束標志)
二進制格式是按位存儲的,其方式為:前640個位用以作說明來用,其后16位存放所有三角形的個數(shù),然后開始記錄三角形數(shù)據(jù)(法線向量和3個頂點),記錄采用實數(shù),每個數(shù)值占用32個位,在每個三角形信息記錄完畢后空16個位,以記錄下1個三角形信息。
在實體中,需要用到曲面反求技術[5]。在這種技術中,實體通常被劃分為苦干個相互有重疊的曲面面片[6],數(shù)據(jù)合成也即為面片相互間的拼接。在曲面拼接的幾種方法中,有一種簡單而實用的方法——人機交互方式,即為窗體上可以同時顯示兩個曲面面片,對曲面面片采用對話-交互式的方式進行平移或旋轉,使兩曲面位于相對比較準確的位置,以實現(xiàn)兩曲面面片的拼接;如此反復多次致使整個實體拼接的完成。最后把拼接完成的相應數(shù)據(jù)輸出,即完成實體的曲面拼接。
在曲面拼接中,三維顯示是最重要的部分,如果將其完成,那么整個模型的建立相對來說就容易多了。同時它還可以為拼接過程提供一個可供人們觀察的過程。要完成拼接工作,必須反復進行三角形的平移、旋轉。根據(jù)平移、旋轉原理可知:對一個三角形進行平移或旋轉一次,必須將三角形的一個頂點與平移(旋轉)矩陣相乘一次。比如一個STL文件有5 000個面片,每個三角形記錄一個頂點,共記錄了15 000萬個頂點。
在后續(xù)的處理中,由于上述長方體模型是由六個表面的網(wǎng)格組成,這是與對STL文件的剖切不同的。在計算機處理中,網(wǎng)格的邊長(x,y,z)很小,可以將其看為是一個點。對鑄造實體模型的剖切,也就是用一個平面去截交實體模型,可用OpenGL繪制截面,就可以提取所得的截面上網(wǎng)格的信息,也就可以完成了對鑄造實體模型的剖切。由于這部分內容涉及其它的技術,在這里本人就不詳細敘述了。
利用STL技術可以實現(xiàn)正方體、圓、橢圓等實體模型構造。將這些實體添加到STL模型裝配中,用戶就可以在鑄件上裝配自己需要的鑄件模型了。
針對鑄造工藝中鑄造模型手工不準確的情況下,造成材料的大量浪費。進而提供一種計算機STL技術建立模型,使其達到更精準的程度,是計算機在鑄造工藝中的一項大的進步。
[1]范玉青,周建華.實體造型技術及其應用前景[N].中國計算機報,2004.
[2]孫家廣.計算機圖形學[M].第3版.北京:清華大學出版社,1998.
[3]歐陽春梅,丁秋林.實體造型技術[M].北京:國防工業(yè)出版社,1995.
[4]Stroud I,Xirouchakis P C.STL and Extensions[J].Advances in Engineering Software,2010,31(2):83 -95.
[5]李電生,鐘約先,李江鋒.曲面反求中測量數(shù)據(jù)人機交互合成及優(yōu)化[J].機械設計與制造,2008,3:31 -33.
[6]趙吉賓,劉偉軍,王越超.基于STL文件的實體分割算法研究[J].機械科學與技術,2005(24):131-134.