郭 艷,華順剛
(大連理工大學(xué)機(jī)械工程學(xué)院,遼寧 大連 116024)
隨著產(chǎn)品需求的不斷變化和計(jì)算輔助技術(shù)的快速發(fā)展,三維CAD模型趨向于復(fù)雜化、多樣化,且模型數(shù)量呈現(xiàn)爆炸式增長(zhǎng)[1]。在產(chǎn)品設(shè)計(jì)過程中,大部分產(chǎn)品設(shè)計(jì)是將過去的設(shè)計(jì)經(jīng)驗(yàn)和設(shè)計(jì)成果應(yīng)用到當(dāng)前的模型設(shè)計(jì)中[2],通過對(duì)已有的模型進(jìn)行適應(yīng)性修改和再利用從而達(dá)到設(shè)計(jì)要求。因此,如何對(duì)現(xiàn)有的三維模型資源實(shí)現(xiàn)有效重用以提高產(chǎn)品設(shè)計(jì)開發(fā)效率成為當(dāng)前的研究熱點(diǎn)[3]。
近年來,國(guó)內(nèi)外很多學(xué)者致力于三維模型重用的研究。Pratt等[4]基于STEP標(biāo)準(zhǔn)的特征信息實(shí)現(xiàn)CAD模型在不同平臺(tái)下的重用。Wu等[5]在傳統(tǒng)的CAD模型基礎(chǔ)上建立包含集成設(shè)計(jì)歷史信息的模型,實(shí)現(xiàn)基于內(nèi)容的參數(shù)化模型重用。潘萬(wàn)彬等[6]通過找到兩個(gè)模型局部特征的對(duì)應(yīng)面和定位元素,以便進(jìn)行形狀尺寸和定位信息的傳遞,最后重建局部特征實(shí)現(xiàn)重用。
三維模型局部特征的重用是針對(duì)兩個(gè)三維CAD模型開展的,由于兩個(gè)三維模型位于不同坐標(biāo)系中,一般很難直接進(jìn)行操作[7]。可使用OBB包圍盒的思想,獲取可重用局部特征和待替換局部特征的OBB包圍盒。根據(jù)兩個(gè)OBB包圍盒的空間比例因子和位置信息,適應(yīng)性修改可重用局部特征后,在當(dāng)前設(shè)計(jì)模型中重建該局部特征,從而快速地生成新穎的三維模型,最終實(shí)現(xiàn)局部特征的有效重用。
當(dāng)前主流的三維CAD建模軟件大都采用特征造型[8],特征是可用尺寸參數(shù)值驅(qū)動(dòng)的,三維CAD模型的創(chuàng)建過程就是不斷添加特征、特征之間通過組合、疊加、切除等方式形成最終模型的過程,如圖1(a)所示。因此,三維CAD模型可以理解為是一組特征的集合。如圖1(b)所示,通過定義特征管理設(shè)計(jì)樹來記錄三維模型的創(chuàng)建過程。樹中每個(gè)頂點(diǎn)對(duì)應(yīng)三維CAD模型中的一個(gè)特征,頂點(diǎn)之間的連線對(duì)應(yīng)特征之間的鄰接關(guān)系(如父子關(guān)系、兄弟關(guān)系),比較三維模型相鄰兩個(gè)設(shè)計(jì)階段的特征管理設(shè)計(jì)樹,若新特征是在前一個(gè)設(shè)計(jì)階段的某特征的基礎(chǔ)上創(chuàng)建的,則此特征就稱為新特征的父特征,具有相同父特征的兩個(gè)子特征互為兄弟關(guān)系。如凸臺(tái)1是凸臺(tái)2的父特征,凸臺(tái)2和凸臺(tái)3互為兄弟。

