APP下载

基于UG二次开发的冰箱结构系统快速设计

2013-09-12汪年结

机械设计与制造工程 2013年11期
关键词:二次开发特征参数对话框

汪年结,刘 宇,高 浪,彭 玲,向 东

(1.四川长虹电器股份有限公司,四川绵阳 621000)

(2.清华大学机械工程系,北京 100084)

基于UG二次开发的冰箱结构系统快速设计

汪年结1,刘 宇1,高 浪2,彭 玲1,向 东2

(1.四川长虹电器股份有限公司,四川绵阳 621000)

(2.清华大学机械工程系,北京 100084)

缩短开发时间、提高零件通用化率是冰箱制造企业提升竞争力的重要途径。针对冰箱开发过程中结构系统设计时间长、零件通用化程度低、设计标准难以执行的问题,提出基于UG二次开发的冰箱结构系统快速设计方法并给出程序设计方案。首先基于模块化、参数化设计和面向对象知识表示的思想,建立结构系统的参数化模型;然后利用UG NX/Open提供的二次开发功能,在UG中建立了冰箱结构系统快速设计功能菜单、对话框和应用程序,实现了三维建模环境下的结构系统参数化快速生成。

UG;二次开发;冰箱;快速设计;参数化设计

随着市场需求的不断变化,冰箱产品的更新换代加快,市场对产品开发的速度提出了更高的要求。冰箱产品的结构系统设计在冰箱产品开发中占有较大比重,结构系统快速设计对于冰箱的开发具有重要意义。冰箱产品型号多样,但是功能相对稳定,技术相对成熟,形成了大量成熟、稳定的设计经验和规范。在结构设计中合理地重用这部分设计经验,实现参数化驱动的变型设计,是结构系统快速设计的基本途径;制定并执行设计规范是减少不必要的零件变型、减少零件型号的重要举措。

设计经验的重用和设计规范的可视化、易操作化需要IT工具的有效支撑,UG NX是西门子公司旗下的一款三维制作软件,其强大的建模能力使得冰箱设计人员能够有效地建立冰箱零件和装配模型,指导产品的制造过程;其提供的二次开发功能则支持设计人员根据具体设计任务的特点,建立专门的设计程序或管理工具,实现三维设计工具的扩展功能或与PDM系统的有效集成,加快产品的开发速度,促进企业内部知识的共享和延续。文献[1]~[5]介绍了基于.NET框架的UG二次开发技术的基本原理和实例应用。本文在上述研究的基础上,从模块化、参数化的角度对冰箱结构系统进行了建模分析,并基于UG NX/Open二次开发功能,开发了冰箱结构系统快速设计原型系统。

1 冰箱结构系统的参数化建模

冰箱结构系统快速设计的前提是建立模块化、参数化的结构模型。所谓模块化,是指将产品的零件或者组件封装成具有明确功能及接口的结构单元;所谓参数化指模块可由特征参数驱动生成一系列的模块实体(模块实例)。用面向对象的知识表达方式来解释,即模块是对象类,而模块实体是对象实例。模块的属性参数分为规范化参数和特征参数两类,其中规范化参数由设计规范规定,一般的设计人员无权限修改,例如企业标准规定的钣金件截面、塑料件厚度等;特征参数是模块的驱动参数,一般是根据模块的外部条件通过接口驱动生成的,通过特征参数的变化可以快速地生成一族模块实体。这种建模方式使模块实体能有效地继承模块的设计要素,并能通过指定的参数进行变型,达到规范化设计和快速设计的双重效果。

1.1 零件的模块化、参数化建模

零件的模块化、参数化建模是根据模块化设计和面向对象建模的思想,将零件或组件的规范化参数进行封装,建立围绕特征参数的模型生成机制,并建立特征参数与外部设计输入的接口关系。在UG里参数以及参数之间的关联可以表达式的形式来体现,围绕特征参数三维建模的关键点在于模型内部的参数均以特征参数为参照。以冰箱结构的中梁为例,其结构要素如图1所示。

图1 中梁的结构要素

其中,结构要素2,3,5在梁身的左右对称位置,要素4在梁身的上下对称位置,图1中均只在一侧进行了标注。梁由于和两个侧板上对应的安装孔配合,所以其特征参数为两个中梁固定孔之间的间距尺寸;而剩余的要素如中梁固定孔、中梁安装片、合页安装孔和内胆安装槽的典型结构、尺寸和相对位置由企业设计规范规定,在模型中予以固化并实现可视化。因此,建模的时候应该首先建立合页的“合页安装孔距离”表达式,例如以“holes-Width”表示,后续建模过程中在中梁的左右宽度方向上需要引用到这一距离时,均用附带“holes-Width”的公式来表达。由此生成的三维模型是一个可进行参数化设计的模板文件,能从外部进行修改的参数只有“holesWidth”,该特征参数确定后即可生成具体的零件。

