基于NX软件下汽车模具智能化制造的开发与应用

2021-07-20 06:02杨兴曹宇峰周鹏
金属加工(冷加工) 2021年6期
关键词:二次开发对话框调用

杨兴,曹宇峰,周鹏

东风汽车公司技术中心 湖北武汉 430058

高级工程师 杨兴

1 序言

汽车模具数字化制造的发展和三维实体设计的普及使模具的全尺寸程序化设计和数控加工成为可能。汽车模具在设计阶段,在NX软件平台上基于PDM系统并结合汽车模具的应用需求,开发建立了三维大型汽车模具智能设计系统;在数控编程CAM阶段,泡沫整体加工、镶块加工和模具结构加工实现了数字化的加工流程。因此,如何将模具结构设计人员和数控编程人员从大量单一、机械性的工作中解放出来,能将更多的精力放在前期设计优化和标准化、提高加工效率等技术含量高的工作上,从而提高设计和数控编程的效率及质量,成为亟待解决的问题。

2 NX软件特点

在智能化制造系统开发前,设计特点如下。

(1)设计效率低 三维模具设计周期长,如斜楔修边整形模具,设计装配图如图1所示,其设计周期长达5个月,不能满足用户的要求。设计人员流动性大,新手多,容易出现设计质量问题。简单重复性工作内容多,设计工作非常辛苦,没有充分发挥计算机辅助设计作用。

图1 模具设计装配图

(2)标准化程度低 标准化程度低、标准杂乱、标准件跟不上需要等已严重制约了汽车覆盖件模具的发展。目前,国内已有不少企业以中国模具工业协会汽车车身模具及装备委员会编印的《汽车冲模标准汇编》作为标准,但这一标准汇编尚未得到广泛应用,还不是行业标准。在国内几大汽车模具企业中通常采用合资方的外国标准,如东风公司与PSA合资就采用E24标准,与日产合资就采用KPS、NPS标准,各模具企业很难形成统一的设计、制造标准,造成现有的覆盖件冲模CAD/CAM系统的集成化和智能化程度都比较低,知识重用困难。

(3)现有CAD软件专用性差 目前国内自主开发的CAD软件较少,而多数厂家引进的国外先进软件多为通用型软件,未经开发则专用性较差。面对当前模具行业日益激烈的竞争,开发“模具智能化设计系统”,以实现模具设计技术专业化、通用化和高效化已迫在眉睫。

汽车模具使用的NX软件是主流的CAD/CAM系统,是集计算机辅助设计、辅助制造、辅助工程和产品数据管理(CAD/CAM/CAE/PDM)一体化的软件系统。但NX作为通用支撑软件系统,提供相关的CAD和CAM功能,并没有提供模具设计和数控编程所需的专业功能。NX软件给用户提供了丰富的开发接口,用户能在此基础上开发专业的CAD和CAM功能。软件二次开发模块(UG/Open)以开发性架构面向不同的软件平台提供灵活的开发支持,从而让开发者可针对模具制造开发出功能强大、适合自己使用的模具智能制造系统。此外还提供了后置处理开发模块(UG/GPM、UG/POST)、车间工艺文档开发模块(UG/ShopDoc)和知识融合(UG/KF)等。

3 UG/Open二次开发流程

UG/Open是一系列UG开发工具的总称,它主要由MenuScript(菜单脚本语言)和UIStyler(对话框设计)、API(应用程序接口)和Grip(图形交互程序)4个组件组成。

(1)UG/Open MenuScript 一种定义菜单的脚本语言,以关键字来表示菜单的内容和结构。用户创建或修改菜单文件(*.men,纯文本格式),即可很方便地定义、修改UG界面的主菜单、快捷菜单及菜单项的响应动作(action),action需要在UG启动时注册方可使用。

(2)UG/Open UIStyler UG提供的对话框设计模块UIStyler,可快速得到具有文本、按钮和列表等控件的UG风格的对话框。但同目前流行的Windows应用程序开发工具相比,UIStyler包含的控件太少,且不能使用windows的丰富资源,有很大的局限性。

