久久国产色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_欧美 国产 日本_好吊色欧美一区二区三区
日本一区二区三区精品视频| 欧美一区二三区| 国产成人在线播放| 91精品中国老女人| 国产男女免费视频| 成人伊人精品色xxxx视频| 国产麻豆日韩| 成人亚洲欧美一区二区三区| 91精品国产综合久久久久久丝袜| 国产一区二区精品在线| 国产欧美在线播放| 成人av网站观看| 91久久精品www人人做人人爽| 国产精品99久久久久久人| 国产成人综合久久| 国产成人免费高清视频| 国产精品国产三级国产aⅴ浪潮 | 久久免费在线观看| 国产传媒久久久| 国产精品涩涩涩视频网站| 久久99久久99精品免观看粉嫩| 亚洲最大福利网| 日本a在线免费观看| 僵尸世界大战2 在线播放| 国产伦精品一区二区三区照片 | 91精品国产自产在线| 久久av免费一区| 国产精品久久99久久| 一区二区三区不卡在线| 天天爽天天狠久久久| 人妻久久久一区二区三区| 国产日韩欧美综合精品| 国产a一区二区| 久久伊人免费视频| 性色av一区二区三区| 欧美日韩一区二区三| 国产免费视频传媒| 日韩在线免费视频观看| 欧美激情综合色| 青春草在线视频免费观看| 国产系列第一页| 国产成人在线小视频| 九九热这里只有精品免费看| 视频一区二区三区在线观看| 男人天堂成人在线| 久久综合狠狠综合久久综青草| 欧美成人精品在线播放| 日本免费成人网| 国产精品中文久久久久久久| 国产成人拍精品视频午夜网站| 亚洲av综合色区| 国产精品自拍视频| 国产精品女视频| 日韩av一区二区三区在线观看| 国产狼人综合免费视频| 国产精品无码av无码| 欧美一区二区色| av天堂永久资源网| 国产精品国产福利国产秒拍| 色噜噜一区二区| 成人免费网视频| 久久夜色精品国产亚洲aⅴ| 日韩精品一区二区三区久久| 国产美女久久精品| 国产精品高潮呻吟久久av无限| 精品国产依人香蕉在线精品| 日产国产精品精品a∨| 99久久精品免费看国产一区二区三区 | 午夜精品久久久久久久男人的天堂 | 国产精品无码人妻一区二区在线| 日本不卡二区| 久久网站免费视频| 亚洲字幕一区二区| 高清不卡一区二区三区| 国产a∨精品一区二区三区不卡| 国产中文字幕二区| 国产精品久久久亚洲| 欧美h视频在线| 久久久久久久久久网| 天天操天天干天天玩| 久久一区二区精品| 电影午夜精品一区二区三区| 97国产在线播放| 亚洲一区二区三区午夜| 超碰97在线播放| 亚洲欧美久久久久一区二区三区| 9a蜜桃久久久久久免费| 亚洲熟妇无码一区二区三区导航| 成人免费在线网| 国产99在线播放| 国产女同一区二区| 色综合久久久888| 国产另类自拍| 中文字幕日韩精品一区二区| 国产乱码精品一区二区三区日韩精品| 精品国产一区二区三区久久久久久| 美女一区视频| 精品久久久久亚洲| 国产精品午夜av在线| 亚洲激情一区二区三区| 超碰97在线播放| 天天好比中文综合网| 久久久久久综合网天天| 欧美在线国产精品| 国产精品福利在线| 成人www视频在线观看| 亚洲欧美日韩另类精品一区二区三区| 久久噜噜噜精品国产亚洲综合| 亚洲精品国产系列| 久久精品国产精品国产精品污 | 国产三级中文字幕| 一本色道久久综合亚洲精品婷婷| 91精品国产高清久久久久久91裸体| 色噜噜一区二区| 国产精品欧美日韩一区二区| 国产免费一区二区三区在线观看| 亚洲伊人婷婷| 久久av喷吹av高潮av| 欧美连裤袜在线视频| 欧美精品一二区| 成人久久久久爱| 任我爽在线视频精品一| 日韩视频免费在线| 国产有码在线一区二区视频| 亚洲精品欧美日韩| 国产精品视频地址| 97成人精品视频在线观看| 青青草久久网络| 亚洲制服欧美久久| 日韩在线播放视频| 高清欧美精品xxxxx| 日韩精品一区二区三区电影| 精品自在线视频| 久久精品日韩精品| 国产一区二区四区| 三级三级久久三级久久18| 国产成人啪精品视频免费网 | 免费在线观看日韩视频| 一级特黄妇女高潮| 国产精品入口尤物| 91精品久久久久| 精品一区2区三区| 色一情一乱一乱一区91| 久热精品视频在线观看| 久久影院理伦片| 国产美女精品视频免费观看| 日韩精品一区二区三区四区五区| 在线视频91| 国产精品极品美女在线观看免费| 久久精品香蕉视频| 国产热re99久久6国产精品| 日韩精品久久久毛片一区二区| 一区二区免费在线观看| 国产精品成人久久电影| 日韩视频永久免费观看| 久久免费看毛片| 91久久精品一区| 成人精品在线观看| 国产亚洲欧美一区二区| 免费在线a视频| 欧日韩免费视频| 三年中文高清在线观看第6集| 伊人婷婷久久| 精品国产aⅴ麻豆| 国产精品久久久久久久久久久不卡 | 久久亚洲电影天堂| 国产高清av在线播放| 国产精品一区二区女厕厕| 男人天堂新网址| 欧美视频在线观看网站| 日本不卡一区二区三区在线观看| 无码人妻精品一区二区三区99v| 亚洲午夜精品久久| 欧美精品九九久久| 精品国产一区二区三区日日嗨| 国产精品日本一区二区| xxxx性欧美| www.日韩视频| 久久久久亚洲精品国产| 久久久在线观看| 97精品国产97久久久久久免费| av不卡在线免费观看| 国产乱人伦精品一区二区 | 久久精品91久久香蕉加勒比| 久久久久亚洲精品成人网小说| 国产成a人亚洲精v品在线观看| 国产福利久久| 日韩在线激情视频| 日韩视频免费在线观看| 日韩一区二区在线视频| 色青青草原桃花久久综合| 久久99九九| 久久精品视频在线播放| 国产精品久久国产| 美女av一区二区三区| 中文字幕日韩精品一区二区| 亚洲欧美久久久久一区二区三区| 少妇高潮喷水久久久久久久久久| 日韩av一区二区三区在线| 日韩精品 欧美|