ProE二次開發(fā)的關鍵技術(shù)_第1頁
ProE二次開發(fā)的關鍵技術(shù)_第2頁
ProE二次開發(fā)的關鍵技術(shù)_第3頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

ProE二次開發(fā)的關鍵技術(shù)

摘要:本文深入研究并實現(xiàn)了運用Pro/E的二次開發(fā)工具Pro/TOOLKIT進行程序自動特征建模技術(shù),提出用動態(tài)鏈接庫方式實現(xiàn)用微軟基本類庫(MFC)開發(fā)Pro/E對話框界面的通訊機制,并給出了實現(xiàn)方案和程序示例。關鍵字:CAD二次開發(fā)特征建模TheKeyTechnologyAboutApplicationDevelopmentOfPro/EAbstract:BasedontheresearchoftheapplicationdevelopmentinPro/E,thepaperpresentsaautomaticfeaturemodelingmethodbyPro/Toolkit.ItdescribestheimplementofinformationtransformationmechanismininterfaceswithDLLandbasicclasslibraries,andshowstheexampleofthesystem.Keywords:CAD;ApplicationDevelopment;FeatureModel1引言自動建模指面對特定的產(chǎn)品,根據(jù)用戶輸入的參數(shù)或根據(jù)運用CAD系統(tǒng)進行設計產(chǎn)生的數(shù)據(jù)結(jié)果,系統(tǒng)應能動態(tài)地、自動地將模型建造出來,本文稱這種技術(shù)為程序自動建模。Pro/E是一種采用了特征建模技術(shù),基于統(tǒng)一數(shù)據(jù)庫的參數(shù)化的通用CAD系統(tǒng)。利用它提供的二次開發(fā)工具Pro/TOOLKIT,在Pro/E的基礎上進行二次開發(fā),可以比較方便地實現(xiàn)面向特定產(chǎn)品的程序自動建模功能,并且可以把較為豐富的非幾何特征如材料特征、精度特征加入所產(chǎn)生的模型中,所有信息存入統(tǒng)一的數(shù)據(jù)庫,是實現(xiàn)CAD/CAE/CAM集成的關鍵技術(shù)之一。本文分別對幾何特征和非幾何特征的程序自動建模技術(shù)進行論述。CAD系統(tǒng)要和其它系統(tǒng)集成往往需要通用數(shù)據(jù)庫接口。然而直到20版的Pro/TOOLKIT仍沒有提供數(shù)據(jù)庫編程接口。另外,彈出式對話框是目前最先進最流行的一種人機交互界面,能向用戶提供圖形與文字共存的可視化環(huán)境,使操作更為自然、簡便和快速,但Pro/TOOLKIT只提供下拉式菜單(包括菜單欄標題及其菜單項)的編程接口,而沒有提供開發(fā)對話框的編程接口。本文研究并開發(fā)了Pro/TOOLKIT與MFC的接口,利用MFC強大的功能實現(xiàn)對話框的開發(fā)與數(shù)據(jù)庫的訪問。

2幾何特征的程序自動建模方法分析對于幾何特征的程序自動建模,Pro/TOOLKIT提供了以下三種方法來實現(xiàn):2.1特征描述每一個特征由不同的特征元素樹(featureelementtree)來定義。在程序中對每個特征元素樹的全部變量賦值一次,就可以產(chǎn)生一個特征,多個特征的積累就形成產(chǎn)品模型。特征元素樹包含的信息分為四類[1]:(1)特征本身的所有選項和屬性。如特征類型名稱、隆起或切槽特征等的深度計量方式、孔的放置方式等。(2)

特征與已存在的幾何實體的參考關系。(3)

用于構(gòu)造特征的平面圖形的起始位置。(4)

