Pro/E二次開發(fā)在模型檢查技術(shù)中的應(yīng)用

2014-11-27 陳雙雙 西北工業(yè)大學(xué)機(jī)電學(xué)院

  近年來,人們運(yùn)用CAD/CAE的先進(jìn)設(shè)計(jì)方法,提高了產(chǎn)品的設(shè)計(jì)質(zhì)量,獲得了顯著的經(jīng)濟(jì)效益,但也逐漸認(rèn)識到了它在應(yīng)用中出現(xiàn)的各種問題。在利用有限元法分析結(jié)構(gòu)空間尺寸復(fù)雜的產(chǎn)品時(shí),需要將建好的CAD模型轉(zhuǎn)換輸出到CAE系統(tǒng)中,但數(shù)據(jù)傳遞過程中往往會(huì)出現(xiàn)各種問題,耗費(fèi)用戶巨大的時(shí)間和精力。本文為了能夠順利地進(jìn)行有限元分析計(jì)算,從研究CAD/CAE模型轉(zhuǎn)換出發(fā),基于VC平臺對Pro/E二次開發(fā)技術(shù)做了一定的探索研究,成功實(shí)現(xiàn)了模型轉(zhuǎn)換前CAD模型的預(yù)先檢查。

1、引言

  近年來,隨著數(shù)值算法的研究深入和計(jì)算機(jī)軟硬件技術(shù)的飛速發(fā)展,關(guān)于有限元CAE的研究也取得了很大的進(jìn)展,人們通過運(yùn)用CAD/CAE等的先進(jìn)設(shè)計(jì)方法,提高了產(chǎn)品的設(shè)計(jì)質(zhì)量,獲得了顯著的經(jīng)濟(jì)效益。與此同時(shí),也逐漸認(rèn)識到了它在應(yīng)用中出現(xiàn)的各種問題。一般情況下,在利用有限元法分析結(jié)構(gòu)空間尺寸復(fù)雜的產(chǎn)品時(shí),首要的任務(wù)是根據(jù)設(shè)計(jì)想法構(gòu)建CAD模型,適當(dāng)?shù)靥幚砗笸ㄟ^接口轉(zhuǎn)換輸出到CAE系統(tǒng)中,通過各種有限元軟件如ANSYS等在其基礎(chǔ)上進(jìn)行網(wǎng)格劃分,再將獲得了網(wǎng)格數(shù)據(jù)(節(jié)點(diǎn)和單元)的有限元模型進(jìn)行分析計(jì)算。而分析的成功與否,直接取決于模型轉(zhuǎn)換質(zhì)量的好壞。

  現(xiàn)在大量用戶使用Pro/E建立實(shí)體模型,再導(dǎo)入ANSYS中進(jìn)行分析計(jì)算。事實(shí)上在從Pro/E將數(shù)據(jù)傳遞給ANSYS的過程中往往會(huì)出現(xiàn)問題,比如零件模型自身有幾何缺陷如尖角、小面造成劃分網(wǎng)格困難或者數(shù)據(jù)丟失、裝配間隙和干涉造成不能劃分網(wǎng)格等。在ANSYS中劃分網(wǎng)格出現(xiàn)問題時(shí),大多數(shù)用戶對彈出的出錯(cuò)提示都很茫然,不清楚到底是哪里出現(xiàn)了問題,就需要不停試著地去修改,這樣不停的嘗試耗費(fèi)了用戶巨大的時(shí)間和精力,而且取得不了顯著的效果。這樣就需要開發(fā)一些針對性較強(qiáng)的專用插件,能夠預(yù)先在CAD軟件中檢查出模型哪些地方ANSYS分析時(shí)會(huì)出現(xiàn)問題并修改,提前解決掉大部分常見的問題,節(jié)省設(shè)計(jì)時(shí)間。

  本文采用Pro/Engineer所自帶的二次開發(fā)程序Pro/Toolkit結(jié)合Visual C++ 6.0來對Pro/Engineer進(jìn)行零件幾何檢查,以及裝配件間裝配間隙檢查的二次開發(fā)應(yīng)用技術(shù)研究,旨為用戶提供一個(gè)操作簡單的模型檢查模塊,解決大部分在CAD/CAE模型轉(zhuǎn)換中發(fā)現(xiàn)的常見問題。

2、Pro/ENGINEER二次開發(fā)簡介

  Pro/ENGINEER為用戶提供了多種二次開發(fā)工具,其中Pro/TOOLKIT是PTC公司自行研發(fā)的功能強(qiáng)大的二次開發(fā)工具,它提供了應(yīng)用程序接口(API),使客戶或第三方廠商具有擴(kuò)展Pro/ENGINEER功能的能力。要編寫一個(gè)完整的二次開發(fā)程序需要經(jīng)過編寫源文件(Pro/TOOLKITC程序、菜單資源文件、信息資源文件、對話框資源文件),程序的編譯和連接,程序的注冊和運(yùn)行等過程,流程如圖1所示。

