歐陽文凱
摘 要 本文以成型教研室《基于UG的模具設(shè)計庫插件開發(fā)》的科研項目為例,對基于UG二次開發(fā)的注塑模輔助設(shè)計插件的設(shè)計過程做一個具體的說明,說明了UG二次開發(fā)的技巧和方法,以及UG二次開發(fā)在注塑模輔助設(shè)計當中的應(yīng)用和前景。
關(guān)鍵詞 UG二次開發(fā) 模具設(shè)計 注塑模
中圖分類號:G642 文獻標識碼:A
Injection Mold Plug-aided Design Based on
UG Secondary Development
OUYANG Wenkai
(Department of Mechanical Engineering, Wuhan University
of Technology Huaxia College, Wuhan, Hubei 430223)
Abstract In this paper, take molding department "UG-based mold design library plug-in development" research for example, to make a specific description UG secondary development based injection mold design plug-aided design process, explains UG secondary development of skills and methods, and the development and application of UG and prospects among injection mold-aided design.
Key words UG secondary development; mold design; injection mold
0 前言
在目前激烈的市場競爭中,模具的開發(fā)主要靠UG等三維軟件進行完成。但是以UG軟件進行模具設(shè)計和開發(fā),專業(yè)度非常高,一般人難以掌握,而軟件本身,也有不足,難以和生產(chǎn)實踐相適應(yīng),是造成模具設(shè)計工程技術(shù)人員進步的主要瓶頸。
基于此現(xiàn)實問題,成型教研室提出《基于UG的模具設(shè)計庫插件開發(fā)》的科研立項,目的是在UG軟件中接入一個插件,此插件將囊括150套注塑模復(fù)雜模具的整體結(jié)構(gòu),以及7大類典型常見模具的標準結(jié)構(gòu),用戶可以根據(jù)自己的產(chǎn)品工藝特點,根據(jù)電腦的檢索分類,隨時調(diào)用匹配的模具結(jié)構(gòu),輔助設(shè)計人員進行設(shè)計,既方便教學(xué)使用,又能應(yīng)用于實踐生產(chǎn)當中。
1 UG二次開發(fā)介紹
Unigraphics(簡稱UG)是當前世界上最先進和精密集成的,面向制造行業(yè)的CAID/CAD/CAM/CAE 高端軟件,它為制造行業(yè)產(chǎn)品開發(fā)的全過程提供解決方案,功能包括:概念設(shè)計,工業(yè)設(shè)計,性能分析和制造。
UG是一個功能強大的通用3D機械CAD/CAM軟件系統(tǒng),用戶若要以它為平臺進行二次開發(fā),實現(xiàn)大型的機械設(shè)計系統(tǒng)(如模具智能化專家系統(tǒng)CAD軟件),就必須利用UG的開發(fā)模塊,借助C/C++,在以UNIX為操作系統(tǒng)的工作站上或以Windows為操作系統(tǒng)的微機工作站上編寫C程序,進而生成可執(zhí)行文件。
用戶二次開發(fā)的結(jié)果,最終要供他人使用,因此良好的交互界面是非常重要的。UG提供的User Tool工具可使用戶的開發(fā)結(jié)果與UG的集成交互界面有機地結(jié)合起來,形成一個風格一致的統(tǒng)一界面,方便了用戶的使用和操作。
UG二次開發(fā)使用到的工具有:UG API , UG GRIP , UG OPEN , NX OPEN , MANUSCRIPT , BLOCK UI STYLER等等。
2 UG二次開發(fā)的一般過程
作為UG NX 6.0與外部應(yīng)用程序之間的接口,UG/Open API是一系列函數(shù)的集合。通過UG/Open API的編程,用戶幾乎能夠?qū)崿F(xiàn)所有的UG NX 5.0功能。開發(fā)者可以通過用C++語言編程來調(diào)用這些函數(shù),從而實現(xiàn)用戶的需求。
(1)對UG part文件及相應(yīng)模型進行操作,包括建立UG NX 6.0模型、查詢模型對象、建立并遍歷裝配體及創(chuàng)建工程圖等。
(2)在UG NX 6.0中創(chuàng)建交互式程序界面。
(3)創(chuàng)建并管理用戶定義對象等。
應(yīng)用函數(shù)時應(yīng)注意,所有的UG/Open API 應(yīng)用必須及時進行初始化和終止,以確保獲取或釋放UG/Open API的執(zhí)行許可權(quán)限。
初始化函數(shù)是UF_initialize,開始調(diào)用UG/Open API的函數(shù)時應(yīng)先調(diào)用UF_initialize來獲取執(zhí)行許可權(quán)限。終止函數(shù)是UF_terminate,不再需要調(diào)用UG/Open API的函數(shù)時,必須先調(diào)用UF_terminate來釋放執(zhí)行許可。
UG/Open API 程序能在兩種不同的環(huán)境(依賴于程序的連接方式)下運行,即Internal環(huán)境(也叫“Internal開發(fā)模式”)和External模式。其中Internal環(huán)境下的程序只能在UG NX 6.0的界面環(huán)境(session)下運行,在運行這些程序時它們被加載到UG NX 6.0的運行空間中(UG NX 5.0分配的內(nèi)存)。External模式開發(fā)的程序能在各種操作系統(tǒng)(Windowns NT/2000/XP及UNIX)下運行,不在UG NX 6.0環(huán)境中或作為UG NX 6.0的子進程運行。盡管沒有圖形顯示,但UG/Open API提供了函數(shù)用于打印機或繪圖儀輸出,也可以輸出成CGM文件或其他數(shù)據(jù)文件。
圖1
UG二次開發(fā)需要vs2008、UG6.0這樣的工作環(huán)境,它的一般過程是:(1)利用manuscript語言編制插件啟動文件;(2)需要利用UI styler設(shè)計對話框界面文件;(3)需要利用vs2008編輯對話框生成的C語言文件,在其中添加相關(guān)的功能代碼;(4)設(shè)置UG相關(guān)環(huán)境變量,使設(shè)計好的插件內(nèi)嵌入UG界面中。endprint
所以UG二次開發(fā)是一個復(fù)雜的過程,需要對多種軟件非常熟悉的操作。
3 插件工作界面的設(shè)計
UG插件工作界面的設(shè)置可以使用多種途徑,比如用VS2008自帶的MFC來設(shè)置界面,這樣設(shè)置的界面功能非常強大,也容易調(diào)節(jié),但是不符合UG本身的風格,如果要設(shè)計一款完全融合UG風格的軟件工作界面,必須使用UI styler程序,利用UI styler設(shè)計軟件工作界面,并且導(dǎo)入至VS2008的一般步驟為:
(1)設(shè)計對話框界面草圖;(2)利用UIStyler工具創(chuàng)建對話框;(3)設(shè)置對話框中的回調(diào)函數(shù);(4)保存對話框;(5)將系統(tǒng)自動生成的對話框C語言模板文件復(fù)制到VC2008項目中;(6)修改C文件,添加回調(diào)函數(shù)代碼,編譯連接文件;(7)將對話框文件(.dlg)復(fù)制到相應(yīng)的目錄下,將共享庫文件(.dll)復(fù)制到相應(yīng)的目錄下;(8)運行、測試及調(diào)試應(yīng)用程序。
圖1為本次科研項目設(shè)計的插件工作界面。
4 回調(diào)函數(shù)功能代碼的完成
利用UIStyler工具創(chuàng)建了對話框工作界面以后,要想實現(xiàn)其中的每一個按鈕功能就必須將對話框生成的C語言文件導(dǎo)入到VC2008項目中,然后再其中修改相應(yīng)回調(diào)的處理代碼,以實現(xiàn)各種功能。
下面這段代碼就是在回調(diào)函數(shù)中實現(xiàn)二級對話框彈出的代碼
NXOpen::UIStyler::DialogResponse response;
theNXStyler001 = new NXStyler001();
response = theNXStyler0066->Show();
delete theNXStyler001;
其中001表示第一個二級對話框的編號,其工作界面如圖2:
圖2
下面這段代碼就是在回調(diào)函數(shù)中實現(xiàn)參數(shù)化一個長方體的代碼:
if(!UF_initialize())
{
char *edge[3]={NULL};
tag_t block_tag;
int error = 0;
double length =this->changeReal4->ItemValue();
double width = this->changeReal5->ItemValue();
double height = this->changeReal6->ItemValue();
double x =this->changeReal7->ItemValue();
double y= this->changeReal8->ItemValue();
double z= this->changeReal9->ItemValue();
double corner[3];
corner[0]=x;
corner[1]=y;
corner[2]=z;
edge[0]= (char *)UF_allocate_memory(256*sizeof(char),&error);
edge[1]= (char *)UF_allocate_memory(256*sizeof(char),&error);
edge[2]= (char *)UF_allocate_memory(256*sizeof(char),&error);
sprintf(edge[0],"%f",length);
sprintf(edge[1],"%f",width);
sprintf(edge[2],"%f",height);
UF_MODL_create_block1(UF_NULLSIGN,corner,edge,&block_tag);
UF_free(edge[0]);
UF_free(edge[1]);
UF_free(edge[2]);
}
UF_terminate();
其工作界面如圖3:
圖3
5結(jié)語
UG插件設(shè)計好后,我們將UG插件給學(xué)生使用,得到很好的反響,又把UG插件給一些搞模具設(shè)計的公司使用,也得到不錯的反響。
本插件的創(chuàng)新之處在,將150套注塑模復(fù)雜結(jié)構(gòu)嵌入軟件中,并分成了標準的七大類和一個其他類,讓不熟悉模具結(jié)構(gòu)的設(shè)計人員可以隨時搜索匹配,從而熟悉模具的具體結(jié)構(gòu)特點,以便進行模具設(shè)計,因而特別適用于進行注塑模具設(shè)計學(xué)習和課程設(shè)計的學(xué)生,以及不是很熟悉各種模具結(jié)構(gòu)的模具設(shè)計從業(yè)人員。
以后擬打算在此插件的基礎(chǔ)上,將軟件參數(shù)化模型的功能進一步強化,使整套模具的各個部分全部都可以進行參數(shù)化建模,從而讓整個模具設(shè)計更加人性化和簡單化,也使模具設(shè)計人員能夠更加得心應(yīng)手的操作此款插件。
目前我國很多高等院校都開設(shè)了模具方向的課程,包括UG軟件設(shè)計課,該研究成果能彌補這一缺陷,不但大大提高課程的教學(xué)質(zhì)量,還為學(xué)生將來尋找就業(yè)機會打下堅實的基礎(chǔ)。該研究成果還可以作為專利申報,滿足模具設(shè)計技術(shù)人員的需要。
參考文獻
[1] 張冶等.Unigraphics NX參數(shù)化設(shè)計實例教程[M].清華大學(xué)出版社,2003.8.
[2] 夏天等.UG二次開發(fā)技術(shù)基礎(chǔ)[M].電子工業(yè)出版社,2005.9.endprint
所以UG二次開發(fā)是一個復(fù)雜的過程,需要對多種軟件非常熟悉的操作。
3 插件工作界面的設(shè)計
UG插件工作界面的設(shè)置可以使用多種途徑,比如用VS2008自帶的MFC來設(shè)置界面,這樣設(shè)置的界面功能非常強大,也容易調(diào)節(jié),但是不符合UG本身的風格,如果要設(shè)計一款完全融合UG風格的軟件工作界面,必須使用UI styler程序,利用UI styler設(shè)計軟件工作界面,并且導(dǎo)入至VS2008的一般步驟為:
(1)設(shè)計對話框界面草圖;(2)利用UIStyler工具創(chuàng)建對話框;(3)設(shè)置對話框中的回調(diào)函數(shù);(4)保存對話框;(5)將系統(tǒng)自動生成的對話框C語言模板文件復(fù)制到VC2008項目中;(6)修改C文件,添加回調(diào)函數(shù)代碼,編譯連接文件;(7)將對話框文件(.dlg)復(fù)制到相應(yīng)的目錄下,將共享庫文件(.dll)復(fù)制到相應(yīng)的目錄下;(8)運行、測試及調(diào)試應(yīng)用程序。
圖1為本次科研項目設(shè)計的插件工作界面。
4 回調(diào)函數(shù)功能代碼的完成
利用UIStyler工具創(chuàng)建了對話框工作界面以后,要想實現(xiàn)其中的每一個按鈕功能就必須將對話框生成的C語言文件導(dǎo)入到VC2008項目中,然后再其中修改相應(yīng)回調(diào)的處理代碼,以實現(xiàn)各種功能。
下面這段代碼就是在回調(diào)函數(shù)中實現(xiàn)二級對話框彈出的代碼
NXOpen::UIStyler::DialogResponse response;
theNXStyler001 = new NXStyler001();
response = theNXStyler0066->Show();
delete theNXStyler001;
其中001表示第一個二級對話框的編號,其工作界面如圖2:
圖2
下面這段代碼就是在回調(diào)函數(shù)中實現(xiàn)參數(shù)化一個長方體的代碼:
if(!UF_initialize())
{
char *edge[3]={NULL};
tag_t block_tag;
int error = 0;
double length =this->changeReal4->ItemValue();
double width = this->changeReal5->ItemValue();
double height = this->changeReal6->ItemValue();
double x =this->changeReal7->ItemValue();
double y= this->changeReal8->ItemValue();
double z= this->changeReal9->ItemValue();
double corner[3];
corner[0]=x;
corner[1]=y;
corner[2]=z;
edge[0]= (char *)UF_allocate_memory(256*sizeof(char),&error);
edge[1]= (char *)UF_allocate_memory(256*sizeof(char),&error);
edge[2]= (char *)UF_allocate_memory(256*sizeof(char),&error);
sprintf(edge[0],"%f",length);
sprintf(edge[1],"%f",width);
sprintf(edge[2],"%f",height);
UF_MODL_create_block1(UF_NULLSIGN,corner,edge,&block_tag);
UF_free(edge[0]);
UF_free(edge[1]);
UF_free(edge[2]);
}
UF_terminate();
其工作界面如圖3:
圖3
5結(jié)語
UG插件設(shè)計好后,我們將UG插件給學(xué)生使用,得到很好的反響,又把UG插件給一些搞模具設(shè)計的公司使用,也得到不錯的反響。
本插件的創(chuàng)新之處在,將150套注塑模復(fù)雜結(jié)構(gòu)嵌入軟件中,并分成了標準的七大類和一個其他類,讓不熟悉模具結(jié)構(gòu)的設(shè)計人員可以隨時搜索匹配,從而熟悉模具的具體結(jié)構(gòu)特點,以便進行模具設(shè)計,因而特別適用于進行注塑模具設(shè)計學(xué)習和課程設(shè)計的學(xué)生,以及不是很熟悉各種模具結(jié)構(gòu)的模具設(shè)計從業(yè)人員。
以后擬打算在此插件的基礎(chǔ)上,將軟件參數(shù)化模型的功能進一步強化,使整套模具的各個部分全部都可以進行參數(shù)化建模,從而讓整個模具設(shè)計更加人性化和簡單化,也使模具設(shè)計人員能夠更加得心應(yīng)手的操作此款插件。
目前我國很多高等院校都開設(shè)了模具方向的課程,包括UG軟件設(shè)計課,該研究成果能彌補這一缺陷,不但大大提高課程的教學(xué)質(zhì)量,還為學(xué)生將來尋找就業(yè)機會打下堅實的基礎(chǔ)。該研究成果還可以作為專利申報,滿足模具設(shè)計技術(shù)人員的需要。
參考文獻
[1] 張冶等.Unigraphics NX參數(shù)化設(shè)計實例教程[M].清華大學(xué)出版社,2003.8.
[2] 夏天等.UG二次開發(fā)技術(shù)基礎(chǔ)[M].電子工業(yè)出版社,2005.9.endprint
所以UG二次開發(fā)是一個復(fù)雜的過程,需要對多種軟件非常熟悉的操作。
3 插件工作界面的設(shè)計
UG插件工作界面的設(shè)置可以使用多種途徑,比如用VS2008自帶的MFC來設(shè)置界面,這樣設(shè)置的界面功能非常強大,也容易調(diào)節(jié),但是不符合UG本身的風格,如果要設(shè)計一款完全融合UG風格的軟件工作界面,必須使用UI styler程序,利用UI styler設(shè)計軟件工作界面,并且導(dǎo)入至VS2008的一般步驟為:
(1)設(shè)計對話框界面草圖;(2)利用UIStyler工具創(chuàng)建對話框;(3)設(shè)置對話框中的回調(diào)函數(shù);(4)保存對話框;(5)將系統(tǒng)自動生成的對話框C語言模板文件復(fù)制到VC2008項目中;(6)修改C文件,添加回調(diào)函數(shù)代碼,編譯連接文件;(7)將對話框文件(.dlg)復(fù)制到相應(yīng)的目錄下,將共享庫文件(.dll)復(fù)制到相應(yīng)的目錄下;(8)運行、測試及調(diào)試應(yīng)用程序。
圖1為本次科研項目設(shè)計的插件工作界面。
4 回調(diào)函數(shù)功能代碼的完成
利用UIStyler工具創(chuàng)建了對話框工作界面以后,要想實現(xiàn)其中的每一個按鈕功能就必須將對話框生成的C語言文件導(dǎo)入到VC2008項目中,然后再其中修改相應(yīng)回調(diào)的處理代碼,以實現(xiàn)各種功能。
下面這段代碼就是在回調(diào)函數(shù)中實現(xiàn)二級對話框彈出的代碼
NXOpen::UIStyler::DialogResponse response;
theNXStyler001 = new NXStyler001();
response = theNXStyler0066->Show();
delete theNXStyler001;
其中001表示第一個二級對話框的編號,其工作界面如圖2:
圖2
下面這段代碼就是在回調(diào)函數(shù)中實現(xiàn)參數(shù)化一個長方體的代碼:
if(!UF_initialize())
{
char *edge[3]={NULL};
tag_t block_tag;
int error = 0;
double length =this->changeReal4->ItemValue();
double width = this->changeReal5->ItemValue();
double height = this->changeReal6->ItemValue();
double x =this->changeReal7->ItemValue();
double y= this->changeReal8->ItemValue();
double z= this->changeReal9->ItemValue();
double corner[3];
corner[0]=x;
corner[1]=y;
corner[2]=z;
edge[0]= (char *)UF_allocate_memory(256*sizeof(char),&error);
edge[1]= (char *)UF_allocate_memory(256*sizeof(char),&error);
edge[2]= (char *)UF_allocate_memory(256*sizeof(char),&error);
sprintf(edge[0],"%f",length);
sprintf(edge[1],"%f",width);
sprintf(edge[2],"%f",height);
UF_MODL_create_block1(UF_NULLSIGN,corner,edge,&block_tag);
UF_free(edge[0]);
UF_free(edge[1]);
UF_free(edge[2]);
}
UF_terminate();
其工作界面如圖3:
圖3
5結(jié)語
UG插件設(shè)計好后,我們將UG插件給學(xué)生使用,得到很好的反響,又把UG插件給一些搞模具設(shè)計的公司使用,也得到不錯的反響。
本插件的創(chuàng)新之處在,將150套注塑模復(fù)雜結(jié)構(gòu)嵌入軟件中,并分成了標準的七大類和一個其他類,讓不熟悉模具結(jié)構(gòu)的設(shè)計人員可以隨時搜索匹配,從而熟悉模具的具體結(jié)構(gòu)特點,以便進行模具設(shè)計,因而特別適用于進行注塑模具設(shè)計學(xué)習和課程設(shè)計的學(xué)生,以及不是很熟悉各種模具結(jié)構(gòu)的模具設(shè)計從業(yè)人員。
以后擬打算在此插件的基礎(chǔ)上,將軟件參數(shù)化模型的功能進一步強化,使整套模具的各個部分全部都可以進行參數(shù)化建模,從而讓整個模具設(shè)計更加人性化和簡單化,也使模具設(shè)計人員能夠更加得心應(yīng)手的操作此款插件。
目前我國很多高等院校都開設(shè)了模具方向的課程,包括UG軟件設(shè)計課,該研究成果能彌補這一缺陷,不但大大提高課程的教學(xué)質(zhì)量,還為學(xué)生將來尋找就業(yè)機會打下堅實的基礎(chǔ)。該研究成果還可以作為專利申報,滿足模具設(shè)計技術(shù)人員的需要。
參考文獻
[1] 張冶等.Unigraphics NX參數(shù)化設(shè)計實例教程[M].清華大學(xué)出版社,2003.8.
[2] 夏天等.UG二次開發(fā)技術(shù)基礎(chǔ)[M].電子工業(yè)出版社,2005.9.endprint