我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網(wǎng)站首頁 > Proe教程

對ProE調(diào)用MFC對話框技術(shù)的探討研究

時間:2011-02-24 09:39:30 來源:

  本文探討研究了ProE調(diào)用MFC對話框技術(shù)的相關(guān)內(nèi)容。

  Pro/ENGINEER 是美國參數(shù)化公司PTC( Parametric Technology Corporation) 于1989 年開發(fā)出的三維CAD/CAM 系統(tǒng),可以為工業(yè)產(chǎn)品設(shè)計提供完整的解決方案,廣泛應(yīng)用于造型設(shè)計、機械設(shè)計、模具設(shè)計、加工制造、機構(gòu)分析、有限元分析及相關(guān)數(shù)據(jù)庫管理系統(tǒng)等各個領(lǐng)域。目前Pro/E在我國應(yīng)用較廣。

  Pro/TOOLKIT是Pro/ENGINEER系統(tǒng)的個性化開發(fā)工具包,也可稱為應(yīng)用程序接口(Application programmer Interface) ,它提供了大量的C語言庫函數(shù),能夠使外部應(yīng)用程序安全有效地訪問Pro/ENGINEER 的數(shù)據(jù)庫和應(yīng)用程序,通過C語言編程及應(yīng)用程序與Pro/ ENGINEER 的無縫集成,客戶和第三方能夠在Pro/ENGINEE 系統(tǒng)中增加所需的功能。

  Pro/TOOLKIT 應(yīng)用程序共有兩種工作方式:同步模式(synchronous Mode)和異步模式(SynchronousMode) , 我們常用的是同步模式。同步模式分為DLL模式和多進程模式。DLL模式指運用動態(tài)鏈接庫(Dynamically Linked Library , DLL ) 將Pro/TOOLKIT 應(yīng)用程序集成到Pro/EN GINEER中,用戶編譯C語言應(yīng)用程序,與Pro/TOOLKIT 庫連接,生成一個對象庫文件,最后與Pro/ENGINEER的可執(zhí)行文件連接。在DLL 模式中, Pro/TOOLKIT 應(yīng)用程序與Pro/ENGINEER之間的信息交換是通過直接的函數(shù)調(diào)用來實現(xiàn)。本文采用的就是DLL 模式。

  1  問題的提出

  自Pro/ EN GINEER2001 之后, Pro/ TOOL KIT就提供用戶開發(fā)界面的編程接口。利用Pro/TOOL KIT 可以開發(fā)出具有Pro/ EN GINEER 風(fēng)格的對話框,能向用戶提供人機交互界面,進行簡單的人機交互。但是目前這種方法還不太完善,功能有限,而且對話框資源編寫起來繁瑣,一個簡單的對話框資源就會用去很多的時間,對于稍為復(fù)雜的對話框更是無能為力。

  MFC具有強大的編制對話框能力,編制簡單,但Pro/ TOOL KIT 并不提供對MFC 的支持,在Pro/TOOL KIT 中并不能直接應(yīng)用MFC 對話框。本文通過動態(tài)連接庫開發(fā)了Pro/ TOOL KIT 與MFC 的接口,利用MFC 強大的功能實現(xiàn)對話框的開發(fā),在Pro/ EN GINEER 環(huán)境中生成MFC 對話框,方便、自然、快捷地進行人機交互。

  2  基本思想

  在Pro/ EN GINEER 系統(tǒng)中調(diào)用MFC 對話框所需解決的關(guān)鍵問題就是實現(xiàn)Pro/ E 系統(tǒng), Pro/TOOL KIT 應(yīng)用程序與MFC 對話框三者之間的通信。Pro/ E 系統(tǒng)與Pro/ TOOL KIT 應(yīng)用程序可以采用動態(tài)鏈接庫(DLL ) 方式進行通信。由于Pro/TOOL KIT 是通過C 語言進行編程,無法直接調(diào)用MFC 對話框,這就使得必須運用通信方式實現(xiàn)在Pro/ TOOL KIT 中調(diào)用MFC 對話框,本文作者采用動態(tài)鏈接庫(DLL) 實現(xiàn)二者的通信。

  3  Pro/ E 調(diào)用MFC 對話框?qū)嵗?/P>

  本文作者開發(fā)了一個Pro/ EN GINEER 調(diào)用MFC 對話框?qū)嵗?該實例在Pro/ EN GINEER 2001中產(chǎn)生MFC 對話框,接受用戶的輸入信息,然后生成三維實體。編譯器使用Microsoft Visual C ++610 。具體的實現(xiàn)步驟如下。

  (1) 編輯MFC 對話框應(yīng)用程序

  利用MFC AppWizard (dll) ,工程類型選用MFC的常規(guī)DLL (Regular DLL using shared MFC DLL) ,生成一個DLL 工程,加入對話框資源,并聲明導(dǎo)出變量:

  (1) 編輯MFC 對話框應(yīng)用程序

  利用MFC AppWizard (dll) ,工程類型選用MFC的常規(guī)DLL (Regular DLL using shared MFC DLL) ,生成一個DLL 工程,加入對話框資源,并聲明導(dǎo)出變量:

  _declspec ( dllexport ) double m _ width , m _height ,m _ depth ,m _ bite _ radius ,m _ bite _ height ,和導(dǎo)出函數(shù):

  extem“C”_ declspec (dllexport) void LoadDialog)

  AFX _ MANAGE _ STATE(AfxGetStatic ModuleState) ;

  CProDialog dlg ,

  if (dlg. DoModal () = IDOK)

  {

  m _ width = dlg.m _ input1 ;

  m _ height = dlg.m _ input2 ;

  m _ depth = dlg.m _ input3 ;

  m _ bite _ radius = dlg.m _ input4 ;

  m _ bite _ height = dlg.m _ input5 ;

  }

  }

  編譯程序,生成Dialog. dll 。

  (2) 編輯Pro/ TOOL KITS 應(yīng)用程序

  利用A Pro TK AppWizard (Pro/ TOOL KIT 編程向?qū)? ,生成一個Pro/ TOOL KIT 應(yīng)用程序,首先聲明導(dǎo)入變量及導(dǎo)入函數(shù)。修改user _ initialize ( ) 函數(shù),在這個函數(shù)中添加菜單和菜單響應(yīng)函數(shù)。

  ∥為PART 菜單組加載菜單文件

  ProMenuFileRegister (“part ”, “part . mnu ”,NULL) ;

  ProMenuAuxfileRegister (“part ”,“part . aux ”,NULL) ;

  ∥在PART 菜單組中定義新的按鈕Create Solid及其響應(yīng)函數(shù)

  ProMenubuttonActionSet (“part ”,“Create Solid”,(ProMenubuttonAction) ProDemoBaseExtrudeProtrCreate ,NULL ,NULL) ,

  在該Pro/ TOOL KITS 應(yīng)用程序中,最為關(guān)鍵的函數(shù)就是菜單響應(yīng)函數(shù)ProDemoBaseEx2t rudeProt rCr2eate ,在該函數(shù)中載入MFC 對話框資源,獲得用戶的輸入信息,創(chuàng)建拉伸特征,生成二維實體。ProError ProDemoBaseExt rudeProt rCreate()

  {

  ??

  LoadDialog () ; ∥加載對話框

  ??

  width = m _ width ;

  height = m _ height ;

  bite _ radius = m _ bit _ radius ;

  bite _ height = m _ bit _ height ;

  st rcpy (name ,″2DSection″) ;

  alloc = PRO _ B _ FALSE ;

  err = ProDemoSectCreate (width ,height ,bite _ radius ,bite _ height , name ,alloc , &Section) ; ∥得到用戶輸入信息,生成二維草圖截面。

  ??∥省略特征創(chuàng)建過程

  opt s[0 ] = PRO _ FEAT _ CR _ DEFINE _ MISS_ EL EMS ;

  err = ProSelectionAsmcomppathGet (mode/_ sel ,&comp _ path) ;

  err = ProFeatureRedefine ( &comp _ path ,&feature ,elem. t ree ,opt s ,1 , &errs) ; ∥重定義特征,完成特征創(chuàng)建。

  }

  編譯程序,生成SolidCreate. dll 。

  (3) 加載應(yīng)用程序

  在Pro/ EN GINEER 中加載動態(tài)鏈接庫SolidCreate. dll ,加載成功后在Part 菜單組中增加了Create Solid 項,點擊該項,產(chǎn)生MFC 對話框,輸入?yún)?shù)。

  點擊確定,生成三維實體。

  4  結(jié)論

  (1) Pro/ EN GINEER 作為先進的CAD/ CAM 系統(tǒng),為用戶提供了二次開發(fā)工具Pro/ TOOL KIT ,用戶可以結(jié)合自己的產(chǎn)品和實際情況定制個性化的Pro/ EN GINEER 系統(tǒng)。

  (2) Pro/ TOOL KIT 提供了用戶界面接口的開發(fā),但目前還不太完善,本文運用DLL 技術(shù)實現(xiàn)了在Pro/ EN GINEER 中調(diào)用MFC 對話框, 完成了Pro/ EN GINEER 與MFC 的接口開發(fā)。

  (3) Pro/ EN GINEER 可以調(diào)用MFC 對話框,運用相同的方法,也可以調(diào)用MFC 函數(shù),MFC 函數(shù)具有很強的編程功能,Pro/ TOOL KIT 的二次開發(fā)功能將更加強大。