黃國權,司前前
(哈爾濱工程大學機電工程學院,黑龍江 哈爾濱 150001)
產品的裝配工藝規劃是一個基于知識的過程,從產品的三維CAD裝配模型中提取出工藝規劃所需信息是至關重要的,對此國內外學者進行了相關的研究。
文獻[1]對基于UG 的數據表達、UG/Open API 及裝配體的模型樹結構進行了研究,提出了一種基于裝配模型樹結構的裝配信息提取算法。文獻[2]提出一種檢索裝配模型中配合關系的檢測方法,通過檢測分析各零部件間的干涉情況,確定他們之間的裝配關系,將提取出的信息在層次性的裝配信息模型中進行分類處理,以便于裝配模型信息的檢索,并開發了相應的功能應用。文獻[3]對裝配部件及其接觸面的識別進行了研究,設計了運用CAD軟件的應用程序編程接口API來處理裝配模型和提取相關裝配數據的系統框架,直接通過CAD 數據接口提取相關裝配信息。文獻[4]提出了一種檢索幾何與非幾何信息的模型檢索算法,構建了基于MBD數據集標準框架的本體結構,給出了基于本體結構的比較兩層相似性的方法,完成了基于幾何與非幾何信息的MBD 模型檢索,實現了MBD 數據集結構及語義的表達和存儲。文獻[5]利用存儲在CAD裝配模型中的信息及優先級技術來提取零件優先信息,結合相關應用案例對其有效性進行了驗證。文獻[6]深入研究了飛機裝配工藝系統的數據轉換與集成方法,開發了可與PDM系統集成的飛機裝配工藝系統。
文獻[7]對產品零件位置信息的獲取及裝配體的重構方法進行了研究,通過基于CAA的CATIA二次開發方式,實現了裝配體中零件裝配信息及位置信息的準確獲取。文獻[8]以CATIA 為平臺,運用二次開發技術對基于MBD模型的裝配信息的獲取進行了研究,實現了數字化裝配技術中制孔信息的自動獲取。文獻[9]為提高獲取復雜產品裝配關系的計算效率,提出了一種通過運用零件與子裝配體的交包圍盒、層次包圍盒及多包圍盒與表面包圍盒的聯合相交檢測的方式,來減少各包圍盒間相交檢測次數的方法。文獻[10]以Pro/E 為平臺運用Pro/Toolkit 開發工具,開發出一個用于獲取產品裝配信息的接口,可完成產品各零部件屬性信息及裝配關系信息的獲取與載入。文獻[11]提出了一種基于改進的遞歸深度優先遍歷的算法,將MBD模型中的信息存儲在多叉樹中,以層級控制的方式,根據實際所需遍歷多叉樹,解決了所有信息均要遍歷的問題,提高了信息提取的效率。
由上述研究情況可以得出:現階段主要以現有CAD軟件為平臺,通過系統所提供的二次開發接口對其進行二次開發,實現裝配信息的獲取。對于所含零部件較多的復雜產品(如船用柴油機),在實際裝配過程中,首先將產品進行結構劃分,然后根據生成的裝配層次結構圖組織裝配。因此,以船用柴油機為研究對象,以CATIA為平臺,利用CATIA V5 Automation技術,對具有層次關系的裝配關系矩陣模型的直接生成與自動獲取進行研究,為船用柴油機的數字化裝配工藝設計提供數據支撐。
對于所含零部件較多的復雜產品,對應的裝配關系矩陣將是一個維數較大的方陣,當以如此大的一個矩陣作為算法的輸入求解裝配序列時,將會大大增加求解時間。此外,在產品的實際裝配過程中,通常根據產品的結構組成及功能將其劃分成各裝配單元進行分段裝配,然后總裝,根據產品中子裝配的劃分情況,首先將產品中的子裝配體當做一個獨立的“零件”處理,獲取產品的外層裝配關系矩陣,然后求解產品中各子裝配體的裝配關系矩陣,對裝配關系矩陣進行分層表達。產品裝配關系矩陣的分層表達,如式(1)~式(3)所示。

式中:A,B—子裝配體,與其對應的關系矩陣式(1)~式(3)。


