程相文,邢樹雪
(河北聯(lián)合大學 機械工程學院,河北 唐山 063009)
Creo 2.0軟件是PTC 2010年發(fā)布的一個整合Pro/E、ProductView和CoCreate三大軟件并重新分發(fā)的新型CAD設計軟件包,其目的在于解決目前多CAD系統(tǒng)數(shù)據(jù)共用、CAD系統(tǒng)難用等問題,并集成了多個可互操作的應用程序,其功能覆蓋整個產(chǎn)品開發(fā)領域。面對日益多樣化的用戶要求,為了能更好地滿足具體產(chǎn)品的設計需求,達到提高經(jīng)濟效益的目的,需要應用Creo 2.0提供的二次開發(fā)工具Pro/Toolkit進行二次開發(fā),形成具體零部件的參數(shù)化設計系統(tǒng),這一研究工作是Creo 2.0軟件應用過程中的一項重要任務。
參數(shù)化設計就是使零件模型中的不可變參數(shù)變量化,使其變成可以在一定范圍內(nèi)任意調(diào)整的可變參數(shù)。修改零件模型中的可變參數(shù),可以得到新的不同的零件模型。參數(shù)化的零件模型中建立的一些約束關系,正是表達了設計者的設計目的。參數(shù)化設計極大地提高了零件模型的修改和重新生成的速度,在產(chǎn)品的相似設計、系列設計及CAD系統(tǒng)的二次開發(fā)方面均有很大的實用價值[1]。
參數(shù)化設計系統(tǒng)主要由主程序、數(shù)據(jù)編輯、三維建模、Creo數(shù)據(jù)庫、API接口等5個部分構(gòu)成,如圖1所示。主程序可以和Creo數(shù)據(jù)庫以及數(shù)據(jù)編輯進行雙向的數(shù)據(jù)傳輸,其他各模塊都可以通過主程序來進行調(diào)用。主程序作為交換數(shù)據(jù)的中心,直接連接著Creo數(shù)據(jù)庫、API接口、數(shù)據(jù)編輯、三維建模等4個模塊[2-3]。
Pro/Toolkit應用程序有同步和異步兩種工作模式。同步模式下,Pro/Toolkit應用程序一定會和Creo系統(tǒng)一起運行。同步模式又有動態(tài)連接(DLL)和多進程兩種模式。動態(tài)連接模式是用戶將編寫好的程序在開發(fā)環(huán)境下編譯后系統(tǒng)會生成dll文件,Creo和應用程序進程同步,通過調(diào)用一定的函數(shù)來實現(xiàn)兩者之間的信息交換。多進程模式是用戶將編寫好的程序在開發(fā)環(huán)境下編譯后系統(tǒng)會生成exe文件,Creo和應用程序在自己的進程中各自運行,消息系統(tǒng)會實現(xiàn)兩者間的信息交換。設計者可根據(jù)情況選擇以上兩種模式。異步模式下,無需啟動Creo,能單獨運行Pro/Toolkit應用程序。由于在同步模式時代碼簡單且程序運行較快,這就方便了設計者編程和修改,所以在開發(fā)時我們選用同步模式。在確定了開發(fā)模式之后,我們需要完成對開發(fā)環(huán)境的設置[4]。

圖1 參數(shù)化設計系統(tǒng)結(jié)構(gòu)
利用向?qū)г赩isual Studio 2010環(huán)境中新建MFC DLL類型項目,為了統(tǒng)一編譯Pro/Toolkit函數(shù)、MFC函數(shù)和API函數(shù),需要對Visual Studio 2010進行正確的環(huán)境設置,具體設置如下:
(1)項目—屬性,在“配置屬性”下選擇“常規(guī)”,然后選擇“字符集”為“使用多字節(jié)字符集”。
(2)在“配置屬性”下選擇“C/C++”,然后在“常規(guī)”的“附加包含目錄”中添加Pro/Toolkit頭文件路徑(以本人安裝路徑為例):


(3)在“C/C++”的“代碼生成”選項中將“運行庫”改為“多線程DLL(/MD)”
(4)在“鏈接器”選項中選擇“常規(guī)”,然后在“附加庫目錄”中添加Pro/Toolkit庫文件路徑(以本人安裝路徑為例)。

