康倩
【摘 要】隨著現(xiàn)代化產(chǎn)品更新?lián)Q代速度之快,為減少設(shè)計/制造的時間與成本,提高其效率與質(zhì)量,人們采用了虛擬設(shè)計技術(shù)。其中虛擬實體建模,是虛擬產(chǎn)品設(shè)計與裝配技術(shù)的基礎(chǔ),本文通過面向?qū)ο蠹夹g(shù),介紹一個虛擬裝配系統(tǒng)的幾何內(nèi)核庫的開發(fā)過程。
【關(guān)鍵詞】虛擬設(shè)計;實體建模
一、虛擬設(shè)計技術(shù)與虛擬裝配
虛擬設(shè)計技術(shù)是將虛擬現(xiàn)實(VR)與產(chǎn)品設(shè)計聯(lián)系在一起,將CAD延伸與發(fā)展為基于虛擬現(xiàn)實的CAD。其順應(yīng)了設(shè)計技術(shù)發(fā)展的內(nèi)在要求,進一步推動了產(chǎn)品設(shè)計向虛擬化方向發(fā)展。在虛擬環(huán)境中,產(chǎn)品模型從交互與行為表現(xiàn)上均高度接近與現(xiàn)實產(chǎn)品。設(shè)計者無需通過實物樣機就能對產(chǎn)品設(shè)計結(jié)果進行多角度、全方位的分析與驗證,確保產(chǎn)品的可制造性、可裝配性、可維護性與可重用性。
虛擬裝配是(VA)是VR技術(shù)在CAD/CAM應(yīng)用中一個重要領(lǐng)域。它是利用計算機工具,建立一個產(chǎn)品的虛擬模型,通過分析、可視化數(shù)據(jù)表示等技術(shù)幫助設(shè)計者進行裝配關(guān)系的工程決策。近年來,隨著虛擬現(xiàn)實技術(shù)的發(fā)展,一些基于虛擬現(xiàn)實技術(shù)的簡單虛擬裝配設(shè)計環(huán)境受到人們的關(guān)注。
二、虛擬實體建模
(一)概述
虛擬現(xiàn)實是在虛擬的數(shù)字空間中模擬真實世界中的事物,這就需要真實世界的事物在數(shù)字空間中的表示,于是催生了虛擬現(xiàn)實中的建模技術(shù)。虛擬現(xiàn)實對現(xiàn)實“虛擬”得到底像不像,是與建模技術(shù)緊密相關(guān)的。因此,建模技術(shù)的研究具有非常重要的意義,得到了國內(nèi)外研究人員的重視。
虛擬實體建模,是虛擬產(chǎn)品設(shè)計與裝配技術(shù)的基礎(chǔ)。它克服了傳統(tǒng)二維設(shè)計中僅能以視圖描述零件特征,而不能建立實體模型的缺點,使設(shè)計者能夠以不同的角度,不同的方式對設(shè)計進行分析、評價與修改,并在零部件進行虛擬裝配的過程中,得到進一步的設(shè)計分析與優(yōu)化。因此,虛擬實體建模的好壞直接影響著對其的管理和操作,設(shè)計一個好的實體模型在虛擬裝配過程中猶為重要。
下面通過面向?qū)ο蠹夹g(shù),介紹一個虛擬裝配系統(tǒng)的幾何內(nèi)核庫的開發(fā)過程。
(二)面向?qū)ο蠹夹g(shù)基本原理
面向?qū)ο蟮南到y(tǒng)分析和設(shè)計方法是一種將系統(tǒng)看作由對象構(gòu)成的有機體,一切工作都圍繞對象展開的方法。面向?qū)ο蟮淖罨驹瓌t是使描述問題空間和解決問題的方法空間在結(jié)構(gòu)上盡可能一致。在面向?qū)ο笙到y(tǒng)中,世界被看成是獨立對象的集合,對象之間通過消息相互通訊,對象將數(shù)據(jù)和消息封裝在一起,對一個對象的存取或修改僅通過其外部接口實現(xiàn),其內(nèi)部的實現(xiàn)細節(jié)、數(shù)據(jù)結(jié)構(gòu)及對它的操作是不可見的。下面主要介紹面向?qū)ο蠹夹g(shù)的幾個關(guān)鍵部分。
對象(Object)是組成一個系統(tǒng)的基本邏輯單元,是一個有組織形式的含有信息的實體。它由屬性和行為兩部分組成。對象只有在具有屬性和行為的情況下才有意義,屬性是用來描述對象靜態(tài)特征的一個數(shù)據(jù)項,行為是用來描述對象動態(tài)特征的一個操作。在程序設(shè)計領(lǐng)域,可以用“對象=數(shù)據(jù)十作用于這些數(shù)據(jù)上的操作”這一公式來表達。
類(Class)是創(chuàng)建對象的樣板,在整體上代表一組對象,它是具有相同屬性和行為的一組對象的集合,它為屬于該類的全部對象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和行為兩個主要部分,類是對象集合的再抽象。
繼承(Inheritance)是一種聯(lián)結(jié)類與類的層次模型。繼承性是指特殊類的對象擁有其一般類的屬性和行為。
多態(tài)性(Polymorphism)是指類中同一函數(shù)名對應(yīng)多個具有相似功能的不同函數(shù),可以使用相同的調(diào)用方式來調(diào)用這些具有不同功能的同名函數(shù)。
繼承性和多態(tài)性的結(jié)合,可以生成一系列雖類似但獨一無二的對象。由于繼承性,這些對象共享許多相似的特征;由于多態(tài)性,針對相同的消息,不同對象可以有獨特的表現(xiàn)方式,實現(xiàn)特性化的設(shè)計。
面向?qū)ο蠓椒ㄗ畲蟮膬?yōu)點是軟件的可重用性,面向?qū)ο蠓椒ㄍㄟ^繼承與多態(tài)性相結(jié)合等方法使得軟件模塊得以充分重用,尤其在開發(fā)新系統(tǒng)時,可充分利用重用機制大大減小開發(fā)工作量和提高軟件的可靠性。
(三)虛擬實體幾何對象類的層次設(shè)計
1.Entity:幾何對象基本類,描述幾何對象的共有屬性。
CEntity是幾何對象基類,它定義了幾何對象的許多公有屬性,也包括了幾何對象的一些公共的操作函數(shù)。CEntity在MFC類CObject的基礎(chǔ)上派生,因而可以繼承CObject的屬性和操作。因此,和MFC的視圖類基類CView一樣,CEntity也是一個抽象類,其中定義了純虛函數(shù),不能直接用于聲明具體的幾何對象。CEntity作為基類,派生出了其他的幾何對象類。這樣設(shè)計充分利用了C++面向?qū)ο蠹夹g(shù)的繼承概念,不僅減少了代碼重復(fù),使得程序的結(jié)構(gòu)清晰,而且方便管理和擴充。
2.CPart:高級幾何模型類,描述應(yīng)用程序中整個幾何模型。
CPart類是一個幾何模型的集合類,它可以包含一系列的子模型。其文檔中的具體應(yīng)用數(shù)據(jù)是一系列由CMyModel對象組成的模型,CPart就是來描述這樣一個模型的集合。
3.CMyModel:幾何模型類,描述由特征面組成的實體。
類CMyModel是一個具體的幾何對象類,用來描述一個由自定義特征面所組成的實體模型。它是CEntity的派生類,具有CEntity類的屬性和方法,并包含自己的屬性和方法,例如,實體類型、旋轉(zhuǎn)自由度及平移自由度等屬性。
4.CFeature:特征面類,描述由三角面片表示的特征面。
特征面是組成虛擬實體的基本構(gòu)成元素,它在基于語義的虛擬裝配過程中具有至關(guān)重要的作用,例如,在幾何定位求解過程中,通過裝配面的屬性才得以實現(xiàn)。CFeature的基本成員包括:特征面類型、法線向量、軸向量、特征點等。
5.CTriChip:三角面片對象類,描述三角面片。
類CTriChip用于描述組成特征面的基本三角面片對象,它是組成虛擬實體最基本的組成元素。它在虛擬實體的顯示、干涉檢查等方面具有相當重要的作用。這五個基本幾何對象類之間的層次關(guān)系如圖1所示。
在實際的虛擬裝配過程中,正是運用了面向?qū)ο蠹夹g(shù),將裝配實體模型進行層次化類的分析,使裝配體按照由面片層到部件層的順序構(gòu)建,虛擬實體才得以創(chuàng)建。因此,幾何實體層次化建模是虛擬裝配過程中的重要環(huán)節(jié),是虛擬裝配得以成功的關(guān)鍵。