周爾民
(華東交通大學研究生處,江西南昌 330013)
包容盒干涉檢查方法在Pro/E下的實現*
周爾民
(華東交通大學研究生處,江西南昌 330013)
碰撞干涉檢查在產品裝配仿真中起著重要作用,包容盒方法可以有效地解決干涉檢查固有的計算復雜性。根據產品零部件不同類型提出了三級精度包容盒相結合的快速干涉檢查算法,并在Pro/ENGINEER環境下加以實現。通過人機交互界面應用于汽車變速器裝配仿真過程中零部件之間的碰撞干涉檢查。
包容盒 干涉檢查 Pro/E 裝配仿真
干涉檢查是產品裝配仿真中的關鍵環節。干涉檢查算法的效率高低直接關系到裝配仿真系統的運行速度。
目前干涉檢查算法主要有以下幾種[1~4]:
(1)幾何分析法 分析裝配中任意兩個零件之間各面間的關系,得到零件間的連接關系及運動自由度,基于運動自由度判別無沖突裝配路徑。
(2)掃描法 可用于兩個零件間無沖突裝配路徑的檢測,根據兩個零件在一個裝配方向上的投影及投影區域間的距離,判斷是否存在無沖突裝配路徑。
(3)包容盒法 適用復雜環境中的碰撞干涉檢查。通過建立對象的層次包容盒來逐漸逼近對象的幾何模型,從而用體積略大而形狀簡單的包容盒代替復雜的幾何對象參加碰撞干涉檢查。通過包容盒間的相交測試快速地排除不相交的基本幾何元素對,以減少相交測試的次數。若包容盒不相交,則零部件也不發生干涉。
(4)移動增量干涉檢驗法 是將掃描方法的空間進行分解,得到多段掃描區間。對每一步進行判斷,如果在整個過程中所有的段均無干涉,則認為裝配路徑上無干涉。
其中包容盒干涉檢查方法一是要求包容盒具有簡單性,即應該是簡單的幾何體,至少應該比被包容的幾何對象簡單。不僅表現為幾何形狀簡單、易于計算,而且包括相交測試算法的快速簡單;二是要求包容盒具有緊密型,即應該盡可能地貼近被包容的幾何對象??梢杂冒莺信c被包容對象之間的距離來衡量,距離越小,緊密性越好。緊密性直接關系到需要進行相交測試的包容盒的數目。
根據復雜裝配體不同的零部件類型,本文提出了一種三級精度包容盒相結合的快速定性干涉檢查方法:
(1)沿全局坐標系規整包容盒干涉檢查算法;
(2)方向包容盒干涉檢查算法;
(3)規整包容盒再分割算法。
第一種方法計算量小、效率較高,但是包容盒經過規整后并入了一些非實體空間使精度有所下降;第二種方法不受包容盒規整的影響,精度較高,其計算量較前者要大一些;而對于不太規則的零件可采用第三種方法,對三維零件包容盒再進行分解。將以上三種算法結合起來就能在不過多增加計算量的同時,大大地提高檢查精度。
沿全局坐標系規整包容盒算法是在裝配仿真環境中將各個零部件都置于一個包容盒中,不管零部件的形狀如何。也就是在裝配坐標系內能夠包容所有裝配體幾何特征的長方體,長方體的各面與坐標系的坐標軸平行或垂直,可以用兩個點來表達,一個是左下角P0,一個是右上角 P1,數學表達為:E={P0,P1};
由于全局坐標系規整包容盒的各面與坐標系的坐標軸平行或垂直,可以利用兩待檢零件包容盒頂點的相互關系來判斷零件間的干涉狀況。
兩包容盒分別為 Box1:P0(x0,y0,z0),P1(x1,y1,z1);Box2:P2(x2,y2,z2),P3(x3,y3,z3),如圖 1 所示[5]。如果Box1的右上角頂點在Box2的左下角頂點之下,即 x1
在裝配中是沿斜對角方向放置的瘦長形幾何體,如果采用上述全局坐標系規整包容盒,將留下很大的邊角空隙,從而導致大量冗余的包容盒相交檢查。

