孫青欣,王慶文,李 靜
(北京航空航天大學(xué),北京 100191)
在目前的數(shù)控加工系統(tǒng)中,針對于大量同類零件的數(shù)控加工,參數(shù)化編程已經(jīng)成為一種既能提高編程效率,又能保證加工質(zhì)量的加工方式。機床上的典型零件往往具有相似的結(jié)構(gòu)或者幾何特征,如果我們能夠?qū)⑺鼈兊募庸し椒ㄒ詤?shù)化子程序的形式保存下來,在參數(shù)化編程的主程序中進行參數(shù)化接口的賦值和子程序的調(diào)用,可以大大提高編程效率。
然而,要想實現(xiàn)同類零件的模板式參數(shù)化加工,首先需要將同類零件的相似結(jié)構(gòu)以特征的形式識別出來,建立加工特征庫,為特征的參數(shù)化編程提供模型支持和數(shù)據(jù)支持[4~6]。
對于特征識別技術(shù),目前主要的解決辦法有兩種,一種是基于特征鄰接矩陣匹配的特征識別[1],將特征的面邊關(guān)系屬性鄰接圖轉(zhuǎn)化為特征矩陣,然后針對矩陣進行匹配和識別;另一種辦法也是對特征的屬性鄰接圖進行操作,但是識別方法是基于子圖同構(gòu)的圖遍歷搜索[2,5]。然而,前者只能識別簡單的特征,對于復(fù)雜零件特征的識別則無能為力,而后者雖然可以識別復(fù)雜零件的特征,但是算法的復(fù)雜度較高,針對于特征組成面較多的零件,識別起來十分繁瑣。
目前參數(shù)化編程的所需要的加工參數(shù)的傳遞和賦值還是人為進行的,是非自動化的,這無疑阻礙了參數(shù)化編程效率的提高。為滿足參數(shù)化編程的這一需求,在特征識別過程中,不僅需要對特征的拓撲結(jié)構(gòu)進行識別,還需要將特征的底層參數(shù)一并提取出來,為參數(shù)化編程的自動參數(shù)傳遞做準備[7]。
針對以上問題,本文提出一種基于參數(shù)化編程的特征識別方法,采用基于子圖同構(gòu)的特征識別思路對特征進行識別,并且為了解決算法復(fù)雜度的問題,引入加工工藝參數(shù)進行算法剪枝運算。面向典型機床零件構(gòu)建特征模型,利用三維數(shù)模的STEP標準文件,實現(xiàn)數(shù)控編程參數(shù)的自動獲取。
針對機床關(guān)鍵零件具有系列化的特點,本文研究基于特征的高效數(shù)控編程技術(shù),通過分析箱體、立柱、床身、橫梁、工作臺五大類零件的結(jié)構(gòu),總結(jié)出需要加工的所有特征結(jié)構(gòu)。在對特征進行識別時,需要得到特征的各個組成面之間的拓撲關(guān)系。因此,在特征模型中需要有一個表達這種拓撲關(guān)系的圖結(jié)構(gòu)。
在特征識別完成之后需要對特征進行一個模板式的數(shù)控編程,常規(guī)的做法就是靠人工手動編程,所需要的參數(shù)信息需要人為錄入,大大影響了編程的效率。為了實現(xiàn)編程參數(shù)的自動獲取,在特征建模時除了需要考慮特征識別時需要的拓撲結(jié)構(gòu),還需要將特征的加工面的幾何信息和精度信息傳遞給參數(shù)化編程模塊。
圖1 機床零件典型特征
圖1所示為機床的一個臺座特征,在特征識別時,我們需要知道構(gòu)成這個特征的六個面F1~F6的拓撲關(guān)系圖,以及在進行拓撲關(guān)系識別時需要的面和邊的各種屬性信息。另外,我們還需要提取出對這個特征進行參數(shù)化編程加工時需要的加工面F1的尺寸信息。
通過上文中對于特征建模需求的分析,我們確定建立特征表達模型的兩個原則:一是要包含特征識別所需的面邊拓撲關(guān)系,二是要涵蓋特征參數(shù)化編程所需要的幾何參數(shù)和加工參數(shù)。為滿足這兩個原則,建立特征的表達模型如圖2所示。從特征的結(jié)構(gòu)上,將特征分為圖、面、邊和頂點四層表達結(jié)構(gòu);從特征的屬性上,將特征分為拓撲、幾何和加工屬性三類屬性表達。
圖2 特征表達模型
圖中的特征的圖(Graph)表達是基于三維建模方法而實現(xiàn)的。B-Rep邊界模型表示法詳細記錄了構(gòu)成模型的所有幾何元素的幾何信息及其拓撲關(guān)系信息。因此,三維CAD模型的面屬性化鄰接圖采用CAD模型的B-Rep信息提取表示。圖3就是圖1所示零件的屬性鄰接圖。
圖3 特征屬性鄰接圖
定義屬性鄰接圖G=(V,E),V為圖中頂點(面)的集合,零件中的每個面fi都有唯一的頂點Vi與之相對應(yīng)。面fi的屬性就是頂點Vi的屬性,包括面的幾何類型、面的形狀、尺寸、加工標識等。E為面的鄰接關(guān)系,即圖中邊的集合,對于零件中的任意兩個相鄰的面fi與fj,都有唯一的一條邊e與之相對應(yīng)。CAD 模型邊ei的屬性,包括邊凸性、邊的兩連接面的類型等。
為了得到表達模型中各數(shù)據(jù)的具體數(shù)值,我們需要對于STEP文件中的信息進行整理和提取[3]。為了保證參數(shù)提取的準確性,我們首先就要在STEP文件和特征表達模型之間建立一種映射關(guān)系。
由于STEP文件和特征模型的數(shù)據(jù)結(jié)構(gòu)不同,不能進行簡單的數(shù)據(jù)映射,本文建立了一種基于兩種數(shù)據(jù)結(jié)構(gòu)的映射模型,通過四個方面的數(shù)據(jù)傳遞,保證特征提取時參數(shù)傳遞的準確性和有效性,如圖4所示。
STEP-NC文件的數(shù)據(jù)結(jié)構(gòu)以樹狀存儲。一個三維的幾何空間(CLOSED_SHELL)是由一個或者多個面(ADVANCED_FACE)組成的集合。面是由一個或者多個封閉面邊界(FACE_BOUND)構(gòu)成,面邊界是由多條有向邊(ORIENTED_EDGE)組成的邊環(huán)(EDGE_LOOP)和面的顏色屬性(FACE_COLOR)表達的。每條邊的幾何表達(EDGE_CURVE)包括邊的起點(START_POINT)、終點(END_POINT)和向量信息(*LINE)。幾何外形的頂點(VERTEX_POINT)是由笛卡兒坐標點(CARTESIAN_POINT)表示的,存儲的是坐標值。
圖4 STEP文件與特征模型的映射
特征庫中存儲的特征的相關(guān)信息主要為兩個功能服務(wù),特征的識別和特征的參數(shù)化加工。這兩個過程中需要的幾何信息和加工信息絕大部分需要從STEP文件中提取并且按照一定的格式傳遞,通過建立一個信息的映射模型,將不同數(shù)據(jù)類型,不同格式的數(shù)據(jù)準確地傳遞。
2.2.1 屬性映射
在STEP文件中,面和邊的類型屬性隱藏在語句之中,我們需要通過對于表示面和邊的語句進行詞法分析,得出隱含的類型屬性。
1)面的屬性映射:在特征庫中存儲的特征的面的類型屬性FT包括平面和曲面;在STEP文件中,每個面的屬性信息存儲在數(shù)據(jù)結(jié)構(gòu)FACE_BOUND和FACE_OUTER_BOUND中,即內(nèi)面和外面。一般情況下,當(dāng)本語句中通過詞法分析提取的關(guān)鍵詞是plane時,則表示面的類型為平面;當(dāng)提取的關(guān)鍵詞是cylinder時,則面的類型為圓柱曲面;當(dāng)提取的關(guān)鍵詞是其他時,則面的類型為其它曲面。
2)邊的屬性映射:在特征庫中存儲的特征的邊的類型LT只有兩種情況:直線邊或者曲線邊,而在STEP文件中,則沒有對于邊類型的直接記錄,但是我們依然可以通過上面分析的面的類型信息來推理出邊的類型屬性。我們知道,邊是直線還是曲線跟面的類型直接相關(guān):當(dāng)相交的兩個面都是平面時,那么相交的邊為直線邊;當(dāng)相交的兩個面為一個曲面加一個平面時,若平面是曲面的切面,則公共邊為直線邊,否則為曲線邊。在STEP文件的數(shù)據(jù)結(jié)構(gòu)FACE_BOUND中我們得到面的類型之后,通過上述判斷方法可以得到邊的類型屬性(直線邊或曲線邊)。
2.2.2 形狀映射
機床典型零件在特征庫中存儲的特征的面的形狀FS主要有矩形、圓形、梯形及其它;形狀主要是由面的組成邊的條數(shù)來確定。在STEP文件中,組成特征每個面的邊的信息存儲在結(jié)構(gòu)EDGE_LOOP中,它的子節(jié)點個數(shù)即為組成這個面的邊的條數(shù)。如果子節(jié)點個數(shù)為1,則映射到特征庫里的特征的面就是圓面;如果子節(jié)點個數(shù)為4,則映射到特征庫里的特征的面一定為四邊形。
在STEP文件中,邊的存儲結(jié)構(gòu)EDGE_LOOP的子節(jié)點LINE中存儲的是每條邊的具體信息,其中包含邊的向量信息VECTOR。四邊形的具體形狀可以用每兩條邊之間的夾角來確定。
2.2.3 標識映射
2)邊的凹凸性標識映射LF:特征識別的基礎(chǔ)是屬性鄰接圖,而屬性鄰接圖中鄰接的邊的空間拓撲關(guān)系是通過邊的凹凸性來判定的。將邊的凹凸性確定之后,就可進行特征組成面的提取及特征子圖匹配。如果兩個相鄰面之間的向外法向量夾角大于180度,則這兩個面相交所形成的邊為凸邊;如果兩個相鄰面的向外法向量之間形成的夾角小于180度,則這兩個面形成的邊為凹邊。
2.2.4 尺寸映射
在特征識別和特征的參數(shù)化編程過程中,面和邊的尺寸都很重要。在映射平臺上,尺寸映射實際上也分為兩個部分,面的尺寸和邊的尺寸映射。但是面的尺寸是由邊的尺寸確定的。如果我們知道了每條邊的尺寸那么我們就可以知道這個面加工時所需要的幾何尺寸。但是在STEP文件中,所有的尺寸信息都存在最為底層的頂點信息中:公共邊的尺寸可以通過STEP中的LINE結(jié)構(gòu)來確定,在LINE中都會有一個Start-point和End-point的記錄,通過這兩個點的坐標可以計算出邊的長度。
如果是圓面,STEP文件中的LINE結(jié)構(gòu)中存儲的點信息只有一個,即為圓的圓心;存儲的信息還包括圓的半徑R,通過R可以計算出圓的面積,即為這個面的尺寸。
如果是圓柱面,那么STEP文件中的LINE結(jié)構(gòu)中存儲的點也有兩個,即Start-point和End-point,但是此時表示的是圓柱上表面的圓心坐標和下表面的圓心坐標;存儲的信息還包括圓柱的半徑R,通過這三個信息可以得出圓柱面的尺寸。
根據(jù)前文特征的定義和特征的信息模型,特征的識別主要是對于構(gòu)成特征的面和邊的屬性以及面和面之間的拓撲關(guān)系進行識別。為了達到這一目的,我們構(gòu)建基于面的屬性鄰接圖,將各元素的屬性和拓撲關(guān)系一并表達出來,那么我們在判斷一個結(jié)構(gòu)是否在特征庫中存在對應(yīng)的特征時,就可以直接把這個結(jié)構(gòu)的屬性鄰接圖和特征庫中所有特征的屬性鄰接圖進行一一比較,得出識別的結(jié)果。
按照“中國特色、世界水準”的高等職業(yè)教育的奮斗目標,高職院校在今后的內(nèi)涵式發(fā)展中勢必進一步加強國際交流和合作。輔導(dǎo)員要積極組織中、外學(xué)生文化交流,引導(dǎo)學(xué)生敢于并善于把中國文化最優(yōu)秀的一面展示給國外留學(xué)生,樹立學(xué)生的文化自信。同時,要引導(dǎo)學(xué)生積極思考,按照“各美其美、美人之美、美美與共、天下大同”的原則,發(fā)現(xiàn)他文化之長,并結(jié)合實際情況,經(jīng)過科學(xué)的揚棄后使之為我所用。
在特征拓撲結(jié)構(gòu)匹配的時候我們利用的是子圖同構(gòu)算法進行屬性鄰接圖的同構(gòu)判斷,在基本算法的基礎(chǔ)上,做一些改進,使該算法更適合本實例。
假設(shè)由待匹配的零件結(jié)構(gòu)轉(zhuǎn)換得到的子圖為Gα,由完整的CAD模型轉(zhuǎn)換得到的大圖為Gβ。圖G α的頂點集合為V α,頂點個數(shù)為m,鄰接矩陣為Mα;圖Gβ的頂點集合為Vβ,頂點個數(shù)為n,鄰接矩陣為Mβ;其中m≤n。設(shè)置一個映射矩陣M,其維數(shù)為m×n。M中任意一個元素mij(0≤i≤m-1;0≤j≤n-1) 的取值可以是0或1,若圖Gα的第i個頂點與圖Gβ中的第j個頂點相對應(yīng),則mij=1;否則mij=0。判斷圖Gα是否與圖Gβ的一個子圖同構(gòu),就是看能否找到一個映射矩陣M0,使得M0滿足:1)每一行有且只有一個1;2)每一列至多只有一個1。滿足這兩個條件的映射矩陣M0就代表了圖Gα與圖Gβ之間的一個子圖同構(gòu)映射。
由于特征子圖的匹配不是普通子圖的同構(gòu)匹配,它的子圖的頂點表示的是特征需要加工的面,包含很多特殊的屬性:它們不僅有形狀尺寸的不同,更有加工屬性的差別,所以子圖同構(gòu)時頂點的匹配實際上是面與面之間屬性的匹配。為了降低搜索空間的復(fù)雜度,我們必須利用特征子圖的加工屬性知識使映射矩陣M的元素盡可能多地為0,這就需要先對圖的頂點進行預(yù)處理。用于對頂點進行預(yù)處理的面的屬性主要有面的類型,形狀等幾何信息以及面的加工標識,加工精度等加工信息。
3.2.1 基于形狀屬性的預(yù)處理
利用上面的子圖同構(gòu)處理方法進行特征識別發(fā)現(xiàn)準確率較低,究其原因,在子圖同構(gòu)中,參與匹配的頂點屬性較少,將部分不相似的頂點在比較的時候認為是匹配的;因此,我們嘗試對參與匹配的頂點基于形狀進行分類,首先考慮CAD模型面的類型,不同類型的面之間不可能對應(yīng)匹配,如一個平面不可能和一個圓柱面匹配,一個圓柱面也不可能和一個自由曲面匹配。
所以,若圖Gα中的第i個頂點對應(yīng)的CAD模型的面與圖Gβ中的第j個頂點對應(yīng)的CAD模型的面的類型不同,則這兩個頂點不可能匹配,我們可以直接將映射矩陣M的第i行第j列的元素mij置為0。
另外,即使對于形狀相同的兩個面,尺寸大小的差別也有可能影響特征頂點的匹配,在加工層面,同一形狀的面的尺寸不同,工藝中的加工方法就不盡相同??紤]到特征識別之后要進行參數(shù)化編程加工,所以引入尺寸屬性對頂點匹配進行限制。
3.2.2 基于加工屬性的預(yù)處理
圖5 特征識別實例
對于特征匹配來說,匹配的結(jié)果如果滿足,那么下一步就是如何進行特征的加工。如果能將特征加工所需要的加工信息作為匹配的因素之一,可以大大提高匹配的效率,減少不必要的算法浪費。
上文中所說的基于形狀的頂點分類,即使?jié)M足形狀屬性的兩個面,如果一個是加工面一個是非加工面,那么也不是我們所說的同樣的特征。而且,即使兩個面都是加工面,那么不同精度等級的加工面也不能說明是一個特征,因此,加工信息對于特征的識別是至關(guān)重要的。
首先我們要給所有的頂點(面)進行編碼,F(xiàn)=1000FJ+100FT+10FS+FA,其中,F(xiàn)為面的編碼結(jié)果,F(xiàn)T為面的類型,F(xiàn)S為面的形狀,F(xiàn)A為面的大小,F(xiàn)J為加工信息(當(dāng)加工面標識FF=1時,F(xiàn)J=1~9,分別表示其加工時的精度等級)。
選取機床立柱(圖5a)作為識別對象,目標特征為電機座特征(圖5b所示)。
圖6 零件的STEP特征表達
對于所選立柱文件,通過對于STEP文件的分析,包含3249個面,現(xiàn)在選取包含特征的12個面(5887~5898),分析其STEP文件結(jié)構(gòu)如圖6所示。
通過STEP文件得到整個零件的所有面和邊的屬性鄰接圖,省略其他,只保留與特征有關(guān)的面邊拓撲關(guān)系如圖7所示,通過子圖同構(gòu)算法,我們得出結(jié)論,電機座特征的特征庫中存儲的特征拓撲結(jié)構(gòu)子圖與零件的屬性鄰接圖同構(gòu),可以判斷該結(jié)構(gòu)的識別結(jié)果即為電機座特征。
圖7 零件的屬性鄰接圖(部分)
選取特征的一個加工面(ID=5891)及其組成其輪廓的邊,特征模型的幾個重要表達結(jié)果如下:
1)FT=平面。根據(jù)STEP結(jié)構(gòu)中的FACE_BOUND里面的plain標識映射得到。
2)FS=矩形。根據(jù)EDGE_LOOP中的四條邊(6535~6538)得到每條邊的法向量,根據(jù)向量夾角計算公式,得出每兩條邊之間的夾角為90°,映射到特征模型中為矩形面。
3)FF=加工。根據(jù)FACE_COLOR中的RED標識可以得到,此面為加工面。
4)FA=80×100(mm):根據(jù)EDGE_LOOP中的四條邊(6535~6538)找到每條邊的起點和終點(例如6536邊的起點坐標和終點坐標分別在笛卡爾坐標系8961點和8959點中,根據(jù)距離公式得出矩形的大小為80×100(mm)。
5)LF=凸邊.通過計算該面與相鄰的四個面(5888、5889、5890、5898)的法向量,得到四個相鄰邊的凹凸關(guān)系都為凸邊關(guān)系。
本文提出了一種基于參數(shù)化編程的特征識別方法,通過對于三維模型的STEP文件進行分析,建立特征的數(shù)據(jù)模型,將數(shù)據(jù)從STEP文件里提取出,用于特征的識別和特征的參數(shù)化編程。在特征識別過程中,本文借用子圖同構(gòu)算法的思想,對于特征結(jié)構(gòu)的屬性鄰接圖進行匹配,并對算法進行了適用于本實例的改造,讓子圖同構(gòu)算法的頂點有了更多工藝過程的屬性,利用剪枝的方法,大大提高了匹配效率。另外,通過前面的STEP信息的底層傳遞,保證參數(shù)化編程所需要的加工參數(shù)能夠自動的獲取,實現(xiàn)參數(shù)化編程的自動化。最后本文利用一個實例驗證了特征識別和參數(shù)化編程所需參數(shù)的提取,取得了較好的結(jié)果。
[1] 熊雅清,盛步云.三維CAPP系統(tǒng)中特征識別技術(shù)研究與應(yīng)用[D].武漢理工大學(xué).2009.
[2] 王飛,張樹生,白曉亮,陳書瓊.基于子圖同構(gòu)的三維CAD模型局部匹配[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報.2008,8.
[3] 付鵬,苑偉政.基于STEP的特征識別技術(shù)及其實現(xiàn)[J].中國機械工程.2010(11).
[4] 吳江,廖文和.基于特征識別的CAD/CAPP集成技術(shù)研究[D].南京航空航天大學(xué).2005.
[5] 鄭壇光.三維CAD模型檢索技術(shù)研究[D].華中科技大學(xué).2009.
[6] Taesik Hong, Kunwoo Lee, Sungchan Kim. Similarity comparison of mechanical parts to reuse existing designs[J].Computer-Aided Design 2006; 38(9):973-984.
[7] Biasotti S, Marini S,Spagnuolo M,et al.Subpartcorrespondence by structural descriptors of 3D shapes[J].Computer-Aided Design,2006,38(9):1002-1019.