張文彬, 沈精虎, 姜兆康
(青島大學,機電工程學院,青島 266071)
Creo是目前最流行的三維CAD軟件,它具有互操作性、開放、易用三大特點[1]。該版本軟件整合了PTC公司三大軟件的優勢,包括Pro/Engineer的參數化技術、CoCreate的直接建模技術和ProductView的三維可視化技術,為用戶設計出理想的三維產品提供了強大的技術支持[2];另外軟件集成了多個可互操作的應用程序,能夠輕松實現數據共享,極大提高了用戶的工作效率。面對市場對產品的多樣化需求,更好的實現產品設計和產品的系列化,利用Creo/TOOLKIT二次開發工具對Creo進行二次開發變得非常必要。研究表明,產品設計中大約有70%屬于變型設計,特別是對大批量定制的產品,變型設計變得更為重要[3]。
目前,越來越多的產品加工設計企業都對三維設計軟件提出了二次開發的需求,特別是基于CAD系統進行二次開發更是在國內外得到了廣泛的研究。例如北京重型電機廠聯合北京航空航天大學,以歐洲Cimatron系統為平臺,二次開發出汽輪機葉片設計系統;澳大利亞大學先進制造技術中心設計的COCADCAM系統,是基于現有CAD/CAM的技術特點,二次開發的一種網絡化產品設計系統等等[4-5]。
參數化模型集幾何約束與工程約束于一身,要實現參數化變型設計,關鍵就在于建立好參數化的產品模型[6]。根據產品功能設計產品時,初始產品的尺寸和形狀都是不確定的,這就要求初始的產品模型具有隨時變更的特性,參數化設計就是將產品中的一些關鍵尺寸參數化,使這些關鍵尺寸能隨參數值的改變而改變,從而得到滿足客戶需要的形狀大小不同的零件產品[7]。與傳統的建模設計方法相比,參數化設計有效的避免了設計者的重復勞動,大大提高了零件產品的修改和生成速度。Creo三維軟件自身帶有強大的二次開發工具Creo/TOOLKIT,通過Creo/TOOLKIT程序編寫,能夠對模型中的參數進行提取與修改,模型根據參數數值的改變而改變。
創建三維模型零件有三種方法[8]:(1)利用三維設計軟件本身的交互功能設計完成。(2)根據特征元素樹用編程的方式完成模型的創建。(3)利用設計參數來控制三維模型。第一種方法建模速度快,但在一些二次開發系統中存在重復操作,后期的修改變型功能欠缺。第二種方法雖然自動化程度高,但編程工作量大且對復雜的特征生成非常困難。因此選用第三種方法,這種方法融合了前兩種方法的優勢,基本做法是先用交互的方式完成三維模型的創建,然后利用Creo的參數、關系式功能建立尺寸和工程約束,最后由Creo/TOOLKIT應用程序檢索出設計參數和關系式,并且提供參數和關系式的修改功能以及相關參數修改后模型的自動更新功能。基于Creo二次開發環境下參數化設計基本原理,如圖1所示。
二次開發就是在原有軟件功能基礎上開發設計出自己想要的功能,是對原軟件功能的拓展。Creo/TOOLKIT是Creo軟件自帶的二次開發工具,可以直接針對Creo軟件的最底層數據庫資源進行訪問,這是進行Creo二次開發最根本有效的方法。根據工程化原則,進行二次開發時一般要經歷系統分析、系統設計、系統程序編寫和系統測試四個階段[9-10],具體開發流程,如圖2所示。

圖1 參數化設計基本原理

圖2 二次開發系統的開發流程
系統選用的開發平臺是Creo,除了選用Creo/TOOLKIT為開發工具,同時配以Visual Studio 2010集成開發環境。Visual Studio 2010是一款基于C、C++語言的集成開發環境,并且完善了以前版本對C++標準支持不佳的缺陷,其中MFC的應用更是大大降低了開發難度和開發工作量[11-12]。
Creo/TOOLKIT應用程序有同步模式和異步模式兩種工作模式[13]。同步模式顧名思義就是與Creo系統同步運行,異步模型的特點就是能夠和Creo獨立分開運行,但異步模式的程序運行速度比同步模式慢,因此本系統的開發采用同步模式。同步模式又分為動態鏈接庫和多進程兩種方式,區別在于前者生成dll文件,后者生成exe文件。而本系統是對Creo軟件進行的功能拓展,因此選用動態鏈接庫,直接連接到Creo軟件調用即可。
使用Creo/TOOLKIT開發應用程序時包含三個基本步驟[14-15]:(1)編寫源文件(包括資源文件和程序的源文件);(2)生成可執行文件(dll文件);(3)可執行文件在Creo中注冊并運行。本系統的注冊文件名為ParaVarDeSystem,注冊運行如圖3所示。