圖1 三維CAD模型的創(chuàng)建及特征管理設(shè)計(jì)樹Fig.1 Creation Process of 3D CAD Model and Feature Management Tree
遍歷特征管理設(shè)計(jì)樹可獲取三維CAD模型的特征集合、特征之間的父子關(guān)系,定義三種結(jié)構(gòu)體FeatureInfo、SketchInfo和FaceInfoOfSketch來分別描述特征信息、草圖信息和草圖所在面信息。FeatureInfo包含特征參數(shù)、特征名(如凸臺(tái)、通孔)、特征類型名(如拉伸、切除)。SketchInfo包含草圖名、草圖的曲線集合,其中曲線集合包含曲線類型(如直線、圓、橢圓等)和曲線參數(shù)信息(線長(zhǎng)度、圓半徑、點(diǎn)坐標(biāo)等);FaceInfoOfSketch包含面的類型(平面、圓柱面等)、邊數(shù)和法向量。最終三維模型可用數(shù)組vector<FeatureInfo>表示。
在二維平面中模型的三種包圍盒,包圍球是用圓包圍整個(gè)幾何體,容易丟失模型對(duì)象的方向信息;軸對(duì)齊包圍盒的每條邊都平行于坐標(biāo)軸Oxy,會(huì)造成包圍空間冗余;OBB包圍盒是一個(gè)形狀簡(jiǎn)單、空間上逼近模型的最小長(zhǎng)方形,邊的方向根據(jù)幾何對(duì)象的形狀和大小來確定,與其在坐標(biāo)系中的放置位置無(wú)關(guān),不必與坐標(biāo)軸平行[9],如圖2所示。通過比較這三種包圍盒的優(yōu)缺點(diǎn),計(jì)算三維CAD模型的OBB包圍盒來近似逼近模型,效果更優(yōu)。

圖2 二維平面中的包圍盒示意圖Fig.2 Diagram of Bounding Boxs in Two-Dimensional Plane
用主成分分析方法求取OBB包圍盒的三條主軸方向和邊長(zhǎng)值,將三維模型轉(zhuǎn)換成點(diǎn)云格式,以幾何模型表面的點(diǎn)集合作為輸入,構(gòu)造三維模型OBB包圍盒的計(jì)算步驟如下:
(1)輸入幾何模型表面的點(diǎn)集合Pn×3;
(2)對(duì)Pn×3求解均值E和協(xié)方差矩陣C;
(3)求C的特征值E和特征向量V。
(4)對(duì)V進(jìn)行施密特正交化,得有向包圍盒的三條主軸;
(5)將Pn×3中各個(gè)點(diǎn)投影到主軸上,計(jì)算包圍盒的中心點(diǎn)和邊長(zhǎng)值。
沿著模型OBB包圍盒的三條主軸xyz方向設(shè)置縮放因子1:2:1,遍歷特征的尺寸約束,找到每個(gè)尺寸約束對(duì)應(yīng)的幾何元素(邊、面、圓弧等)和幾何元素之間的約束關(guān)系(距離約束、角度約束等);根據(jù)邊長(zhǎng)的方向向量、直線與平面或面與面之間距離的方向向量,判斷其方向與局部特征OBB包圍盒的哪條主軸平行(或滿足與主軸向量夾角小于等于閾值,設(shè)置閾值?≤25°),按照對(duì)應(yīng)主軸方向的縮放因子修改參數(shù)信息,如圖3所示。對(duì)于圓弧曲線,獲取曲線所在面的法向量,計(jì)算法向量垂直于包圍盒的哪兩條主軸,選取沿兩條主軸方向縮放比例較小的值作為圓弧曲線的縮放因子。

圖3 基于OBB包圍盒的特征尺寸修改過程Fig.3 Size Modification Process Based on Oriented Bounding Box
給定兩個(gè)三維CAD模型CM和DM,CM是包含可重用局部特征的參考模型,DM是當(dāng)前正在設(shè)計(jì)修改的模型。基于OBB包圍盒的三維模型局部特征重用的流程,如圖4所示。獲取CM和DM的特征集合信息,選取可重用局部特征Fc和待替換的局部特征Fd。記錄模型CM中可重用局部特征Fc的形狀尺寸信息和模型DM中局部特征Fd的位置信息后,刪除局部特征Fd。利用之前獲取到的模型信息,求取局部特征Fc和Fd的包圍盒;比較局部特征Fc和Fd包圍盒長(zhǎng)寬高的值,計(jì)算各個(gè)方向尺寸比例。然后修改局部特征Fc的結(jié)構(gòu)和尺寸信息,并將其重建到設(shè)計(jì)模型DM中的指定位置,最后得到一個(gè)新的三維CAD模型M。

