關鍵詞:二次開發 Pro/TOOLKIT開發工具 參數化設計
壹、引言
在CAD技術日益普及的今天,傳統的二維CAD軟件正逐漸被三維CAD軟件所替代。在眾多軟件中,PTC公司的Pro/Engineer是具有代表性的優秀軟件之壹。自從面世以來,它以尺寸驅動、基於特征、單壹全關聯的數據庫等優點深受用戶好評。企業根據產品對象的不同,在使用CAD軟件時也各有側重。企業要想最大效率的發揮出軟件的功效,必須根據企業的產品特征和企業狀況對軟件進行二次開發。本文列舉了在軟件Pro/Engineer中常用的二次開發工具與方法,並著重介紹了用Pro/TOOLKIT對Pro/Engineer進行開發時的步驟。最後通過“齒輪快速設計系統”的開發實例進壹步說明開發時的技巧。
二、開發工具
Pro/Engineer為用戶提供了豐富的二次開發工具。常用的有Pro/Program、簇表(Family Table)、用戶自定義特征(UDF)、J-Link和Pro/Toolkit等。為了防止混淆,以下特別對這幾種開發工具進行比較和說明。
1.Pro/Program
Pro/Engineer對每個零件或組件模型都有壹個主要的設計步驟和參數列表,那就是Pro/Program。它是零件與組件自動化設計的壹種有效工具。設計人員可使用類似BASIC的高級語言,根據需要來編寫該模型的Program。包括:控制特征的出現與否、尺寸的大小、零件與組件的出現與否、零件與組件的個數等。然而,Pro/Engineer就可以通過運行該程序來讀取此零件或組件,並通過人機交互的方法得到不同的幾何形狀,以滿足產品設計的需要。
2.簇表(Family Table)
簇表可用於管理具有相同或相近結構的零件,特別適用於標準零件的管理。它是通過建立基礎零件為父零件,然後在簇表中定義各個控制參數來控制模型的形狀及大小。這樣,就可通過改變各個參數的值來控制派生的各種子零件。
3.用戶自定義特征(UDF)
設計人員在使用Pro/Engineer進行零件設計時,經常會遇到壹些重復出現的特征。例如,螺釘的座孔等,因此設計人員就要花費許多時間進行這種重復性的操作。用戶自定義特征則能將同壹特征用於不同的零件上,或將若幹個系統特征融合為壹個自定義特征,使用時作為壹個全局出現。這樣,設計人員就可以建立自己的用戶自定義特征庫,根據產品特征快速生成幾何模型,從而極大地提高了設計人員的工作效率。
4.Pro/TOOLKIT
Pro/TOOLKIT是PTC為Pro/Engineer制定的開發工具包,它提供了應用程序接口(API),使客戶或第三方廠商具有擴展Pro/Engineer功能的能力。Pro/TOOLKIT使用面向對象風格C編程,且提供壹個龐大、用於底層資源調用的C語言函數和頭文件,外部應用程序可借此訪問Pro/Engineer的數據庫和應用程序。
三、Pro/TOOLKIT的運作方式
Pro/TOOLKIT應用程序代碼集成進入Pro/Engineer的標準方法是通過“動態鏈接庫”(Dynamical Linked Libraries, DLLs)完成的。當編譯Pro/TOOLKIT應用程序的C代碼,並將其鏈接至Pro/TOOLKIT庫文件時,就創建了壹個可鏈接至Pro/Engineer可執行文件的對象庫文件,這個可執行文件將在Pro/Engineer啟動時被執行。這種方法稱為“DLL模式”。
此外,Pro/TOOLKIT還支持第二種方法的集成,即“多進程”(Multiprocess),或稱為“衍生模式”(Spawned Mode)。在這種模式下,Pro/TOOLKIT應用程序將被編譯和鏈接,從而形成壹個獨立的執行文件。這個可執行文件將是Pro/Engineer的衍生,並作為Pro/Engineer工作任務的壹個子程序來運行。
在DLL模式中,Pro/TOOLKIT應用程序與Pro/Engineer之間的信息交換,是通過直接函數調用完成的。而在多進程模式下,內部進程信息系統會傳遞必要的信息,以確定兩進程間的函數及其所需參數來模擬直接函數調用,以實現和DLL模式中相同的效果。
四、創建齒輪參數設計應用程序的基本方法
1.利用VC向導創建齒輪參數設計應用程序
程序設計的主要工作在三個方面:1)編寫下拉菜單的(. txt)文件和對話框的(.res)資源文件;2)按Pro/TOOLKIT應用程序Pro/Engineer環境運行的要求設計接口與程序運行結束時的終止程序;3)根據功能需求設計Pro/TOOLKIT應用程序主體部分。
其程序部分的主體結構如下:
int user_initialize( nt argc, char * argv[ ] ) //其功能相當於C語言中的main( )函數
{ //調用函數
… …(該部分是用來初始化Pro/TOOLKIT應用程序且創建圖形窗口,這部分包括了應用程序的所有初始化進程)
return(0)
} void user_terminate( )
{ … …(該部分是用來結束Pro/TOOLKIT應用程序)
return;
}func( )
(該部分是主要添加要完成預定功能的壹個或多個的C語言代碼)
編輯完源代碼後要用Visual C++ 6.0進行編譯,首先要設置好編譯環境:壹是設置好包含頭文件的路徑;二是設置好連接所需庫文件的路徑。
pro/engineer二次開發關鍵技術研究 來自: 免費論文網www.paper800.com
編譯連接成功生成可執行程序中,要把Pro/TOOLKIT應用程序集成到Pro/Engineer系統中,必須進行應用程序的註冊,才能運行和生成壹個註冊文件(* .dat),其中包含的應Pro/Engineer用程序的位置,菜單資源及對話框資源文件的位置,以及該Pro/TOOLKIT的版本信息[2][3]。
2.以開發直齒圓柱齒輪為例來具體論述設計過程
(1)編寫齒輪設計的下拉菜單在已有的菜單條中要增加壹列“齒輪參數化設計”及下拉菜單。具體有兩步:第壹步定義按鈕命令;第二步是菜單欄中添加該按鈕。在程序中加入以下命令:
ProMenubarMenuADD(“UserMenu”,“齒輪參數化設計”,“Utilities”,PRO_B_FALSE,UserMg)
ProMenubarmenuPushbuttonADD(“UserMenu”,“直齒圓柱齒輪幫助”,NULL,PRO_B_TRUE,cmd_id1,UserMsg)
(2)編寫人機交換對話框。利用Pro/TOOLKIT提供的(User Interface Dialog Boxes)對話框技術。其中UI對話框的設計涉及兩個方面:壹是按界面的布局編寫資源文件;二是針對UI對話框的功能編寫相應的控制程序。要在C語言程序中進行以下過程:
(a)程序讀取對話框資源文件,以便將對話框調入內存;
(b) 為對話框各控件指定行為函數,修改對話框及控件屬性;
(c) 顯示對話框,接受用戶交往;
(d)關閉對話框,釋放對話框所占的內存。
其中主要用到以下函數:對話框調入內存函數ProUIDialogCreat( ),對話框各控件指定行為函數ProUIPushbuttonActivateActionset( ),激活對話框函數ProUIDialogActivate( ),關閉對話框函數ProUIDialogDestroy( )。
(3)在零件模式下建立直齒圓柱齒輪的模型,並將各尺寸間的關聯輸入到Program中的INPUT-END與RELATIONS-ENDRELATIONS之間,這其中找各尺寸的關系很重要,即不要繁瑣,也不能過於簡單而不能驅動模型。從直齒圓柱齒輪的幾何尺寸計算公式中找到了可以驅動該模型的四個參數:齒輪、模數、壓力角與齒寬。在Pro/Engineer的Programe中輸入:
INPUT
(4)最好在對話框輸入參數後就可以生成。
五、結論
本文列舉了Pro/Engineer軟件常用的二次開發方法和適用場合,並著重介紹了利用Pro/TOOLKIT進行二次開發時的壹般步驟。通過“齒輪快速設計系統”的開發實例進壹步闡述了在開發過程中應註意的事項。Pro/Engineer是功能強大/體系完備的CAD/CAM軟件,通過對其二次開發可以將Pro/Engineer的通用性和專壹性完美的結合起來。企業應根據其自身的產品對象、人員素質和開發要求來確定開發工具與開發深度。
參考文獻
[1] 林龍震.Pro/TOOLKIT WILDFIRE 2.0插件設計[M].電子工業出版社.2005.1.
[2] 李世國,何建軍.基於Pro/E零件模型的參數化設計技術研究[J].機械設計與研究.2002.12.