摘要:虛擬油泥造型技術(shù)作為一種CAD軟件,為了能夠更加廣泛地應(yīng)用于產(chǎn)品的設(shè)計(jì)開(kāi)發(fā)中,需要與現(xiàn)有的大多數(shù)CAD軟件進(jìn)行數(shù)據(jù)交流。通過(guò)對(duì)虛擬油泥造型系統(tǒng)設(shè)計(jì)STL數(shù)據(jù)輸出接口,實(shí)現(xiàn)其與現(xiàn)有的大多數(shù)CAD軟件系統(tǒng)的數(shù)據(jù)交流。
關(guān)鍵詞:虛擬油泥系統(tǒng);inventor文件; 立體印刷接口規(guī)約文件; 數(shù)據(jù)輸出
中圖分類號(hào):TP391文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2008)02-0634-03
0引言
虛擬油泥造型技術(shù)是近年發(fā)展起來(lái)的新產(chǎn)品外形設(shè)計(jì)方法,可廣泛應(yīng)用于汽車#65380;飛機(jī)等對(duì)外形有較高要求的產(chǎn)品設(shè)計(jì)中。與之相比,傳統(tǒng)的油泥模型制造操作過(guò)程周期長(zhǎng)#65380;費(fèi)用高,獲得的三維汽車模型信息只能通過(guò)數(shù)控測(cè)量過(guò)程進(jìn)入后續(xù)的設(shè)計(jì)過(guò)程,形成了產(chǎn)品開(kāi)發(fā)過(guò)程中的信息流斷點(diǎn)。目前汽車工業(yè)中普遍使用的計(jì)算機(jī)輔助造型系統(tǒng)是基于樣條的自由表面建模。隨著交互操作的進(jìn)行,模型的表示越來(lái)越詳細(xì),計(jì)算機(jī)內(nèi)部的數(shù)學(xué)表示必須進(jìn)行很大的變動(dòng)并且越來(lái)越復(fù)雜,同時(shí)也限制了設(shè)計(jì)師的創(chuàng)造力和造型能力的發(fā)揮。西北工業(yè)大學(xué)現(xiàn)代設(shè)計(jì)與集成制造技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室正在進(jìn)行汽車虛擬油泥造型系統(tǒng)的開(kāi)發(fā),它采用近年來(lái)新的3D造型技術(shù)和虛擬現(xiàn)實(shí)技術(shù)發(fā)展的新成果,基于三維壓縮體素(voxel)模型建立計(jì)算機(jī)內(nèi)部虛擬油泥模型。
虛擬油泥造型系統(tǒng)作為一種計(jì)算機(jī)輔助外形設(shè)計(jì)軟件,為了能夠與現(xiàn)有的大CAD系統(tǒng)進(jìn)行數(shù)據(jù)交流,應(yīng)開(kāi)發(fā)相應(yīng)數(shù)據(jù)交換接口。目前在大多數(shù)CAD軟件中均支持STL數(shù)據(jù)格式。本文選擇對(duì)虛擬油泥模型進(jìn)行表面優(yōu)化提取并以STL數(shù)據(jù)格式輸出。虛擬油泥系統(tǒng)采用的是壓縮形式的體素模型,有別于一般的體素模型,所以經(jīng)典Marching-Cubes提取算法不能充分發(fā)揮壓縮體素模型的優(yōu)勢(shì)。本文在虛擬油泥系統(tǒng)原有表面模型提取功能的基礎(chǔ)上,針對(duì)壓縮體素模型的特點(diǎn),采用優(yōu)化的Marching-Cubes算法提取表面網(wǎng)格模型,并將提取結(jié)果直接轉(zhuǎn)換為STL文件格式。UCM整體工作流程如圖1所示。
1虛擬油泥造型系統(tǒng)及其數(shù)據(jù)接口
1.1虛擬油泥造型系統(tǒng)
虛擬油泥造型系統(tǒng)可以像傳統(tǒng)的設(shè)計(jì)過(guò)程那樣制作出能隨意成型的模型。在汽車虛擬油泥造型系統(tǒng)中根據(jù)傳統(tǒng)汽車造型過(guò)程的特點(diǎn),設(shè)計(jì)用于虛擬環(huán)境中的造型工具,如虛擬油泥刮刀#65380;刮片#65380;模板等,并對(duì)汽車虛擬油泥模型進(jìn)行刮#65380;削#65380;掃操作。借助這些計(jì)算機(jī)內(nèi)部基于樣條的建模工具,設(shè)計(jì)者使用鼠標(biāo)#65380;空間鼠標(biāo)或軌跡跟蹤系統(tǒng)可以削掉和涂抹虛擬的油泥材料。與基于樣條的表面建模相比較,它通過(guò)樣條得到了精確的描述,并且建模是在一個(gè)不連續(xù)的#65380;高階解的體素模型上產(chǎn)生的。該建模過(guò)程與真正的汽車油泥建模過(guò)程相一致,對(duì)操作人員的數(shù)學(xué)功底要求不高,操作學(xué)習(xí)簡(jiǎn)單,充分支持了設(shè)計(jì)師的創(chuàng)意和設(shè)計(jì)能力的發(fā)揮。虛擬油泥造型系統(tǒng)既避免了傳統(tǒng)油泥造型系統(tǒng)對(duì)資金和時(shí)間的大量耗費(fèi)(因?yàn)閭鹘y(tǒng)油泥造型周期比較長(zhǎng),而且油泥大部分需要進(jìn)口,價(jià)格昂貴),又克服了現(xiàn)在汽車工業(yè)中普遍使用的車型計(jì)算機(jī)輔助造型軟件不能充分發(fā)揮設(shè)計(jì)師創(chuàng)意的缺點(diǎn)。另外通過(guò)虛擬油泥建??梢约霸绲貙a(chǎn)品設(shè)計(jì)過(guò)程與其他開(kāi)發(fā)過(guò)程進(jìn)行數(shù)字連接從而縮短了開(kāi)發(fā)時(shí)間和成本。其系統(tǒng)界面如圖2所示。
1.2軟件系統(tǒng)的數(shù)據(jù)接口
功能強(qiáng)大的軟件系統(tǒng)不僅體現(xiàn)在其自身功能上,也表現(xiàn)在與其他軟件系統(tǒng)的兼容性上。虛擬油泥造型系統(tǒng)除了自身支持的.sxf2#65380;.iv#65380;.sxf2-bin文件格式外,還需要增加STL數(shù)據(jù)接口與目前市場(chǎng)上的大多數(shù)CAD軟件進(jìn)行數(shù)據(jù)交流。美國(guó)3D Systems公司開(kāi)發(fā)的STL(stereo lithography interface specification)文件格式可以被大多數(shù)CAD軟件所接受,因此被工業(yè)界認(rèn)為是目前3D數(shù)據(jù)的準(zhǔn)標(biāo)準(zhǔn)。幾乎所有類型的CAD軟件均支持STL數(shù)據(jù)格式。目前應(yīng)用的主要2D#65380;3D文件格式如表1所示。
表1常用的2D和3D文件格式
輸入數(shù)據(jù)形式文件格式提出者通用格式
3D實(shí)體模型#65380;數(shù)字化數(shù)據(jù)#65380;網(wǎng)格數(shù)據(jù)STLDFXSTEP3D Systems
AutoDeskISOSTL已成為事實(shí)標(biāo)準(zhǔn)
2D掃描數(shù)據(jù)#65380;切片數(shù)據(jù)SLC#65380;SLIHPGLCLI3D SystemsHPEOS對(duì)于2D數(shù)據(jù)還沒(méi)有廣泛接受的數(shù)據(jù)格式
虛擬油泥造型軟件系統(tǒng)選取STL作為輸出數(shù)據(jù)接口以便與其他CAD軟件進(jìn)行數(shù)據(jù)交流。
2虛擬油泥造型系統(tǒng)的STL數(shù)據(jù)輸出接口設(shè)計(jì)
2.1STL文件格式
STL格式是目前CAD系統(tǒng)中最常見(jiàn)的一種文件格式。STL文件是通過(guò)對(duì)CAD模型或曲面模型進(jìn)行表面三角網(wǎng)格劃分而得到的,就是用一種全由小三角形面片構(gòu)成的多面體去近似原CAD模型,所以三角形面片的個(gè)數(shù)與該模型的近似程度密切相關(guān)。三角形面片數(shù)量越多,近似程度越好,精度越高;三角形面片數(shù)越少,則近似程度越差。用同一CAD模型生成兩個(gè)不同的STL文件,精度高者可能要包含多達(dá)上萬(wàn)個(gè)三角形面片,文件達(dá)數(shù)兆,而精度低者可能只有幾百個(gè)三角形面片,面片多少對(duì)后續(xù)處理的時(shí)間和難度影響很大。
STL文件是若干空間小三角形面片的集合,每個(gè)三角形面片用三角形的三個(gè)頂點(diǎn)和指向模型外部的三角形面片的法向量組成。STL文件有兩種數(shù)據(jù)格式,即ASCII和二進(jìn)制格式。二進(jìn)制的文件格式要小得多,大約是ASCII格式的1/6;但ASCII格式的文件可以閱讀并能進(jìn)行直觀檢查。
ASCII格式文件的第一行為說(shuō)明行,記錄STL文件的文件名,從第二行開(kāi)始記錄三角形面片。首先記錄三角形面片的法向量;然后記錄環(huán),依次給出三個(gè)頂點(diǎn)的坐標(biāo)。三個(gè)頂點(diǎn)的順序與該三角形面片法向量符合右手法則。這樣一個(gè)三角形面片的信息記錄完畢,開(kāi)始記錄下一個(gè)三角形面片,直到將整個(gè)模型的全部三角形面片記錄完畢。圖3是ASCII碼輸出形式的示例。
因?yàn)槎M(jìn)制格式文件尺寸小#65380;易于傳輸,所以應(yīng)用較為廣泛。它由84 Byte的題頭構(gòu)成。其中:前80 Byte用于表示有關(guān)文件#65380;作者姓名和注釋的信息;后4 Byte用于表示小三角形平面的數(shù)目。對(duì)于每個(gè)小三角形平面,有48 Byte用于表示其法向量的x#65380;y和z的分量,以及三角形每個(gè)頂點(diǎn)的x#65380;y和z的坐標(biāo)。其中:每個(gè)坐標(biāo)用4 Byte表示;最后有2 Byte不用。
2.2Open inventor簡(jiǎn)介
本文使用open inventor設(shè)計(jì)實(shí)現(xiàn)虛擬油泥造型系統(tǒng)的STL數(shù)據(jù)輸出接口。Open inventor是目前世界上廣泛使用的對(duì)象導(dǎo)向繪圖軟件開(kāi)發(fā)接口(API)。其開(kāi)發(fā)基礎(chǔ)是硬件兼容性最高的OpenGL繪圖函數(shù)庫(kù),對(duì)用戶編制的程序來(lái)說(shuō)既具有跨平臺(tái)的能力,又能無(wú)須修改源碼即可使用OpenGL最新的繪圖技術(shù)。其模塊結(jié)構(gòu)如圖4所示。
2.3基于壓縮體素模型的表面優(yōu)化提取
針對(duì)經(jīng)典MarchingCubes算法存在的缺點(diǎn),在虛擬油泥造型系統(tǒng)中,根據(jù)壓縮表示形式的體素模型特點(diǎn),從兩個(gè)方面分別進(jìn)行優(yōu)化。
a)為了節(jié)省模型發(fā)生變化后表面網(wǎng)格提取時(shí)間,筆者將模型所在空間劃分成很多小的分塊立方體域。在表面提取時(shí),首先根據(jù)模型材料實(shí)際發(fā)生變化的位置確定包圍該范圍的立方體,并將該立方體的角點(diǎn)信息提供給油泥模型表面網(wǎng)格提取過(guò)程。在該過(guò)程中,表示模型材料變化范圍的信息將被直接轉(zhuǎn)換為相應(yīng)的模型空間分塊立方體域的邊界信息。MarchingCubes優(yōu)化算法可以在該分塊立方體域內(nèi)完成模型局部表面網(wǎng)格提取,這樣省掉了模型其余部分的表面網(wǎng)格生成過(guò)程。
b)在體素模型的壓縮表示形式中引入三個(gè)相互垂直的dexel射線組表示體素模型,沿每一個(gè)dexel方向,僅僅存儲(chǔ)沿dexel方向物體材料發(fā)生變化的位置。因此,利用Marching-Cubes優(yōu)化方法提取油泥模型表面三角形網(wǎng)格時(shí),可以直接跳過(guò)dexel模型的全空部分(處于物體外部)和全實(shí)部分(處于物體內(nèi)部),直接從位于物體邊界的體素中提取表面三角形網(wǎng)格,減少體素模型中材料檢查次數(shù)。
2.4STL輸出接口設(shè)計(jì)
現(xiàn)有的虛擬油泥模型采用的是壓縮形式的體素模型,而STL模型是通過(guò)對(duì)CAD實(shí)體模型或曲面模型進(jìn)行表面三角化離散得到的一種表面模型,所以將虛擬油泥模型直接轉(zhuǎn)換為STL模型相當(dāng)困難。然而,現(xiàn)有的虛擬油泥模型可以通過(guò)體素模型表面優(yōu)化提取得到由三角網(wǎng)格化生成的表面模型。
a)在體素模型的壓縮表示形式中引入三個(gè)相互垂直的dexel射線組表示體素模型,沿每一個(gè)dexel方向,僅僅存儲(chǔ)沿dexel方向物體材料發(fā)生變化的位置;
b)根據(jù)dexel模型的特點(diǎn),在取出dexel模型時(shí)可以直接判斷出是否在這個(gè)dexel方向存在材料變化;
c)依次取出相鄰?fù)较虻乃膫€(gè)dexel模型(構(gòu)成體素模型的四個(gè)邊),確定其中材料首先發(fā)生變化的dexel,再根據(jù)其材料變化的位置得到位于該位置的voxel;
d)根據(jù)voxel八個(gè)頂點(diǎn)的密度值獲得索引值;
e)根據(jù)索引值表查獲當(dāng)前voxel各相交邊所在;
f)依次找到各相交邊上交點(diǎn)的坐標(biāo);
g)根據(jù)索引值和交點(diǎn)坐標(biāo)形成當(dāng)前voxel內(nèi)三角形片的構(gòu)成;
h)將三角形片的頂點(diǎn)和法向矢量信息寫入STL文件;
i)依次處理所有材料發(fā)生變化的dexel。
2.5數(shù)據(jù)輸出程序界面設(shè)計(jì)
為了方便用戶對(duì)實(shí)體模型進(jìn)行實(shí)時(shí)的數(shù)據(jù)輸出,本文設(shè)計(jì)了STL數(shù)據(jù)輸出交互界面。該交互界面使用open inventor程序編寫。其具體形式如圖5所示。其中:directories表示當(dāng)前的文件路徑;符號(hào)“..”表示返回到當(dāng)前文件的上一級(jí)路徑;filter按鈕表示刷新當(dāng)前路徑下的文件。
3應(yīng)用實(shí)例
圖6(a)為在虛擬油泥造型軟件系統(tǒng)中刮削設(shè)計(jì)過(guò)程中一個(gè)加工模型;(b)是筆者將模型進(jìn)行STL數(shù)據(jù)輸出得到的STL文件在UG中進(jìn)行顯示的效果圖。
4結(jié)束語(yǔ)
按照本文的STL數(shù)據(jù)輸出接口設(shè)計(jì)方法,在虛擬油泥造型系統(tǒng)取得了很好的應(yīng)用效果,實(shí)現(xiàn)了虛擬造型系統(tǒng)與其他CAD系統(tǒng)的數(shù)據(jù)交流,為將虛擬油泥造型技術(shù)應(yīng)用于相關(guān)產(chǎn)業(yè)領(lǐng)域的產(chǎn)品研發(fā)奠定了堅(jiān)實(shí)基礎(chǔ)。根據(jù)本文提出的STL接口界面設(shè)計(jì)方法可以推廣到虛擬油泥造型系統(tǒng)與其他數(shù)據(jù)輸出接口的設(shè)計(jì)中,如SXF2#65380;NURBS等。
參考文獻(xiàn):
[1]侯增選,張定華,楊海成,等.體素模型表面優(yōu)化提取方法及圖形顯示[J].機(jī)械科學(xué)與技術(shù),2005,24(3):361-367.
[2]ELVINS T T.A survey of algorithms for volume visualization[J]. Computer Graphics, 1992, 26(3):194-201.
[3]唐澤圣.三維數(shù)據(jù)場(chǎng)可視化[M].北京:清華大學(xué)出版社, 1999.
[4]李曉梅,黃朝暉,蔡勛,等.并行與分布式可視化技術(shù)及應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2001.
[5]蔣先剛.基于Delphi的數(shù)字圖像處理工程軟件設(shè)計(jì)[M].北京:中國(guó)水利水電出版社,2006.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”