0 引言
参数化设计是通过改动图形的某一部分或某几部分的尺寸,或修改已定义好的零件参数,自动完成对图形中相关部分的改动,从而实现对图形的驱动。本文针对某起熏机典型系列产品的主梁进行二次开发,在NX环境下运用Visual C++程序语言对主梁进行了二次开发,开发出了多功能机组主梁的三维参数化模型,经过验证说明所开发的主梁参数化建模系统能对主梁的主要尺寸参数进行参数化驱动,实现了主梁的参数化开发。
1 起重机主梁的参数化设计系统开发
1.1 建立主梁装配体样板
分析起重机主梁的结构特点,对主梁装配体的参数化设计采用自顶向下的方法。在参数化前,首先要分清主梁尺寸中的一级驱动参数、次级驱动参数及不对其他部件产生影响的无关参数等级别,通过修改一个尺寸来刷新整个模型的目的。对所有的零件和子部件的定位方式采用3个基准面和结构控制草图中的草图线段,避免在零件装配过程中出现整个装配体的混乱,如某些零部件的缺失、更换、重叠等。如果某些零部件的一些几何特征参数难以在装配图中进行表达,那么可以通过建立与装配体模型当中的变量关联的函数表达式或是建立父子关系的方法进行解决。主梁参数化NX三维装配体模型如图1所示。
图1 主梁参数化装配体模型
1.2 设计主梁参数化建模系统
使用Visual C++和NX/Open API编写应用程序建立主梁参数化建模系统,主梁参数化建模系统在NX环境下生成用户自定义菜单(见图2),通过选取菜单项当中的“主梁1”选项弹出用户交互对话框(见图3),在对话框中有若干个有关主梁几何参数的输入项,可以直接设定主梁参数化过程中所需要的关键结构参数,按“确定”或者“应用”按钮,程序自动将主梁的关键参数设定为输入值,从而生成所需要的主梁模型。
图2 用户自定义菜单界面
图3 用户交互式对话框
此系统的设计是利用NX/NX所提供的二次开发语言模块NX/Open API,NX/Open UI Styler,NX/Open Menu Script,再结合Visual C++,实现了主梁参数化模型的二次开发。
(1)创建应用程序部署目录结构
创建工作目录为“E:\zhuliangl”,在其中分别创建2个子目录“E:\zhuliangl\startup”和“E:\zhuliangl\application”。其中“startup”目录中用来存放菜单文件(*.men)和动态库文件(*dll),“application”目录中存放对话框文件(*.dlg)。
(2)编写菜单文件
在Window操作系统的记事本当中编辑写入创建菜单文件的应用程序,其作用是生成如图2所示菜单界面,并保存在工作目录的“E:\zhuliangl\start-up”下,文件名取为pro_design.men。
(3)设置系统环境变量
右键单击“我的电脑”,单击[属性]→[高级]→[环境变量],在系统变量下设置“NXII_USER_DIR”为“E:\zhuliangl”,单击“确定”按钮。
(4)制作用户界面对话框
打开NX,进入到UIStyler模式(主菜单application下的用户界面样式编辑器),对用户交互式对话框界面进行设计,对话框本身属性当中所要设置的参数如图4(a)所示,对话框回叫函数当中所要设置的参数如图4(b)所示。
图4 对话框属性及其回叫函数
对话框设计完成后,其结果保存为用户对话框文件ZHULIANG1.dlg,并保存至刚建立好的application文件夹当中。同时系统提示用户保存了3个文件,然后退出NX/Open UIStyler模式。
(5)编写相应的控制程序
①创建应用程序框架 启动VC++,单击[File]-[New…],创建一个新的工程。因为需要建立一个内部UF程序,所以选择”Win32 Dynamic-Link Library”。为工程起一个名字“canshuhua”,如图5所示,单击[OK]按钮,选择[A simple DLL project],然后单击“完成”按钮,单击“确定”按钮,自动在制定目录下创建canshuhua.c和canshuhua.h应用程序框架。同时将创建对话框文件ZHULIANGl.dlg时生成的ZHULIANG1.h和ZHULIANGl_template.c复制到其目录下;
图5 创建工程
②修改主程序 添加ufsta入口函数,在NX启动的时候就自动执行用户定义的dll程序。该函数用于判别用户在NX中打开的模型是否为指定模型,若不是指定模型则显示“当前显示模型不是主梁部件,不能进行参数化设计”。如果打开的模型是指定模型,则装载对话框文件ZHULIANG1.dlg,并弹出用户对话框图3;
③进一步编写对话框控铡程序 打开程序ZHULIANGl_template.c,对回叫函数中调用对话框命令进行相应的修改编辑;
④编写获取主梁相关参数表达式值的程序 编辑程序ZHULIANGl_template.c,按要求修改获取主梁相关参数表达式构造函数值;
⑤编写用户对话框“应用”按钮回叫函数 用户对话框“应用”按钮回叫函数,用于获取用户在对话框中输入的参数,修改表达式,更新主梁。
用户对话框中的“确定”按钮函数,除了在函数尾部增加UF_MODL_update()函数外,与“应用”按钮回叫函数代码基本相似。
(6)构建主梁参数化模型系统
①设置VC++环境 添加链接库,这些库是调用UF函数的代码在链接时必须的。单击【Project】→【Setting】→【Link】,在Output file name文本框中填入最终编译链接成的DLL文件名,在Object/Library modules文本框中,加入需要的库名。对于NX Open程序,添加库名:libufun.lib、libNXopenint.lib、libvmathpp.lib,如图6所示。
图6 链接库的添加
②加入工程选择“工程|设置|File”菜单项,依次加入文件ZHULIANGl.h和ZHULIANGl_template.c。
③设定编译和链接时头文件和库文件的查找目录在菜单上单击【Tools】→【Options】→【Directories】,在Options对话框中分别为包含文(Includefiles)和库文件(Library filds)设置查找目录,都设置为NX的安装路径,如图7所示。
图7 目录设置
④创建DLL文件编译和链接此工程,若没有错误,则系统会提示生成了动态链接库文件“canshuhua.dll”。然后,把此文件存放在startup文件下。
(7)主梁参数化建模系统验证
编译程序后,启动NX4.0程序,可发现在菜单栏当中多了本文所开发的按钮“PTM27-28多功能起重机主梁参数化设计”,选择此菜单项,出现“主梁1”下拉子菜单,选择“主梁1”则可弹出如图3所示的用户对话框,在对话框中按用户设计要求输入参数,单击“确定”按钮后,系统便根据用户输入的参数生成更新了的主梁模型,从而验证本文所建立的主梁参数化建模系统的有效性。
2 结语
本文以三维设计软件NX为工作平台,以VC++6.0为开发语言,完成了主梁参数化设计系统的开发。该系统具有人机界面友好,使用方便等特点,对提高设计人员的设计效率及加强企业的竞争力具有很强的现实意义。另外对设计标准化、系列化程度较高的产品也有着广泛的应用价值。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/