圖4 三維模型局部特征重用示意圖Fig.4 Local Reuse Diagram of 3D CAD Model
通過遍歷參考模型CM的特征設(shè)計(jì)管理樹來選取可重用局部特征。先從CM的第一個(gè)特征即根特征開始遍歷,遍歷到哪個(gè)特征,則以此特征為根特征的子樹將會(huì)被全部選中,設(shè)計(jì)人員決定是否重用此局部區(qū)域,如果選擇重用,則結(jié)束遍歷;否則繼續(xù)往后遍歷下一個(gè)特征直至找到滿足設(shè)計(jì)修改需求的可重用局部。例如,遍歷到圖1a中特征凸臺(tái)1時(shí),以凸臺(tái)1為根特征的子樹被全部選中。如果選擇重用此局部特征,則結(jié)束遍歷;否則繼續(xù)遍歷下一特征凸臺(tái)2,此時(shí)以凸臺(tái)2為根特征的子樹會(huì)被選中……一直循環(huán)遍歷直至選中可重用局部特征。
三維模型局部特征重用的最終結(jié)果,是將修改形狀和尺寸信息的局部特征Fc重建到當(dāng)前設(shè)計(jì)模型DM中,重建后的局部特征Fc應(yīng)和原局部特征Fd具有相同的位置信息。因此,在替換設(shè)計(jì)模型DM中的局部特征Fd前,需要記錄局部特征Fd相對(duì)于模型DM其他區(qū)域的位置信息。由基于特征的參數(shù)化造型方式可知,特征的定位信息通常是由特征的草圖與草繪平面之間的幾何元素的位置約束關(guān)系確定的。通過計(jì)算局部特征Fd的第一個(gè)特征草圖Sd在對(duì)應(yīng)平面上的OBB包圍盒,獲取包圍盒的中心點(diǎn)位置和主軸方向。刪除局部特征Fd后,在設(shè)計(jì)模型DM中重建局部特征Fc時(shí),F(xiàn)c的第一個(gè)草圖Sc和草圖Sd位于同一平面上。基于此,計(jì)算草圖Sc和Sd的OBB包圍盒的中心點(diǎn)位置差和主軸方向向量夾角,在設(shè)計(jì)模型DM中重繪草圖Sc后將其移動(dòng)至草圖Sd的位置,使包圍盒中心點(diǎn)Oc和Od位置重合;然后旋轉(zhuǎn)草圖Sc,使其包圍盒兩個(gè)主軸的方向與草圖Sd包圍盒主軸方向平行。局部特征位置信息修改示意圖,如圖5所示。

