晏名超 張洪彬 張靖鑫
摘 要:討論了利用Visual Studio 2005開發環境和Pro/TOOLKIT二次開發工具進行Pro/E二次開發的方法,分析了開發過程的關鍵技術和步驟,以標準件如齒輪為例,實現了基于 Pro/TOOLKIT零件自動建模的方法,研究了零部件自動裝配方法,實現了球閥裝配體的自動裝配。
關鍵詞:Pro/Toolkit;C++;自動裝配;自動建模
Pro/TOOLKIT是美國Parametric Technology Corporation(PTC)公司為Pro/ENGINEER軟件
提供的開發工具包,其主要目的是讓用戶或第三
方通過C程序代碼擴充Pro/ENGINEER系統的功能,開發基于Pro/ENGINEER系統的應用程序模塊,從而滿足用戶的特殊要求。Pro/TOOLKIT工具包提供了開發 Pro/ENGINEER所需的函數庫文件和頭文件,使用戶編寫的應用程序能夠安全地控制和訪問 Pro/ENGINEER,并可以實現應用程序模塊與Pro/ENGINEER 系統的無縫集成[1]。
1 自動化建模和裝配系統實現過程
1.1 開發環境配置
環境配置一共分為三步:首先在Visual Studio 2005中設置包含文件路徑,然后導入庫文件的路徑,最后指明具體所需庫文件。
1.2 編寫源文件
源文件包括:對話框資源文件、窗口信息文件和程序源文件。
對話框編寫方式使用Pro/TOOLKIT提供的UI對話框技術,可以設計出風格與Pro/ENGINEER系統本身具有的對話框相似的人機交互界面,文件擴展名為.res。
程序源文件指我們所要編寫的C++程序。Pro/TOOLKIT應用程序的核心是:user_initialize()和user_terminate()兩個函數。user_initialize()是 Pro/ TOOLKIT應用程序的初始化函數,在該函數中設置用戶的交互接口,如設置菜單、調用對話框或直接調用所需的函數等;user_terminate()函數在終止同步模式的應用程序時調用,該函數由用戶定義,其中可以不執行任何動作。
窗口信息文件是含有在調用某些需要人機交互的函數時在屏幕上顯示的提示信息。
1.3 生成可執行文件
創建Pro/TOOLKIT應用程序使用Make文件,文件名前綴為Make_的文件為Pro/TOOLKIT工具包提供的Make文件范例,這些文件中對編譯和連接所需選項等均已按系統默認安裝進行了設置,用戶可以將Make文件范例復制和修改,生成自己所需的Make文件。
1.4 在Pro/ENGINEER中注冊并運行
在Pro/ENGINEER中運行Pro/TOOLKIT應用程序時,必須先制作一個后綴為.dat 的注冊文件,注冊文件的作用是向Pro/ENGINEER系統傳遞應用程序的信息[3]。
2 關鍵開發技術
2.1 菜單的設計方法和相關函數
菜單設計主要用到菜單條(Menu bar)和菜單按鈕(Push button),其中“標準件”就是菜單條,“齒輪”就是菜單按鈕。
菜單條是Pro/ENGINEER界面頂部菜單欄中的菜單,創建方法是:直接調用ProMenubarMenuAdd()函數向Pro/ENGINEER添加所需菜單。
菜單按鈕是下拉菜單中用來啟動一組指令的菜單項,創建方法是:直接調用ProMenubarmenuPushbuttonAdd()函數,這個函數會調用一個動作函數ProCmdActionAdd(),該函數功能是設置相對應菜單按鈕的動作。
2.2 自動化建模實現方法和相關函數
自動化建模程序的設計流程分為以下三步。
第一步獲得需要編輯的模型句柄,若模型已在Pro/ENGINEER中打開,則利用ProMdlCurrentGet()函數從內存中調取當前用戶正在編輯模型的ProMdl句柄,若模型未打開,則利用ProMdlLoad()函數從磁盤中調取模型,此函數需要模型的物理地址作為輸入參數。
第二步從模型句柄中獲取需要修改的參數值,該步要用到ProParameterInit()函數,其功能是根據已知的參數名和父對象,獲得指向參數對象的指針,參數名在設計模型時指定[4];然后調用ProParameterValueGet()函數從參數對象中提取參數值,最后用ProParameterValueSet()函數對參數值進行修改。
第三步調用ProSolidRegenerate()函數,該函數會按照修改后的參數值再生指定實體。整個系統界面如圖1所示。
2.3 自動化裝配實現方法和相關函數
自動化裝配程序的設計流程分為以下三步。
第一步調用ProAsmcompAssemble函數將待裝配模型組裝到組立檔案中,此時不添加任何約束,即僅僅將模型添加到原裝配體中。
第二步設置約束的組立端參考(ProSelection asm_ref)和元件端參考(ProSelection comp_ref),即設置需要進行裝配的兩個模型,組立端參考和元件端參考可以通過調用ProSelectionAlloc函數由程序創建。
第三步定義組裝的約束方式,Pro/TOOLKIT使用類型ProAsmcompconstraint來表示一個約束,首先使用ProAsmcompconstraintAlloc 函數定義約束,但是不設置約束類型,然后用ProAsmcompconstraintTypeSet()函數設置約束類型,約束類型有:匹配、對齊、插入等。
以裝配球閥為例演示整個自動化裝配系統操作步驟,如圖2所示。
3 結論
自動化建模和裝配技術是當前二次開發研究的重點方向。它是采用參數化模型通過調整參數來修改和控制幾何形狀,從而自動實現產品的精確造型。并且將裝配過程程序化,通過調用程序實現裝配體的自動裝配過程,從而省去了設計人員作簡單重復的勞動之苦,大大提高了的工作效率、節約了企業成本。
參考文獻
[1]李世國.Pro/TOOLKIT程序設計[M].北京:機械工業出版社,2003:1-41
[2]張繼春.Pro/E野火版二次開發實用教程.北京:北京大學出版社,2003:12-30.
[3]二代龍震工作室.Pro/TOOLKITWildfire2.0插件設計.電子工業出版社,2005:65-70.
[4]鐘日銘.Pro/E機械設計實例教程.北京:清華大學出版社,2007:220-280.
[5]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業出版社,2003:63-99