由式(1)~式(3)可得:由裝配體的層次結構,將關系矩陣分層次表達的方式將9維方陣降階為5維的方陣,使矩陣得到簡化。此外,求解產品裝配序列時可根據裝配關系矩陣的層次來分層求解,然后依據層次信息將各層序列合并即可得到整個產品的裝配序列。如:首先以矩陣U為輸入,求出P1,P2,P3,A,B間的裝配順序q1,然后分別以A,B為輸入求出P4,P5,P6間的裝配順序q2及P7,P8,P9之間的裝配順序q3,之后將q2與q3插入到q1中即可得到整個產品的裝配序列q。通過這種分層求解產品裝配序列的方式,能夠同時得到整個產品與各子裝配體的裝配序列。對于需要并行完成裝配的子裝配體(A,B),可方便的按照各子裝配體的裝配序列(q2,q3)分別進行各自的裝配操作,完成各子裝配體的裝配后,按照各子裝配體間的裝配序列(q1)進行總裝,完成產品的裝配。
產品的層次結構信息可通過三維CAD軟件中的裝配樹來表達,遍歷裝配樹可查看產品的結構、組成及各零件的MBD信息,對于裝配關系矩陣的生成及分層表達至關重要。某產品的層次結構樹,如圖1所示。
由圖1所示的結構樹可得:該產品由兩個子裝配體Z1、Z2與兩個零件P1、P2構成,Z1又由P3、P4兩零件組成等,直觀、明確的表達了該產品的層次結構信息。

圖1 產品的層次結構樹Fig 1 Product Hierarchical Structure Tree
求解產品裝配關系矩陣時,通常利用CATIA軟件已集成的干涉檢測功能來檢測裝配體中的連接關系,以及產品中各零部件裝配過程中的動態干涉情況,但只能檢測出各零件間的連接關系,不能將產品中的子裝配體當做獨立的“零件”來處理,得到獨立子裝配體與零件間的接觸-干涉情況。如一個由子裝配體Z(由零件P3、P4組成)與零件P1、P2組成的產品,通過CATIA軟件的干涉檢測功能僅能檢測出P1,P2,P3,P4間的連接關系,不能將Z作為一個“零件”來處理直接得到Z,P3與P4間的連接關系,即不能直接獲取Z,P3,P4的三維裝配關系矩陣N3×3。若能將Z內部的連接關系“過濾”掉,便可只輸出Z,P3,P4間的干涉,直接獲得N3×3。
利用CATIA的干涉檢測功能,依據產品模型樹的層次結構信息,由外至內逐層遍歷模型樹,并結合子裝配體內部連接關系的“過濾”,首先將產品中子裝配體處理為獨立的“零件”,獲取產品的外層裝配關系矩陣,然后求解產品中各子裝配體的裝配關系矩陣,實現裝配關系矩陣的分層求解。設Z1、Z2是裝配體P中的兩個子裝配體,P1、P2是P中的零件,則當產品層級為2(即產品模型樹僅有兩層零部件)時,存在連接關系的兩零件具有如下關系:(1)當連接關系屬于Z1(或Z2)內部時,則存在連接關系的兩零件的父級相同。圖2中零件3、4,其父級均為Z1。(2)當連接關系屬于Z1與Z2(或Z2與P1、Z2與P2等)時,則存在連接關系的兩零件的父級不同。圖2中3與5間的連接關系,3的父級是Z1,5的父級是Z2;4與1間的連接關系,4的父級是Z1,1的父級是P。(3)當連接關系屬于P2與P1時,則存在連接關系的兩零件的父級相同均為P。圖2中1,2間的連接關系,其父級均是P,如圖2所示。

圖2 裝配實例模型Fig.2 Assembly Example Model
設待檢測的兩零部件為OP1與OP2,OP1與OP2中存在的連接關系數為count,則根據上述存在連接關系的兩零件的父級關系,以及兩待檢測零部件間的連接關系數,能夠實現子裝配體內部連接關系的“過濾”。判斷方法如下:
(1)若count>1,且存在連接關系的兩零件的父級相同,則OP1與OP2之間無接連接關系;若父級不同,則存在連接關系。
(2)若count=1,且存在連接關系的兩零件與OP1、OP2不同,則OP1與OP2間無連接關系;若與OP1、OP2相同,則有連接關系。圖2中Z1(P1)與2(OP2)間僅3與4間有連接關系,但此連接關系屬于Z1內部,不屬于Z1與2,故Z1與2間無連接關系。
(3)若count=0,則OP1與OP2間不存在連接關系。
利用CATIA已集成的干涉檢測功能,并結合子裝配體內部連接關系的“過濾”方法,來檢測存在連接關系的零部件,實現裝配關系矩陣的分層求解。
求解流程,如圖3所示。