(5)在“鏈接器”選項中選擇“輸入”,然后在“附加依賴項”中添加 mpr.lib、psapi.lib、protk_dllmd.lib和netapi32.lib。
使用Pro/Toolkit開發(fā)應用程序包含3個基本步驟:編寫源文件、生成可執(zhí)行文件、注冊并運行。
Pro/Toolkit應用程序的主程序與一般C語言的程序有所區(qū)別,必須包含兩個稱為user_initiaiize()和user_terminate()的函數(shù)。user_initialize()是 Pro/Toolkit的初始化函數(shù),此函數(shù)應包含用戶或第三方開發(fā)的Pro/Toolkit應用程序所需的一切初始化信息(例如對系統(tǒng)菜單的擴展、對話框的創(chuàng)建等)。user_terminate()是Pro/Toolkit的結(jié)束中斷函數(shù)。
4.1.1 菜單設計
在基于Pro/Toolkit的Creo系統(tǒng)的二次開發(fā)過程中,用戶可以添加自定義菜單,這也是開發(fā)過程中最常用方法。菜單設計主要有以下幾步:①編寫txt格式菜單信息文件,并編寫代碼;②編寫擴展名.c格式菜單文件;③編譯程序,生成可執(zhí)行的菜單條菜單及下拉菜單源程序;④編寫protk.dat菜單注冊文件和代碼;⑤注冊文件在Creo中的注冊運行。
4.1.2 MFC對話框設計
對話框可提供可視化交互式界面,使操作更加方便快捷,但Creo不提供對話框的開發(fā)編程接口,需借助Visual Studio 2010來開發(fā)對話框,實現(xiàn)程序操作界面的可視化。針對不同的零部件,要充分利用工具欄中的靜態(tài)文本控件、編輯控件、列表控件、圖像控件和組框控件等不同的控件,并對各控件的ID、標題等屬性進行設置,以達到功能齊全、簡單明了的效果。
4.1.3 程序源文件
編寫代碼是程序開發(fā)的重要部分,其各種功能是通過代碼來實現(xiàn)的。Pro/Toolkit程序需要使用MFC類庫和Pro/Toolkit函數(shù)庫中的函數(shù)。MFC類庫為設計Windows風格的界面提供了強大的技術支持;Pro/Toolkit函數(shù)庫包含了大量的操作函數(shù),設計者應理解這些函數(shù),并根據(jù)既定的格式在Pro/Toolkit程序中使用它們[5]。
通過編譯程序生成可執(zhí)行文件。要生成可執(zhí)行文件首先需要制作一個make file(即.mak)的文件,也可以由Creo自帶的make file文件修改得到。make file工程文件的編寫應包括動態(tài)鏈接庫或生成可執(zhí)行文件的名稱、源文件位置、包含文件與庫文件的位置等內(nèi)容。Creo為應用程序提供了動態(tài)鏈接庫模式和多進程模式,用戶可根據(jù)實際需要靈活地編譯生成文件。需要注意的是:如果用戶選擇dll模式工作,則需要將源文件生成動態(tài)鏈接庫;如果用戶選擇多進程模式,則必須要將源文件編譯成exe文件。也就是說,選擇的模式要與編譯生成的文件相對應。
用戶通過注冊文件向Creo提供Pro/Toolkit應用程序的一些相關的基本信息,編寫好注冊文件就可以把Pro/Toolkit應用程序加載到Creo環(huán)境中,并在其中運行。注冊文件中包含的字段如下:name,startup,allow_stop,exec_file,text_dir,revision,end。手工注冊是在啟動Creo之后,選擇“工具”菜單中的“輔助應用程序”,在“輔助應用程序”對話框中點擊“注冊”,然后選到注冊文件,確定后即完成注冊。選中注冊的應用程序,點“啟動”,則應用程序啟動。注冊成功之后即可運行Pro/Toolkit應用程序的各種功能。
Creo系統(tǒng)軟件的通用性能保證我們建立大量的產(chǎn)品的三維模型,但在時間和人員方面的需求也很大。若企業(yè)在Creo一系列的通用軟件的基礎上進行二次開發(fā),一定會極大地提高某些特定產(chǎn)品的生產(chǎn)、設計效率,方便企業(yè)的新產(chǎn)品研發(fā)和更新,提高企業(yè)效益,從而加強企業(yè)的市場競爭力。
[1] 付靖渝.基于VB的軸系結(jié)構(gòu)設計系統(tǒng)開發(fā)[D].成都:四川大學,2007:2-12.
[2] 繆燕平,何柏林.Pro/Toolkit對Pro/E二次開發(fā)參數(shù)化設計系統(tǒng)研究[J].機械設計與制造,2008(9):185-187.
[3] 劉超,陳海峰,范曉斌.基于Pro/E二次開發(fā)的參數(shù)化零件的研究與實現(xiàn)[J].組合機床與自動化加工技術,2009(6):26-29.
[4] 劉文強,胡夏夏,宋士剛.基于Pro/Toolkit的Pro/E參數(shù)化設計[J].輕工機械,2011(2):104-107,111.
[5] 肖鋒,張超群,鄒艷紅.基于 Visual C++.NET的 Pro/E二次開發(fā)過程研究[J].機械工程與自動化,2008(1):75-76.