圖5 局部特征位置修改示意圖Fig.5 Location Modification Diagram of Local Feature
使用3.2節(jié)中基于OBB包圍盒的三維模型形狀尺寸修改方法,設(shè)可重用局部特征Fc有向包圍盒的長(zhǎng)寬高分別為a1、b1、c1,待替換局部特征Fd有向包圍盒的長(zhǎng)寬高分別為a2、b2、c2,得到沿可重用局部特征Fc有向包圍盒主軸方向x1、y1、z1的邊長(zhǎng)比為F(fx,fy,fz)=(a2/a1,b2/b1,c2/c1);遍歷可重用局部特征Fc的尺寸信息,得到邊長(zhǎng)值、圓直徑、面距離等,判斷尺寸信息對(duì)應(yīng)的幾何元素(邊、面等)與OBB包圍盒三條主軸中的哪一條平行,按對(duì)應(yīng)的邊長(zhǎng)比修改尺寸參數(shù)實(shí)現(xiàn)局部特征的形狀尺寸修改。
局部特征Fc創(chuàng)建在參考模型CM中,修改后Fc將在設(shè)計(jì)模型DM中重建。局部重建是根據(jù)特征管理設(shè)計(jì)樹、按序重新創(chuàng)建各個(gè)特征。在已重建父特征的所有面中,根據(jù)子特征的草圖所在面的類型、邊數(shù)、法向量找到匹配的面,然后在此平面上重繪草圖、設(shè)置特征參數(shù)以重建子特征。由于可重用局部特征Fc將重建在原局部特征Fd所在面的位置,可計(jì)算父特征的所有面的法向量相對(duì)于此面的朝向。以重建凸臺(tái)3為例說明可重用局部特征的自動(dòng)重建過程,藍(lán)色平面是原局部特征Fd所在平面f0,紅色區(qū)域是凸臺(tái)1,黃色區(qū)域是凸臺(tái)3,如圖6所示。由圖1(b)可知,凸臺(tái)1是凸臺(tái)3的父特征,同時(shí)是凸臺(tái)2、通孔3、通孔4的父特征,它共有九個(gè)面(f1、f2…f9);在設(shè)計(jì)模型DM中重建凸臺(tái)3前,先獲取其父特征凸臺(tái)1的所有面,如表1所示分別記錄可見面的類型、邊數(shù)、法向量與參考面f0法向量的關(guān)系。
參考模型CM中凸臺(tái)3的草圖所在面是一個(gè)平面,面中包含9條邊,面的法向量垂直箱蓋表面,比較表1中凸臺(tái)1所有面信息判斷出與其匹配的面是平面f9。如圖6(b)所示在平面f9上根據(jù)凸臺(tái)3草圖的曲線集合信息(曲線的類型、長(zhǎng)度、圓半徑、點(diǎn)坐標(biāo)等)重繪草圖;設(shè)置特征類型為凸臺(tái)-拉伸、設(shè)置修改后的特征參數(shù)以重建凸臺(tái)3,即可實(shí)現(xiàn)子特征的自動(dòng)重建。

圖6 重建子特征-凸臺(tái)3Fig.6 Reconstruction of Sub-Feature,Boss 3

表1 凸臺(tái)1的面信息Tab.1 Face Information from Boss 1
基于C++語(yǔ)言和SolidWorks2014二次開發(fā)API實(shí)現(xiàn)重用方法,實(shí)驗(yàn)運(yùn)行環(huán)境為3.4GHz Intel Core-i5 7500 CPU,8GB內(nèi)存的PC機(jī),運(yùn)行程序后將生成動(dòng)態(tài)鏈接庫(kù)文件(.dll),設(shè)計(jì)人員可直接在Solidworks中使用插件(.dll)應(yīng)用于三維模型文件。實(shí)驗(yàn)結(jié)果展示,第一列是參考模型;第二列的綠色區(qū)域是設(shè)計(jì)模型,第三列是包含修改后可重用局部的新的三維模型,如表2所示。

表2 三維模型局部重用實(shí)驗(yàn)示例Tab.2 Local Reuse Examples of 3D CAD Model
將研究方法與文獻(xiàn)[6]從三維模型類型、可重用局部特征和待替換局部之間的形狀關(guān)系、形狀尺寸和位置信息修改方式等幾個(gè)方面進(jìn)行比較,結(jié)果如表3所示。

表3 與文獻(xiàn)[6]方法比較Tab.3 Method Comparion between Paper[6]and Our Approach
提出的重用方法具有如下特點(diǎn):(1)用OBB包圍盒在空間上近似逼近復(fù)雜模型局部區(qū)域,對(duì)比兩個(gè)局部區(qū)域的OBB包圍盒獲取位置信息和空間比例;(2)遍歷局部特征的幾何尺寸,判別幾何元素與OBB包圍盒主軸方向的關(guān)系,按照對(duì)應(yīng)的空間比例修改形狀尺寸信息;(3)基于待替換區(qū)域的包圍盒在設(shè)計(jì)模型中的位置將定位信息傳遞到可重用局部;(4)基于特征設(shè)計(jì)管理樹識(shí)別特征間的父子關(guān)系,在父特征的所有面中找到子特征草圖所在面實(shí)現(xiàn)子特征重建。實(shí)驗(yàn)研究的對(duì)象是特征零件模型,可很好地實(shí)現(xiàn)三維模型局部特征重用,提高設(shè)計(jì)效率;下一步將繼續(xù)研究裝配體模型中局部區(qū)域的重用問題。