圖3 層次性裝配關系矩陣的自動獲取流程Fig.3 Automatic Acquisition Process of Hierarchical Assembly Relationship Matrix
在CATIA中建立完成的船用柴油機活塞連桿機構的參數化三維模型,如圖4所示。

圖4 船用柴油機活塞連桿機構爆炸圖Fig.4 Explosion Diagram of the Piston Mechanism of Marine Diesel Engine
以該模型為裝配對象,運用CATIA V5 Automation 技術,根據3.2節中層次性裝配關系矩陣的生成方法,對CATIA進行二次開發,實現層次性裝配關系矩陣的自動獲取,主要包括層次性連接矩陣、層次性干涉矩陣、層次性支撐矩陣。這里僅以層次性連接矩陣的自動生成為例,驗證所提自動獲取層次性裝配關系矩陣方法的可行性,該方法同樣適用于干涉矩陣與支撐矩陣的分層求解,求解過程中判斷零部件間的連接關系時,將子裝配體內部連接關系的“過濾”考慮進去即可,不再贅述。連接矩陣模型的自動獲取流程,如圖5所示。

圖5 層次性連接矩陣的自動獲取流程Fig.5 Automatic Acquisition Process of Hierarchical Connection Matrix
對圖4所示的活塞連桿機構模型進行簡化,將該機構中兩個以上同規格螺紋連接件簡化為1個,以提高算法運行速度。大型低速船用柴油機的裝配,通常被劃分為各裝配單元,由幾組工人同時進行裝配,然后將已裝好的各個部件分別送到總裝試車臺上進行總裝配。其中,活塞連桿機構的裝配通常被劃分為:活塞組件的部裝及連桿組件的部裝,因此將該機構分為活塞組件與連桿組件兩個層次提取該裝配體的層次性裝配關系矩陣。
在CATIA 的VBA 集成開發環境中所設計的獲取層次性裝配關系矩陣的程序運行界面,如圖6所示。

圖6 裝配關系矩陣提取程序運行界面Fig.6 Assembly Relationship Matrix Extraction Program Running Interface
根據圖3所示層次性裝配關系矩陣的獲取流程,以及圖5所示連接矩陣模型的生成流程,在CATIA的VBA集成開發環境中完成代碼編寫后,打開如圖4所示船用柴油機活塞連桿機構的.CATProduct文檔,點擊圖6所示運行界面中獲取層次性連接矩陣按鈕,并輸入連接矩陣的存儲文件路徑,即可直接獲取到該模型的外層連接矩陣及各子連接矩陣,如圖7所示。

圖7 活塞連桿機構的各層連接矩陣Fig.7 The Connection Matrix of Each Layer of the Piston Rod Mechanism
由圖7所示獲取的活塞連桿機構的裝配連接矩陣可得:該結果中包含了活塞連桿機構的外層裝配連接矩陣、活塞組件的裝配連接矩陣和連桿組件的裝配連接矩陣。表明:所提裝配關系矩陣模型的分層求解方法是可行的,該方法不僅可以在總裝配關系矩陣的獲取過程中,將產品中的子裝配當做獨立的“零件”來處理,獲取到產品的總裝配關系矩陣,又可以實現僅含零件的子裝配體關系矩陣的獲取,能夠方便、快捷的直接生成具有層次關系的總裝配關系矩陣及各子裝配關系矩陣,同時提取出了裝配信息模型中的裝配關系信息與層次結構信息。
針對所含零部件較多的復雜產品先部裝后總裝的裝配組織形式,對具有層次關系的裝配關系矩陣模型的直接生成與自動獲取進行了研究。
根據產品的層次結構信息給出了裝配關系矩陣模型的分層表達與分層求解方法。依據兩待檢測零部件間存在的連接關系數,以及存在連接關系的兩零件的父級關系,實現了子裝配體內部連接關系的“過濾”;通過由外至內逐層遍歷結構樹的Product節點,利用CATIA軟件提供的碰撞干涉檢測API函數,并結合子裝配體內部連接關系的“過濾”方法,來檢測零部件間的接觸、碰撞關系,實現了裝配關系矩陣的分層求解;利用CATIA V5 Automation 技術實現了層次性裝配關系矩陣的自動獲取,提取出了MBD裝配信息模型中的裝配關系信息與層次結構信息;以船用柴油機的活塞連桿機構為例,驗證了所給出的裝配關系矩陣模型的分層求解方法的可行性。