1.2 结构系统的参数化快速设计

模块化设计的一大特点是模块之间可通过特征参数关联实现系统的参数化设计。对于冰箱产品而言,用户对于冰箱的尺寸有多样化的需求,因此需要建立冰箱结构系统外廓尺寸的参数化驱动方案。基于UG的装配关联技术,可实现特征参数表达式的引用,达到参数驱动的效果。以两门冰箱为例,其结构系统模型如图2所示。

图2 两门冰箱的结构系统

在三维模型装配的过程中,以一侧的侧板为装配基准,在冰箱宽度方向上由安装孔定位装配上梁、中梁、下梁、后上梁等诸多零件,再以上述梁另一侧的孔安装另一块侧板,支架分别与侧板的两个边配合。结构系统的驱动参数为外廓尺寸“宽度”、“深度”和“高度”,分别建立表达式 Width、Depth和Height,根据模块的接口关系,建立结构系统驱动参数到模块特征参数之间的映射关系。3个驱动参数与模块特征参数的映射关系见表1。

表1中的表达式除Width、Depth和Height根据设计需求确定外,其余参数均为设计规范规定的参数。因此,通过结构系统3个驱动参数的修改,可驱动各个模块特征参数生成新的模块实体,实现整个结构系统的快速设计。

2 UG二次开发的应用

UG二次开发工具提供的MenuScript菜单脚本语言、UIStyler对话框编辑器用于建立UG中的自定义菜单和对话框;NX Open应用程序接口(API)基于.NET框架,支持VB.NET、C#等高级编程语言,大大地提高了编程效率,降低了编程难度。本文基于UG 7.5,采用C#编程语言在Visual Studio 2010开发环境中进行二次开发,实现第1节中所述的结构系统参数化设计系统。二次开发的实现方式根据对话框的类型主要有两种:第一种是利用UG附带UIStyler功能建立对话框,编写菜单的回调程序,生成.dll动态链接库被UG调用实现相应功能;第二种是采用Windows窗体应用程序,用.NET框架中的控件实现。本文介绍第一种方式,并在最后对第二种方式进行简要介绍和对比。

表1 结构系统驱动参数与模块特征参数的映射关系

在进行UG二次开发之前,需要先建立工作目录,目录下包含“startup”和“application”两个子文件夹,然后建立环境变量“UGII_USER_DIR”,并将工作目录地址设为变量值。

2.1 菜单及界面设计

a.在工作目录的“startup”文件夹下新建*.men文件,并用记事本编写文本如下:

VERSION 121

EDIT UG_GATEWAY_MAIN_MENUBAR

BEFORE UG_HELP

CASCADE_BUTTON CUSTOM_MENU

LABEL冰箱设计

END_OF_BEFORE

MENU CUSTOM_MENU

BUTTON SUB_MENU

LABEL结构系统快速设计

ACTIONS*.dll

END_OF_MENU

打开UG后,自动生成的菜单文件如图3所示。

图3 UG中生成的菜单

b.打开UG中的UIStyler界面编辑器,选取标签、数字输入框控件构建如图4所示的对话框。

图4 UG中的图形界面

将对话框按照C#语言保存,生成一个*.dlg文件和一个*.cs文件,将*.dlg文件放置在application文件夹中。

2.2 程序编写

在VS2010中加载UG为C#提供的模板文件(位置在“...UGSNX 7.5UGOPENvs_filesVC#”),新建一个解决方案,将程序文件替换成2.1节中生成的*.cs文件。在“应用”按钮的回调函数apply_cb()内,添加代码实现读取对话框中数值,并赋给相应表达式。对表达式的操作使用Expression(表达式)类,首先新建Expression类的实例,然后按名称搜索结构系统模型中的表达式对实例进行赋值,最后从数字输入框中读入驱动参数并将参数赋给表达式实例。回调函数apply_cb()的主要代码如下:

……

//获取当前对话框和当前工作部件

theSession=Session.GetSession();

theUFSession=UFSession.GetUFSession();

workPart=theSession.Parts.Work;

//------------------

i

nt width,depth,height;

width=changeInt0.ItemValue;

depth=changeInt1.ItemValue;

height=changeInt2.ItemValue;