(3)UG/Open API 又称User Function,是UG提供给外部应用程序的接口,由一系列函数和过程组成,是UG二次开发的关键。通过在C/C++程序中调用这些函数,能在UG主界面中创建交互式界面,并调用UG内部的操作。

(4)UG/Open Grip UGNX自带的一种图形交互编程语言,有其完整的语法规则、程序结构和内部函数,受其语法、结构的影响,适合做一些小型的、简单的程序开发,往往把它作为API的一种补充。

在UG的二次开发过程中,上述4个组件往往需要组合使用,调用关系如图2所示。

图 2 UG/Open 4大组件调用关系

3.1 MFC的UG/Open API动态链接库的二次开发流程

MFC(Microsoft Foundation Class)是VC++的一个重要资源,这套由微软开发的库已经成为设计窗口应用程序的准工业标准,它包含了上百种事先用C++程序写好的类,将这些类组合起来,可以编写功能强大的应用程序。与UG/UIStyler界面设计技术相比,使用MFC的界面在布局上更为容易,控件更为丰富,修改调试更为灵活。UGNX开发环境没有提供对MFC的支持,无法直接使用MFC的丰富资源。通过改变MFC DLL项目的程序结构,成功地把MFC应用到了UG的二次开发中,大大增加了UG二次开发的自由度。其CString、CDialog、CList等类的使用,极大地简化了二次开发的过程。其一般开发流程如下。

(1)创建项目文件 在VS2010/VC++里创建MFC DLL型项目文件,包括:.h头文件、.cpp源文件、.def模块定义文件和.rc资源文件等。

(2)项目属性设置 在项目属性里添加UG文件夹UGOpen、UGOpenPP为头文件包含路径,添加6个UG导入库文件(*.lib)为附加库依赖项。

(3)入口函数的设定 入口函数定义了UG以何种方式及何时加载动态链接库。UG提供了多种入口函数。

1)ufusr(用户入口):二次开发中最常用的入口方式,可通过菜单命令或工具条按钮来加载,有3种不同的卸载方式:IMMEDIATELY、SEL_DIALOG(通过对话框卸载)和UG_TERMINATE(UG进程终止时卸载)。

2)ufsta(自动入口):UG启动时自动加载,UG进程退出时卸载。菜单项响应动作(actions)需要在此入口函数内登记后方可被正常调用。

3)user exit(特定操作入口):可以在UG执行某一特定操作时转而加载用户程序,如新建文件、打开文件、CAM初始化等操作都有自己的入口函数,每个入口函数对应一个系统环境变量。

图3所示是开发的UG文件管理系统的打开文件界面,其入口函数为ufget,建立对应的环境变量USER_RETRIEVE,指向生成的动态链接库文件。这样当用户在UG中点击打开文件按钮时,系统在动态链接库中搜索并执行ufget函数,出现图3所示的界面,取代了UG自身的打开对话框。

图3 UG文件管理系统界面

3.2 对话框设计

(1)利用MFC创建对话框类 在资源视图里添加对话框资源,用对话框编辑器设计话框布局,最后使用ClassWizard(类向导)创建对话框类,修改此类的源程序以实现对话框控件的功能。

(2)对话框的调用 在主程序中必须先调用宏AFX_MANAGE_ST,指明MFC对话框使用DLL本身的资源。常用的对话框分为模式和无模式两种形式,其中模式对话框较简单,定义一个对话框类实例,并调用其成员函数DoModal()即可实现对话框功能;无模式对话框的使用更为灵活,可以在不关闭对话框的条件下直接调用UG提供的界面交互函数,其创建及销毁较为复杂,需要调用CWnd::Create函数创建对象、调用ShowWindow函数显示对话框。

(3)源代码编写 在MFC、UG/Open环境中编写源代码,调试、编译。加载设置:根据触发方式的不同分为如下几种情况。

1)UG启动时调用:将*.dll文件放到UG的STARTUP文件夹内。

2)通过菜单按钮调用:使用MenuScript语言编写菜单文件(*.men),将*.men和*.dll文件放到STARTUP文件夹内。

