劉曉平, 吳 敏, 金 燦
(合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230009)
CAD/CAE/CAM從現(xiàn)代工業(yè)體系來(lái)看是一個(gè)密不可分的整體。CAD用于產(chǎn)品的設(shè)計(jì),CAE對(duì)CAD設(shè)計(jì)的產(chǎn)品進(jìn)行優(yōu)化,CAM根據(jù)CAE優(yōu)化的結(jié)果進(jìn)行制造。其中,CAD是基礎(chǔ),CAE是保障,CAM是應(yīng)用,三者密不可分。尤其是CAD跟CAE聯(lián)系相當(dāng)緊密。但是,由CAD建造的模型往往不能夠直接用來(lái)進(jìn)行CAE分析,這是由于CAD建造的模型存在一些諸如細(xì)小特征和高曲率特征一類(lèi)的復(fù)雜特征,會(huì)顯著增加網(wǎng)格劃分的單元數(shù)量,從而消耗大量的計(jì)算資源,甚至導(dǎo)致計(jì)算結(jié)果出錯(cuò)。在這些復(fù)雜特征中,有些特征的存在與否對(duì)計(jì)算結(jié)果影響不大,因此在CAE分析之前,如果識(shí)別出CAD模型中的細(xì)小特征和高曲率特征,分析這些特征的刪除或替換對(duì)計(jì)算結(jié)果的影響程度,生成一個(gè)模型的對(duì)應(yīng)誤差程度的若干模型態(tài)[1],并依此制定特征抑制方案,就可以大量節(jié)省計(jì)算資源,有效提高計(jì)算效率。而特征識(shí)別技術(shù)是一切工作的技術(shù)基礎(chǔ)。
自動(dòng)特征識(shí)別技術(shù)從上個(gè)世紀(jì)80年代首次提出[2],至今已取得了很大的成果?;趫D的特征識(shí)別方法是目前主要的特征識(shí)別方法之一,它通過(guò)圖結(jié)構(gòu)來(lái)描述特征的幾何及拓?fù)湫畔?,并在零件的圖結(jié)構(gòu)中搜索匹配特征子圖來(lái)達(dá)到識(shí)別特征的目的。文獻(xiàn)[3]提出了一種基于圖的特征識(shí)別方法,用包含相關(guān)拓?fù)浜蛶缀螌傩缘拿孢呧徑訄D表示用戶定義特征,再在對(duì)應(yīng)的零件鄰接圖中搜索相似子圖。該方法雖然克服了基于圖的特征識(shí)別不擅長(zhǎng)處理相交特征的弱點(diǎn),提出了虛相交及多屬性的方法,解決了一些相交特征的識(shí)別。文獻(xiàn)[4]結(jié)合基于痕跡的和基于圖的特征識(shí)別方法,先對(duì)屬性鄰接圖進(jìn)行分解,再將特征圖與每個(gè)子圖進(jìn)行匹配,可以有效地降低子圖匹配的算法復(fù)雜度。但是,目前主流的特征識(shí)別算法識(shí)別出的特征多由面集表示,抑制操作復(fù)雜度高。如果以三維實(shí)體來(lái)表示特征,則可以大大地方便特征的刪除和替換。同時(shí),在面向分析的特征識(shí)別中關(guān)注的是如何將模型分解為最簡(jiǎn)單元,盡量保證同一單元具有相近的網(wǎng)格劃分屬性,如網(wǎng)格直徑等,以方便衡量計(jì)算誤差和計(jì)算時(shí)間。因此,如何可以更好地將模型分解為最簡(jiǎn)單元,是CAD/CAE集成系統(tǒng)中特征識(shí)別的關(guān)鍵問(wèn)題。
本文提出基于屬性鄰接圖分解的方法實(shí)現(xiàn)特征識(shí)別,以完成對(duì)模型的分解。該方法不再局限于特征類(lèi)型,只要合理控制頂點(diǎn)的可分解性判斷則可以得到期望的模型分解結(jié)果。同時(shí)該方法可以將特征識(shí)別為實(shí)體,方便了特征刪除和替換操作,以完成模型的簡(jiǎn)化。
定義1特征是模型分解之后的最小單元,其滿足以下條件之一:
(1)體積小于一定的閾值;
(2)包含曲率大于一定閾值的曲面。
定義2若面f1和f2具有相同曲面方程,但是被劃分為不相鄰的部分,則稱f1和f2為Co-defined面[3]。
如圖1所示,其中面F1、F1′為Co-defined面。
定義3在模型的屬性鄰接圖分解之后,如果有些面所對(duì)應(yīng)的頂點(diǎn)存在于兩個(gè)或兩個(gè)以上的連通分量中,這樣的面稱為特征分解面。
定義4對(duì)于屬性鄰接圖中頂點(diǎn)v及其相鄰的所有頂點(diǎn)集合V_adjacent,v與集合V_adjacent中每個(gè)頂點(diǎn)對(duì)應(yīng)的曲面方程的交線集合V_curves。按照鄰接順序?qū)⑶€之間求交點(diǎn),若這些曲線首尾相連,則稱這些曲線集合為環(huán)。
基于上述定義,如果一個(gè)頂點(diǎn)有兩個(gè)或兩個(gè)以上的環(huán),那么該頂點(diǎn)所對(duì)應(yīng)的面為特征分解面,該頂點(diǎn)為可分解頂點(diǎn)。本文提出的基于圖分解的特征識(shí)別算法均基于此前提。
圖1 Co-defined面
要進(jìn)行特征識(shí)別,首先要根據(jù)將B-Rep表示的三維模型形成面邊鄰接圖,其中模型的面對(duì)應(yīng)圖中的節(jié)點(diǎn),邊對(duì)應(yīng)圖中的弧。在面邊鄰接圖的基礎(chǔ)上,將模型的幾何或拓?fù)鋵傩蕴砑拥较鄳?yīng)的弧和頂點(diǎn)上,則形成屬性鄰接圖,如圖2所示。
圖2 屬性鄰接圖
為了方便頂點(diǎn)的可分解性判斷及體特征生成,在AAG中添加以下屬性。
(1)弧的屬性
· 所對(duì)應(yīng)邊的幾何信息,包括邊的端點(diǎn)及相應(yīng)曲線方程,用于分解之后連通分量生成體特征。
· 邊的凹凸性,用于輔助判斷邊所在的面的外法向,其判斷方法參考文獻(xiàn)[5]。
(2)頂點(diǎn)的屬性
· 所對(duì)應(yīng)面的幾何信息,即面的方程,用于分解之后連通分量生成體特征。
· 所對(duì)應(yīng)面的環(huán)的數(shù)目,以判斷頂點(diǎn)是否可以分解。
· 所對(duì)應(yīng)面包含的環(huán)的集合,在圖分解時(shí)作為依據(jù),根據(jù)環(huán)的具體情況確定頂點(diǎn)復(fù)制數(shù)目并完成弧的連接。
· 分解方向,即未分解(0)、正向(1)、負(fù)向(-1)。如果某頂點(diǎn)還沒(méi)有分解,或者不能夠被分解則記為未分解(0);如果分解之后,該頂點(diǎn)的拷貝對(duì)象對(duì)應(yīng)的環(huán)為內(nèi)環(huán),則記為負(fù)向(-1),表示該頂點(diǎn)所相連的面的原法向需要修改;否則記為正向(1),表示面的原法向不必修改。
基于圖分解的特征識(shí)別算法流程為:根據(jù)頂點(diǎn)分解準(zhǔn)則對(duì)屬性鄰接圖進(jìn)行分解,以完成模型的分解。其步驟如下:
Step 1化簡(jiǎn)初始屬性鄰接圖,合并其中Co-defined Faces頂點(diǎn);
Step 2對(duì)化簡(jiǎn)后的屬性鄰接圖,判斷每個(gè)頂點(diǎn)是否可分解,若可分解則按照分解規(guī)則分解每個(gè)頂點(diǎn);
Step 3當(dāng)所有頂點(diǎn)都分解之后,判斷最終屬性鄰接圖包含連通分量的數(shù)量,將每個(gè)連通分量生成體單元,對(duì)于每個(gè)體單元根據(jù)設(shè)置的特征閾值判斷其是否為特征。
下面將對(duì)這3個(gè)步驟分開(kāi)詳細(xì)闡述。
在模型中,有些面具有相同的幾何方程,但被特征劃分為不相連的幾個(gè)部分,因此具有不同的拓?fù)浣Y(jié)構(gòu),即 Co-defined 面。在對(duì)屬性鄰接圖進(jìn)行分解之前,需要將Co-defined面對(duì)應(yīng)的頂點(diǎn)合并。
合并步驟如下:
Step 1找出Co-defined面集合FS;
Step 2對(duì)集合FS中的每個(gè)面,找出其在面邊鄰接圖中的頂點(diǎn),在其與原圖中其余頂點(diǎn)鄰接點(diǎn)之間添加一條邊,再刪除其余頂點(diǎn)。圖3為圖1中的槽特征中的Co-defined面處理前后的屬性鄰接圖對(duì)比。
圖3 Co-defined面頂點(diǎn)合并
對(duì)于每一頂點(diǎn)v按照以下步驟執(zhí)行:
Step 1求該頂點(diǎn)所包含的環(huán):
(1)對(duì)于頂點(diǎn)v,獲得其相鄰頂點(diǎn)集合V_adjacent;
(2)根據(jù)鄰接信息查找V_adjacent集合中的所包含的環(huán),并記錄環(huán)及環(huán)的數(shù)目。
Step 2若環(huán)的數(shù)目大于1,且存在內(nèi)環(huán),則執(zhí)行Step 3,否則結(jié)束;
Step 3根據(jù)環(huán)分解頂點(diǎn):
(1)將頂點(diǎn)v復(fù)制m份添加到屬性鄰接圖中,其中m為頂點(diǎn)v所包含的環(huán)的數(shù)目;
(2)對(duì)于v所包含的每一個(gè)環(huán),分配一個(gè)v的拷貝v′,并將L中邊所對(duì)應(yīng)的弧原先指向頂點(diǎn)v的改為指向v′;
(3)刪除頂點(diǎn)v。
在對(duì)屬性鄰接圖中每一定點(diǎn)v執(zhí)行以上操作后,在將屬性鄰接圖劃分為若干個(gè)子連通分量,如圖4所示,是對(duì)圖3中化簡(jiǎn)之后的槽的屬性鄰接圖頂點(diǎn)分解之后的結(jié)果。
圖4 頂點(diǎn)分解示意
完成屬性鄰接圖的分解之后,獲得了對(duì)應(yīng)每一單元的屬性鄰接圖,在此基礎(chǔ)上生成對(duì)應(yīng)的體特征。文獻(xiàn)[6]中提出通過(guò)面延伸生成體特征方法,但是只處理了特征表面為平面的情況,沒(méi)有涉及面與面之間的鄰接關(guān)系。這里根據(jù)屬性鄰接圖,利用面的鄰接關(guān)系,通過(guò)延伸必要的面生成體,再根據(jù)設(shè)定的閾值判斷所生成的體是否為特征。對(duì)于分解之后的屬性鄰接圖中的每個(gè)連通分量進(jìn)行以下操作:
Step 1找出屬性鄰接圖中分解生成的所有頂點(diǎn),對(duì)其中的每個(gè)頂點(diǎn)v,修改其所對(duì)應(yīng)的曲面的邊界。
Step 2確定每個(gè)面的方向。
Step 3根據(jù)已有的點(diǎn)、線、面生成Brep表示的三維模型。
Step 4判斷所生成的體是否滿足特征的條件(體積閾值和曲率閾值);若滿足作為特征。
如圖5所示,本節(jié)以文獻(xiàn)[7]中給出的計(jì)算LOD的模型為例。針對(duì)此種模型可分解為13個(gè)最簡(jiǎn)單元,其中特征1~8(小圓柱)滿足特征條件(1)、體積很??;特征9(中間圓孔)滿足特征條件(2)包含高曲率曲面。模型中其他部分保存在基座中。由于特征識(shí)別的目的是為了替換,程序中僅僅是將最后生成的體特征保存,作為模型的屬性,并沒(méi)有顯示出來(lái)。
針對(duì)CAD/CAE模型轉(zhuǎn)換與CAD/CAM轉(zhuǎn)換的區(qū)別,提出了基于圖分解的特征識(shí)別算法。依據(jù)頂點(diǎn)分解準(zhǔn)則,判斷頂點(diǎn)的可分解性,并對(duì)屬性鄰接圖進(jìn)行分解,再針對(duì)分解之后的屬性鄰接圖中的每個(gè)連通分量生成體特征。該算法不局限于特征類(lèi)型,可以識(shí)別出常見(jiàn)的加工特征,如槽、孔等,只要合理控制頂點(diǎn)的可分解性判斷則可以得到期望的模型分解結(jié)果,識(shí)別出更多的特征。同時(shí)該方法識(shí)別出的為體特征,與用面集表示的特征相比,在特征抑制時(shí),可以在特征這一較高層次[6]上方便地進(jìn)行特征刪除和替換以完成模型的簡(jiǎn)化。
該方法依然存在一些問(wèn)題,如屬性鄰接圖到體映射存在一定的不確定性。同時(shí),對(duì)于相交特征的分解進(jìn)行更深入的思考是下一步工作的目標(biāo)。
圖5 實(shí)例
[1]劉曉平, 金 燦, 李書(shū)杰. 有限元仿真軟件中建模的多態(tài)機(jī)理研究[J]. 系統(tǒng)仿真學(xué)報(bào), 2007, 19(3):538-542.
[2]Corney J, Hayes C, Sundararajan V, et al. The CAD/CAM interface: a 25-year retrospective [J].Journal of Computing and Information Science in Engineering (Transactions of the ASME), 2005, 5(33):188-197.
[3]Venkataraman S, Sohoni M, Kulkarni V. A graphbased framework for feature recognition[C]//6th ACM Symposium on Solid Modeling and Applications, 2001:194-205.
[4]Rahmani K, Arezoo B. A hybrid hint-based and graph-based framework for recognition of interacting milling features [J]. Computers in Industry, 2007, 58:44, 304-312.
[5]周 煒. 基于圖的邊界模型的加工特征識(shí)別技術(shù)[D].南京: 南京航空航天大學(xué), 2006.
[6]Dong X, Wozny M. A method for generating volumetric features from surface features [J].International Journal of Computational Geometry &Applications, 1991, 1(3): 281-297.
[7]Lee Sang Hun. Feature-based multi-resolution modeling of solids [J]. ACM Trans. on Graphics, 2005, 24(4):1417-1441.