//建立3个表达式对象并赋予模型表达式的值

Expression expWidth,expDepth,expHeight;

expWidth=workPart.Expressions.FindObject(“Width”);

expDepth= workPart.Expressions.FindObject(“Depth”);

expHeight=workPart.Expressions.FindObject(“Height”);

//------------------

//修改模型表达式的值

workPart.Expressions.Edit(expWidth,width.ToString());

workPart.Expressions.Edit(expDepth,depth.ToString());

workPart.Expressions.Edit(expHeight,height.ToString());

//------------------

theUFSession.Modl.Update(); //更新模型

……

2.3 运行调试

生成解决方案得到*.dll文件,将该文件置于application文件夹下,并将文件名写到*.men文件中按钮的事件中。在UG中加载结构系统模型文件,通过菜单打开对话框,输入所需的外廓尺寸,点击“应用”即可生成相应的三维模型,如图5所示。需要注意的是,为使修改数值后模型能够实时更新,需要在导航器上的装配体处右键选取“WAVE——解决更新状态”。

图5 在UG中通过参数驱动结构系统

2.4 讨论

以上方案是基于UG内部开发环境进行二次开发,其优点是能够与UG的开发风格保持一致,适合较为简单的程序功能。另一种实现方式是利用Windows窗体设计,其主要区别在于程序中不需要加载对话框文件*.dlg,而是新建Windows窗体(Form)类的实例,在窗体中添加控件,并编写相关的事件函数来实现所需的功能,这种方法能够充分运用.NET丰富的设计资源,并能与数据库进行很好的集成,适合较为复杂的应用程序或需要与数据库集成的场合。

3 结论

本文通过冰箱结构系统的参数化、模块化分析,建立了结构系统驱动参数与模块特征参数的映射关系,并应用UG NX/Open提供的二次开发功能,给出了UG中设计菜单、对话框和回调函数的具体设计程序,实现了冰箱结构系统外廓参数改变后模块模型的自动重建。本文提出的方法对于冰箱企业进行结构系统快速设计具有参考意义,后续的研究方向为解决多个驱动参数映射到多个模块特征参数时的耦合问题,以及建立UG二次开发系统与企业PDM系统的集成方案等。

[1]游安弼.用 C#二次开发 UG NX[J].现代机械,2007(2):79-82.

[2]朱宏宇,任树华..NET的UG二次开发接口技术的研究与应用[J].现代制造工程,2008(12):48-50.

[3]何丽,孙文磊,王宏伟.UG二次开发技术在Web零件库系统开发中的应用研究[J].机床与液压,2011,39(20):9-11.

[4]刘兴广,苏霞.基于C#.NET的NX7二次开发研究[J].计算机光盘软件与应用,2012(7):159-160.

[5]张萍.基于 UG NX子午胎活络模 CAD系统研究与开发[D].淄博:山东理工大学,2009.

Rapid Design for Refrigerator Structure System Based on UG NX/Open

WANG Nianjie1,LIU Yu1,GAO Lang2,PENG Lin1,XIANG Dong2
(1.Changhong Electric Co.,Ltd,Sichuan Mianyang,621000,China)
(2.Tsinghua University,Beijing,100084,China)

In order to shorten the development cycle and rise the commonality,it proposes a new method based on UG NX/Open to achieve rapid design for refrigerator structure system,and gives a relative program.Firstly,it builds the parametric model of refrigerator structure system based on modular design,parametric design and object-oriented modeling.Then,it applies UG NX/Open technology to build the function menu,dialogue box and program.The proposed method is illustrated with a case of refrigerator structure system.

UG;Secondary Development;Refrigerator;Rapid Design;Parametric Design

TH122

A

2095-509X(2013)11-0006-04

10.3969/j.issn.2095-509X.2013.11.002

2013-08-22

国家自然科学基金资助项目(51075233);国家863计划资助项目(SS2013AA041305)

汪年结(1977—),男,安徽安庆人,四川长虹电器股份有限公司工程师,主要研究方向为绿色设计、循环经济。

猜你喜欢

二次开发特征参数对话框
故障诊断中信号特征参数择取方法
基于特征参数化的木工CAD/CAM系统
浅谈基于Revit平台的二次开发
正常恢复虚拟机
浅谈Mastercam后处理器的二次开发
Bootlace Worms’Secret etc.
What Is Beauty?
西门子Easy Screen对倒棱机床界面二次开发
基于PSO-VMD的齿轮特征参数提取方法研究
浅谈VB的通用对话框《CommonDialog》控件的使用