劉云華,劉 巍
(華中科技大學國家CAD支撐軟件工程技術研究中心,湖北 武漢430074)
當前大型機械、裝備等產(chǎn)品設計通常在不同三維平臺中完成,導致裝配體信息表達方式不一致,在對模型進行裝配仿真時,需統(tǒng)一到同一三維平臺,但由于數(shù)據(jù)表達格式的不一致,導致數(shù)據(jù)在交換過程中一些必要的三維信息被丟失、或者三維模型信息不一致,如顏色、屬性等信息缺失,特別是三維裝配關系通常被拋棄[1],而這些信息往往是裝配序列規(guī)劃和運動仿真分析的關鍵信息[2]。所以,針對這一問題,需要構(gòu)建一種統(tǒng)一的裝配信息表達模型,使其能完整地描述產(chǎn)品的信息,不僅是產(chǎn)品的幾何信息,還包括產(chǎn)品的關系和屬性信息。
通常裝配模型由子部件和零件構(gòu)成,子部件又可以分解為下一級的子部件和零件,這樣形成了一種層次結(jié)構(gòu)關系[3]。而裝配模型除了這種層次關系之外,還存在裝配關系,裝配體的零部件就是通過這種裝配關系約束到一起形成整體[4]。最后,為了能夠?qū)⒀b配體正確顯示出來,還需要建立零件信息,主要包括零件的形狀、尺寸等信息。所以,裝配模型信息主要是層次關系、裝配關系、零件信息。為實現(xiàn)統(tǒng)一的產(chǎn)品數(shù)據(jù)模型,裝配信息里應該包含裝配體內(nèi)的各個子部件之間的父子關系信息,建立零部件間的裝配約束關系,描述零件的尺寸形狀。
歸納總結(jié)目前的產(chǎn)品裝配模型,可以分為層次模型、關系模型以及兩者相結(jié)合的混合模型[5,6]。這些方法只在裝配結(jié)構(gòu)方面進行了一些描述,而在其它方面沒有做更多的分析,并不能解決實際問題,如混合模型并沒能保留下裝配約束關系,不適用于實際的裝配信息建模。此外,隨著大規(guī)模制造的發(fā)展,裝配模型往往比較大,文件過大不利于網(wǎng)絡傳輸并影響虛擬裝配仿真的效率[7]。
為了能夠清晰反映零部件的結(jié)構(gòu)關系和裝配關系,本文采用輕量化的層次和關系混合模型來實現(xiàn)對異構(gòu)CAD平臺模型的統(tǒng)一表達。輕量化體現(xiàn)在對源模型數(shù)據(jù)進行壓縮,過濾掉與虛擬裝配仿真無關的信息,如建模過程信息,僅僅保留模型的裝配結(jié)構(gòu)信息、裝配關系信息和幾何信息;層次性體現(xiàn)在裝配體從頂?shù)较乱粚訉臃纸庵钡搅慵恳粚佣加涗浟讼鄳难b配信息和零件信息,呈典型的樹狀結(jié)構(gòu);關系性體現(xiàn)在零部件不是簡單地記錄了包含、從屬關系,而且保留了不同零件的幾何元素間的裝配約束信息,能夠直觀地反映出零部件間的配合關系、運動關系等。
綜上所述,為了統(tǒng)一表達異構(gòu)CAD平臺的裝配模型信息,本文的輕量化裝配信息混合模型應包括以下內(nèi)容:
(1)提供零部件間的父子關系信息,方便零部件的屬性管理。
(2)保留源裝配模型的裝配關系信息,為之后進行的裝配序列規(guī)劃和運動仿真提供數(shù)據(jù)基礎。
(3)保留源裝配模型的零件信息,用于對裝配體的正確顯示,便于零件幾何元素之間的計算,如測量、約束求解等。
(4)對源模型數(shù)據(jù)進行壓縮,縮小后的文件方便在網(wǎng)絡上傳輸。
輕量化的層次和關系混合模型表達方法如圖1所示,將產(chǎn)品裝配信息分為兩個部分:裝配結(jié)構(gòu)信息和裝配關系信息。裝配結(jié)構(gòu)信息里記錄了零部件的層次結(jié)構(gòu),包含零件的幾何尺寸信息、顯示信息,零部件的父子關系信息;裝配關系信息里記錄了不同零件間的約束關系,在此約束關系下,零部件形成了一個聯(lián)系緊密的整體。
Figure 1 Mixed expression model of hierarchy and relationships圖1 層次和關系混合表達模型
為充分保證模型的一致性,本文采用數(shù)據(jù)記錄方式盡量使三維模型數(shù)據(jù)保持一致,將三維裝配信息和零件分開表達。用裝配文件記錄裝配結(jié)構(gòu)信息和裝配關系信息,記為裝配層信息;零件文件記錄幾何信息,記為零件層信息。然后,裝配文件通過數(shù)據(jù)引用的方式將零件文件的幾何信息顯示在正確的位置。裝配層中的裝配關系信息需要利用零件層中的幾何信息來建立,而零件層中的幾何信息需要通過裝配層中裝配結(jié)構(gòu)信息調(diào)用來顯示。下面將分別詳細介紹裝配層和零件層的信息表達。
裝配層表達的是層次與關系的混合模型,反映了整個三維模型的框架,記錄了裝配體下面的零部件結(jié)構(gòu)、裝配關系。裝配層表達主要包括裝配關系信息表達和零部件引用表達。
裝配關系信息分為三類:配合關系、運動關系、聯(lián)結(jié)關系[8]。
配合關系是兩個零件的幾何特征之間的接觸約束關系,它描述兩個相互配合的零件如何通過零件上若干幾何表面的相互接觸來實現(xiàn)他們之間的相互聯(lián)系,是產(chǎn)生產(chǎn)品裝配順序和評價可裝配性的重要依據(jù)。配合關系包括:平面與平面貼合、柱面與柱面同軸、平面與回轉(zhuǎn)面相切、點面接觸等類型。數(shù)據(jù)結(jié)構(gòu)為:配合關系信息 = {裝配零件1,裝配零件2,幾何元素1,幾何元素2,配合關系類型}。
運動關系是構(gòu)成裝配的零部件之間存在的相對運動關系,這種相對運動是產(chǎn)品完成機械運動和實現(xiàn)力做功的基礎。
聯(lián)接關系是若干零部件通過其他聯(lián)接零件或自身的聯(lián)接特征聯(lián)接在一起,構(gòu)成穩(wěn)定的整體的特殊裝配關系。數(shù)據(jù)結(jié)構(gòu)為:運動(聯(lián)接)關系信息={裝配零件1,裝配零件2,運動(聯(lián)接)關系類型,運動(聯(lián)接)關系詳細信息}。
零部件引用記錄了零部件的名稱、ID號、文件相對路徑、相對變換矩陣。裝配層信息中只記錄零部件的文件路徑,對其進行引用,并不記錄具體的幾何拓撲信息,這樣會減少數(shù)據(jù)的冗余,減小文件大小。
零件信息是數(shù)字化產(chǎn)品裝配信息的關鍵內(nèi)容,沒有零件就無法構(gòu)成產(chǎn)品。零件是構(gòu)成產(chǎn)品的基本單元。
零件信息分為幾何信息和顯示信息。幾何信息是用來描述零件的實際幾何結(jié)構(gòu)以及幾何形狀的尺寸,可以用具體的函數(shù)來精確表達。例如,圓柱體零件包含的幾何信息對象有圓、平面、柱面,圓對應的幾何屬性有圓心坐標和半徑,平面的幾何屬性有定位點坐標和法矢。顯示信息是指將零件的幾何對象三角化后得到的三角化面、三角化邊和點的信息,因為三角面片能夠使模型加速顯示,所以我們采用三角面片來顯示圖形。
因此,零件層的數(shù)據(jù)結(jié)構(gòu)為:零件層信息 ={幾何信息,顯示信息};幾何信息 = {幾何對象類型,幾何對象屬性};顯示信息 = {三角化面,三角化邊,點}。
對于第2節(jié)提出的輕量化混合裝配信息表達模型,為了進一步減少數(shù)據(jù)冗余,使之后的裝配序列規(guī)劃以及運動仿真更加快速、有效,有幾點關鍵技術需要進一步討論,包括裝配體屬性管理和零件顯示機制。
裝配體從顯示上來看是簡單的父子層次結(jié)構(gòu),而實際在內(nèi)部數(shù)據(jù)方面,并非是簡單的父子關系,而是父-實例-零件的三層關系。因此,裝配體中的屬性就不僅只有父和子零件的屬性,還存在一個子在父中實例的屬性,這一屬性表示,當一個零件被裝配到某一特定裝配體下時,該實例零件還可以擁有與原零件不同的屬性信息,如顏色、外形等等。為了使同一個零件在不同部件中能夠顯示不同的屬性,本文的裝配信息表達方法是將零件的這些屬性保存在其上一級的父裝配體文件中。通過修改裝配體文件中被引用零件的相關屬性信息,實現(xiàn)零件的多形態(tài)顯示。這樣可以解決裝配體上的顏色設置、變型件問題。
如圖2所示,在裝配體A中引用了兩個子裝配體C,分別記為C1和C2。由于C1和C2是同一個裝配體文件,所以如果通過裝配體C來修改零件D的顏色,會導致C1和C2中零件D的顏色都會改變。按照本文的輕量化混合表達方法,部件C1和C2雖然都來自同一裝配文件,但是在這里是作為兩個實例來處理的,那么修改C1中零件D1的顏色只是改變了這個實例的顏色,并不會改變另外一個實例C1中零件D2的顏色。
Figure 2 Same part is called in many places圖2 同一部件在多處被調(diào)用
同樣,子部件的這類屬性也是記錄在其上一級父裝配體文件中。那么,這樣就會帶來一個問題,當一個零件和它的父裝配體同時設置了某個屬性時,該零件應顯示哪個屬性?由于模型的顯示過程是自頂向下的,即讀取屬性的過程是從總裝配體到子裝配體最后到零件,所以當零件和其父裝配體的同一屬性設置了不同值時,零件會取最后自身設置的屬性值。
在本文的輕量化裝配信息表達中,所有零部件的幾何信息都是相對于上一級父裝配體的位置進行保存的,記錄為相對變換矩陣。為了將零件顯示在正確的位置,就需要計算零件在裝配體中的絕對位置,可由零件的上級所有節(jié)點的變換矩陣相乘得到。若設某零件的所有上級節(jié)點的變換矩陣為Mi(i=1,2,…,n),則該零件的當前絕對位置矩陣為M=∏ni=1Mi(i=1,2,…,n)。
這樣做的意義在于,當某個零件被多個不同部件調(diào)用時,其位置顯示問題能夠得以解決。如圖2所示,零件D在兩處被調(diào)用,而它自身的幾何數(shù)據(jù)是確定的,那么要同時表示兩個位置,就可以利用相對位置矩陣。D在C中的相對位置矩陣為Mdc,C在A中的相對位置矩陣為Mca,那么零件D在總裝配體A中的絕對位置矩陣M=Mca*Mdc。零件D相對于子部件C的位置Mdc、子部件C相對于裝配體A的位置都可以通過修改裝配體文件中的相對變換矩陣來變化。這樣,通過每一層的數(shù)據(jù)引用,最終可以實現(xiàn)同一零件多次被調(diào)用時的顯示問題。
利用輕量化裝配信息混合表達模型,可將異構(gòu)CAD平臺裝配模型的裝配結(jié)構(gòu)信息、裝配關系信息以及幾何信息轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)表示模式,在該統(tǒng)一模型下,還可利用該模型表達將這些三維模型裝配在一起,實現(xiàn)異構(gòu)模型的三維裝配。在裝配模型中不僅保留了零部件的位置信息,還保留了零部件間的約束關系,利用這個模型我們可以方便地進行三維仿真。
利用HOOPS可視化開發(fā)包,在VS2005上開發(fā)了天喻軟件三維瀏覽器InteVue2012,通過三維CAD軟件提供的二次開發(fā)接口讀取對方的文件,然后將其轉(zhuǎn)化為統(tǒng)一的裝配模型表達方式,以實現(xiàn)對當前主流三維軟件模型的瀏覽,如Catia、Solid-Works、ProE等。
圖3是來自Inventor2011和SolidWorks2011的模型,進行了文件格式轉(zhuǎn)換后,在InteVue2012中打開,只保留了裝配體的幾何信息、拓撲信息、裝配關系信息以及少量的設計信息,文件大小相對于源文件減小很多,瀏覽速度快,并且能夠?qū)崿F(xiàn)零部件的移動和顏色修改等功能。圖3中顯示了裝配體的層次結(jié)構(gòu),保留了源文件的裝配關系,便于后期的裝配序列規(guī)劃以及裝配運動仿真,之后在兩個子部件之間又新增加了共軸和重合的約束配合。
本文提出了一種輕量化的層次和關系混合模型來表達異構(gòu)三維CAD平臺的裝配體模型,實現(xiàn)了對異構(gòu)CAD平臺模型的瀏覽,解決了零部件屬性一致性的問題,保留了裝配體的裝配關系,填補了國內(nèi)三維瀏覽器在裝配關系建立方面的空白。采用此方法可以有效地提高三維模型瀏覽速度,更好地指導裝配序列規(guī)劃和運動仿真。
[1] Peng Tao,Li Shi-qi,Zhang Chong-h(huán)ui,et al.Information acquisition and application for the virtual assembly[J].Com-
Figure 3 Model of heterogeneous CAD platform圖3 異構(gòu)CAD平臺的模型puter Integrated Manufacturing Systems,2009,15(9):1817-1822.(in Chinese)
[2] Yang Run-dang,Wu Dian-liang,F(xiàn)an Xiu-min,et al.Research on constraint-based virtual assembly technologies[J].Computer Integrated Manufacturing Systems,2006,12(3):414-419.(in Chinese)
[3] Liu Zhen-yu,Tan Jian-rong,Zhang Shu-you.The multi-level representation of product information for virtual assembly[J].Journal of Computer-Aided Design & Computer Graphics,2001,13(3):224-228.(in Chinese)
[4] Dai Guo-h(huán)ong.Research on the techniques of modeling and sequence planning for digital pre-assembly [D].Nanjing:Nanjing University of Science & Technology,2007.(in Chinese)
[5] van Holland W,Bronsvoort W F.Assembly features in modeling and planning [J].Robotics and Computer Integrated Manufacturing,2000,16(4):277-294.
[6] Jayaram S,Connacher H I,Lyons K W.Virtual assembly u-sing virtual reality techniques[J].Computer-Aided Design,1997,29(8):575-584.
[7] Sang Xiao-chong,Zhou Hua-lin,Zuo Dun-wen.Research on the automatically extracting technology of assembly information for virtual assembly[J].Manufacture Information Engineering of China,2010,39(19):33-40.(in Chinese)
[8] Zhang Fan.Research on the key technology for collaborative digital pre-assembly system[D].Nanjing:Nanjing University of Science & Technology,2005.(in Chinese)
附中文參考文獻:
[1] 彭濤,李世其,章崇暉,等.面向虛擬裝配的信息獲取與應用[J].計算機集成制造系統(tǒng),2009,15(9):1817-1822.
[2] 楊潤黨,武殿梁,范秀敏,等.基于約束的虛擬裝配技術研究[J].計算機集成制造系統(tǒng),2006,12(3):414-419.
[3] 劉振宇,譚建榮,張樹有.面向虛擬裝配的產(chǎn)品層次信息表達研究[J].計算機輔助設計與圖形學學報,2001,13(3):224-228.
[4] 戴國洪.數(shù)字化預裝配建模與序列規(guī)劃技術的研究[D].南京:南京理工大學,2007.
[7] 桑小沖,周華林,左敦穩(wěn).面向虛擬裝配的裝配信息自動提取技術的研究與實現(xiàn)[J].中國制造業(yè)信息化,2010,39(19):33-40.
[8] 張帆.協(xié)同數(shù)字化預裝配系統(tǒng)的關鍵技術研究[D].南京:南京理工大學,2005.