Pro/E二次開發(fā)在模型檢查技術(shù)中的應(yīng)用

圖1 開發(fā)流程

  2.1、編寫源文件

  源文件包括資源文件和程序源文件,資源文件又包括菜單資源文件、信息資源文件和對話框資源文件(分別用來完成創(chuàng)建和修改Pro/Engineer菜單、窗口信息和對話框等功能)。

  2.1.1、編寫程序源文件

  VC++源程序是整個(gè)程序源文件的核心部分,是進(jìn)行二次開發(fā)的關(guān)鍵,其編寫步驟如下:

  1)打開VC,新建工程,選擇動(dòng)態(tài)鏈接庫DLL方式。

  2)VC++6.0應(yīng)用程序與Pro/E的接口設(shè)置首先設(shè)置Selecting對話框:在工具/選項(xiàng)/目錄中添加包含文件和庫文件,將其設(shè)置到Pro/TOOLKIT的根目錄下。然后進(jìn)行工程設(shè)置如下:C/C++/預(yù)處理程序定義:_DEBUG,_WINDLL,WIN32,_WINDOWS,_MBCS,_USRDLL,PRO_USE_VAR_ARGS。連接/常規(guī)/對象/庫模塊:protk_dll.libprodev_dll.libwsock32.libmpr.libkerne132.libuser32.libodbc32.libodbccp32.lib。

  3)在VC++應(yīng)用程序設(shè)計(jì)向?qū)?chuàng)建的程序框架上添加初始化程序、終止程序,加入主菜單程序,設(shè)置菜單動(dòng)作程序,菜單信息文本文件,對話框程序等。

  2.1.2、編寫資源文件

  1)編寫菜單資源文件菜單信息文本文件用來描述所添加菜單的一些屬性,它的內(nèi)容要和添加菜單函數(shù)中的一些參數(shù)相對應(yīng)。

  2)編寫對話框資源文件

  描述了對話框中全部結(jié)構(gòu)的文本稱為對話框資源文件。當(dāng)Pro/TOOLKIT應(yīng)用程序想向用戶顯示一個(gè)對話框時(shí),第一步工作即是編寫對話框資源文件。在資源文件中應(yīng)該詳細(xì)描述:對話框的完整屬性、它所包含的組件的列表、組件本身的屬性和組件間的相對位置以及當(dāng)用戶改變對話框尺寸時(shí)組件的布置規(guī)則。

  3)編寫注冊文件

  要使應(yīng)用程序能夠集成到Pro/E系統(tǒng)中運(yùn)行,必須制作一個(gè)擴(kuò)展名為.DAT的注冊文件,用該文件進(jìn)行應(yīng)用程序的注冊。注冊文件(registryfile)的作用是向Pro/Engineer系統(tǒng)傳遞應(yīng)用程序的信息。

  2.2、程序的編譯和連接

  在VC++6.0中將MFC框架建立的工程文件的源碼編譯成目標(biāo)碼并存盤,若源碼內(nèi)有語法錯(cuò)誤,編譯器就會(huì)檢查出來并向用戶顯示。編譯完畢后利用一個(gè)連接器程序加進(jìn)從函數(shù)庫取用的函數(shù),才變成一個(gè).DLL文件(可運(yùn)行文件)。

  2.3、程序的注冊與運(yùn)行

  啟動(dòng)Pro/Engineer,點(diǎn)擊“工具/輔助應(yīng)用程序”,“注冊/啟動(dòng)”ProTK.dat文件,應(yīng)用程序會(huì)自動(dòng)執(zhí)行。如果在注冊文件中設(shè)置ALLOW_STOP為TRUE,則可以在需要的時(shí)候用手工來終止應(yīng)用程序的運(yùn)行。選擇需要終止的應(yīng)用程序,先選擇“停止”按鈕,再單擊“刪除”按鈕,即可終止加載的程序,同時(shí)消息欄會(huì)出現(xiàn)相關(guān)的反饋信息。到此Pro/E二次開發(fā)的流程基本結(jié)束,下面重點(diǎn)敘述本文對二次開發(fā)的創(chuàng)新應(yīng)用。

5、結(jié)論

  激烈的市場競爭對企業(yè)產(chǎn)品的設(shè)計(jì)水平提出了越來越高的要求,CAD/CAE及其二次開發(fā)技術(shù)的應(yīng)用,能幫助設(shè)計(jì)人員減少失誤,提高產(chǎn)品的性能和質(zhì)量,加快產(chǎn)品開發(fā)的步伐,增加企業(yè)在市場上的競爭力。本文不僅總結(jié)了Pro/E二次開發(fā)的技術(shù)特點(diǎn),而且成功開發(fā)出了適用于有限元檢查的Pro/E檢查模塊。