對此類零件可采用方向包容盒干涉檢查算法。就是在零件坐標系內建立包容所有零件幾何特征的長方體,且長方體的各面與零件坐標系的坐標軸平行或垂直。其最大特點就是它的方向的任意性,這使得它可以根據被包容對象的形狀特點盡可能緊密地包容零件。方向包容盒干涉檢查算法相對復雜一些,其關鍵是尋找最佳方向,并確定在該方向上包容零部件包容盒的最小尺寸。由于零件在裝配過程中經歷了平移和旋轉運動,包容盒的各面已不與裝配體的全局坐標系平行或垂直,因此不能用兩個點來表達,而是由包容盒的8個頂點坐標來表達。數學表達為:E={P0,P1,P2,P3,P4,P5,P6,P7,PC},其中 PC 為各頂點間的連結關系,如圖 2 所示[5]。
對于不規則的零部件,即非凸幾何體,碰撞干涉檢查的誤差比較大。當凸凹零部件之間相交時,按照一般包容盒法已經發生了干涉,但實際上兩個零部件并沒有發生干涉碰撞。
對此類零件可采用規整包容盒再分割算法。虛擬環境下,假定每個零部件均有一個規整包容盒,在進行包容盒分割之前,對三維幾何體用邊界法B-Rep表示其各個頂點,并分別向X、Y、Z三個坐標軸投影,分別得到m、n、p個點,對這些點進行編號,記作xi(i=1,2,…,m),yj(j=1,2,…,n),zk(k=1,2,…,p),然后根據各個頂點的投影,對包容盒尺寸進行分割,并將編號進行排序。這樣對應于三個坐標軸上的投影形成x、y、z三個獨立數據鏈表。對數據點進行判斷,可以組成有效數據對,通過該數據對的最高坐標和最低坐標可以組成一個小的包容盒,然后進行干涉檢查判斷[6]。
將上述三種算法結合起來用于產品零部件的干涉檢查,能在不過多增加計算量的情況下提高檢查精度。

縱觀以上的算法,干涉檢查的求取實際上是先對包容盒的頂點的求取。由于在Pro/Engineer中,是以特征建模為基礎,所以對于任意點的選取是很困難的,必須找出有效的方法來求取包容盒的頂點。
對于初級的包容盒,在Pro/Toolkit中有這樣的函數ProSolidOutlineGet(),此函數的定義如下:


ProSolid為要計算其輪廓的實體,是輸入參數;Pro3dPnt為在零件坐標系下得出的包容盒的兩個對角線的頂點。此函數得到的頂點坐標是相對于缺省坐標系的。另外一個函數ProSolidOutlineCompute()通過輸入一個變換矩陣,可以得到相對于任何位姿的坐標系的頂點坐標,其定義如下。

ProSolid為要計算其頂點坐標的實體;ProMatrix表示一個矩陣,是相對于基礎坐標系的,得到的頂點方位是相對于這個矩陣位姿的;ProSolidOutlExclTypes是一個數組,為不考慮的外形特征,比如一些非幾何的特征,他包括以下幾種類型:PRO_OUTL_EXC_NOT_USED,PRO_OUTL_EXC_DATUM_PLANE,PRO_OUTL_EXC_DATUM_POINT,PRO_OUTL_EXC_DATUM_CSYS,PRO_OUTL_EXC_DATUM_AXES;Int為數組中被排除的類型的個數;Pro3dPnt為在特定位姿時的物體外形包容盒的兩個頂點的坐標。
通過得到的兩個對角線頂點就可以確定包容盒的8個頂點,并將其轉換到裝配坐標系下。遍歷這8個頂點的x、y、z值,得到新的包容盒的對角線頂點。根據運動關系求出運動后的包容盒并進行干涉檢查。通過此種方法得到的包容盒只能作為初級的包容盒檢查,要得到精確度更高一級的包容盒,就需要得到更加精確的或者是更加緊密的包容盒的對角線頂點。在Pro/Toolkit中,有一種得到特征實體頂點的方法,叫做“射線求交法”。射線是由一個起始點和一個方向向量決定的,同時還有一個半徑決定這束射線的照射半徑。當射線穿過或碰到模型的某一個特征,那么這個特征就被選擇,其函數的定義如下。

ProMdl為射線照射的零件或部件;射線的半徑為double類型;ProRay*指向由起始點和照射方向決定的射線,ProSelection**為ProSlection類型的數組,為被照射到的幾何特征,為輸出參數;射線和實體幾何特征相交的次數為int型。
然后通過另外一個函數ProSelectionPoint3dGet得到交點的坐標,其定義如下:

ProSelection**為所選擇的物體;ProPoint3d表示一個點的坐標,是一個三維數組,是輸出參數。
得到實體上點的坐標后,通過適當的篩選、轉換得到描述這個實體的有效點,構建實體的較精確的包容盒。
射線的生成程序和點的求取程序此處省略。
對于零件級的包容盒,可以采用Pro/Engineer中提供的靜態干涉檢查的函數來進行,具體方法為:當規劃零件的路徑時,在關鍵點處,重設組件的位置,應用的函數如下:

