李梅竹, 陳 榮
(陜西廣播電視大學(xué)工程管理系, 陜西 西安 710119)
從STEP AP-203文件中提取出的幾何信息不等同于零件的加工特征,并不能直接用于工藝設(shè)計(jì),因?yàn)檫@種數(shù)據(jù)表示方法缺少制造意義上的高層幾何實(shí)體.STEP-NC是面對特征的,因此要建立零件的STEP-NC信息模型就必須進(jìn)行特征識(shí)別,特征識(shí)別對下游的工藝規(guī)劃等制造活動(dòng)具有十分重要的意義.
特征識(shí)別總體上分為兩大類:基于邊界匹配和基于體分解的特征識(shí)別方法[1].
(1)基于邊界匹配的特征識(shí)別方法:這種方法是最早出現(xiàn)的特征識(shí)別方法,通過識(shí)別零件的邊界來匹配預(yù)定義的特征.其基本步驟如下: ①搜索零件的邊界表示,并將其與預(yù)定義的每一類特征的邊界模式進(jìn)行匹配;②確定已識(shí)別的特征參數(shù),構(gòu)造完整的特征幾何模型;③對合并成組合特征的基本特征進(jìn)行組合.但是該方法無法有效識(shí)別相交特征,同時(shí)需要進(jìn)行大量的匹配,識(shí)別效率不高.
(2)基于體分解的特征的識(shí)別方法:體分解技術(shù)可以避免預(yù)先定義的特征類型庫的限制,其進(jìn)行特征識(shí)別的基本步驟是: ①對零件進(jìn)行凸分解使其成為凸體的集合; ②對分解出的凸體進(jìn)行重新組合,產(chǎn)生對應(yīng)于特征的體元; ③對特征體元進(jìn)行分類,確定出特征類型,建立特征的體表示. 該方法的缺點(diǎn)是生成的特征解釋太多,需要大量的運(yùn)算,效率偏低.
本文采用基于邊界匹配的特征識(shí)別方法中基于痕跡的特征識(shí)別方法[2],利用該方法對STEP文件進(jìn)行特征識(shí)別.特征痕跡是指一個(gè)特征實(shí)例被添加到零件模型后所保留的信息,包括幾何的、非幾何的如尺寸、公差等.即使特征相交,特征完整的邊界模式已經(jīng)不復(fù)存在,但只要它的確是零件的一個(gè)特征,則在CAD模型中肯定留有痕跡.基于痕跡的識(shí)別步驟是: ①從零件的模型庫中提取所有的特征痕跡; ②通過幾何推理的方法來驗(yàn)證相對應(yīng)的特征的可能性; ③構(gòu)造出完整的特征.
STEP-NC的制造特征有3種:區(qū)域特征、二軸半制造特征和過渡特征[3].其中,區(qū)域特征用以表征自由曲面的概念;過渡特征用于表示兩特征之間的過渡部分如倒角、圓角等;實(shí)際的工業(yè)產(chǎn)品中,主要是二軸半制造特征,它是在數(shù)控機(jī)床上能夠用二軸聯(lián)動(dòng)、第三軸定期進(jìn)給所能加工的特征的總稱.
二軸半制造特征又分為加工特征、復(fù)制特征和組合特征[4].后兩者分別表征某一特征的重復(fù)出現(xiàn)和多個(gè)特征的組合,本文不再詳述.加工特征參照AP-224定義,具體包括平面(Planar face)、型腔(Pocket)、槽(Slot)、臺(tái)階(Step)、孔(Hole)、一般特征(Generic feature)等.本文重點(diǎn)討論二軸半制造特征中的加工特征,主要是槽特征、孔特征和型腔特征.
在STEP-NC中,一個(gè)孔特征通過bottom condition occurrence、hole depth occurrence和diameter occurrence 3個(gè)參數(shù)項(xiàng)確定[5].孔特征的加工是由鉆刀垂直掃描而成,大部分鉆刀都有一圓錐端面即加工出錐孔,但本文為了簡化認(rèn)為加工采用平底鉆刀時(shí)加工出的孔為通孔或盲孔,因此孔的bottom condition occurrence參數(shù)為flat或through.既然一個(gè)孔特征是由平底鉆刀掃描形成的,則它是一個(gè)圓柱體,它的尺寸參數(shù)由如圖1(a)中的直徑和高度組成,即孔特征的diameter occurrence和hole depth occurrence.
圖1 特征的定義
與孔不同,槽和型腔是通過銑刀加工而成.在STEP-NC中,槽是由course of travel start、course of travel end、swept shape occurrence、course of travel occurrence 4個(gè)參數(shù)確定,槽的加工是圓柱形銑刀的線性掃描而成,因此槽特征是一個(gè)伸長的平行六面體,圓形端面.槽的尺寸參數(shù)如圖1(b)所示.
在STEP-NC中,型腔是由bottom condition occurrence、pocket depth occurrence和boundary occurrence 3個(gè)參數(shù)確定.本文的型腔是由平底銑刀經(jīng)一系列的加工而成,所以型腔的bottom condition occurrence參數(shù)為planar或through.型腔特征是通過一個(gè)任意形狀的平面剖面和一掃描向量描述出,掃描向量垂直于平面剖面,它的長度為型腔的高度,其參數(shù)如圖1(c)所示.
在本文中,輸入的是零件實(shí)體模型的STEP文件,該STEP文件中只包含了零件的點(diǎn)-線-面模型,但并不存在毛坯的實(shí)體模型.而特征識(shí)別要基于一個(gè)毛坯才能識(shí)別出零件的加工特征,因此為了能得到零件的加工特征必須在特征識(shí)別前根據(jù)已有的信息進(jìn)行毛坯模型的構(gòu)建.但在毛坯設(shè)計(jì)的初始階段零件的“真實(shí)”毛坯并不存在,因此,需要用一個(gè)預(yù)設(shè)的“假想”毛坯進(jìn)行初步的識(shí)別,這里的“假想”毛坯通常是零件包圍盒或凸殼[6],通過初步的識(shí)別得到零件的加工特征的面表示.
本文提出構(gòu)建毛坯實(shí)體模型的方法是從STEP文件中搜索CLOSED_SHELL實(shí)體的各組成面,除去CYLINDRICAL_SURFACE的面外,其余各面的法向量.當(dāng)發(fā)現(xiàn)兩個(gè)以上的面具有相同的法向量時(shí),取其放置點(diǎn)最高和最低的兩個(gè)平面,余者去掉.對得到的這些面進(jìn)行面面求交,當(dāng)發(fā)現(xiàn)其中幾個(gè)面已能生成一個(gè)包圍殼,則取其中能生成最大包圍殼的一組面,由這些面組成零件的包圍盒即為特征識(shí)別前的完整毛坯模型.
在加工過程中要去除的材料總和稱為切削體,它是毛坯體減去零件體得到的體.切削體上的面分為加工產(chǎn)生的零件面和要去除的毛坯面.切削體的邊界描述中零件面產(chǎn)生純幾何的痕跡,痕跡通過特征識(shí)別過程來生成特征,特征識(shí)別過程遵循生成-測試-修復(fù)3個(gè)階段.
遍歷STEP文件中提取出的幾何信息,尋找各特征的痕跡.例如找到一痕跡H,在特征識(shí)別過程開始前檢測痕跡H是否滿足該特征對痕跡的要求規(guī)則.當(dāng)痕跡滿足要求時(shí),就進(jìn)行特征識(shí)別過程.
(1)生成階段根據(jù)痕跡H生成最大的延拓體,本文稱為體V*.
(2)測試階段檢測體V*中是否存在開放區(qū)域.沿著刀具軸看過來可見的毛坯面組成開放區(qū)域,如果不存在開放區(qū)域就放棄該痕跡.之后,檢測體V*中是否存在除痕跡外其它的零件面,本文稱其為侵入面.如果滿足這兩個(gè)條件,那么這個(gè)特征就被實(shí)例化,否則識(shí)別規(guī)則嘗試著進(jìn)入修復(fù)階段.
(3)修復(fù)階段根據(jù)痕跡的邊界滿足的條件來修復(fù)體V*,得到一個(gè)不與零件干涉的最大體,在本文中稱為去除體.該去除體是體V*的子集,得到去除體后進(jìn)行特征的實(shí)例化最終得到特征體.修復(fù)也不是總能成功的,因此一些痕跡修復(fù)失敗后就被放棄了.
槽痕跡是一對相對的平行平面即槽的壁面,利用這一特點(diǎn)遍歷在STEP文件中提取出的實(shí)體幾何和拓?fù)湫畔ⅲx取除毛坯面外其余面的法向量,當(dāng)兩面的法向量相反那么這兩個(gè)面就可作為一個(gè)槽的痕跡.當(dāng)一個(gè)平面存在多個(gè)與其法向量相反的平面時(shí),首先選擇相距最遠(yuǎn)的那個(gè)面和這個(gè)面來作為一個(gè)槽的痕跡.如果經(jīng)后面的檢測這對面不符合條件,則再選相距次遠(yuǎn)的兩對面作為槽痕跡,依次類推.圖2表示了槽識(shí)別中一步步的過程[7].圖2(d)陰影部分表示生成圖2(h)中槽的痕跡.在特征識(shí)別過程之前,要檢測兩相對平行面中的一個(gè)面投影到另一面上時(shí),兩面是否重疊.判斷兩面是否重疊的方法是根據(jù)STEP幾何信息中兩痕跡面的頂點(diǎn)坐標(biāo),當(dāng)其中一個(gè)面的一個(gè)或幾個(gè)頂點(diǎn)落在另一面的所有頂點(diǎn)圍成的有界區(qū)域內(nèi),那么可判斷出兩痕跡面重疊.只有通過了這一檢測才能進(jìn)入生成-測試-修復(fù)3個(gè)階段的特征識(shí)別過程.
(1)第一階段:生成階段. 已得到了槽的痕跡,并且槽的痕跡經(jīng)過了兩痕跡面重疊檢測,那么生成階段的第一個(gè)任務(wù)即找出槽底面.尋找槽底面的方法為:首先創(chuàng)建一個(gè)平面,其面與槽痕跡的壁面垂直.利用幾何信息判斷兩面垂直的方法為該面的法向量與槽痕跡的壁面法向量的點(diǎn)乘為零.這一平面沿其法向量方向拉伸生成的拉伸體與切削體求交得到的體,本文稱為體V,槽底面必存在于體V中,選擇體V中垂直于槽壁面的零件平面,把它們作為槽底面的候選面,這樣的候選面可能不止一個(gè),圖2(e)中有4個(gè)底面候選面:f1,f2,f3,f4.槽底面候選面必須滿足兩個(gè)有效條件,一是當(dāng)槽壁面的一個(gè)面投影到另一個(gè)面上時(shí),必須在槽底面之上的區(qū)域內(nèi)重疊;二是在刀具進(jìn)給方向上底面和壁面必須相交.圖2(e)中的這4個(gè)面針對這兩點(diǎn)都是有效的.
圖2 槽特征的識(shí)別過程
對于每個(gè)有效的底面候選面,體V*是以底面候選面為邊界的平面半空間與體V的相交體.根據(jù)底面候選面各面的放置點(diǎn),啟發(fā)式的首先選擇放置點(diǎn)最高的那個(gè)底面候選面,在圖2(e)中為面f1,因?yàn)榉胖命c(diǎn)最高的底面候選面生成的去除體V*中含有額外的零件面的概率更小些,因此生成一個(gè)有效的槽特征的可能性更大.底面候選面f1生成的去除體V*如圖2(f)所示.
(2)第二階段:測試階段及槽的實(shí)例化. 生成體V*后進(jìn)入測試階段,在測試階段中首先沿刀具軸定位方向上尋找開放區(qū)域.體V*的面分為零件面和毛坯面,毛坯模型中描述過的面即為毛坯面,體V*的面中除毛坯面外的其余面為零件面.給出有效的槽底面候選面后,刀具軸向定位方向設(shè)為與底面法向量相反的方向,計(jì)算方法是刀具軸向定位方向向量與槽的底面法向量的點(diǎn)乘為零.在體V*中,沿著刀具軸向定位方向看過去,尋找開放區(qū)域即尋找體V*頂面中是否只存在毛坯面,如果找不到開放區(qū)域那就否定這個(gè)底面候選面.
找到開放區(qū)域之后測試階段還要檢測體V*中的面除槽壁面和槽底面之外是否存在侵入面.如果體V*中的面存在侵入面,那么必須對它進(jìn)行修復(fù),修復(fù)過程在下一階段中具體闡述.圖2(g)中的體V*,該體的面中除了壁面和底面外還包含一圓柱形的零件面,所以必須對它進(jìn)行修復(fù).如果體V*中的面除槽壁和槽底之外無任何的零件面,則體V*作為一個(gè)通槽特征.
圖3 通槽的計(jì)算
對于符合測試階段條件的體V*,需將體V*映射為特征體.當(dāng)體V*作為一個(gè)槽特征被去除時(shí),必須實(shí)例一個(gè)參數(shù)化的圓形端面槽S,它包含了體V*.給出一個(gè)槽的兩壁面和底面,可以建立槽的一個(gè)局部坐標(biāo)系.選擇X軸垂直于槽壁面,Y軸垂直于槽底面,Z軸垂直于X、Y軸所在的平面,Z軸與刀具掃描和進(jìn)給方向一致.根據(jù)體V*痕跡面的X軸方向頂點(diǎn)的坐標(biāo)值邊界給出參數(shù)化槽S的寬度,槽S的寬度對應(yīng)于銑刀的直徑,Y軸邊界給出了槽的高度,可以自由選取比槽S的高度長的刀具.槽的寬度和高度在STEP-NC文件中描述為槽的swept shape occurrence.槽S的長度決定了刀具的掃描長度,槽長度的計(jì)算如圖3所示.槽的長度在STEP-NC文件中描述為槽的course of travel occurrence,放置圓形槽的端面,它的中心位于體V*的Z軸邊界上,最大的超出長度為每一端面的刀具半徑,如圖3中的第二個(gè)例子的左端.值得注意的是,這微小的超出是可接受的,因?yàn)椴郾粚?shí)例化為一個(gè)通槽,在槽的末端刀具運(yùn)動(dòng)到了空中而不與零件接觸.槽加工時(shí)刀具的起止點(diǎn)在STEP-NC文件中描述為槽的course of travel start、course of travel end.
(3)第三階段:修復(fù)階段.如果體V*的邊界中存在侵入面,那么就不能簡單的實(shí)例一個(gè)參數(shù)化的槽S,因?yàn)榱慵媾c槽S干涉,必須對它進(jìn)行修復(fù).
修復(fù)階段首先從槽實(shí)例化設(shè)置的底面、壁面的局部坐標(biāo)系中進(jìn)行計(jì)算,[R1,R2]為兩槽壁在Z軸方向上的邊界,同時(shí)計(jì)算每一個(gè)侵入面的Z軸方向上的邊界[r1,r2],檢測[r1,r2]與[R1,R2]是否相交,如果存在相交,去除體就不能被完整的加工出.圖4(a)中的侵入面,它的邊界范圍[r1,r2]與兩槽壁的邊界范圍[R1,R2]相交,因此它不能被實(shí)例成一個(gè)有效的槽特征.
如果[r1,r2]與[R1,R2]不相交,那么可嘗試著去實(shí)例一個(gè)盲槽.首先,計(jì)算出延拓范圍ER1=R1-C,ER2=R2+C,這里C為刀具半徑.如果侵入面的區(qū)域[r1,r2]落在[ER1,ER2]之外,則槽可被加工出.如果r2<=ER1,如圖4(b)所示,則可以沿著Z軸延拓槽,直到刀具中心到達(dá)r2+C處,刀具與侵入面不干涉相交,所以不影響零件的加工.事實(shí)上,當(dāng)?shù)毒哌\(yùn)動(dòng)到r2+C處時(shí),刀具所去除的體可能超過了槽特征體的范圍,因此刀具加工這個(gè)槽特征時(shí)并沒有運(yùn)動(dòng)到r2+C處,假設(shè)刀具運(yùn)動(dòng)到A處,那么從A到r2+C區(qū)域內(nèi)的加工可作為其它特征加工時(shí)刀具的運(yùn)動(dòng)范圍.如果r1>=ER2,則情況與此相同.根據(jù)這種推理,在圖2(h)中侵入面落在邊界ER2之外,因此盲槽被實(shí)例化,圖2(h)中的陰影所示部分就是實(shí)例后的槽特征.
圖4 盲槽的計(jì)算 圖5 無效的槽特征
如果r2落在[ER1,R1]之內(nèi),就要檢測侵入面與定位中心在R1上的半徑為C的圓柱形半空間是否相交來判斷特征是否有效,如果零件面與半空間為內(nèi)部相交,如圖5(b)所示,那么這個(gè)槽是無效的.否則如圖5(a)所示,只要刀具停止在R1點(diǎn)處槽就可以被加工出.當(dāng)r1落在[R2,ER2]之內(nèi)時(shí),與上述情況相同.
綜上所述,槽特征的識(shí)別方法把槽特征的有關(guān)參數(shù)都準(zhǔn)確的識(shí)別出,同樣的方法可完成孔和型腔特征的識(shí)別.
本文利用Pro/E軟件的中性文件轉(zhuǎn)換接口,產(chǎn)生設(shè)計(jì)需要零件的AP-203文件.但系統(tǒng)輸入的AP-203是文件形式,為了更好的表示出特征識(shí)別的實(shí)例,將Pro/E中零件三維模型顯示如圖6所示.
有了零件的實(shí)體模型后,為了能得到零件的加工特征,需要用一個(gè)預(yù)設(shè)的“假想”毛坯進(jìn)行初步的特征識(shí)別.采用本文提出的從STEP文件中構(gòu)建毛坯方法構(gòu)建毛坯,即從STEP文件中搜索CLOSED_SHELL實(shí)體的各組成面,除去CYLINDRICAL_SURFACE的面外其余各面的法向量.當(dāng)發(fā)現(xiàn)兩個(gè)以上的面具有相同的法向量時(shí),取其放置點(diǎn)最高和最低的兩個(gè)平面,余者去掉.對得到的這些面進(jìn)行面面求交,當(dāng)發(fā)現(xiàn)其中幾個(gè)面已能生成一個(gè)包圍殼,則取其中能生成最大包圍殼的一組面,由這些面組成零件的包圍盒即為特征識(shí)別前的完整毛坯實(shí)體模型.這里的毛坯是“假想”毛坯,它與零件的“真實(shí)”毛坯存在差異,生成毛坯的STEP文件如圖7所示,為了更直觀的表示毛坯的形狀,顯示毛坯的三維模型.
圖6 Pro/E中三維模型圖 圖7 “假想”毛坯
圖8 特征識(shí)別的結(jié)果
遍歷STEP文件中提取出的幾何信息,尋找各特征的痕跡.采用之前提出的槽、孔及型腔在STEP文件中痕跡的尋找方法在這里找到一對相對的且重疊的平行平面作為槽的痕跡,一個(gè)完整的圓柱面作為孔的痕跡,一組非平行的平面和部分的圓柱面作為型腔的痕跡.當(dāng)痕跡滿足要求時(shí),就進(jìn)行特征識(shí)別過程.
生成階段根據(jù)痕跡生成最大的去除體V*;測試階段檢測去除體V*是否存在開放區(qū)域,之后還要檢測去除體中是否存在侵入面,如果滿足上述兩條件,這個(gè)特征就可實(shí)例化,否則識(shí)別規(guī)則進(jìn)入修復(fù)階段;修復(fù)階段根據(jù)痕跡的邊界條件來修復(fù)體V*,得到一個(gè)不與零件干涉的最大去除體,該去除體是體V*的子集并與零件不干涉相交,得到去除體后同樣進(jìn)行實(shí)例化最終得到特征體.修復(fù)也不是總能成功的,因此一些痕跡在修復(fù)失敗后就被放棄了.經(jīng)過特征識(shí)別的幾何推理過程最終得到提取出的特征如圖8所示.
本文采用基于痕跡的幾何推理方法并結(jié)合STEP文件信息模型的特點(diǎn)來對STEP文件進(jìn)行特征識(shí)別,首先從STEP文件中提取出零件的幾何和拓?fù)湫畔⒅袑ふ腋魈卣鞯暮圹E,根據(jù)特征痕跡,特征識(shí)別過程分為生成-測試-修復(fù)3個(gè)階段,最終得到一個(gè)實(shí)例化的特征.該種方法能夠很好地解決相交特征的識(shí)別問題,成功的識(shí)別出典型的二軸半制造特征:槽、孔和型腔.為后續(xù)加工特征的宏觀工藝規(guī)劃以及按照ISO10303 Part21規(guī)范生成AP-238文件提供了依據(jù).
參考文獻(xiàn)
[1] 周 煒.基于圖的邊界模型的加工特征識(shí)別技術(shù)[D].南京:南京航空航天大學(xué)碩士學(xué)位論文,2006:4-7.
[2] 高曙明.自動(dòng)特征識(shí)別技術(shù)綜述[J].計(jì)算機(jī)學(xué)報(bào),1998,21(3):281-288.
[3] 張承瑞,劉日良.STEP-NC 2.5D銑削工步的運(yùn)動(dòng)特征及其數(shù)據(jù)模型[J].機(jī)械科學(xué)與技術(shù),2005,24(1):90-93.
[4] 劉日良,張承瑞,張?jiān)?等.面向STEP-NC控制器的數(shù)控加工工藝規(guī)劃模型[J].中國機(jī)械工程,2004,(4):325-329.
[5] International Standards Orgazation.ISO14649:Industrial automation systems and intergration-physical device control-data model for computerized numerical controllers:part10 general process data[S].2002:9-49.
[6] 張鳳軍.具有健壯性的加工特征識(shí)別系統(tǒng)研究及其應(yīng)用[D].杭州:浙江大學(xué)博士后出站報(bào)告,2002:49-53.
[7] J.H.Han.3D Geometric Reasoning Algorithm for Feature Recognition[D].PhD Thesis of University of Southern California,1996:12-22.