白雪飛,胡延平
(大連理工大學(xué) 機(jī)械工程學(xué)院,遼寧 大連 116033)
計(jì)算機(jī)輔助設(shè)計(jì)軟件的廣泛應(yīng)用,使得CAD模型已經(jīng)成為當(dāng)前機(jī)械設(shè)計(jì)、制造和分析的核心。CAD模型作為一種重要的設(shè)計(jì)資源,若能夠?qū)ζ溆行е赜?,?duì)于避免設(shè)計(jì)資源浪費(fèi)、加快新產(chǎn)品的開發(fā)具有重要意義。相關(guān)研究顯示,當(dāng)前產(chǎn)品設(shè)計(jì)的絕大部分是對(duì)原有設(shè)計(jì)實(shí)例的直接使用或者是在原有實(shí)例的基礎(chǔ)上進(jìn)行適應(yīng)性修改,即基于實(shí)例設(shè)計(jì)(Case-Based Design,CBD)[1]。而模型重用是基于實(shí)例設(shè)計(jì)的一個(gè)重要研究方向。
基于實(shí)例設(shè)計(jì)可分為兩個(gè)階段:實(shí)例檢索和適應(yīng)性修改。當(dāng)前模型重用的研究主要集中在模型實(shí)例的檢索階段,例如You CF等將基于局部特征匹配開發(fā)的模型實(shí)例檢索應(yīng)用到產(chǎn)品數(shù)據(jù)管理中[2]。白曉亮等針對(duì)現(xiàn)有CAD模型檢索算法對(duì)局部細(xì)節(jié)特征描述不足的現(xiàn)狀,提出基于最大公共子圖的三維CAD模型檢索算法,實(shí)現(xiàn)CAD模型設(shè)計(jì)和制造知識(shí)的重用[3]。
上述模型檢索算法能根據(jù)設(shè)計(jì)需求有效地檢索出相關(guān)模型實(shí)例,但檢索出的模型實(shí)例往往無法直接應(yīng)用到當(dāng)前設(shè)計(jì)環(huán)境中,原因在于同一個(gè)設(shè)計(jì)領(lǐng)域中,沒有兩個(gè)設(shè)計(jì)問題或者需求能夠完全相同,故針對(duì)已檢索出的模型實(shí)例進(jìn)行適應(yīng)性修改是必不可少的。文獻(xiàn)[1]提出一種在查詢模型和候選模型(根據(jù)查詢模型檢索出的實(shí)例模型)之間建立設(shè)計(jì)元素的對(duì)應(yīng)關(guān)系,并根據(jù)對(duì)應(yīng)關(guān)系將查詢模型所包含的設(shè)計(jì)需求轉(zhuǎn)換到候選模型中,實(shí)現(xiàn)候選模型的自動(dòng)形狀適應(yīng)。
本文以機(jī)械行業(yè)中常見的軸類零件模型為例,研究在基于實(shí)例設(shè)計(jì)的適應(yīng)性修改階段如何輔助用戶對(duì)軸類零件模型進(jìn)行快速形狀適應(yīng)性修改。通過VC++2019對(duì)Creo平臺(tái)進(jìn)行二次開發(fā),構(gòu)建軸類零件實(shí)體模型重用原型系統(tǒng),以加快軸類零件的建模和設(shè)計(jì)速度。
適應(yīng)性修改處于基于實(shí)例設(shè)計(jì)的第二個(gè)階段,也就是對(duì)檢索出的原有實(shí)例根據(jù)新的設(shè)計(jì)需求進(jìn)行變型設(shè)計(jì)。以軸類模型為例,其變型可以分為以下兩種:
(1)結(jié)構(gòu)變型,即對(duì)模型所包含的如軸段、鍵槽等圖形單元及其拓?fù)浣Y(jié)構(gòu)進(jìn)行更改。
(2)尺寸變型,即保持模型拓?fù)浣Y(jié)構(gòu)不變的前提下應(yīng)用參數(shù)化技術(shù)完成尺寸更新。
尺寸變型設(shè)計(jì)的主要方法是通過參數(shù)化技術(shù)來完成模型尺寸參數(shù)的修改[4-6]。參數(shù)化技術(shù)本質(zhì)上是一種數(shù)據(jù)驅(qū)動(dòng)機(jī)制,基于對(duì)二維或者三維圖形數(shù)據(jù)的操作,完成圖形幾何數(shù)據(jù)的參數(shù)化修改。目前,主流CAD平臺(tái),例如Creo,都已實(shí)現(xiàn)了參數(shù)化設(shè)計(jì)。由于使用參數(shù)化技術(shù)來實(shí)現(xiàn)尺寸變型的解決方案已經(jīng)十分成熟,本文著重于軸類模型的結(jié)構(gòu)變型,也就是對(duì)模型中所包含的與設(shè)計(jì)需求不符合的圖形單元,例如軸段、鍵槽、倒角和圓角等進(jìn)行增加、刪除和替換等操作,從而實(shí)現(xiàn)一種半自動(dòng)的、計(jì)算機(jī)輔助的軸類模型適應(yīng)性結(jié)構(gòu)變型,從而將一個(gè)被檢索出的與新設(shè)計(jì)需求相類似但不完全相同的模型實(shí)例變型成一個(gè)能夠在形狀上完全符合新設(shè)計(jì)需求的軸類零件模型,例如二級(jí)圓柱齒輪減速器的Ⅱ軸到Ⅲ軸的轉(zhuǎn)換。
對(duì)軸類模型進(jìn)行結(jié)構(gòu)變型,首先需要分析組成軸類模型的圖形單元,如圖1所示[7]。
圖1 軸類模型包含的圖形單元
軸段在CAD系統(tǒng)中的表示是由圓形截面拉伸或者矩形截面旋轉(zhuǎn)所形成的伸出特征,是軸類模型的基礎(chǔ)單元。以圖2所示的二級(jí)減速器的Ⅲ軸為例,其包含7個(gè)軸段。
從圖2可以看出,軸段作為軸的基礎(chǔ)部分存在,而倒角、鍵槽等單元的存在需要依托于軸段。對(duì)軸類零件模型進(jìn)行變型設(shè)計(jì)需要涉及到軸段單元的添加操作,根據(jù)新軸段的添加位置可以分為以下兩種情況:
圖2 軸類零件模型
(1)邊緣軸段的添加:例如在軸段7的右側(cè)添加一個(gè)新的軸段。
(2)中間軸段的添加:例如在軸段6、7之間添加一個(gè)新軸段。
對(duì)邊緣軸段的添加,只涉及到新軸段的添加;而對(duì)于中間軸段的添加,還需要涉及到受影響單元的判斷、單元重建以及重建前后模型項(xiàng)對(duì)應(yīng)關(guān)系的確定。
基于特征建模的CAD系統(tǒng)以父子關(guān)系表示圖形單元間的關(guān)聯(lián),例如軸段6、7之間,先創(chuàng)建的軸段6作為父單元,而軸段7依賴于軸段6提供的端面進(jìn)行草繪,故軸段7以軸段6的子單元存在,在兩個(gè)軸段之間添加新軸段,需要對(duì)軸段6的相關(guān)子單元重建,否則會(huì)出現(xiàn)如圖3所示的單元間干涉情況。
圖3 中間軸段添加所引起的干涉問題
干涉問題的出現(xiàn)主要是受影響單元未能將其草繪參考平面調(diào)整至新軸段上所致。故在創(chuàng)建完新軸段后,需要對(duì)受影響的單元進(jìn)行參考模型項(xiàng)的調(diào)整和重建,以獲得正確的添加結(jié)果。
Creo以父子關(guān)系表示單元間的關(guān)聯(lián)關(guān)系,單元之間是一種多對(duì)多的關(guān)聯(lián)關(guān)系。通過建立軸類零件模型的圖形單元關(guān)系圖,搜索受影響單元所構(gòu)成的子圖,并對(duì)其進(jìn)行拓?fù)渑判颍@取單元重建的順序。
圖形單元關(guān)系圖表示為G=(V,E),其中,頂點(diǎn)集V是模型中包含的所有可見單元,邊集E由不同單元之間的父子關(guān)系構(gòu)成。通過Creo提供的相關(guān)接口,從模型中提取這兩種關(guān)聯(lián)關(guān)系,建立圖形單元關(guān)系圖。以圖2所示的二級(jí)減速器的Ⅲ軸為例,相應(yīng)的圖形單元關(guān)系如圖4所示。
圖4中框選出的子圖表示在軸段6、7之間添加新軸段后的受影響單元。通過對(duì)該子圖進(jìn)行拓?fù)渑判颍梢垣@取單元重建的順序,如表1所示。
表1 圖形單元重建順序
圖4 圖形單元關(guān)系圖
Creo中的模型項(xiàng)指的是模型中所包含的用來描述模型外形、大小等屬性的數(shù)據(jù)項(xiàng),常用的模型項(xiàng)有表面、邊和尺寸等。在Creo中進(jìn)行建模常以模型項(xiàng)作為參考,例如草繪平面、尺寸標(biāo)注等。當(dāng)中間軸段繪制完畢后,在重建受影響單元的過程中,由于圖形單元被重繪,相關(guān)模型項(xiàng)消失,需要重新設(shè)定參考。例如,在圖2的軸段6、7之間添加新軸段后,軸段7的草繪參考平面便不再是軸段6的可見端平面,而是新軸段的可見端平面,此外,對(duì)于倒角1來說,由于軸段7被重繪,倒角特征所參考的邊消失,需要重新設(shè)定參考,定位到新的軸段7對(duì)應(yīng)邊上。
因?yàn)镃reo中包含的模型項(xiàng)多種多樣,而特征建模的過程中,用于參考的模型項(xiàng)主要是面和邊兩種,故確定軸段模型項(xiàng)的對(duì)應(yīng)關(guān)系也就是確定軸段表面和邊的對(duì)應(yīng)關(guān)系。
對(duì)于兩個(gè)圖形單元表面間對(duì)應(yīng)關(guān)系的確定,可以通過建立單元有序面集的描述符,并判斷兩個(gè)有序面集是否相等,若相等,則按照有序面集的順序建立表面之間的對(duì)應(yīng)關(guān)系。對(duì)于邊對(duì)應(yīng)關(guān)系的確定,基于邊是由兩個(gè)面相鄰接所形成的原理,通過判斷面的對(duì)應(yīng)關(guān)系以及邊的兩個(gè)相鄰面便可以獲取邊的對(duì)應(yīng)關(guān)系。單元面集描述符如下:
描述符矩陣是組成軸段的4個(gè)表面相關(guān)信息的集合,不同列對(duì)應(yīng)不同的表面,不同行對(duì)應(yīng)不同的表面屬性。T1~T4表示的是表面類型,有平面Plane和圓柱面Cylinder兩種;RP1~RP4表示平面相對(duì)坐標(biāo)系的位置,有-1和1兩種;RC1~RC4表示圓柱面的相對(duì)位置,有-1和1兩種合法值。通過描述符判斷兩個(gè)軸段單元表面間對(duì)應(yīng)關(guān)系的過程如圖5所示。
圖5 面對(duì)應(yīng)關(guān)系的確定過程
在獲取完受影響單元的重建順序以及新軸段與父軸段模型項(xiàng)對(duì)應(yīng)關(guān)系后,便可以完成中間軸段添加后的受影響圖形單元重建操作,并在重建過程中對(duì)重建前后圖形單元模型項(xiàng)對(duì)應(yīng)關(guān)系進(jìn)行確定,相關(guān)過程如圖6所示。
圖6 中間軸段添加及受影響單元的重繪過程
通常軸類零件中除軸段等基本圖形單元外,還會(huì)包含其余一些常見的輔助圖形單元,例如鍵槽和倒角、圓角等。由于Creo對(duì)倒角和圓角提供了方便、快捷的添加方式,故本文只考慮倒角和圓角的重建,而不考慮它們的添加操作。對(duì)于鍵槽,它的具體形狀依賴于與之配合的鍵,以平鍵為例,鍵的相關(guān)形狀由國家標(biāo)準(zhǔn)規(guī)定,通過與之配合的軸段軸徑,選取鍵的截面尺寸,并從可用的長度尺寸序列選取平鍵的長度;而鍵槽的位置則由其余參考面之間的距離確定。鍵槽的相關(guān)圖示如圖7所示。
圖7 鍵槽特征
從圖7中可以看出,確定一個(gè)鍵槽的相關(guān)參數(shù)如表2所示。
表2 鍵槽單元的參數(shù)
對(duì)于鍵槽的添加,可以分為兩步:首先,由用戶選擇鍵槽所在軸段與參考平面,查詢標(biāo)準(zhǔn),獲取參數(shù)B、t1以及L的可用系列;然后將L的可用值顯示給用戶,從用戶處獲取L的選擇值以及距離x,完成鍵槽特征的創(chuàng)建。
本文基于VC++2019和Creo平臺(tái)提供的Object Toolkit C++二次開發(fā)接口,構(gòu)建軸類零件實(shí)體模型重用原型系統(tǒng),對(duì)軸類零件模型結(jié)構(gòu)的適應(yīng)性修改提供計(jì)算機(jī)輔助支持,使設(shè)計(jì)人員能夠快速完成軸類模型的結(jié)構(gòu)變型。下面以二級(jí)齒輪減速器的Ⅱ軸到Ⅲ軸的結(jié)構(gòu)適應(yīng)性修改為例,說明原型系統(tǒng)的效果。
適應(yīng)性修改的源模型為減速器的Ⅱ軸,目標(biāo)模型為Ⅲ軸,如圖8所示。
圖8 適應(yīng)性修改的源模型和目標(biāo)模型
通過重新建模、手動(dòng)適應(yīng)和計(jì)算機(jī)輔助適應(yīng)三種建模手段的對(duì)比,可以看出通過使用原型系統(tǒng)對(duì)已有軸類零件模型進(jìn)行適應(yīng)性修改,建模時(shí)間明顯縮短,如圖9所示。
圖9 實(shí)驗(yàn)結(jié)果
通過將軸類零件實(shí)體模型的適應(yīng)性結(jié)構(gòu)變型轉(zhuǎn)化為對(duì)軸段、鍵槽等圖形單元的添加、刪除和替換操作,實(shí)現(xiàn)一種以用戶為主導(dǎo)、計(jì)算機(jī)輔助的軸類零件模型結(jié)構(gòu)快速適應(yīng)性修改。實(shí)驗(yàn)結(jié)果顯示,通過對(duì)已有軸類零件模型提供計(jì)算機(jī)輔助的快速適應(yīng)性修改,新模型的建模時(shí)間縮短,效率得到明顯提升。