基于UG二次开发的注塑模辅助设计插件的设计
2014-03-17欧阳文凯
欧阳文凯
摘 要 本文以成型教研室《基于UG的模具设计库插件开发》的科研项目为例,对基于UG二次开发的注塑模辅助设计插件的设计过程做一个具体的说明,说明了UG二次开发的技巧和方法,以及UG二次开发在注塑模辅助设计当中的应用和前景。
关键词 UG二次开发 模具设计 注塑模
中图分类号: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 前言
在目前激烈的市场竞争中,模具的开发主要靠UG等三维软件进行完成。但是以UG软件进行模具设计和开发,专业度非常高,一般人难以掌握,而软件本身,也有不足,难以和生产实践相适应,是造成模具设计工程技术人员进步的主要瓶颈。
基于此现实问题,成型教研室提出《基于UG的模具设计库插件开发》的科研立项,目的是在UG软件中接入一个插件,此插件将囊括150套注塑模复杂模具的整体结构,以及7大类典型常见模具的标准结构,用户可以根据自己的产品工艺特点,根据电脑的检索分类,随时调用匹配的模具结构,辅助设计人员进行设计,既方便教学使用,又能应用于实践生产当中。
1 UG二次开发介绍
Unigraphics(简称UG)是当前世界上最先进和精密集成的,面向制造行业的CAID/CAD/CAM/CAE 高端软件,它为制造行业产品开发的全过程提供解决方案,功能包括:概念设计,工业设计,性能分析和制造。
UG是一个功能强大的通用3D机械CAD/CAM软件系统,用户若要以它为平台进行二次开发,实现大型的机械设计系统(如模具智能化专家系统CAD软件),就必须利用UG的开发模块,借助C/C++,在以UNIX为操作系统的工作站上或以Windows为操作系统的微机工作站上编写C程序,进而生成可执行文件。
用户二次开发的结果,最终要供他人使用,因此良好的交互界面是非常重要的。UG提供的User Tool工具可使用户的开发结果与UG的集成交互界面有机地结合起来,形成一个风格一致的统一界面,方便了用户的使用和操作。
UG二次开发使用到的工具有:UG API , UG GRIP , UG OPEN , NX OPEN , MANUSCRIPT , BLOCK UI STYLER等等。
2 UG二次开发的一般过程
作为UG NX 6.0与外部应用程序之间的接口,UG/Open API是一系列函数的集合。通过UG/Open API的编程,用户几乎能够实现所有的UG NX 5.0功能。开发者可以通过用C++语言编程来调用这些函数,从而实现用户的需求。
(1)对UG part文件及相应模型进行操作,包括建立UG NX 6.0模型、查询模型对象、建立并遍历装配体及创建工程图等。
(2)在UG NX 6.0中创建交互式程序界面。
(3)创建并管理用户定义对象等。
应用函数时应注意,所有的UG/Open API 应用必须及时进行初始化和终止,以确保获取或释放UG/Open API的执行许可权限。
初始化函数是UF_initialize,开始调用UG/Open API的函数时应先调用UF_initialize来获取执行许可权限。终止函数是UF_terminate,不再需要调用UG/Open API的函数时,必须先调用UF_terminate来释放执行许可。
UG/Open API 程序能在两种不同的环境(依赖于程序的连接方式)下运行,即Internal环境(也叫“Internal开发模式”)和External模式。其中Internal环境下的程序只能在UG NX 6.0的界面环境(session)下运行,在运行这些程序时它们被加载到UG NX 6.0的运行空间中(UG NX 5.0分配的内存)。External模式开发的程序能在各种操作系统(Windowns NT/2000/XP及UNIX)下运行,不在UG NX 6.0环境中或作为UG NX 6.0的子进程运行。尽管没有图形显示,但UG/Open API提供了函数用于打印机或绘图仪输出,也可以输出成CGM文件或其他数据文件。
图1
UG二次开发需要vs2008、UG6.0这样的工作环境,它的一般过程是:(1)利用manuscript语言编制插件启动文件;(2)需要利用UI styler设计对话框界面文件;(3)需要利用vs2008编辑对话框生成的C语言文件,在其中添加相关的功能代码;(4)设置UG相关环境变量,使设计好的插件内嵌入UG界面中。endprint
所以UG二次开发是一个复杂的过程,需要对多种软件非常熟悉的操作。
3 插件工作界面的设计
UG插件工作界面的设置可以使用多种途径,比如用VS2008自带的MFC来设置界面,这样设置的界面功能非常强大,也容易调节,但是不符合UG本身的风格,如果要设计一款完全融合UG风格的软件工作界面,必须使用UI styler程序,利用UI styler设计软件工作界面,并且导入至VS2008的一般步骤为:
(1)设计对话框界面草图;(2)利用UIStyler工具创建对话框;(3)设置对话框中的回调函数;(4)保存对话框;(5)将系统自动生成的对话框C语言模板文件复制到VC2008项目中;(6)修改C文件,添加回调函数代码,编译连接文件;(7)将对话框文件(.dlg)复制到相应的目录下,将共享库文件(.dll)复制到相应的目录下;(8)运行、测试及调试应用程序。
图1为本次科研项目设计的插件工作界面。
4 回调函数功能代码的完成
利用UIStyler工具创建了对话框工作界面以后,要想实现其中的每一个按钮功能就必须将对话框生成的C语言文件导入到VC2008项目中,然后再其中修改相应回调的处理代码,以实现各种功能。
下面这段代码就是在回调函数中实现二级对话框弹出的代码
NXOpen::UIStyler::DialogResponse response;
theNXStyler001 = new NXStyler001();
response = theNXStyler0066->Show();
delete theNXStyler001;
其中001表示第一个二级对话框的编号,其工作界面如图2:
图2
下面这段代码就是在回调函数中实现参数化一个长方体的代码:
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结语
UG插件设计好后,我们将UG插件给学生使用,得到很好的反响,又把UG插件给一些搞模具设计的公司使用,也得到不错的反响。
本插件的创新之处在,将150套注塑模复杂结构嵌入软件中,并分成了标准的七大类和一个其他类,让不熟悉模具结构的设计人员可以随时搜索匹配,从而熟悉模具的具体结构特点,以便进行模具设计,因而特别适用于进行注塑模具设计学习和课程设计的学生,以及不是很熟悉各种模具结构的模具设计从业人员。
以后拟打算在此插件的基础上,将软件参数化模型的功能进一步强化,使整套模具的各个部分全部都可以进行参数化建模,从而让整个模具设计更加人性化和简单化,也使模具设计人员能够更加得心应手的操作此款插件。
目前我国很多高等院校都开设了模具方向的课程,包括UG软件设计课,该研究成果能弥补这一缺陷,不但大大提高课程的教学质量,还为学生将来寻找就业机会打下坚实的基础。该研究成果还可以作为专利申报,满足模具设计技术人员的需要。
参考文献
[1] 张冶等.Unigraphics NX参数化设计实例教程[M].清华大学出版社,2003.8.
[2] 夏天等.UG二次开发技术基础[M].电子工业出版社,2005.9.endprint
所以UG二次开发是一个复杂的过程,需要对多种软件非常熟悉的操作。
3 插件工作界面的设计
UG插件工作界面的设置可以使用多种途径,比如用VS2008自带的MFC来设置界面,这样设置的界面功能非常强大,也容易调节,但是不符合UG本身的风格,如果要设计一款完全融合UG风格的软件工作界面,必须使用UI styler程序,利用UI styler设计软件工作界面,并且导入至VS2008的一般步骤为:
(1)设计对话框界面草图;(2)利用UIStyler工具创建对话框;(3)设置对话框中的回调函数;(4)保存对话框;(5)将系统自动生成的对话框C语言模板文件复制到VC2008项目中;(6)修改C文件,添加回调函数代码,编译连接文件;(7)将对话框文件(.dlg)复制到相应的目录下,将共享库文件(.dll)复制到相应的目录下;(8)运行、测试及调试应用程序。
图1为本次科研项目设计的插件工作界面。
4 回调函数功能代码的完成
利用UIStyler工具创建了对话框工作界面以后,要想实现其中的每一个按钮功能就必须将对话框生成的C语言文件导入到VC2008项目中,然后再其中修改相应回调的处理代码,以实现各种功能。
下面这段代码就是在回调函数中实现二级对话框弹出的代码
NXOpen::UIStyler::DialogResponse response;
theNXStyler001 = new NXStyler001();
response = theNXStyler0066->Show();
delete theNXStyler001;
其中001表示第一个二级对话框的编号,其工作界面如图2:
图2
下面这段代码就是在回调函数中实现参数化一个长方体的代码:
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结语
UG插件设计好后,我们将UG插件给学生使用,得到很好的反响,又把UG插件给一些搞模具设计的公司使用,也得到不错的反响。
本插件的创新之处在,将150套注塑模复杂结构嵌入软件中,并分成了标准的七大类和一个其他类,让不熟悉模具结构的设计人员可以随时搜索匹配,从而熟悉模具的具体结构特点,以便进行模具设计,因而特别适用于进行注塑模具设计学习和课程设计的学生,以及不是很熟悉各种模具结构的模具设计从业人员。
以后拟打算在此插件的基础上,将软件参数化模型的功能进一步强化,使整套模具的各个部分全部都可以进行参数化建模,从而让整个模具设计更加人性化和简单化,也使模具设计人员能够更加得心应手的操作此款插件。
目前我国很多高等院校都开设了模具方向的课程,包括UG软件设计课,该研究成果能弥补这一缺陷,不但大大提高课程的教学质量,还为学生将来寻找就业机会打下坚实的基础。该研究成果还可以作为专利申报,满足模具设计技术人员的需要。
参考文献
[1] 张冶等.Unigraphics NX参数化设计实例教程[M].清华大学出版社,2003.8.
[2] 夏天等.UG二次开发技术基础[M].电子工业出版社,2005.9.endprint
所以UG二次开发是一个复杂的过程,需要对多种软件非常熟悉的操作。
3 插件工作界面的设计
UG插件工作界面的设置可以使用多种途径,比如用VS2008自带的MFC来设置界面,这样设置的界面功能非常强大,也容易调节,但是不符合UG本身的风格,如果要设计一款完全融合UG风格的软件工作界面,必须使用UI styler程序,利用UI styler设计软件工作界面,并且导入至VS2008的一般步骤为:
(1)设计对话框界面草图;(2)利用UIStyler工具创建对话框;(3)设置对话框中的回调函数;(4)保存对话框;(5)将系统自动生成的对话框C语言模板文件复制到VC2008项目中;(6)修改C文件,添加回调函数代码,编译连接文件;(7)将对话框文件(.dlg)复制到相应的目录下,将共享库文件(.dll)复制到相应的目录下;(8)运行、测试及调试应用程序。
图1为本次科研项目设计的插件工作界面。
4 回调函数功能代码的完成
利用UIStyler工具创建了对话框工作界面以后,要想实现其中的每一个按钮功能就必须将对话框生成的C语言文件导入到VC2008项目中,然后再其中修改相应回调的处理代码,以实现各种功能。
下面这段代码就是在回调函数中实现二级对话框弹出的代码
NXOpen::UIStyler::DialogResponse response;
theNXStyler001 = new NXStyler001();
response = theNXStyler0066->Show();
delete theNXStyler001;
其中001表示第一个二级对话框的编号,其工作界面如图2:
图2
下面这段代码就是在回调函数中实现参数化一个长方体的代码:
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结语
UG插件设计好后,我们将UG插件给学生使用,得到很好的反响,又把UG插件给一些搞模具设计的公司使用,也得到不错的反响。
本插件的创新之处在,将150套注塑模复杂结构嵌入软件中,并分成了标准的七大类和一个其他类,让不熟悉模具结构的设计人员可以随时搜索匹配,从而熟悉模具的具体结构特点,以便进行模具设计,因而特别适用于进行注塑模具设计学习和课程设计的学生,以及不是很熟悉各种模具结构的模具设计从业人员。
以后拟打算在此插件的基础上,将软件参数化模型的功能进一步强化,使整套模具的各个部分全部都可以进行参数化建模,从而让整个模具设计更加人性化和简单化,也使模具设计人员能够更加得心应手的操作此款插件。
目前我国很多高等院校都开设了模具方向的课程,包括UG软件设计课,该研究成果能弥补这一缺陷,不但大大提高课程的教学质量,还为学生将来寻找就业机会打下坚实的基础。该研究成果还可以作为专利申报,满足模具设计技术人员的需要。
参考文献
[1] 张冶等.Unigraphics NX参数化设计实例教程[M].清华大学出版社,2003.8.
[2] 夏天等.UG二次开发技术基础[M].电子工业出版社,2005.9.endprint