999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

【摘要】基于UG NX5.0,詳細(xì)闡述了UG與MFC的通信的方法。以長方體三維參數(shù)化設(shè)計調(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è)計、工程設(shè)計、性能分析和制造。但是,為了滿足用戶的特殊需要,提高設(shè)計效率和質(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包括以下幾個部分: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í)現(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è)計實(shí)例

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

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

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

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è)計

END_OF_BEFORE

MENU three_dimensional_para_design

BUTTON block

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

ACTIONS block_act

END_OF_MENU

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

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

根據(jù)MFC程序框架,建立MFC DLL。把長方體設(shè)計所用的計算公式、數(shù)據(jù)等以程序的形式寫入DLL中。同時,把所計算所得結(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è)計為例詳細(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è)計[M].清華大學(xué)出版社,2004,6.

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

主站蜘蛛池模板: 国产aⅴ无码专区亚洲av综合网| 天天做天天爱夜夜爽毛片毛片| 亚洲成aⅴ人在线观看| 日a本亚洲中文在线观看| 亚洲精品国产精品乱码不卞| 久久精品国产精品青草app| 欧美午夜视频| 成人免费黄色小视频| 国产精品手机视频一区二区| 亚洲精品久综合蜜| 国产经典免费播放视频| 国产尤物在线播放| 国产精品毛片一区| 国产欧美日韩va| 亚洲精品福利网站| 好紧太爽了视频免费无码| 精品视频一区二区三区在线播| 亚洲中文在线看视频一区| 欧美精品亚洲精品日韩专区va| 欧美黄网在线| 国产SUV精品一区二区6| 久久精品最新免费国产成人| 性视频一区| 香蕉视频在线观看www| 东京热高清无码精品| 亚洲午夜18| 亚洲综合18p| 成人字幕网视频在线观看| 制服丝袜国产精品| 99久久亚洲精品影院| 欧美日韩免费| 国产乱子精品一区二区在线观看| 国产一区二区丝袜高跟鞋| 国产微拍一区| 中文字幕欧美日韩高清| 亚洲欧洲自拍拍偷午夜色| 久久伊人色| 毛片网站免费在线观看| 国产精品青青| 亚洲人成影视在线观看| www.youjizz.com久久| 91亚洲免费| 国产精品无码一区二区桃花视频| 欧美国产综合视频| 欧美精品v| 亚洲欧洲AV一区二区三区| 色国产视频| 亚洲黄色成人| 高清视频一区| 2020亚洲精品无码| 欧美国产日韩一区二区三区精品影视| 亚洲av无码牛牛影视在线二区| 在线精品亚洲国产| 亚洲色精品国产一区二区三区| 国产精品xxx| 国产一区在线视频观看| 99视频有精品视频免费观看| 国产精品深爱在线| 超碰aⅴ人人做人人爽欧美| 成人精品午夜福利在线播放| 国产激情在线视频| 久久综合一个色综合网| 一级不卡毛片| 日本亚洲国产一区二区三区| 国产午夜福利片在线观看| 亚洲福利片无码最新在线播放| 国产欧美精品一区二区| 一区二区午夜| 久久伊伊香蕉综合精品| 亚洲欧美精品日韩欧美| 欧美成人国产| 国产区91| 日韩无码视频播放| 五月婷婷丁香综合| 亚洲中文字幕97久久精品少妇| 伊人激情综合网| 国产永久免费视频m3u8| av在线手机播放| 成人午夜免费观看| 免费看一级毛片波多结衣| 亚洲狼网站狼狼鲁亚洲下载| 亚洲自拍另类|