張文彬, 沈精虎, 姜兆康
(青島大學(xué),機(jī)電工程學(xué)院,青島 266071)
Creo是目前最流行的三維CAD軟件,它具有互操作性、開(kāi)放、易用三大特點(diǎn)[1]。該版本軟件整合了PTC公司三大軟件的優(yōu)勢(shì),包括Pro/Engineer的參數(shù)化技術(shù)、CoCreate的直接建模技術(shù)和ProductView的三維可視化技術(shù),為用戶(hù)設(shè)計(jì)出理想的三維產(chǎn)品提供了強(qiáng)大的技術(shù)支持[2];另外軟件集成了多個(gè)可互操作的應(yīng)用程序,能夠輕松實(shí)現(xiàn)數(shù)據(jù)共享,極大提高了用戶(hù)的工作效率。面對(duì)市場(chǎng)對(duì)產(chǎn)品的多樣化需求,更好的實(shí)現(xiàn)產(chǎn)品設(shè)計(jì)和產(chǎn)品的系列化,利用Creo/TOOLKIT二次開(kāi)發(fā)工具對(duì)Creo進(jìn)行二次開(kāi)發(fā)變得非常必要。研究表明,產(chǎn)品設(shè)計(jì)中大約有70%屬于變型設(shè)計(jì),特別是對(duì)大批量定制的產(chǎn)品,變型設(shè)計(jì)變得更為重要[3]。
目前,越來(lái)越多的產(chǎn)品加工設(shè)計(jì)企業(yè)都對(duì)三維設(shè)計(jì)軟件提出了二次開(kāi)發(fā)的需求,特別是基于CAD系統(tǒng)進(jìn)行二次開(kāi)發(fā)更是在國(guó)內(nèi)外得到了廣泛的研究。例如北京重型電機(jī)廠(chǎng)聯(lián)合北京航空航天大學(xué),以歐洲Cimatron系統(tǒng)為平臺(tái),二次開(kāi)發(fā)出汽輪機(jī)葉片設(shè)計(jì)系統(tǒng);澳大利亞大學(xué)先進(jìn)制造技術(shù)中心設(shè)計(jì)的COCADCAM系統(tǒng),是基于現(xiàn)有CAD/CAM的技術(shù)特點(diǎn),二次開(kāi)發(fā)的一種網(wǎng)絡(luò)化產(chǎn)品設(shè)計(jì)系統(tǒng)等等[4-5]。
參數(shù)化模型集幾何約束與工程約束于一身,要實(shí)現(xiàn)參數(shù)化變型設(shè)計(jì),關(guān)鍵就在于建立好參數(shù)化的產(chǎn)品模型[6]。根據(jù)產(chǎn)品功能設(shè)計(jì)產(chǎn)品時(shí),初始產(chǎn)品的尺寸和形狀都是不確定的,這就要求初始的產(chǎn)品模型具有隨時(shí)變更的特性,參數(shù)化設(shè)計(jì)就是將產(chǎn)品中的一些關(guān)鍵尺寸參數(shù)化,使這些關(guān)鍵尺寸能隨參數(shù)值的改變而改變,從而得到滿(mǎn)足客戶(hù)需要的形狀大小不同的零件產(chǎn)品[7]。與傳統(tǒng)的建模設(shè)計(jì)方法相比,參數(shù)化設(shè)計(jì)有效的避免了設(shè)計(jì)者的重復(fù)勞動(dòng),大大提高了零件產(chǎn)品的修改和生成速度。Creo三維軟件自身帶有強(qiáng)大的二次開(kāi)發(fā)工具Creo/TOOLKIT,通過(guò)Creo/TOOLKIT程序編寫(xiě),能夠?qū)δP椭械膮?shù)進(jìn)行提取與修改,模型根據(jù)參數(shù)數(shù)值的改變而改變。
創(chuàng)建三維模型零件有三種方法[8]:(1)利用三維設(shè)計(jì)軟件本身的交互功能設(shè)計(jì)完成。(2)根據(jù)特征元素樹(shù)用編程的方式完成模型的創(chuàng)建。(3)利用設(shè)計(jì)參數(shù)來(lái)控制三維模型。第一種方法建模速度快,但在一些二次開(kāi)發(fā)系統(tǒng)中存在重復(fù)操作,后期的修改變型功能欠缺。第二種方法雖然自動(dòng)化程度高,但編程工作量大且對(duì)復(fù)雜的特征生成非常困難。因此選用第三種方法,這種方法融合了前兩種方法的優(yōu)勢(shì),基本做法是先用交互的方式完成三維模型的創(chuàng)建,然后利用Creo的參數(shù)、關(guān)系式功能建立尺寸和工程約束,最后由Creo/TOOLKIT應(yīng)用程序檢索出設(shè)計(jì)參數(shù)和關(guān)系式,并且提供參數(shù)和關(guān)系式的修改功能以及相關(guān)參數(shù)修改后模型的自動(dòng)更新功能?;贑reo二次開(kāi)發(fā)環(huán)境下參數(shù)化設(shè)計(jì)基本原理,如圖1所示。
二次開(kāi)發(fā)就是在原有軟件功能基礎(chǔ)上開(kāi)發(fā)設(shè)計(jì)出自己想要的功能,是對(duì)原軟件功能的拓展。Creo/TOOLKIT是Creo軟件自帶的二次開(kāi)發(fā)工具,可以直接針對(duì)Creo軟件的最底層數(shù)據(jù)庫(kù)資源進(jìn)行訪(fǎng)問(wèn),這是進(jìn)行Creo二次開(kāi)發(fā)最根本有效的方法。根據(jù)工程化原則,進(jìn)行二次開(kāi)發(fā)時(shí)一般要經(jīng)歷系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)程序編寫(xiě)和系統(tǒng)測(cè)試四個(gè)階段[9-10],具體開(kāi)發(fā)流程,如圖2所示。
圖1 參數(shù)化設(shè)計(jì)基本原理
圖2 二次開(kāi)發(fā)系統(tǒng)的開(kāi)發(fā)流程
系統(tǒng)選用的開(kāi)發(fā)平臺(tái)是Creo,除了選用Creo/TOOLKIT為開(kāi)發(fā)工具,同時(shí)配以Visual Studio 2010集成開(kāi)發(fā)環(huán)境。Visual Studio 2010是一款基于C、C++語(yǔ)言的集成開(kāi)發(fā)環(huán)境,并且完善了以前版本對(duì)C++標(biāo)準(zhǔn)支持不佳的缺陷,其中MFC的應(yīng)用更是大大降低了開(kāi)發(fā)難度和開(kāi)發(fā)工作量[11-12]。
Creo/TOOLKIT應(yīng)用程序有同步模式和異步模式兩種工作模式[13]。同步模式顧名思義就是與Creo系統(tǒng)同步運(yùn)行,異步模型的特點(diǎn)就是能夠和Creo獨(dú)立分開(kāi)運(yùn)行,但異步模式的程序運(yùn)行速度比同步模式慢,因此本系統(tǒng)的開(kāi)發(fā)采用同步模式。同步模式又分為動(dòng)態(tài)鏈接庫(kù)和多進(jìn)程兩種方式,區(qū)別在于前者生成dll文件,后者生成exe文件。而本系統(tǒng)是對(duì)Creo軟件進(jìn)行的功能拓展,因此選用動(dòng)態(tài)鏈接庫(kù),直接連接到Creo軟件調(diào)用即可。
使用Creo/TOOLKIT開(kāi)發(fā)應(yīng)用程序時(shí)包含三個(gè)基本步驟[14-15]:(1)編寫(xiě)源文件(包括資源文件和程序的源文件);(2)生成可執(zhí)行文件(dll文件);(3)可執(zhí)行文件在Creo中注冊(cè)并運(yùn)行。本系統(tǒng)的注冊(cè)文件名為ParaVarDeSystem,注冊(cè)運(yùn)行如圖3所示。
圖3 注冊(cè)運(yùn)行可執(zhí)行文件
3.2.1 對(duì)零件參數(shù)的提取與設(shè)置
系統(tǒng)要實(shí)現(xiàn)參數(shù)化設(shè)計(jì)前提就是能夠?qū)δP椭械膮?shù)進(jìn)行檢索、提取和修改。具體實(shí)現(xiàn)過(guò)程是:(1)調(diào)用ProParameterVisit( )函數(shù)對(duì)模型中的所有參數(shù)進(jìn)行訪(fǎng)問(wèn),然后將符合過(guò)濾條件的參數(shù)對(duì)象指針存放到數(shù)組ProParameter中。(2)調(diào)用ProParameterValueGet( )函數(shù)獲取參數(shù)對(duì)象的值對(duì)象,然后根據(jù)獲得的值對(duì)象的類(lèi)型獲得相應(yīng)的具體值。(3)通過(guò)控件變量和參數(shù)變量之間的信息交流實(shí)現(xiàn)所有符合條件的模型參數(shù)的顯示。(4)調(diào)用ProParameterValueSet( )函數(shù)對(duì)參數(shù)對(duì)象的進(jìn)行設(shè)置。(5)調(diào)用ProSolidRegenerate( )函數(shù)完成模型的更新。
3.2.2 對(duì)零件關(guān)系式的提取與設(shè)置
關(guān)系式用于確定模型尺寸和參數(shù)之間的關(guān)系,參數(shù)可以理解為主驅(qū)動(dòng)尺寸,關(guān)系式理解為被驅(qū)動(dòng)尺寸。具體實(shí)現(xiàn)過(guò)程是:(1)調(diào)用ProSolidRelsetVisit( )函數(shù)訪(fǎng)問(wèn)模型關(guān)系式集。(2)調(diào)用ProRelsetToModelitem( )函數(shù)和ProRelsetRelationsGet( )函數(shù)獲取關(guān)系式集對(duì)象的模型項(xiàng)和具體的關(guān)系式集。(3)通過(guò)控件變量和關(guān)系式變量之間的信息交流實(shí)現(xiàn)模型所有關(guān)系式的顯示。(4)調(diào)用ProRelsetRelationsSet( )函數(shù)對(duì)模型關(guān)系式進(jìn)行設(shè)置。
要實(shí)現(xiàn)零件的參數(shù)化變型設(shè)計(jì)和系列化,首先要對(duì)該零件進(jìn)行尺寸分析,確定不變尺寸、可變尺寸和工程約束尺寸;其次將可變尺寸設(shè)置為可變參數(shù),將工程約束尺寸設(shè)置為導(dǎo)出參數(shù)??勺儏?shù)和導(dǎo)出參數(shù)可由軟件本身自帶的參數(shù)和關(guān)系式工具進(jìn)行添加,也可通過(guò)本文開(kāi)發(fā)的人機(jī)交互界面進(jìn)行添加。這里以階梯軸的部分參數(shù)為例,通過(guò)對(duì)階梯軸的尺寸分析,確定了階梯軸的軸長(zhǎng)和直徑的尺寸為可變尺寸,階梯軸的槽位置為工程約束尺寸,階梯軸的長(zhǎng)度用參數(shù)“DL1”、“DL2”、…,軸的直徑用“DW1”、“DW2”、…,表示。槽位置是由關(guān)系式確定的。階梯軸軸長(zhǎng)和直徑參數(shù)分析示意圖,如圖4所示。
圖4 階梯軸的參數(shù)分析
利用本文開(kāi)發(fā)的人機(jī)交互界面,能夠?qū)δP蛥?shù)和關(guān)系式進(jìn)行自動(dòng)檢索和提取,對(duì)階梯軸參數(shù)和關(guān)系式進(jìn)行提取的結(jié)果,如圖5所示。
圖5 對(duì)階梯軸參數(shù)和關(guān)系式的提取顯示
本文開(kāi)發(fā)的參數(shù)化變型設(shè)計(jì)應(yīng)用程序,是由參數(shù)操作對(duì)話(huà)框和關(guān)系式操作對(duì)話(huà)框組成,參數(shù)操作對(duì)話(huà)框能夠?qū)哪P椭刑崛〉膮?shù)進(jìn)行修改,也可以通過(guò)“添加”與“刪除”按鈕完成新參數(shù)的添加與已有參數(shù)的刪除,設(shè)置完成后,按“修改”按鈕完成數(shù)據(jù)的修改,最后通過(guò)“再生”按鈕完成模型的更新。階梯軸長(zhǎng)度修改前后對(duì)比,如圖6所示。
同理,關(guān)系式對(duì)話(huà)框能夠從模型中提取所有定義的關(guān)系式并對(duì)關(guān)系式進(jìn)行重新編輯,單擊“選擇尺寸”按鈕,模型所有尺寸會(huì)加亮顯示,選擇自己需要定義的尺寸,然后編輯關(guān)系式,編輯完成后,單擊“添加”按鈕即可完成新關(guān)系式的添加。其余按鈕的功能和參數(shù)操作模塊相同,不再展示。
總之,通過(guò)本應(yīng)用程序的開(kāi)發(fā),能夠快速對(duì)模型零件進(jìn)行變型設(shè)計(jì),實(shí)現(xiàn)系列化。和軟件本身自帶的功能相比更加直觀快速,為設(shè)計(jì)人員避免了重復(fù)勞動(dòng),節(jié)省了設(shè)計(jì)時(shí)間。
(b)軸長(zhǎng)修改后
本文研究了參數(shù)化設(shè)計(jì)的基本原理,并對(duì)開(kāi)發(fā)中的關(guān)鍵技術(shù)進(jìn)行了詳細(xì)介紹,最后對(duì)開(kāi)發(fā)的應(yīng)用程序進(jìn)行了功能展示,以階梯軸為例驗(yàn)證了新方法在參數(shù)化變型設(shè)計(jì)中的可行性。此外,本程序具有很好的通用性,適用于所有零件類(lèi)的參數(shù)化變型設(shè)計(jì),拓展了Creo軟件的功能,大大提高了零件產(chǎn)品的變型設(shè)計(jì)效率。
[1] 王哲,王紅.Creo二次開(kāi)發(fā)參數(shù)化設(shè)計(jì)技術(shù)的應(yīng)用研究[J].機(jī)械研究與應(yīng)用,2014(3):183-186.
[2] 程相文,邢樹(shù)雪.基于Pro/Toolkit的Creo2.0二次開(kāi)發(fā)過(guò)程研究[J].機(jī)械工程與自動(dòng)化,2015(5):70-71.
[3] 常青青.基于參數(shù)化技術(shù)的零件精度變型設(shè)計(jì)方法研究[D].桂林:桂林電子科技大學(xué),2015.
[4] 任國(guó)棟,鄭峰,葛春榮等.基于UG的汽輪機(jī)葉片CAD系統(tǒng)二次開(kāi)發(fā)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2015(1):46-48.
[5] 史紅禮.CAD二次開(kāi)發(fā)在水電站設(shè)計(jì)中的實(shí)踐探索[J].中國(guó)科技縱橫,2015(13):28-28.
[6] 梁麗芬,王宗彥,張鵬,等.基于特征的零件工藝參數(shù)化變型設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2015(17):139-142.
[7] 劉濤,胡迪,雷經(jīng)發(fā)等.Creo二次開(kāi)發(fā)實(shí)現(xiàn)液壓缸參數(shù)化設(shè)計(jì)[J].煤礦機(jī)械,2016,37(3):176-179.
[8] 辛虹. 系列零部件三維參數(shù)化設(shè)計(jì)方法研究[J]. 機(jī)械設(shè)計(jì)與制造,2013(4):202-204.
[9] 楊松林,余金鑫,張鋼,等.常用彈簧二維三維參數(shù)化造型技術(shù)研究與系統(tǒng)開(kāi)發(fā)[J].機(jī)械設(shè)計(jì)與制造,2011(9):246-248.
[10] 孫炎,仲梁維,劉營(yíng)營(yíng),等.基于Pro/E二次開(kāi)發(fā)的剪板機(jī)快速設(shè)計(jì)系統(tǒng)[J].軟件導(dǎo)刊,2017,16(4):139-141.
[11] 王冰冰,林木,趙書(shū)強(qiáng),等.基于Pro/E二次開(kāi)發(fā)的包裝機(jī)械參數(shù)化設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械制造與自動(dòng)化,2017,46(2):101-103.
[12] 文明,吉紅偉,王彥偉,等.基于Pro/E二次開(kāi)發(fā)的輔助布線(xiàn)技術(shù)[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(11):4021-4026.
[13] 衛(wèi)洪春,彭小利,蒲國(guó)林等.MFC窗口創(chuàng)建過(guò)程的研究[J].現(xiàn)代電子技術(shù),2014(11):151-154.
[14] 黃康,陳祥,朱曉慧等.基于Pro/E二次開(kāi)發(fā)的自動(dòng)裝配技術(shù)及應(yīng)用研究[J].合肥:合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,39(9):1153-1157.
[15] 肖揚(yáng),金凡堯,鄭嚴(yán),等.基于Pro/toolkit的圓柱螺旋齒輪的精確三維參數(shù)化建模[J].圖學(xué)學(xué)報(bào),2017,38(2):180-184.