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