其中,ProAsmcomppath為此零件的路徑;ProBoolean為一個布爾類型。當為PRO_B_TRUE時表示路徑變換是自零部件到裝配體,否則的話為PRO_B_FALSE;ProMatrix為表示設定零件新位姿的矩陣。這種設定是在程序運行時期才有效。重設零件的位置,也就是零件的位置Pro/Engineer的內存中的位置得到改變,可利用函數pro_compute_interference來進行干涉檢查。檢查的結果可得到代表干涉曲面項的句柄的數目和干涉量。同時,可以多次運用此函數檢查出零部件和周圍其他的零件相干涉的情況。
以某一型號汽車變速器操縱蓋為應用對象,判斷其裝配仿真過程中零部件之間的碰撞干涉。
采用Pro/E二次開發模塊Pro/Toolkit提供的菜單技術,制作與Pro/E風格一樣的菜單。在Pro/E的裝配模
式(Assembly Mode)啟動后,出現主菜單和仿真菜單等,如圖3所示。

“裝配仿真”的功能是執行裝配過程仿真操作?!把b配規劃”是一個下級菜單,其功能是對系統進行裝配序列與路徑的規劃,點擊這個菜單以后,會出現它的下級菜單如圖4所示。點擊“初步干涉檢查”,系統會提示用戶選擇兩個零部件,進行干涉檢查。如果出現干涉,系統會詢問是否展示干涉報告,回答“yes”,系統會給出干涉檢查報告,如圖5所示。

如果沒有干涉,用戶點擊“選擇裝配計劃”,系統要求用戶選擇一個零部件之后,消息欄會出現要求用戶輸入仿真的幀數,也即仿真的步長。當用戶輸入幀數以后,屏幕上就會按照用戶的規定的步長和方向來演示該零部件的拆卸過程。
當該零部件的拆卸運動演示完畢之后,消息欄又會出現提示信息:Do you want interference detecting?(yes or no)。當用戶輸入yes之后,系統會提示選擇要與之進行干涉檢查的零部件,并在屏幕上顯示這兩個部件的包容盒,如圖6所示。

系統會判斷兩個包容盒是否相交。如果相交,則系統會提示發生干涉,并給出相應的干涉報告。此時并不代表這兩個零件真的干涉,還要進行下一級的干涉檢查。這時系統會要求用戶繼續選擇這兩個零部件,進行零件級的干涉檢查。如果此時還干涉,系統會給初干涉報告,同時退出裝配規劃;如果不相交,系統會記錄下該零件的拆卸路徑和拆卸距離。然后系統會提示用戶繼續選擇下一零部件,并對其進行裝配路徑的規劃。這樣逐一對零件進行規劃。規劃完成后,信息文件將記錄下剛才規劃的結果。最后可將零件的可行裝配路徑輸入到裝配仿真模塊中,作為裝配仿真的輸入信息。
本文針對產品零部件的不同類型所提出的三級精度包容盒相結合的快速干涉檢查算法,通過Pro/ENGINEER環境下的具體實現,能夠方便快捷地判斷產品裝配仿真過程中零部件之間的干涉。并以某一型號汽車變速器的操縱蓋為例進行印證,進而實現了汽車變速器虛擬裝配仿真過程中所有零部件之間的碰撞干涉檢查。
1 Stephane Redon,Abderrahaane Kheddat.Hierarchical Back-Face Culling for Collision Detection.IEEE,2002:3036 -3041
2 James T.Klosowski,Martin Held,Joseph S.B.Mitchell.Efficient Collision Detection Using Bounding Volume Hierarchies of κ-Dops.IEEE Transaction on Visualization and Computer Graphics,1998,4(1):21 -36
3 A.Iones,S.Zhukov,A.Krupkin.On Optimality of OBBs for Visibility Tests for Frustum Culling,Ray Shooting and Collision Detection.IEEE,2003:1078-1085
4 Kai POUTRAIN,Magali CONTENSIN.Dual Brep-CSG collision Detection for General Polyhedra.IEEE,2003.
5 高峰,吳俊軍等.基于包容盒分解的快速干涉檢驗算法.計算機輔助設計與圖形學學報,2000,12(6):435~440
6 王太勇,王國鋒.基于HV分割的精確碰撞檢測在虛擬設計中的應用.機械設計,2000,12(6):435~440
作者:周爾民,男,1962年生,教授,主要研究方向為CAD/CAM、虛擬制造技術。
(編輯 周富榮)(收修改稿日期:2009-08-10)
如果您想發表對本文的看法,請將文章編號填入讀者意見調查表中的相應位置。
Implementation of Bounding Box Interference Checking Based on Pro/E
ZHOU Ermin
(Graduated Department,East China Jiaotong University,Nanchang 330013,CHN)
Collision and interference detection plays an important role in virtual assembly of mechanical product.This method can decrease the intrinsic computational complexity of Collision and interference detection effectively.According to different type of product parts,a fast algorithm combined plain grade and bounding box for detecting collision and interference is introduced and implemented in Pro/ENGINEER this paper.It is applied to the collision interference detection between the parts of automobile transmission in the process of virtual assembly by method of man-machine interface.
Bounding Box;Interference Checking;Pro/E;Assembly Simulation
* 江西省教育廳重點科技項目:汽車變速箱虛擬制造技術 (贛教20020804)
10234