所有的尺寸值。目前這種方法還不成熟,因為它有以下三個缺點:(1)要由程序產(chǎn)生模型,程序必須包含產(chǎn)品模型的所有信息,從底層起由程序構(gòu)建模型,編程量十分大。(2)因為每種特征由不同的特征元素樹來描述,所以編程難度大而且所編程序非常難于理解。(3)并不是所有的特征都可以用這種方法產(chǎn)生[1]。2.2族表這種方法的步驟是:預先手工構(gòu)建產(chǎn)品模型,把它作為族表的類屬件(genericpart),然后在族表中定義各個控制參數(shù)來控制模型的形狀大小,這樣就可在程序中通過改變各個參數(shù)的值來得到所需要的衍生件。這個衍生件的產(chǎn)生是獨立存在的,不需要為它定義參考基準。2.3用戶定義特征與族表法相同之處是同樣要預先手工構(gòu)建產(chǎn)品模型。模型創(chuàng)建后定義要包含的幾何特征、參考基準、可變尺寸以及可變尺寸的記號(symbol),然后將這些信息存為一個后綴為gph的文件。這樣就可以在程序中通過這個文件來改變可變尺寸,產(chǎn)生所需的衍生件。與族表法不同的是,這種方法所編的程序過程與手工建模過程比較相似,因而易于理解且編程較易,因而在本文著重探討運用這種方法的技巧。3非幾何特征的附加

運用Pro/TOOLKIT提供的庫函數(shù),可以十分方便地將一些非幾何特征包括材料特征以及精度特征附加到已建模型中。

要由程序自動地設置材料特征,較為方便直觀的辦法是先在pro/e界面上手工編輯多個材料文件,輸入它所要求的各種參數(shù)值(例如密度、泊松率等),并存為后綴為mat的文件。所輸入?yún)?shù)的格式不限,因為存盤后pro/e會自動將參數(shù)格式轉(zhuǎn)化為它規(guī)定的格式。定義好材料文件后,就可以在程序中將多種材料特征賦給產(chǎn)品模型,并設定其中一種材料為模型的當前使用材料。材料特征信息與產(chǎn)品模型的其它特征信息存于同一數(shù)據(jù)庫中,而模型的當前使用材料的各種參數(shù)將在該產(chǎn)品的分析計算中自動被使用[1]。精度特征的附加不需要先產(chǎn)生輔助文件,只需用Pro/TOOLKIT提供的庫函數(shù)(如ProGtolCreate()等)即可實現(xiàn)。4.

