基于UG二次开发的罗茨转子参数化设计
2013-07-13范蓉
范 蓉
(天津市第一商业学校,天津 300180)
随着机械工业技术的不断进步,包括罗茨鼓风机、罗茨压缩机、罗茨流量计和罗茨真空泵等设备由于其优良的工作特性,使其在现代工业中得到广泛的应用。而相关设备的运行状态在很大程度上取决于其最关键的核心部件——罗茨转子。通常使用的转子有双叶和多叶等不同的形式,型线有圆弧齿形、渐开线齿形和摆线齿型等[1]。罗茨转子的设计对于设备的性能起到至关重要的作用。由于罗茨转子的线形比较复杂,并且其设计的精度及合理性决定了相关设备的气密性、流量等诸多工作参数,即便在借助UG这种功能强大的软件情况下,其设计周期也通常较长。根据罗茨转子的工作要求开发一款符合其设计特点的专业化和个性化的工具,将能够在很大程度上拓展软件的应用范围,提高设计效率,满足设计人员的各种特殊需求,以达到事半功倍的效果。本文利用UG软件的二次开发功能,就实现罗茨转子的参数化设计提出一种新的设计方法。
一、定制菜单及用户对话框
UG NX中的菜单是利用Menu Script编写的,使用UG/Open二次开发软件包中的 Menu Script脚本语言可以自由、方便的添加、删除和定制菜单[2],以及改变菜单的显示文本或响应行为等。菜单脚本文件的扩展名为*.men(文本文件),另外,此功能还可以用来定制工具条,其扩展名为*.thr(文本文件)。
在UG的安装目录中找到custom_dirs.dat文件,用记事本打开,并在最后一行输入D:\Program Files\UGS\UGAPI\startup,完成UG开发目录的注册[3]。利用Windows中的记事本建立脚本文件,并将其命名为roots,并保存在指定的目录中,如:D:\Program Files\UGS\UGAPI\startup。定制完成的用户界面如图1所示。其脚本文件代码如下:
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
!创建一级菜单
BEFORE UG_HELP
CASCADE_BUTTON MENU_ID_1
LABEL罗茨机构
图1
END_OF_BEFORE
!创建二级菜单
MENU MENU_ID_1
CASCADE_BUTTON MENU_ID_1_1
LABEL转子设计
BUTTONMENU_ID_1_2
LABEL运动仿真
SEPARATOR
BUTTONMENU_ID_1_3
LABEL技术手册
END_OF_MENU
!创建三级菜单
MENU MENU_ID_1_1
BUTTONMENU_ID_1_1_1
LABEL双叶转子
ACTIONS LC_Block.dlg
BUTTONMENU_ID_1_1_2
LABEL三叶转子
END_OF_MENU
UIStyler作为UG NX/OPEN二次开发包中用于开发用户界面的工具,它提供了全部NX的标准可视控件。用户可以根据需要添加各种控件,制作用户交互界面。完成后会自动生成扩展名为*.dlg、*_template.c和*_template.h三个文件,第一个是对话框资源文件,后两个是UF的C源码模板文件。将*.dlg、*_template.c和*_template.h文件添加到工程中,然后在向C源码模板中的各回调函数框架内添加实现用户功能的代码,便可编译、链接动态链接库*.dlg文件[4]。
打开用户界面编辑器,进入UIStyler可视化界面。在对话框标题中输入“创建罗茨转子”。在回调界面内,在取消和确定的后面输入“cancel_cb”和“ok_cb”。依次添加实数输入框,在标签中输入“转子回转直径”、“中心距”和“压力角”。
制作完成的用户对话框如图2所示。保存文件至D:\Program Files\UGS\UGAPI\application目录中,文件名为LC_Block.dlg。
图2
图3
二、创建程序框架
1.建立数学模型
下面以双叶罗茨转子为例说明参数化建模的过程。双叶罗茨渐开线转子在工作时的相位角为90°,既在1/4圆内相互啮合,并互不干涉[5]。
如图3所示,转子截面轮廓线A-B段为圆弧,B-C段为渐开线,C-D段为圆弧。
设转子回转直径为D,中心距为L,节圆压力角为α,则有
其中渐开线的标准方程为
式中β为渐开线的展开角,图中的渐开线是以直线O-E为水平轴绘制的,所以还需将利用上式绘制的渐开线沿顺时针方向旋转一个角度φ,对应的旋转方程为
实现旋转有多种方法,可以先完成曲线的绘制,再旋转,也可以先旋转坐标系在绘制曲线。由于渐开线的公式比较复杂,若再代入旋转方程,则会造成后期程序的编制比较繁琐,并且UG OPEN提供了比较方便的坐标系功能,所以本文利用坐标系的旋转功能实现渐开线的绘制工作。
启动VC6.0,创建Win32Dynamic Link Library工程。保存名称为LC_Block。为了在链接时调用UF函数的代码,在Output file name文本框中填入最终编译链接成的DLL文件名,在Object/Library modules文本框中加入需要的libufun.lib、libugopenint.lib和libvmathpp.lib库名。将前面保存的“LC_Block.h”和“LC_Block_template.c”复制到“LC_Block”工程文件目录内,并把这两个文件加入工程。打开“LC_Block_template.cpp”文件,在文件开始编译文件头命令处把#include<LC_Block.h>修改成#include“LC_Block.h”,并添加到#include<uf_modle.h>中[6]。由于需要调用生成LC_Block的 UF函数,所以要找到入口函数的定义,将条件编译宏屏蔽:
2.利用VC编程
在LC_Block_template.cpp文件中,将用户输入的数值传递到定义的全局变量中去,并检查数值是否符合要求。部分代码如下所示:
完成上述初始化、属性设置及赋值工作后,便可以根据已有数学模型编制转子型线的程序。渐开线的部分关键程序如下:
根据数学模型很容易得出两处圆弧的半径,再利用函数UF_CURVE_creat_acr便可以画出两个圆弧。接下来,可以利用镜像功能得到完整的封闭轮廓。至此,便完成了罗茨转子型线的绘制。运用函数UF_NULLSIGN创建拉伸特征。
最后对编辑完成的程序进行编译,再链接程序,则生成可执行的动态链接库文件。将此动态链接文件放入D:\Program Files\UGS\UGAPI\startup目录中,该文件将自动加载至UG程序中。
三、交互式绘图
在UG的菜单栏中点击【罗茨机构】,依次在下拉菜单中选择【转子设计】,【双叶转子】。弹出创建罗茨转子对话框,输入相应的设计参数,便可自动生成如图4所示的实体模型。
图4
单一的转子模型对于机构设计来讲是不够的。利用UG/OPEN的装配API可以对转子进行装配操作。结合UG的分析功能,还可以进一步检查相互啮合的两个转子之间的配合间隙及干涉情况,显示干涉区域及生成运动分析图表。
四、结论
以罗茨机构为基础的各种通用设备在科学技术高速发展的今天在机械制造、石油、电力、冶金、化工和食品加工等行业都有着极为广泛的应用。作为核心部件的罗茨转子的设计及加工水平直接影响着相关设备的各项工作性能。根据罗茨转子的结构特点及其设计要求,运用UG/OPEN二次开发工具和Visual C开发的罗茨转子设计系统,能够方便、快速的实现转子的参数化建模。与传统设计过程相比,大大提高了工作效率,并能够避免因人为原因造成的设计缺陷。其中的运动仿真模块还能够直观的验证罗茨转子在啮合状态下的工作情况,并为转子的优化设计提供了可靠的理论依据。
[1]刘林林,初嘉鹏,胡建中.罗茨真空泵转子型线的研究[J].机械设计,2007,(03).
[2]莫蓉,常智勇,刘红军,等.图表详解UG NX二次开发[M].北京:电子工业出版社2008.
[3]黄勇.UG/Open API、MFC和COM开发实例精解[M].北京:国防工业出版社2009.
[4]黄勇,张博林,薛运锋.UG二次开发与数据库应用[M].北京:电子工业出版社,2008.
[5]杨晓斌.罗茨泵转子简明设计[J].机械工程师,2010,(04).
[6]张王全.基于UG的弧面分度凸轮机构的参数化设计及仿真分析[D].青岛大学学位论文,2004.