3)通过工具条按钮调用:修改STARTUP文件夹内用户工具条文件(*.tbr),添加按钮(button),并定义响应动作(actions),指向*.dll文件。

4)通过菜单命令(ctrl + U)调用:用户需手动加载*.dll文件。

5)UG执行某一特定操作(user exit)时触发:对应一个入口函数、一个环境变量,将*.dll放入环境变量定义的路径内。

4 UG开发与智能化实例

(1)建立大梁落料冲孔模装配的参数化设计模板 整理大梁模原始资料,总结出其典型断面结构,建立大梁主断面的草绘图,使用主参数和辅参数控制表达式来改变上下底板的大小和特征组。在UGNX软件中事先使用参数化功能建立起上、下底板,上、下安装座的通用三维模板,按功能将特征成组。按照设计规范建立起模具主要零件的装配特征树。使用开发的克隆程序,仅需输入路径和模具号即可完成一套新大梁模的模具主要部件的生成(见图4),通过参数调整完成大梁模上底板、下底板、凸模固定座和凹模固定座4大铸件的参数化实体设计,以及标准件装配。

图4 设计大梁模智能设计模块

底板生成步骤:建立大梁主断面的草绘图→通过拉伸命令生成大梁上、下底板的基本实体→添加功能特征组,如导向部件、起吊部件、压板槽特征组和加强筋组等完成参数化模板→手工修改添加其他特征,完成上、下底板设计。

(2)标准编程模板的建立 为了建立数控编程标准作业流程,减少出错的几率,公司将多年积累的编程经验,及各种成熟的加工方法、加工策略、参数等进行固化,做成标准CAM模板,以便数控编程人员直接调用。图5所示分别为泡沫编程模板、结构编程模板和钢模编程模板。

图5 标准编程模板

通过模板的调用,大大简化了数控编程人员的工作量,同时利于实现标准化作业流程,便于统一管理。

(3)孔加工数控编程系统的开发 如图6所示,采用非模式属性页(MFC)的对话框界面,能对设计三维实体自动进行孔的检测,包括孔的类型、大小、方向和位置等参数,并生成孔位列表,可以通过右键弹出菜单方式对孔信息进行手工编辑,可自动输出孔位加工程序、孔位清单,实现了孔加工的自动化编程,大大提高了孔加工数控编程的效率。

图 6 孔加工数控编程系统

尤其对于大梁类冲孔模,孔非常多,数控编程的主要工作量是孔加工编程。软件开发前只能靠人工来进行孔类型、大小等参数的辨别,并通过手工选取生成程序,效率非常低。编程工具开发前进行某项目大梁模编程,前后投入了3人,历时1.5个月才完成数控编程任务。采用此工具,数控编程周期至少可缩短至原周期的1/6~1/5,质量也得到了保障。

5 结束语

对MFC的UGNX二次开发技术进行了深入的探讨,同时提供基于UG/CAM的VC++编程开发实例:通过UGNX的开发接口调用内部指令,由软件自动完成原本需要手工完成的工作。通过工具软件的二次开发,大大降低了设计和数控编程人员的劳动强度,提高了模具的工作效率及质量,缩短了模具设计和数控编程的周期,极大地缓解了实际生产中任务重、工期紧的矛盾,实现了模具前期技术工作部分环节的自动化、规范化。

然而,与国外领先行业的智能化制造相比,软件开发和实际应用仍有差距。在今后的工作中,针对模具智能化制造仍需进一步的探索、开发,向模具作业流程的智能化、标准化道路前进,提升模具制造技术水平。

猜你喜欢
二次开发对话框调用
浅谈基于Revit平台的二次开发
正常恢复虚拟机
核电项目物项调用管理的应用研究
浅谈Mastercam后处理器的二次开发
Bootlace Worms’Secret etc.
What Is Beauty?
LabWindows/CVI下基于ActiveX技术的Excel调用
西门子Easy Screen对倒棱机床界面二次开发
基于系统调用的恶意软件检测技术研究
浅谈VB的通用对话框《CommonDialog》控件的使用