自動特征建模實例在這個實例中,將利用用戶定義特征的方法,用C語言編程,產(chǎn)生一個以缺省座標平面為參考基準的沖頭模型,并加入精度特征和材料特征。事實上,只需修改此程序的可變尺寸賦值語句、用戶定義特征文件名和材料文件名的給定語句,就能成為其它模型的自動建模函數(shù)。(1)按上面所說的方法先手工構(gòu)建一任意尺寸的長方體并在頭部倒圓角形成沖頭模型,按上述方法制作用戶定義特征文件(文件名為“punch.gph”)。沖頭模型所包含的幾何特征為隆起和圓角,參考基準為缺省座標平面,將長、寬、高和圓角半徑定義為可變尺寸,它們的記號分別定為“l(fā)ength”、“width”、“height”和“rp”。(2)以下為沖頭模型的程序自動建模函數(shù),這個程序可以動態(tài)地根據(jù)不同的長、寬、高和圓角的輸入值,動態(tài)地、自動地構(gòu)造出沖頭模型,并在Pro/E窗口中顯示出來。intthree_dim_construct(h,l,w,rp)//l、w、h、rp為長、寬、高、沖頭圓角尺寸doubleh,l,w,rp;{ProMdlCurrentGet(&p_model);//用戶定義特征文件名的給定ProStringToWstring(,“punch.gph”);//可變尺寸的賦值data.n_var_dims=4;data.var_dims=(Pro_udf_var_dim*)calloc(4,izeof(Pro_udf_var_dim));ProStringToWstring(data.var_dims[0].name,"length");data.var_dims[0].type=PROUDFVAR_DIM;data.var_dims[0].value=l;……//依次對長、寬、高、沖頭圓角尺寸(即l、w、h、rp)進行賦值data.n_references=3;data.references=(Pro_udf_reference*)calloc(3,sizeof(Pro_udf_reference));data.references[0].ref_ptr=NULL;……//指明參考基準為三個缺省座標平面data.references[0].ref_id=1;……//缺省座標平面的標識為1、3、5data.n_orientations=2;data.orientations=(Pro_udf_ref_orient*)calloc(2,sizeof(Pro_udf_ref_orient));data.orientations[0]=PROUDF_REF_NO_FLIP;……//接受缺省的建模方向data.n_quadrants=0;data.dependency=PROUDFDEP_INDEPENDENT;//所建模型相互獨立data.scale_type=PROUDFSCALE_SAME_SIZE;//單位不同時以等量尺寸構(gòu)造模型data.dim_display=PROUDFDIM_BLANK;//隱藏不可變尺寸prodb_create_group(p_model,&data,NULL,NULL,0);//根據(jù)上面所賦信息構(gòu)建模型ProMdlCurrentGet(&p_model1);//獲得所建模型的句柄(Handle)prodb_set_tol_value(p_model,PRO_LINEAR_TOLERANCE,1,0.15);//附加精度特征,可使用變量賦值ProStringToWstring(material_name,"Fe.mat");ProMaterialfileRead(p_model1,material_name);//附加材料特征,可使用變量賦值ProWindowRepaint(PRO_VALUE_UNUSED);//刷新屏幕使所建模型顯示出來Return0;}5.Pro/E與MFC的接口開發(fā)從本質(zhì)上說,Pro/E與MFC的接口就是Pro/E系統(tǒng)調(diào)用MFC應用程序的途徑。本文研究并開發(fā)一個Pro/TOOLKIT應用程序來實現(xiàn)該接口。Pro/E系統(tǒng)、Pro/TOOLKIT應用程序與MFC應用程序的通信方式是接口實現(xiàn)的關鍵之一。本文提出采用動態(tài)鏈接庫(DLL)方式實現(xiàn)三者之間的通信。因為通信是通過直接的函數(shù)調(diào)用實現(xiàn)的,所以有執(zhí)行速度快的優(yōu)點。接口方案如圖1所示。Pro/E系統(tǒng)Pro/TOOLKIT程序(A.dll)MFC應用程序(B.dll)DLL方式DLL方式圖1接口實現(xiàn)方案具體實現(xiàn)的方法如下(編譯器使用VC++6.0):(1)使用CWinApp類來生成第一個DLL工程(簡稱A.dll),工程類型選用共享MFC的常規(guī)DLL(RegularDLLusingsharedMFCDLL)選項。然后在此工程中加入Pro/TOOLKIT程序,主要是函數(shù)user_initialize()的代碼。(2)使用同樣的方法與選項生成第二個DLL工程(簡稱B.dll),并在此工程中用類向?qū)В–lassWizard)和資源編輯器(ResourceEdit)生成所需要的MFC類(如對話框類、數(shù)據(jù)庫類等),并定義一個函數(shù)完成該類的初始化。(3)使A.dll中的Pro/TOOLKIT程序調(diào)用B.dll的導出函數(shù)(如圖2中的loaddlg()函數(shù)),這是接口實現(xiàn)的關鍵。(4)加入Pro/TOOLKIT程序所用到的庫(如protk_dll.lib、protoolkit.lib、prodev_dll.lib、B\Debug\B.lib、pt_asynchronous.lib等等),并指出其路徑,且設為強制輸出(即使用/force選項),使用MFC的編譯選項對這兩個工程進行編譯。生成新的A.dll與B.dll。(5)在Pro/E中用DLL方式加載Pro/TOOLKIT程序(即A.dll),再通過Pro/TOOLKIT程序調(diào)用MFC應用程序(即B.dll)。圖2Pro/E與MFC的接口程序的關鍵6結(jié)論(1)運用Pro/E提供的二次開發(fā)工具Pro/TOOLKIT可以比較容易地實現(xiàn)由程序動態(tài)地、自動地進行特征建模的功能,并且所建模型能由程序自動加入較為豐富的非幾何特征,并存入模型統(tǒng)一的數(shù)據(jù)庫、特征庫中,為CAD/CAM/CAE/CAPP系統(tǒng)的集成打下良好基礎。(2)由于用戶定義特征的方法適用于所有的模型的程序自動建模,所以本文的實例所用的方法和程序?qū)τ谄渌械漠a(chǎn)品模型

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論