摘要:模型是虛擬設(shè)計(jì)系統(tǒng)的基礎(chǔ),對于機(jī)械產(chǎn)品,通常使用CAD軟件創(chuàng)建零部件模型,并進(jìn)行預(yù)裝配,再進(jìn)行模型的轉(zhuǎn)換或特征信息的提取。本文介紹了虛擬設(shè)計(jì)技術(shù)在機(jī)械產(chǎn)品開發(fā)中的重要意義,并對CAD軟件和虛擬設(shè)計(jì)系統(tǒng)的模型數(shù)據(jù)交換的進(jìn)行了探討。
關(guān)鍵詞: 模型;虛擬設(shè)計(jì);機(jī)械產(chǎn)品;CAD
0引言
虛擬設(shè)計(jì)技術(shù)是利用計(jì)算機(jī)輔助技術(shù),在計(jì)算機(jī)環(huán)境中實(shí)現(xiàn)產(chǎn)品的開發(fā)過程,是計(jì)算機(jī)圖形學(xué)、人工智能、計(jì)算機(jī)網(wǎng)絡(luò)、信息處理和機(jī)械設(shè)計(jì)與制造等技術(shù)綜合發(fā)展的產(chǎn)物。通過對產(chǎn)品從設(shè)計(jì)到裝配整個(gè)過程的模擬,達(dá)到提高產(chǎn)品設(shè)計(jì)質(zhì)量、降低產(chǎn)品開發(fā)周期和成本的目的。
1 虛擬設(shè)計(jì)技術(shù)在機(jī)械產(chǎn)品開發(fā)中的重要意義
目前,CAD軟件的應(yīng)用提高了設(shè)計(jì)效率,在產(chǎn)品設(shè)計(jì)同時(shí)進(jìn)行零部件的受力分析、加工仿真、預(yù)裝配、運(yùn)動(dòng)仿真及動(dòng)力學(xué)分析。但由于CAD軟件開發(fā)是基于傳統(tǒng)的產(chǎn)品開發(fā)模式,不支持多用戶并行工作模式,不能實(shí)現(xiàn)產(chǎn)品開發(fā)過程的并行化,產(chǎn)品的設(shè)計(jì)質(zhì)量取決與某個(gè)工程師的經(jīng)驗(yàn)。虛擬現(xiàn)實(shí)技術(shù)在機(jī)械產(chǎn)品設(shè)計(jì)中的應(yīng)用,為產(chǎn)品開發(fā)提供了新的設(shè)計(jì)和驗(yàn)證手段。虛擬設(shè)計(jì)系統(tǒng)支持多用戶并行操作,不同領(lǐng)域的工程師可以在同一個(gè)設(shè)計(jì)環(huán)境中對產(chǎn)品的虛擬原型從不同方面進(jìn)行分析,避免了在傳統(tǒng)產(chǎn)品開發(fā)模式下各部門對設(shè)計(jì)的孤立修改和交流困難。由于虛擬現(xiàn)實(shí)技術(shù)自身的特點(diǎn),在虛擬設(shè)計(jì)環(huán)境中操作者可以進(jìn)入產(chǎn)品模型的內(nèi)部,分析產(chǎn)品在工作狀態(tài)下的性能,同時(shí)虛擬現(xiàn)實(shí)技術(shù)具有適時(shí)交互功能,對產(chǎn)品開發(fā)的全過程計(jì)算機(jī)模擬,實(shí)現(xiàn)產(chǎn)品開發(fā)一次性成功的目的,避免傳統(tǒng)開發(fā)方法中采用物理樣機(jī)驗(yàn)證設(shè)計(jì)所帶來的人力和財(cái)物的損耗,達(dá)到縮短產(chǎn)品開發(fā)周期、降低開發(fā)成本和提高用戶滿意度的目的。
產(chǎn)品模型的數(shù)據(jù)分析是虛擬設(shè)計(jì)系統(tǒng)重要組成部分,是進(jìn)行各種仿真的基礎(chǔ),需要用 CAD 軟件創(chuàng)建產(chǎn)品模型并通過模型數(shù)據(jù)處理程序?qū)崿F(xiàn)模型幾何拓?fù)湫畔⒌奶崛『捅4?。下文就對虛擬設(shè)計(jì)環(huán)境中的模型數(shù)據(jù)結(jié)構(gòu)以及CAD軟件和虛擬設(shè)計(jì)系統(tǒng)的模型數(shù)據(jù)交換進(jìn)行探討。
2 虛擬環(huán)境中模型的數(shù)據(jù)結(jié)構(gòu)
虛擬現(xiàn)實(shí)系統(tǒng)中采用三角面片模型進(jìn)行產(chǎn)品信息的表達(dá),該數(shù)據(jù)格式在模型顯示和碰撞檢查方面具有處理簡單、計(jì)算量小的優(yōu)點(diǎn),它是對產(chǎn)品的外形描述,沒有與設(shè)計(jì)和制造相關(guān)的信息,模型精度通過三角面片劃分密度來控制。且現(xiàn)有的圖形硬件大部分支持三角形繪制的加速,所以三角面片模型可以很好地滿足虛擬現(xiàn)實(shí)系統(tǒng)的實(shí)時(shí)性要求。常用的有兩種方法實(shí)現(xiàn)虛擬現(xiàn)實(shí)應(yīng)用系統(tǒng)的模型創(chuàng)建,一是用專業(yè)的建模軟件如 3DS Max、Multigen 等創(chuàng)建模型,這些軟件都能生成虛擬現(xiàn)實(shí)系統(tǒng)支持的三角面片文件,可以直接載入虛擬現(xiàn)實(shí)應(yīng)用系統(tǒng)中,但是建模環(huán)境復(fù)雜,不易于掌握,只是模型的形狀描述,對于機(jī)械零部件復(fù)雜和精確模型的描述和表示比較困難。三角面片模型不含有特征和幾何信息,只能用于一般的展示和運(yùn)動(dòng)仿真,不可以進(jìn)行更深入的設(shè)計(jì)分析。另一種是用 CAD 系統(tǒng)進(jìn)行產(chǎn)品的建模,再利用模型轉(zhuǎn)換功能將模型轉(zhuǎn)化為三角面片格式文件,在虛擬設(shè)計(jì)系統(tǒng)中編寫文件讀取功能模塊實(shí)現(xiàn)模型的載入和拓?fù)渲貥?gòu)。
3 CAD系統(tǒng)與虛擬現(xiàn)實(shí)系統(tǒng)的模型數(shù)據(jù)交換分析
CAD系統(tǒng)和虛擬現(xiàn)實(shí)系統(tǒng)模型的不同特點(diǎn)決定了CAD系統(tǒng)創(chuàng)建的模型不能直接運(yùn)用于虛擬現(xiàn)實(shí)系統(tǒng)中。CAD系統(tǒng)中的模型具有精確的幾何描述,側(cè)重于模型幾何形狀的表達(dá)。虛擬現(xiàn)實(shí)系統(tǒng)的模型側(cè)重于模型在虛擬場景中的渲染速度和模型在虛擬場景中的碰撞檢測需要,雖然有一些專業(yè)的建模軟件可以生成虛擬現(xiàn)實(shí)系統(tǒng)直接支持的模型,但是對于復(fù)雜的模型還是在機(jī)械CAD系統(tǒng)中比較方便,所以對于機(jī)械產(chǎn)品虛擬設(shè)計(jì)系統(tǒng)的開發(fā),模型的創(chuàng)建工具一般是選擇CAD 軟件。在虛擬設(shè)計(jì)系統(tǒng)的開發(fā)中,CAD系統(tǒng)向虛擬現(xiàn)實(shí)系統(tǒng)的模型轉(zhuǎn)換是系統(tǒng)設(shè)計(jì)的一個(gè)重要部分。下面對兩種常用的數(shù)據(jù)轉(zhuǎn)換方式進(jìn)行分析。
3.1 利用 CAD 系統(tǒng)的模型導(dǎo)出
在CAD系統(tǒng)中通過vrml和STL兩種文件將模型轉(zhuǎn)化為虛擬現(xiàn)實(shí)系統(tǒng)支持的模型。STL是用于快速成型的數(shù)據(jù)文件,有固定的格式,每個(gè)CAD系統(tǒng)都支持這種形式模型的輸出。vrml文件是虛擬現(xiàn)實(shí)文件,現(xiàn)在的版本是 vrml97 即 vrml2.0,該模型的語法復(fù)雜,且不同系統(tǒng)生成的模型數(shù)據(jù)格不一致。通過對這兩種模型的比較,選擇 STL 模型作為 CAD 和虛擬設(shè)計(jì)系統(tǒng)的交換文件。下面將詳細(xì)分析 STL文件的語法和虛擬設(shè)計(jì)系統(tǒng)中STL文件的載入。STL模型是一種離散的實(shí)體表面三角面片模型,該模型記錄了將實(shí)體表面離散處理后得到的所有三角面片信息,包含了每一個(gè)三角面片的頂點(diǎn)坐標(biāo)及其法矢。STL 文件格式規(guī)定了三角面的方向、頂點(diǎn)法則和量綱,其描述如下:
面的方向。由于這些三角面片定義的是三維實(shí)體的表面,所以每個(gè)三角面片同時(shí)也可看作是三維物體內(nèi)部與表面的分界面,它的法矢始終朝外,它與三頂點(diǎn)連成的矢量方向構(gòu)成右手法則。
頂點(diǎn)法則。每一個(gè)三角面片中必須有兩個(gè)頂點(diǎn)與其相鄰的三角面片共用,即一個(gè)三角面片中的頂點(diǎn)不能落在另一個(gè)三角面片的邊上。
量綱。三角面片數(shù)據(jù)是無量綱的,各頂點(diǎn)坐標(biāo)值均必須是正數(shù)。模型中包含的三角形面片的個(gè)數(shù)則按 STL 文件的類型,有的直接給出,有的不給出。文件中還包括其它一些信息,如文件名,文件描述等等。STL 文件有兩種類型:ASCII 格式和二進(jìn)制格式。
3.2 通過 API 函數(shù)對 CAD 系統(tǒng)二次開發(fā)
利用 CAD 系統(tǒng)提供的二次開發(fā)接口對 CAD 創(chuàng)建的模型進(jìn)行三角面片離散化。這種方法可以直接使用 CAD 的建模環(huán)境,進(jìn)行模型信息的提取。
SolidWorks 二次開發(fā)方法。SolidWorks是基于Windows平臺(tái)的三維機(jī)械設(shè)計(jì)軟件,它通過COM技術(shù)為用戶提供強(qiáng)大的二次開發(fā)接口,凡支持 OLE 和 COM 編程的開發(fā)工具。其二次開發(fā)分兩種,一種是基于自動(dòng)化技術(shù)的,另一種開發(fā)方式是基于 COM 的。COM 技術(shù)可以使用最多的 SolidWorks API 函數(shù),并可控制 SolidWorks 的運(yùn)行方式,生成 dll文件,即以 SolidWorks 插件的形式生成用戶的自定義功能模塊。由于 SolidWorks 是以 Visual C++作為主要開發(fā)工具,SolidWorks2006 采用了ATL COM Appwizard 向?qū)?,并?EDS 公司推薦使用 ATL 方法進(jìn)行程序的開發(fā)。在此采用 Visual C++6.0 和 ATL 向?qū)нM(jìn)行程序開發(fā)。可以最多地使用 SolidWorks 提供的 API 函數(shù)和 Visual C++6.0 的 MFC 類庫,方便程序的開發(fā)。特征提取是在SolidWorks2006 軟件平臺(tái)上通過二次開發(fā)實(shí)現(xiàn)的。
模型信息的提取和存儲(chǔ)。信息提取的基本思路是:遍歷零件的拓?fù)錁洌瑢μ卣鬟M(jìn)行判斷是否是幾何特征,若是則提取其拓?fù)湫畔⑴c幾何參數(shù)信息,對特征中的幾何面逐個(gè)進(jìn)行三角化離散,記錄每個(gè)面片的頂點(diǎn)信息與法線信息,將零件的面片信息以自定義文件.v rd保存。在對模型進(jìn)行三角化離散后,為模型的近似描述。在虛擬設(shè)計(jì)系統(tǒng)中不能通過對三角面片的計(jì)算獲取精確的模型幾何信息,同時(shí)需要進(jìn)行大量計(jì)算,但是在虛擬設(shè)計(jì)系統(tǒng)中需要獲取模型的精確幾何信息進(jìn)行分析,這就需要在 CAD 軟件中進(jìn)行特征提取時(shí)提取所有的屬性信息。對于模型信息的存儲(chǔ)采用了先遍歷模型中的所有特征,形成特征鏈表,再遍歷特征中的幾何面形成幾何面表,最后對每個(gè)面進(jìn)行三角面片離散化后用頂點(diǎn)鏈表保存頂點(diǎn)數(shù)據(jù),形成模型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。
小結(jié)
虛擬設(shè)計(jì)技術(shù)是虛擬現(xiàn)實(shí)技術(shù)在機(jī)械產(chǎn)品設(shè)計(jì)中的應(yīng)用,通過對開發(fā)過程的模擬,減少了產(chǎn)品的開發(fā)周期,是 CAD 技術(shù)的發(fā)展趨勢。一些應(yīng)用已經(jīng)表現(xiàn)了其巨大的優(yōu)勢,將是產(chǎn)品設(shè)計(jì)方法的一個(gè)重要的研究方向。
參考文獻(xiàn)
[1]陳琪,產(chǎn)品開發(fā)與虛擬設(shè)計(jì)制造技術(shù),機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2002
[2]黃成洋機(jī)械產(chǎn)品虛擬設(shè)計(jì)建模方法的研究,機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2004
[3]陳健,基于Solidworks 二次開發(fā)的模型特征提取研究,機(jī)電產(chǎn)品設(shè)計(jì)與創(chuàng)新,2006