摘 要:人性化的辦公座椅設(shè)計是企業(yè)展示自身研發(fā)實力和拓展市場的基礎(chǔ)。本文章基于UG軟件,應(yīng)用計算機語言搭建辦公座椅再設(shè)計平臺,以滿足生產(chǎn)企業(yè)發(fā)展需求。
關(guān)鍵詞:UG;二次開發(fā);開發(fā)環(huán)境;設(shè)計平臺
1 UG軟件概述
UG是Unlgraphiessolutions公司的產(chǎn)品。1997年10月Unigraphies Solutions公司合并了Intergraph公司的機械CAD產(chǎn)品,將微機版的SOLIDEDGE軟件統(tǒng)一到Parasolid平臺上,形成了一個從低端到高端比較完善的企業(yè)級CAD/CAE/CAM/PDM集成系統(tǒng)。
2 應(yīng)用UG/OPEN API搭建再設(shè)計平臺
UG/Open是一系列UG開發(fā)工具的總稱,由UG/Open API、UG/Open GRIP、UG/Open MenuScript及UG/Open UIStyler4個部分組成。[1,2,3]UG/OPEN API結(jié)合C++程序能實現(xiàn)與Unigraphics的各種交互操作。本文章使用UG/Open API,UG/Open MenuScript作為再設(shè)計平臺的開發(fā)工具。
2.1 UG二次開發(fā)環(huán)境搭建
本文利用MFC AppWizard向?qū)?chuàng)建了UG二次開發(fā)編譯環(huán)境。在VC++ 6.0下開發(fā)UG座椅設(shè)計動態(tài)鏈接庫DCEvaluate.dll文件,其具體步驟如下:
第一,在VC++6.0中創(chuàng)建一個MFC AppWizard(dll)工程,工程名為DCEvaluate。在工程向?qū)Ю锩嬖O(shè)置工程為共享MFC動態(tài)鏈接庫。
第二,設(shè)置開發(fā)環(huán)境:添加并配置UG二次開發(fā)的UG/Open API靜態(tài)庫文件libopenintpp.lib,libopenpp.lib,libufun.lib,libugopenint.lib libvmathpp.lib等。
第三,在工程中添加UG用戶入口函數(shù):為了使UG能識別工程所生成的dll文件,需要在dll工程中添加用戶入口函數(shù),通過入口函數(shù)UG才能調(diào)用并實現(xiàn)dll的功能。UG用戶入口函數(shù)如下:
Extern “C” DllExport void ufusr(char *parm,int *returnCode,int rlen)
{//Initialize the API environmentUgSession session(true);……
第四,將編寫好的功能代碼在VC++中編譯。
第五,交互對話框的設(shè)計:為了使用戶與UG交互進行座椅設(shè)計,本文利用MFC對話框資源作為用戶交互界面,在工程中添加界面對話框資源,通過界面設(shè)計與功能實現(xiàn),從而實現(xiàn)座椅設(shè)計。
第六,配置數(shù)據(jù)庫:為了利用數(shù)據(jù)庫來完成座椅設(shè)計,需要對數(shù)據(jù)庫進行配置,然后通過功能代碼實現(xiàn)對數(shù)據(jù)庫的操作。本文利用數(shù)據(jù)源ODBC來建立寫數(shù)據(jù)庫的操作。連接數(shù)據(jù)庫的核心代碼如下:
CDatabase *m_pdatabase;CRecordset *m_pset;try{m_pdatabase=new CDatabase();……
第七,座椅設(shè)計界面交互功能實現(xiàn):在界面中有對座椅的初始化,參數(shù)化更新以及生成脊椎曲線生成。通過代碼編寫實現(xiàn)其功能。其功能實現(xiàn)所用到的UG/Open API函數(shù)主要有:UF_PART_open找開模型,UF_free_string_array釋放資源,UF_PART_close_all(關(guān)閉模型),UF_PART_new(創(chuàng)建新新型),UF_OBJ_delete_object(刪除對象),UF_CURVE_create_spline_thru_pts(生成曲線),UF_MODL_edit_exp(編輯表達式)等。
第八,編譯生成DCEvaluate.dll文件:通過編寫代碼完成座椅設(shè)計界面交互功能,最后將整個工程進行編譯生成DCEvaluate.dll文件。
2.2 UG二次開發(fā)環(huán)境的設(shè)置
辦公座椅再設(shè)計平臺作為UG的一個插件在UG中使用,要讓它在UG環(huán)境中正常運行,需要對UG環(huán)境進行設(shè)置,其具體步驟如下:
第一,創(chuàng)建UG用戶工作目錄:在磁盤上創(chuàng)建一個文件夾,將其命名為DCEvaluate,本文中該文件夾的絕對路徑為“D:\DCEvaluate”,在該文件夾下再創(chuàng)建兩個子文件夾,分別為application和startup,其中application中存放UG啟動時需要加載的共享動態(tài)鏈接庫文件(*.dll)以及對話框資源文件(*.dlg),startup中存放菜單腳本文件(*.men)。
第二,配置用戶工作目錄環(huán)境:在通常情況下,UG規(guī)定了配置文件$UGBASEDIR\UGII \ugii_env.dat為UG環(huán)境變量的配置。當(dāng)UG啟動時,系統(tǒng)檢查該文件中的環(huán)境變量配置,并自動加載文件中所有配置下的環(huán)境變量,通過環(huán)境變量來確定UG的配置。UGII_USER_DIR是用來確定用戶的工作目錄的環(huán)境變量,系統(tǒng)會通過環(huán)境變量的值找到用戶工作目錄,然后加載目錄中的資源。例如,菜單,對話框,以及動態(tài)鏈接庫等。配置文件ugii_env.dat的語法如下:一是文件以‘#注釋,需要對一行進行注釋時,在行開頭加上‘#。二是為了保證變量配置的正確性,每一行只允許配置一個變量。三是變量的加載是按先后順序進行加載的,如果變量配置中有同名變量,則只有排在最后的一個變量配置生效。本文變量配置中,在ugii_env.dat文件中的最后一行加入 UGII_USER_DIR=D:\vcproject\ug\ug_run。至此,UG二次開發(fā)環(huán)境的設(shè)置完成。
2.3 菜單項的設(shè)計
最后利用MenuScript來編輯菜單文件,根據(jù)菜單文件編寫的語法創(chuàng)建UG的主菜單及下拉菜單,然后將編輯完成的men文件放入上文中的startup文件夾中。本文中利用MenuScript創(chuàng)建的座椅設(shè)計菜單核心代碼如下:
VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR BEFORE UG_HELP CASCADE_BUTTON STANDARD_PART_MENU LABEL辦公座椅人機設(shè)計……END_OF_MENU
3 小結(jié)
本文章基于UG軟件,利用其二次開發(fā)環(huán)境,搭建了辦公座椅再設(shè)計平臺,為生產(chǎn)企業(yè)后續(xù)的研發(fā)提供了一定的數(shù)據(jù)支持,同時為辦公座椅再設(shè)計提供了設(shè)計平臺,縮短了企業(yè)再設(shè)計周期,提高了再設(shè)計效率。
參考文獻:
[1] 尹顯東,劉春燕,崔樹禮,李在銘.UG的二次開發(fā)及其應(yīng)用技術(shù)研究[J].機械,2002(1).
[2] 范元勛,莊亞紅,王華坤.UG二次開發(fā)工具的使用[J].機械制造與自動化,2002(6).
[3] 宋傳斌,張樹生,張博林.基于UG平臺的保護頭盔外殼參數(shù)化逆向設(shè)計[J].現(xiàn)代制造工程,2008(4).
[4] 周宇峰.基于UG三維參數(shù)化標(biāo)準(zhǔn)庫件開發(fā)方法的研究[J].新疆大學(xué),2003.
作者簡介:許云(1985—),男,湖南懷化人,貴州師范學(xué)院助教。