• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      MFC在UG開發(fā)中的應(yīng)用及數(shù)據(jù)傳遞

      2013-12-31 00:00:00張超宗鵬程
      電子世界 2013年18期

      【摘要】基于UG NX5.0,詳細(xì)闡述了UG與MFC的通信的方法。以長方體三維參數(shù)化設(shè)計(jì)調(diào)用MFC為例介紹了UG二次開發(fā)的一般過程以及如何在UG中調(diào)用MFC程序。此外,為其它UG開發(fā)提供了另一條途徑和參考。

      【關(guān)鍵詞】UG二次開發(fā);UG/Open MenuScript;MFC;長方體三維參數(shù)化

      UG軟件進(jìn)入中國市場以來,在我國得到了越來越廣泛的應(yīng)用,己成為我國工業(yè)界主要使用的大型CAD/CAE/CAM軟件之一。UG為制造行業(yè)產(chǎn)品開發(fā)的全過程提供解決方案,功能包括概念設(shè)計(jì)、工程設(shè)計(jì)、性能分析和制造。但是,為了滿足用戶的特殊需要,提高設(shè)計(jì)效率和質(zhì)量,必須對UG進(jìn)行二次開發(fā)。

      1.UG二次開發(fā)簡介

      UG二次開發(fā)模塊是為滿足用戶特殊需要而隨UG一起發(fā)布的,被稱為UG/Open。它為UG軟件的二次開發(fā)提供了許多函數(shù)和工具集,便于用戶進(jìn)行二次開發(fā)工作,利用該模塊可對UG系統(tǒng)進(jìn)行用戶化定制和開發(fā),滿足用戶的需求。UG/Open包括以下幾個(gè)部分:UG/Open GRIP、UG/Open API、UG/Open MenuScript、UG/Open UIStyler。

      2.UG與MFC的通信

      UG/Open應(yīng)用程序盡管從UG 15.0推出微機(jī)以來,一直采用Microsoft Visual C++作為編譯器,但是UG/Open API中沒直接提供對MFC的支持,所以在UG開發(fā)中還不能直接調(diào)用MFC。同目前流行的Windows應(yīng)用序開發(fā)工具相比,UG應(yīng)用程序界面的專用工具UIStyler中包含的控件較少,功能有限,使得在開發(fā)靈活性應(yīng)用時(shí)受到一定的局限,使用起來很不方便,有的功能甚至難以實(shí)現(xiàn)。目前,還沒有公開UG/Open API中調(diào)用Microsoft Fundament Class(MFC)的方法,所以無法使用MFC來編寫UG應(yīng)用程序的界面。為了讓程序支持MFC,必須對應(yīng)用程序結(jié)構(gòu)做出相應(yīng)的改變。

      (1)在visual C++的應(yīng)用程序創(chuàng)建MFC AppWizard(dll)程序框架。

      (2)在全局對象類theApp下面添加UG/Open函數(shù)入口ufusr,主要代碼如下:

      MFC in UG.h源程序

      #if !defined(AFX_MFCINUG_H__A2769751_B6D2_4F47_AA4D_141127CCB274__INCLUDED_)

      #define AFX_MFCINUG_H__A2769751_B6D2_4F47_AA4D_141127CCB274__INCLUDED_

      #if _MSC_VER > 1000

      #pragma once

      #endif // _MSC_VER > 1000

      #ifndef __AFXWIN_H__

      #error include 'stdafx.h' before including this file for PCH

      #endif

      #include \"resource.h\"

      class CMFCinUGApp :public CWinApp

      {

      public:

      CMFCinUGApp();

      // Overrides

      // ClassWizard generated virtual function overrides

      //{{AFX_VIRTUAL(CMFCinUGApp)

      //}}AFX_VIRTUAL

      //{{AFX_MSG(CMFCinUGApp)

      // NOTE - the ClassWizard will add and remove member functions here.

      // DO NOT EDIT what you see in these blocks of generated code !

      //}}AFX_MSG

      DECLARE_MESSAGE_MAP()

      };

      #endif

      MFC in UG.cpp源程序

      #include \"stdafx.h\"

      #include \"MFC in UG.h\"

      #ifdef _DEBUG

      #define new DEBUG_NEW

      #undef THIS_FILE

      static char THIS_FILE[] = __FILE__;

      #endif

      BEGIN_MESSAGE_MAP(CMFCinUGApp, CWinApp)

      //{{AFX_MSG_MAP(CMFCinUGApp)

      // NOTE - the ClassWizard will add and remove mapping macros here.

      // DO NOT EDIT what you see in these blocks of generated code!

      //}}AFX_MSG_MAP

      END_MESSAGE_MAP()

      CMFCinUGApp::CMFCinUGApp()

      {

      // TODO:add construction code here,

      // Place all significant initia-lization in InitInstance

      }

      CMFCinUGApp theApp;

      #include

      #include

      #include

      #include

      #include

      #include

      extern \"C\" DllExport void ufusr( char *param,int *returnCode,int rlen )

      {

      int errorCode = UF_initialize();

      if ( 0 == errorCode )

      {

      //實(shí)現(xiàn)所需功能的函數(shù)調(diào)用,如:

      AfxMessageBox(\"I have realized how to call MFC in UG development!\");

      errorCode = UF_terminate();

      }

      }

      extern \"C\" int ufusr_ask_unload( void )

      {

      return( UF_UNLOAD_UG_TERMINATE );

      }

      (3)在Visual C++中編譯連接后生成動態(tài)鏈接文件(*.dll),打開UG,選擇執(zhí)行【NX Open】命令,在“Execute User Function”對話框中選擇要執(zhí)行的動態(tài)鏈接庫,運(yùn)行結(jié)果如圖。

      3.設(shè)計(jì)實(shí)例

      下面就以長方體三維參數(shù)化設(shè)計(jì)為例,闡述UG二次開發(fā)的一般過程及MFC在UG二次開發(fā)中的應(yīng)用。

      (1)菜單、對話框的制作

      首先,在自定義目錄下創(chuàng)建startup和ap-plication兩個(gè)文件夾,其中自定義的菜單文件就在

      startup文件夾中。本例中自定義目錄為:E:\ug_para_design

      然后,打開控制面板->系統(tǒng)中的高級選項(xiàng)卡,注冊環(huán)境變量,其中的變量名為UGII_USER_DIR,變量值為自定義目錄。如圖所示。

      最后,在startup文件夾下建立菜單文件

      VERSION 120

      EDIT UG_GATEWAY_MAIN_MENUBAR

      BEFORE UG_HELP

      CASCADE_BUTTON three_dimensional_para_design

      LABEL 三維參數(shù)化設(shè)計(jì)

      END_OF_BEFORE

      MENU three_dimensional_para_design

      BUTTON block

      LABEL 長方體三維參數(shù)化設(shè)計(jì)

      ACTIONS block_act

      END_OF_MENU

      其中block_act是在UG/Open API程序中注冊的函數(shù)名。

      (2)利用VC建立長方體三維參數(shù)設(shè)計(jì)與數(shù)據(jù)庫鏈接

      根據(jù)MFC程序框架,建立MFC DLL。把長方體設(shè)計(jì)所用的計(jì)算公式、數(shù)據(jù)等以程序的形式寫入DLL中。同時(shí),把所計(jì)算所得結(jié)果存入到數(shù)據(jù)庫中。在DLL中,利用Access完成對數(shù)據(jù)庫中數(shù)據(jù)的管理。根據(jù)上述方法,完成UG中對MFC DLL程序的調(diào)用,結(jié)果如圖所示:

      4.結(jié)束語

      本文介紹了在UG平臺上進(jìn)行二次開發(fā)的一般過程和如何把MFC成功的融入到UG二次開發(fā)當(dāng)中的方法,并以長方體參數(shù)設(shè)計(jì)為例詳細(xì)敘述了具體實(shí)現(xiàn),可為其它方面的UG二次開發(fā)提供參考和借鑒。

      參考文獻(xiàn)

      [1]董正衛(wèi),田立中,付宜利,編著.UG/OPEN API編程基礎(chǔ)[M].清華大學(xué)出版社,2002,8.

      [2]任哲等,編著.MFC Windows應(yīng)用程序設(shè)計(jì)[M].清華大學(xué)出版社,2004,6.

      作者簡介:張超,碩士研究生,現(xiàn)就讀于華北電力大學(xué)(保定),研究方向:數(shù)字化設(shè)計(jì)與制造。

      潞城市| 东乌珠穆沁旗| 房山区| 枣阳市| 香港| 林口县| 西峡县| 府谷县| 鹤峰县| 钟山县| 杂多县| 五寨县| 巴彦淖尔市| 丰城市| 景德镇市| 渝中区| 日喀则市| 久治县| 平远县| 武冈市| 博罗县| 鄢陵县| 含山县| 山东省| 安西县| 宝兴县| 昌邑市| 铁岭市| 灵武市| 灵丘县| 拉孜县| 永顺县| 颍上县| 西宁市| 临朐县| 昌宁县| 嫩江县| 中西区| 泰和县| 陕西省| 白山市|