久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区

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

UG/OPEN API及MFC在虛擬儀表仿真中的應用

時間:2010-11-15 09:53:59 來源:

1 前言

UG作為通用支撐軟件系統(tǒng),具有強大的建模,裝配和工程分析功能,利用UG能夠創(chuàng)建數(shù)字化虛擬儀表的三維造型,但是卻滿足不了虛擬儀表的動態(tài)仿真方面的要求。本文對UG系統(tǒng)進行二次開發(fā),設計出界面友好、使用方便的虛擬儀表的動態(tài)仿真系統(tǒng)。著重介紹了應用UG/OPEN API、MFC以及輔助開發(fā)模塊UG/0pen MenuScript聯(lián)合開發(fā)的方法。同時用一個應用實例進行簡單的說明。

2 UG/OPEN API以及UG/0pen MenuScript

UG/OPEN API又稱User Function,是一個允許程序訪問并改變UG對象模型(UG Object Modal)的程序集。提供一個UG所共容的編譯和連接程序的方式.它支持C/C++語言,頭文件(Header Files),支持ANSI C,使用Micorosfot Visual C++編程環(huán)境。UG/OPEN API程序可以在兩種不同的環(huán)境中運行,即Internal與External環(huán)境.External模式可以直接在操作系統(tǒng)下運行獨立于UG系統(tǒng)。Internal模式只能運行在UG環(huán)境下 。 為實現(xiàn)軟件系統(tǒng)和UG的無縫封裝,一般采用Internal環(huán)境。

UG/Open MenuScript實現(xiàn)了對UG菜單的操作。可以用ASCII碼編輯器來編輯、刪除、添加已有的UG菜單條,為自己的應用程序建立專門的菜單條.MenuScript可以執(zhí)行宏文件、UG/OPEN API或者UG/Open GRIP所編寫的程序,通過這種方式可以把自己開發(fā)的應用程序無縫地嵌入到UG系統(tǒng)中,滿足用戶要求的交互式操作。

3 虛擬儀表的動態(tài)仿真

所謂虛擬儀表(Virtual Instrument) 就是利用PC機實現(xiàn)原來物理儀表的功能,并且要求功能更強。不僅可以實現(xiàn)數(shù)字顯示、棒圖顯示、曲線顯示,而且可以實現(xiàn)歷史查詢、事故追憶等。 操作人員通過友好的圖形用戶界面以及圖形化編程語言來控制儀器的運行,以完成對被測試量的采集、分析、判斷、顯示、存儲以及數(shù)據(jù)生成。

UG具有強大的設計和表達能力,能夠逼真地表現(xiàn)儀表的外觀和幾何造型,應用UG開發(fā)虛擬儀表實現(xiàn)產(chǎn)品的數(shù)字化設計,縮短了設計周期。通過應用本文論述的基于UG二次開發(fā)的虛擬儀表的動態(tài)仿真系統(tǒng),使得產(chǎn)品的設計表現(xiàn)更加有力,還可以應用在機械人機界面的設計評價中。

4 利用UG/OPEN API和MFC聯(lián)合開發(fā)應用程序結(jié)論

盡管UG使用了Micorosfot Visual C++作為編譯器,但UG/OPEN API沒有直接提供對MFC的支持,所以在UG中還不能直接調(diào)用MFC 。 Visual C++提供了豐富的MFC資源,其編程環(huán)境的集成度和靈活性遠遠超出了UG/OPEN API。UG應用程序基本上都是采用UG提供的應用程序向?qū)G/Open AppWizard創(chuàng)建的,但是用該向?qū)?chuàng)建的應用程序本身不支持MFC。為了讓程序支持MFC我們采用MFC AppWizard(dll)向?qū)В趹贸绦蛑屑尤險G Internal模式的入口函數(shù),編譯生成動態(tài)連接文件,最后通過菜單調(diào)用該程序。其實現(xiàn)的具體步驟如下:

1)在Visual C++中新建MFC AppWizard(dll) 類型工程,輸入工程名。點擊OK。

2)在向?qū)У牡谝徊竭x擇應用程序類型為Regular DLL using shared MFC DLL,其它選項保持默認即可,點擊Finish。完成創(chuàng)建該向?qū)А?

3)在Visual C++中進行編譯設置,選擇菜單Project ->Setting。在project setting對話框的Link選項卡Object/library modules中設置庫文件(libufun.lib,libugopenint.lib),也可以在Tools->Options 的directories中設置。在project setting對話框的Debug選項卡Excutable for debug session中輸入ugraf.exe的全路經(jīng)。

4)編制程序,在程序中添加UG的用戶入口函數(shù)ufsta()。添加MFC對話框資源和控件,設計人機界面 (user computer interface)。添加所需要的Windows消息,在消息處理函數(shù)中添加代碼。

5)編譯連接,生成.dll文件。通過UG菜單調(diào)用程序。

5 光柱表動態(tài)仿真控制系統(tǒng)實例

5.1 人機界面設計及程序代碼分析

應用程序二次開發(fā)的一個重要的方面就是人機界面的設計,實現(xiàn)用戶和軟件系統(tǒng)的數(shù)據(jù)交換。在這里我們在應用程序中使用模式對話框,添加標準控件。

在Visual C++創(chuàng)建MFC AppWizard(dll)工程,工程名為VirInstrument,在應用程序中添加UG入口函數(shù),用MFC設計對話框類CGZInstrument,在話框類中設計控制函數(shù)On_PutOn(),On_PutOff()。添加Windows消息WM_TIMER,生成消息處理函數(shù)OnTimer()。用在On_PutOff()函數(shù)調(diào)用KillTimer()函數(shù)撤銷計時器。編譯連接生成VirInstrument.dll文件。部分代碼如下:

extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
{ //UG函數(shù)入口
int errorCode = UF_initialize();//初始化API環(huán)境
AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
CGZInstrument GZdlg;
GZdlg.DoModal(); //調(diào)用虛擬儀表控制面板
if ( 0 == errorCode )
{
errorCode = UF_terminate(); //釋放API的執(zhí)行許可
}
}
extern "C" int ufusr_ask_unload( void )
{
return( UF_UNLOAD_UG_TERMINATE );
}
void CMyDlg::On_PutOn() //開始執(zhí)行仿真程序
{
m_nTimer=this->SetTimer(1,temp_tmslics*1000,NULL);//設置監(jiān)控時間間隔
}
void CMyDlg::OnTimer(UINT nIDEvent)
{ …
uc1601(char *cp1, int ip2 );//超出安全范圍調(diào)用報警函數(shù)

UF_MODL_edit_exp(char * expr_str );//更新光柱表的數(shù)值
UF_MODL_update( void );//更新視圖

CDialog::OnTimer(nIDEvent);
}


圖1 對話框界面

5.2 MenuScript應用

5.2.1 設置環(huán)境變量

在UG安裝目錄下的UGII文件夾中打開ugii_evn.dat文件,其中有一條語句是用來設置用戶自己二次開發(fā)內(nèi)容的目錄——#UG_USER_DIR=$[HOME]。在用戶目錄下建立兩個子目錄startup和application。startup文件夾存放UG啟動時需要加載的動態(tài)共享庫及菜單腳本文件;application文件夾存放具體的功能擴展程序文件。

要使自定義菜單起作用,必須修改custom_dirs.dat文件。該文件在安裝目錄的UGII menus文件夾中。在文件的最后加入用戶自定義的二次開發(fā)目錄的全路經(jīng)。

5.2.2 菜單腳本文件

本例是在主菜單 [Help]的前面添加自定義菜單[虛擬儀表仿真系統(tǒng)],該菜單下有一個子菜單[光柱表控制]。菜單文件的文件名為main_menu.men。

VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
BEFORE UG_HELP
CASCADE_BUTTON MENU_ID_1
LABEL 虛擬儀表仿真系統(tǒng)
END_OF_BEFORE
MENU MENU_ID_1
BUTTON MENU_ID_1_0
LABEL 光柱表控制
ACTIONS VirInstrument.dll
END_OF_MENU

5.2.3 實現(xiàn)菜單功能

為了實現(xiàn)菜單和對話框連結(jié)功能,在相應的UG_USER_DIR startup和UG_USER_DIR application目錄中復制main_menu.men文件和VirInstrument.dll文件。UG加載DLL文件成功后,用戶可調(diào)入已建完模型的光柱表,并通過菜單調(diào)用對話框,就實現(xiàn)了虛擬儀表的動態(tài)仿真功能(如 圖2)。


圖2 定制的UG菜單及仿真控制界面

6 結(jié)論

對UG進行動態(tài)仿真功能的開發(fā),在產(chǎn)品虛擬現(xiàn)實的設計和評價中有重要意義。本文探討了利用UG/OPEN API、MFC及UG/Open MenuScript對UG聯(lián)合開發(fā)進行動態(tài)仿真的方法。并通過一個例子加以簡單說明。該方法具有開發(fā)速度快,界面簡單統(tǒng)一,編程簡潔,功能強大的特點。本文稍有不足的是,沒有使用UIStyler來創(chuàng)建UG風格的人機交互界面。


相關文章

