黃國權(quán),司前前
(哈爾濱工程大學(xué)機(jī)電工程學(xué)院,黑龍江 哈爾濱 150001)
產(chǎn)品的裝配工藝規(guī)劃是一個基于知識的過程,從產(chǎn)品的三維CAD裝配模型中提取出工藝規(guī)劃所需信息是至關(guān)重要的,對此國內(nèi)外學(xué)者進(jìn)行了相關(guān)的研究。
文獻(xiàn)[1]對基于UG 的數(shù)據(jù)表達(dá)、UG/Open API 及裝配體的模型樹結(jié)構(gòu)進(jìn)行了研究,提出了一種基于裝配模型樹結(jié)構(gòu)的裝配信息提取算法。文獻(xiàn)[2]提出一種檢索裝配模型中配合關(guān)系的檢測方法,通過檢測分析各零部件間的干涉情況,確定他們之間的裝配關(guān)系,將提取出的信息在層次性的裝配信息模型中進(jìn)行分類處理,以便于裝配模型信息的檢索,并開發(fā)了相應(yīng)的功能應(yīng)用。文獻(xiàn)[3]對裝配部件及其接觸面的識別進(jìn)行了研究,設(shè)計了運用CAD軟件的應(yīng)用程序編程接口API來處理裝配模型和提取相關(guān)裝配數(shù)據(jù)的系統(tǒng)框架,直接通過CAD 數(shù)據(jù)接口提取相關(guān)裝配信息。文獻(xiàn)[4]提出了一種檢索幾何與非幾何信息的模型檢索算法,構(gòu)建了基于MBD數(shù)據(jù)集標(biāo)準(zhǔn)框架的本體結(jié)構(gòu),給出了基于本體結(jié)構(gòu)的比較兩層相似性的方法,完成了基于幾何與非幾何信息的MBD 模型檢索,實現(xiàn)了MBD 數(shù)據(jù)集結(jié)構(gòu)及語義的表達(dá)和存儲。文獻(xiàn)[5]利用存儲在CAD裝配模型中的信息及優(yōu)先級技術(shù)來提取零件優(yōu)先信息,結(jié)合相關(guān)應(yīng)用案例對其有效性進(jìn)行了驗證。文獻(xiàn)[6]深入研究了飛機(jī)裝配工藝系統(tǒng)的數(shù)據(jù)轉(zhuǎn)換與集成方法,開發(fā)了可與PDM系統(tǒng)集成的飛機(jī)裝配工藝系統(tǒng)。
文獻(xiàn)[7]對產(chǎn)品零件位置信息的獲取及裝配體的重構(gòu)方法進(jìn)行了研究,通過基于CAA的CATIA二次開發(fā)方式,實現(xiàn)了裝配體中零件裝配信息及位置信息的準(zhǔn)確獲取。文獻(xiàn)[8]以CATIA 為平臺,運用二次開發(fā)技術(shù)對基于MBD模型的裝配信息的獲取進(jìn)行了研究,實現(xiàn)了數(shù)字化裝配技術(shù)中制孔信息的自動獲取。文獻(xiàn)[9]為提高獲取復(fù)雜產(chǎn)品裝配關(guān)系的計算效率,提出了一種通過運用零件與子裝配體的交包圍盒、層次包圍盒及多包圍盒與表面包圍盒的聯(lián)合相交檢測的方式,來減少各包圍盒間相交檢測次數(shù)的方法。文獻(xiàn)[10]以Pro/E 為平臺運用Pro/Toolkit 開發(fā)工具,開發(fā)出一個用于獲取產(chǎn)品裝配信息的接口,可完成產(chǎn)品各零部件屬性信息及裝配關(guān)系信息的獲取與載入。文獻(xiàn)[11]提出了一種基于改進(jìn)的遞歸深度優(yōu)先遍歷的算法,將MBD模型中的信息存儲在多叉樹中,以層級控制的方式,根據(jù)實際所需遍歷多叉樹,解決了所有信息均要遍歷的問題,提高了信息提取的效率。
由上述研究情況可以得出:現(xiàn)階段主要以現(xiàn)有CAD軟件為平臺,通過系統(tǒng)所提供的二次開發(fā)接口對其進(jìn)行二次開發(fā),實現(xiàn)裝配信息的獲取。對于所含零部件較多的復(fù)雜產(chǎn)品(如船用柴油機(jī)),在實際裝配過程中,首先將產(chǎn)品進(jìn)行結(jié)構(gòu)劃分,然后根據(jù)生成的裝配層次結(jié)構(gòu)圖組織裝配。因此,以船用柴油機(jī)為研究對象,以CATIA為平臺,利用CATIA V5 Automation技術(shù),對具有層次關(guān)系的裝配關(guān)系矩陣模型的直接生成與自動獲取進(jìn)行研究,為船用柴油機(jī)的數(shù)字化裝配工藝設(shè)計提供數(shù)據(jù)支撐。
對于所含零部件較多的復(fù)雜產(chǎn)品,對應(yīng)的裝配關(guān)系矩陣將是一個維數(shù)較大的方陣,當(dāng)以如此大的一個矩陣作為算法的輸入求解裝配序列時,將會大大增加求解時間。此外,在產(chǎn)品的實際裝配過程中,通常根據(jù)產(chǎn)品的結(jié)構(gòu)組成及功能將其劃分成各裝配單元進(jìn)行分段裝配,然后總裝,根據(jù)產(chǎn)品中子裝配的劃分情況,首先將產(chǎn)品中的子裝配體當(dāng)做一個獨立的“零件”處理,獲取產(chǎn)品的外層裝配關(guān)系矩陣,然后求解產(chǎn)品中各子裝配體的裝配關(guān)系矩陣,對裝配關(guān)系矩陣進(jìn)行分層表達(dá)。產(chǎn)品裝配關(guān)系矩陣的分層表達(dá),如式(1)~式(3)所示。
式中:A,B—子裝配體,與其對應(yīng)的關(guān)系矩陣式(1)~式(3)。
由式(1)~式(3)可得:由裝配體的層次結(jié)構(gòu),將關(guān)系矩陣分層次表達(dá)的方式將9維方陣降階為5維的方陣,使矩陣得到簡化。此外,求解產(chǎn)品裝配序列時可根據(jù)裝配關(guān)系矩陣的層次來分層求解,然后依據(jù)層次信息將各層序列合并即可得到整個產(chǎn)品的裝配序列。如:首先以矩陣U為輸入,求出P1,P2,P3,A,B間的裝配順序q1,然后分別以A,B為輸入求出P4,P5,P6間的裝配順序q2及P7,P8,P9之間的裝配順序q3,之后將q2與q3插入到q1中即可得到整個產(chǎn)品的裝配序列q。通過這種分層求解產(chǎn)品裝配序列的方式,能夠同時得到整個產(chǎn)品與各子裝配體的裝配序列。對于需要并行完成裝配的子裝配體(A,B),可方便的按照各子裝配體的裝配序列(q2,q3)分別進(jìn)行各自的裝配操作,完成各子裝配體的裝配后,按照各子裝配體間的裝配序列(q1)進(jìn)行總裝,完成產(chǎn)品的裝配。
產(chǎn)品的層次結(jié)構(gòu)信息可通過三維CAD軟件中的裝配樹來表達(dá),遍歷裝配樹可查看產(chǎn)品的結(jié)構(gòu)、組成及各零件的MBD信息,對于裝配關(guān)系矩陣的生成及分層表達(dá)至關(guān)重要。某產(chǎn)品的層次結(jié)構(gòu)樹,如圖1所示。
由圖1所示的結(jié)構(gòu)樹可得:該產(chǎn)品由兩個子裝配體Z1、Z2與兩個零件P1、P2構(gòu)成,Z1又由P3、P4兩零件組成等,直觀、明確的表達(dá)了該產(chǎn)品的層次結(jié)構(gòu)信息。
圖1 產(chǎn)品的層次結(jié)構(gòu)樹Fig 1 Product Hierarchical Structure Tree
求解產(chǎn)品裝配關(guān)系矩陣時,通常利用CATIA軟件已集成的干涉檢測功能來檢測裝配體中的連接關(guān)系,以及產(chǎn)品中各零部件裝配過程中的動態(tài)干涉情況,但只能檢測出各零件間的連接關(guān)系,不能將產(chǎn)品中的子裝配體當(dāng)做獨立的“零件”來處理,得到獨立子裝配體與零件間的接觸-干涉情況。如一個由子裝配體Z(由零件P3、P4組成)與零件P1、P2組成的產(chǎn)品,通過CATIA軟件的干涉檢測功能僅能檢測出P1,P2,P3,P4間的連接關(guān)系,不能將Z作為一個“零件”來處理直接得到Z,P3與P4間的連接關(guān)系,即不能直接獲取Z,P3,P4的三維裝配關(guān)系矩陣N3×3。若能將Z內(nèi)部的連接關(guān)系“過濾”掉,便可只輸出Z,P3,P4間的干涉,直接獲得N3×3。
利用CATIA的干涉檢測功能,依據(jù)產(chǎn)品模型樹的層次結(jié)構(gòu)信息,由外至內(nèi)逐層遍歷模型樹,并結(jié)合子裝配體內(nèi)部連接關(guān)系的“過濾”,首先將產(chǎn)品中子裝配體處理為獨立的“零件”,獲取產(chǎn)品的外層裝配關(guān)系矩陣,然后求解產(chǎn)品中各子裝配體的裝配關(guān)系矩陣,實現(xiàn)裝配關(guān)系矩陣的分層求解。設(shè)Z1、Z2是裝配體P中的兩個子裝配體,P1、P2是P中的零件,則當(dāng)產(chǎn)品層級為2(即產(chǎn)品模型樹僅有兩層零部件)時,存在連接關(guān)系的兩零件具有如下關(guān)系:(1)當(dāng)連接關(guān)系屬于Z1(或Z2)內(nèi)部時,則存在連接關(guān)系的兩零件的父級相同。圖2中零件3、4,其父級均為Z1。(2)當(dāng)連接關(guān)系屬于Z1與Z2(或Z2與P1、Z2與P2等)時,則存在連接關(guān)系的兩零件的父級不同。圖2中3與5間的連接關(guān)系,3的父級是Z1,5的父級是Z2;4與1間的連接關(guān)系,4的父級是Z1,1的父級是P。(3)當(dāng)連接關(guān)系屬于P2與P1時,則存在連接關(guān)系的兩零件的父級相同均為P。圖2中1,2間的連接關(guān)系,其父級均是P,如圖2所示。
圖2 裝配實例模型Fig.2 Assembly Example Model
設(shè)待檢測的兩零部件為OP1與OP2,OP1與OP2中存在的連接關(guān)系數(shù)為count,則根據(jù)上述存在連接關(guān)系的兩零件的父級關(guān)系,以及兩待檢測零部件間的連接關(guān)系數(shù),能夠?qū)崿F(xiàn)子裝配體內(nèi)部連接關(guān)系的“過濾”。判斷方法如下:
(1)若count>1,且存在連接關(guān)系的兩零件的父級相同,則OP1與OP2之間無接連接關(guān)系;若父級不同,則存在連接關(guān)系。
(2)若count=1,且存在連接關(guān)系的兩零件與OP1、OP2不同,則OP1與OP2間無連接關(guān)系;若與OP1、OP2相同,則有連接關(guān)系。圖2中Z1(P1)與2(OP2)間僅3與4間有連接關(guān)系,但此連接關(guān)系屬于Z1內(nèi)部,不屬于Z1與2,故Z1與2間無連接關(guān)系。
(3)若count=0,則OP1與OP2間不存在連接關(guān)系。
利用CATIA已集成的干涉檢測功能,并結(jié)合子裝配體內(nèi)部連接關(guān)系的“過濾”方法,來檢測存在連接關(guān)系的零部件,實現(xiàn)裝配關(guān)系矩陣的分層求解。
求解流程,如圖3所示。
圖3 層次性裝配關(guān)系矩陣的自動獲取流程Fig.3 Automatic Acquisition Process of Hierarchical Assembly Relationship Matrix
在CATIA中建立完成的船用柴油機(jī)活塞連桿機(jī)構(gòu)的參數(shù)化三維模型,如圖4所示。
圖4 船用柴油機(jī)活塞連桿機(jī)構(gòu)爆炸圖Fig.4 Explosion Diagram of the Piston Mechanism of Marine Diesel Engine
以該模型為裝配對象,運用CATIA V5 Automation 技術(shù),根據(jù)3.2節(jié)中層次性裝配關(guān)系矩陣的生成方法,對CATIA進(jìn)行二次開發(fā),實現(xiàn)層次性裝配關(guān)系矩陣的自動獲取,主要包括層次性連接矩陣、層次性干涉矩陣、層次性支撐矩陣。這里僅以層次性連接矩陣的自動生成為例,驗證所提自動獲取層次性裝配關(guān)系矩陣方法的可行性,該方法同樣適用于干涉矩陣與支撐矩陣的分層求解,求解過程中判斷零部件間的連接關(guān)系時,將子裝配體內(nèi)部連接關(guān)系的“過濾”考慮進(jìn)去即可,不再贅述。連接矩陣模型的自動獲取流程,如圖5所示。
圖5 層次性連接矩陣的自動獲取流程Fig.5 Automatic Acquisition Process of Hierarchical Connection Matrix
對圖4所示的活塞連桿機(jī)構(gòu)模型進(jìn)行簡化,將該機(jī)構(gòu)中兩個以上同規(guī)格螺紋連接件簡化為1個,以提高算法運行速度。大型低速船用柴油機(jī)的裝配,通常被劃分為各裝配單元,由幾組工人同時進(jìn)行裝配,然后將已裝好的各個部件分別送到總裝試車臺上進(jìn)行總裝配。其中,活塞連桿機(jī)構(gòu)的裝配通常被劃分為:活塞組件的部裝及連桿組件的部裝,因此將該機(jī)構(gòu)分為活塞組件與連桿組件兩個層次提取該裝配體的層次性裝配關(guān)系矩陣。
在CATIA 的VBA 集成開發(fā)環(huán)境中所設(shè)計的獲取層次性裝配關(guān)系矩陣的程序運行界面,如圖6所示。
圖6 裝配關(guān)系矩陣提取程序運行界面Fig.6 Assembly Relationship Matrix Extraction Program Running Interface
根據(jù)圖3所示層次性裝配關(guān)系矩陣的獲取流程,以及圖5所示連接矩陣模型的生成流程,在CATIA的VBA集成開發(fā)環(huán)境中完成代碼編寫后,打開如圖4所示船用柴油機(jī)活塞連桿機(jī)構(gòu)的.CATProduct文檔,點擊圖6所示運行界面中獲取層次性連接矩陣按鈕,并輸入連接矩陣的存儲文件路徑,即可直接獲取到該模型的外層連接矩陣及各子連接矩陣,如圖7所示。
圖7 活塞連桿機(jī)構(gòu)的各層連接矩陣Fig.7 The Connection Matrix of Each Layer of the Piston Rod Mechanism
由圖7所示獲取的活塞連桿機(jī)構(gòu)的裝配連接矩陣可得:該結(jié)果中包含了活塞連桿機(jī)構(gòu)的外層裝配連接矩陣、活塞組件的裝配連接矩陣和連桿組件的裝配連接矩陣。表明:所提裝配關(guān)系矩陣模型的分層求解方法是可行的,該方法不僅可以在總裝配關(guān)系矩陣的獲取過程中,將產(chǎn)品中的子裝配當(dāng)做獨立的“零件”來處理,獲取到產(chǎn)品的總裝配關(guān)系矩陣,又可以實現(xiàn)僅含零件的子裝配體關(guān)系矩陣的獲取,能夠方便、快捷的直接生成具有層次關(guān)系的總裝配關(guān)系矩陣及各子裝配關(guān)系矩陣,同時提取出了裝配信息模型中的裝配關(guān)系信息與層次結(jié)構(gòu)信息。
針對所含零部件較多的復(fù)雜產(chǎn)品先部裝后總裝的裝配組織形式,對具有層次關(guān)系的裝配關(guān)系矩陣模型的直接生成與自動獲取進(jìn)行了研究。
根據(jù)產(chǎn)品的層次結(jié)構(gòu)信息給出了裝配關(guān)系矩陣模型的分層表達(dá)與分層求解方法。依據(jù)兩待檢測零部件間存在的連接關(guān)系數(shù),以及存在連接關(guān)系的兩零件的父級關(guān)系,實現(xiàn)了子裝配體內(nèi)部連接關(guān)系的“過濾”;通過由外至內(nèi)逐層遍歷結(jié)構(gòu)樹的Product節(jié)點,利用CATIA軟件提供的碰撞干涉檢測API函數(shù),并結(jié)合子裝配體內(nèi)部連接關(guān)系的“過濾”方法,來檢測零部件間的接觸、碰撞關(guān)系,實現(xiàn)了裝配關(guān)系矩陣的分層求解;利用CATIA V5 Automation 技術(shù)實現(xiàn)了層次性裝配關(guān)系矩陣的自動獲取,提取出了MBD裝配信息模型中的裝配關(guān)系信息與層次結(jié)構(gòu)信息;以船用柴油機(jī)的活塞連桿機(jī)構(gòu)為例,驗證了所給出的裝配關(guān)系矩陣模型的分層求解方法的可行性。