圖3 注冊運行可執行文件
3.2.1 對零件參數的提取與設置
系統要實現參數化設計前提就是能夠對模型中的參數進行檢索、提取和修改。具體實現過程是:(1)調用ProParameterVisit( )函數對模型中的所有參數進行訪問,然后將符合過濾條件的參數對象指針存放到數組ProParameter中。(2)調用ProParameterValueGet( )函數獲取參數對象的值對象,然后根據獲得的值對象的類型獲得相應的具體值。(3)通過控件變量和參數變量之間的信息交流實現所有符合條件的模型參數的顯示。(4)調用ProParameterValueSet( )函數對參數對象的進行設置。(5)調用ProSolidRegenerate( )函數完成模型的更新。
3.2.2 對零件關系式的提取與設置
關系式用于確定模型尺寸和參數之間的關系,參數可以理解為主驅動尺寸,關系式理解為被驅動尺寸。具體實現過程是:(1)調用ProSolidRelsetVisit( )函數訪問模型關系式集。(2)調用ProRelsetToModelitem( )函數和ProRelsetRelationsGet( )函數獲取關系式集對象的模型項和具體的關系式集。(3)通過控件變量和關系式變量之間的信息交流實現模型所有關系式的顯示。(4)調用ProRelsetRelationsSet( )函數對模型關系式進行設置。
要實現零件的參數化變型設計和系列化,首先要對該零件進行尺寸分析,確定不變尺寸、可變尺寸和工程約束尺寸;其次將可變尺寸設置為可變參數,將工程約束尺寸設置為導出參數。可變參數和導出參數可由軟件本身自帶的參數和關系式工具進行添加,也可通過本文開發的人機交互界面進行添加。這里以階梯軸的部分參數為例,通過對階梯軸的尺寸分析,確定了階梯軸的軸長和直徑的尺寸為可變尺寸,階梯軸的槽位置為工程約束尺寸,階梯軸的長度用參數“DL1”、“DL2”、…,軸的直徑用“DW1”、“DW2”、…,表示。槽位置是由關系式確定的。階梯軸軸長和直徑參數分析示意圖,如圖4所示。

圖4 階梯軸的參數分析
利用本文開發的人機交互界面,能夠對模型參數和關系式進行自動檢索和提取,對階梯軸參數和關系式進行提取的結果,如圖5所示。


圖5 對階梯軸參數和關系式的提取顯示
本文開發的參數化變型設計應用程序,是由參數操作對話框和關系式操作對話框組成,參數操作對話框能夠將從模型中提取的參數進行修改,也可以通過“添加”與“刪除”按鈕完成新參數的添加與已有參數的刪除,設置完成后,按“修改”按鈕完成數據的修改,最后通過“再生”按鈕完成模型的更新。階梯軸長度修改前后對比,如圖6所示。
同理,關系式對話框能夠從模型中提取所有定義的關系式并對關系式進行重新編輯,單擊“選擇尺寸”按鈕,模型所有尺寸會加亮顯示,選擇自己需要定義的尺寸,然后編輯關系式,編輯完成后,單擊“添加”按鈕即可完成新關系式的添加。其余按鈕的功能和參數操作模塊相同,不再展示。
總之,通過本應用程序的開發,能夠快速對模型零件進行變型設計,實現系列化。和軟件本身自帶的功能相比更加直觀快速,為設計人員避免了重復勞動,節省了設計時間。

(b)軸長修改后
本文研究了參數化設計的基本原理,并對開發中的關鍵技術進行了詳細介紹,最后對開發的應用程序進行了功能展示,以階梯軸為例驗證了新方法在參數化變型設計中的可行性。此外,本程序具有很好的通用性,適用于所有零件類的參數化變型設計,拓展了Creo軟件的功能,大大提高了零件產品的變型設計效率。
[1] 王哲,王紅.Creo二次開發參數化設計技術的應用研究[J].機械研究與應用,2014(3):183-186.
[2] 程相文,邢樹雪.基于Pro/Toolkit的Creo2.0二次開發過程研究[J].機械工程與自動化,2015(5):70-71.
[3] 常青青.基于參數化技術的零件精度變型設計方法研究[D].桂林:桂林電子科技大學,2015.
[4] 任國棟,鄭峰,葛春榮等.基于UG的汽輪機葉片CAD系統二次開發[J].組合機床與自動化加工技術,2015(1):46-48.
[5] 史紅禮.CAD二次開發在水電站設計中的實踐探索[J].中國科技縱橫,2015(13):28-28.
[6] 梁麗芬,王宗彥,張鵬,等.基于特征的零件工藝參數化變型設計[J].制造業自動化,2015(17):139-142.
[7] 劉濤,胡迪,雷經發等.Creo二次開發實現液壓缸參數化設計[J].煤礦機械,2016,37(3):176-179.
[8] 辛虹. 系列零部件三維參數化設計方法研究[J]. 機械設計與制造,2013(4):202-204.
[9] 楊松林,余金鑫,張鋼,等.常用彈簧二維三維參數化造型技術研究與系統開發[J].機械設計與制造,2011(9):246-248.
[10] 孫炎,仲梁維,劉營營,等.基于Pro/E二次開發的剪板機快速設計系統[J].軟件導刊,2017,16(4):139-141.
[11] 王冰冰,林木,趙書強,等.基于Pro/E二次開發的包裝機械參數化設計與實現[J].機械制造與自動化,2017,46(2):101-103.
[12] 文明,吉紅偉,王彥偉,等.基于Pro/E二次開發的輔助布線技術[J].計算機工程與設計,2014,35(11):4021-4026.
[13] 衛洪春,彭小利,蒲國林等.MFC窗口創建過程的研究[J].現代電子技術,2014(11):151-154.
[14] 黃康,陳祥,朱曉慧等.基于Pro/E二次開發的自動裝配技術及應用研究[J].合肥:合肥工業大學學報(自然科學版),2016,39(9):1153-1157.
[15] 肖揚,金凡堯,鄭嚴,等.基于Pro/toolkit的圓柱螺旋齒輪的精確三維參數化建模[J].圖學學報,2017,38(2):180-184.