久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区
日韩精品欧美在线| 国产一区二区三区播放| 久久精品国产欧美亚洲人人爽| 久久全国免费视频| 久久最新免费视频| 成人精品视频一区二区| 国产欧美一区二区三区不卡高清| 免费无遮挡无码永久视频| 欧美极品欧美精品欧美图片| 青草热久免费精品视频| 欧美中文字幕在线| 欧美区高清在线| 激情六月丁香婷婷| 国产在线观看福利| 国产伦精品一区二区三区免费视频 | 国产精品久久久久久久久免费| 日韩视频中文字幕| 久久精品这里热有精品| 国产精品嫩草影院一区二区| 国产精品久久久久久超碰| 精品国产一区二区三区四区精华| 中文字幕一区综合| 日本一本a高清免费不卡| 欧美精品无码一区二区三区| 国产麻豆日韩| 国产白丝袜美女久久久久| 国产成人精品自拍| 国产精品大片wwwwww| 欧美激情精品久久久久久变态| 久久不射电影网| 亚洲国产一区二区三区在线| 欧美有码在线观看| 国产欧美久久久久| 久久精品综合一区| 国产精品乱子乱xxxx| 亚洲视频在线二区| 日本高清不卡在线| 国产免费久久av| 久久免费精品视频| 国产精品久久久久久久久久久久久久 | 欧洲精品码一区二区三区免费看| 美女被啪啪一区二区| aaa毛片在线观看| www.欧美免费| 亚洲天堂av免费在线观看| 欧日韩免费视频| av一区二区在线看| 国产精品精品视频一区二区三区| 中文字幕欧美人妻精品一区| 欧洲精品在线一区| 成人精品网站在线观看| 久久久久久久国产精品视频| 国产精品电影网站| 日本福利视频一区| 亚洲自拍欧美另类| 久久青青草综合| 国产精品日韩欧美一区二区三区| 欧美激情在线一区| 日韩免费观看网站| chinese少妇国语对白| 国产精品视频xxxx| 日产国产精品精品a∨| 国产另类第一区| 91精品久久香蕉国产线看观看| 国产精品偷伦一区二区| 天堂av在线中文| 分分操这里只有精品| 久久久久久久久久久免费精品| 一区二区三区观看| 国产一区免费观看| 国产精品毛片a∨一区二区三区|国| 日本精品视频网站| 777精品视频| 亚洲一区影院| 国产伦精品一区二区三区高清| 国产成人免费av电影| 日韩av免费看| 久久噜噜噜精品国产亚洲综合| 亚洲午夜精品一区二区| 国产欧美综合一区| 久久不射热爱视频精品| 国内精品小视频在线观看| 国产成人精品视| 春日野结衣av| 国产福利视频一区| 国产精品一区=区| 欧美激情在线一区| 国产另类第一区| 欧美精品九九久久| 99亚洲精品视频| 午夜精品www| 久久国产主播精品| 秋霞久久久久久一区二区| 久久久久久久久91| 欧美亚洲在线视频| 国产精品视频一区二区三区经| 欧美亚洲国产另类| 深夜精品寂寞黄网站在线观看| 日本精品久久电影| 精品国内亚洲在观看18黄| 欧美 日韩精品| 久久伊人精品天天| 国产美女主播在线| 亚洲制服欧美久久| 久久久久久a亚洲欧洲aⅴ| 日本三级中国三级99人妇网站| 日韩有码在线视频| 国产中文字幕免费观看| 国产99久久久欧美黑人| 91国在线精品国内播放| 日韩精品福利视频| 精品久久久久久一区| 国产精品一区二区三区免费| 亚洲日本精品一区| 久久99精品久久久久久青青日本 | 欧美二区三区在线| 欧美精品一二区| 97精品国产97久久久久久| 日本aa在线观看| 国产精品高潮粉嫩av| 99电影网电视剧在线观看| 日韩高清国产精品| 久久亚洲国产成人| 国产精国产精品| 欧美一级爱爱| 精品麻豆av| 国产成人精品免费看在线播放| 欧美亚洲精品一区二区| 九色精品美女在线| 久久国产精品-国产精品| 国产一区二区三区四区五区在线| 亚洲va欧美va国产综合久久| 久久久91精品国产一区不卡| 国产精品亚洲αv天堂无码| 日本免费高清一区二区| 久久伊人精品视频| 久久国产精品99久久久久久丝袜| 国产一二三区在线播放| 日本高清不卡三区| 萌白酱国产一区二区| 国产成人极品视频| 国产美女在线精品免费观看| 日韩精品av一区二区三区| 伊人久久青草| 国产精品久久久久av| 国产av人人夜夜澡人人爽麻豆| 国产美女精彩久久| 欧美精品久久久久久久免费| 午夜精品视频网站| 九九精品视频在线观看| 日韩亚洲在线观看| 91麻豆国产语对白在线观看| 国产制服91一区二区三区制服| 日韩av高清在线播放| 欧美激情国产精品| 精品国偷自产在线视频| 91精品在线观看视频| 国产日韩专区在线| 精品欧美一区二区三区久久久| 亚洲精品日韩精品| 久久99久久久久久久噜噜| 日韩中文字幕视频在线| 2019日韩中文字幕mv| 国产伦精品一区二区三区视频黑人 | 国产精品久久久久久久久久新婚| 91美女片黄在线观| 成人毛片一区二区| 国产三区精品| 国产在线观看91精品一区| 精品人妻大屁股白浆无码| 日本特级黄色大片| 日韩av资源在线| 日本在线高清视频一区| 欧美一区二区三区四区在线| 亚洲av综合色区| 亚洲爆乳无码专区| 亚洲人精品午夜射精日韩| 欧美精品www| 中文字幕第一页亚洲| 精品久久久久久久免费人妻| 国产精品激情av在线播放| 久久精品国产一区| 久久激情五月丁香伊人| 国产成人无码精品久久久性色 | 91久热免费在线视频| 成人免费午夜电影| 国产精品香蕉国产| 国产乱肥老妇国产一区二| 国产精品午夜国产小视频| 国产乱人伦精品一区二区| 国产免费一区二区视频| 91久久国产精品91久久性色| 国产精品1区2区在线观看| 久久人妻精品白浆国产| 久久全球大尺度高清视频| 久久观看最新视频| 国产精品视频入口| 国产精品大片wwwwww| 美女国内精品自产拍在线播放| 国产99久久精品一区二区 |