黄立智,于忠海
(1.上海理工大学 机械工程学院,上海 200093 ;2.上海电机学院 机械学院,上海 201306)
基于NX二次开发液压扳手设计系统开发
黄立智1,于忠海2
(1.上海理工大学 机械工程学院,上海 200093 ;2.上海电机学院 机械学院,上海 201306)
目前对于液压扳手的设计大多采用传统的设计方法,拿到设计任务之后从零开始绘制图纸,设计周期长、效率低。文中提出利用NX二次开发的方法对液压扳手结构进行快速设计并给出程序设计方案。将液压扳手的主要结构系统进行参数化建模,再以Visual Studio 2010为开发平台,利用UG NX/OPEN API 提供的二次开发编程接口,运用VC++编程语言实现对话框以及设计界面的具体功能。完成整个系统的构建,实现液压扳手结构的快速设计。
液压扳手;NX二次开发;UG NX/OPEN API;VC++编程
液压扳手能够准确、可靠地控制预紧力,提高螺栓连接的刚度以及可靠性。但是,通过对企业的调查发现,目前的液压扳手建模大多是传统的建模方法,效率非常低。
NX是CAD、CAM和CAE一体化的软件系统,能够解决企业的大部分设计需求,但是很多专业性、更为具体的问题单靠软件本身很难实现。通过NX本身提供的二次开发工具对NX进行二次开发,可以实现企业的一些特殊需求[1-3]。本文利用 NX/OPEN二次开发工具结合VC++编程语言对NX 8.0软件进行二次开发,实现液压扳手的快速设计。
液压扳手的主要结构由阀组件、反力臂组件、活塞组件、驱动架组件以及壳体组成。(1)阀组件:主要由公阀臂、母阀臂和阀座组成;(2)反力臂组件:主要由反力臂、反力臂锁、反力臂手柄和反力臂弹簧组成;(3)活塞组件:主要由活塞和连杆组成;(4)驱动架组件:主要由驱动架、棘轮、棘爪、棘爪弹簧组成。
目前主要用到的建模方法有几何建模和特征建模两种。几何建模技术虽然在一定程度上满足了设计者的要求,但是它有其固有的缺陷,比如它只关心物体的形状信息,而对于其他方面的信息,如精度、材料等却无能为力[4-5]。于是,由实体建模技术的基础上发展起来了特征建模技术。特征是一个综合概念,它除了包括零件的几何拓扑信息外,还包括了设计和制造的其他信息,如形位公差、材料、表面粗糙度等。根据特征的定义,可以把特征分成以下几类,如图1所示。
图1 特征的分类图
以液压扳手中的反力臂零件为例,其特征建模过程中的主要特征如图2所示。图中的反力臂特征主要表现为图1所示的几何特征,根据特征的分解原则,可将反力臂的几何特征分解如图2所示。
图2 反力臂特征分解图
特征Ⅰ为花键齿,表示反力臂与壳体的安装配合特征。特征Ⅱ、Ⅲ、Ⅳ为反力臂的形状特征,其中特征Ⅱ的设计形状有减少材料等功能。特征Ⅴ用来安装反力臂锁手柄。特征Ⅵ为螺纹通孔,里面安装反力臂锁,用内六角紧定螺钉装配固定。
参数化方法的本质思想包括尺寸驱动、变量驱动和合理性检查[6-8]。NX软件提供了强大的参数化建模方法,为零件设置参数尺寸,用户只需修改尺寸参数即可对零件模型进行修改。以液压扳手的核心零件棘轮为例,建模过程中对其尺寸参数的设置如图3所示。
图3 棘轮参数化尺寸设置
其中确定棘轮的主要尺寸为棘轮外径R、棘轮宽度W2、内花键齿顶圆直径r3、内花键齿根圆直径r2、棘轮齿数n和内花键齿数z,其余尺寸均由这些主要尺寸决定。这样在设计棘轮的时候只需要改变这些主要参数来改变棘轮,对于整个装配体来说,可以设置与棘轮主要参数相关的表达式,从而通过改变装配表达式来改变棘轮尺寸。
以驱动架为例,在创建零部件之间的引用之前,需要对各个零件的尺寸进行命名。图4中示例了将表达式“jilunshi_D”关联到零件“jilun.prt”中的“jilun_D”表达式。关联完成后就能够通过在棘轮中修改表达式来间接修改驱动架的尺寸了。
图4 创建表达式关联示例
当创建初始实例时,需要把实例装配体的全部信息表示出来,才能对实例进行各种操作。在特征建模的基础上,同时运用参数化来控制模型。根据上述分析,本文采用以特征建模和参数化建模相结合的方法,通过对特征参数的相互关联实现液压扳手的参数化建模。
图5 液压扳手结构系统装配图
在系统的装配图中,壳体作为固定零件,这里取壳体上的七个基准参数为装配驱动参数,分别为壳体长(L1)、壳体宽(H1)、花键轴长(H2)、壳体高(H3)、总高(H4)、驱动半径(R1)、支撑半径(R2),如图5所示。
以驱动半径的中心为基准,当壳体高度方向的尺寸发生变化时,整个驱动架组件包括棘轮、棘爪等都将随之发生变化。根据上述7个基准结构参数分别建立相应的表达式,根据各个零部件之间的接口关系,从而建立结构系统的驱动参数到各个模块特征参数之间的映射关系,7个基准驱动参数与模块特征参数之间的映射关系如表1所示。
表1 结构系统驱动参数与各模块特征参数关系
本系统是在NX 8.0的基础上,利用C++在VS2010平台上进行二次开发,使用UG/Open MenuScript工具制作用户菜单。对于对话框的制作可以使用NX自身的UG/Open UIStyler工具。然后编写对话框中的回调函数,生成DLL动态链接库文件并被NX调用实现其功能[9-12],如图6所示。
图6 NX二次开发流程图
制作菜单和对话框之前首先需要创建工作目录,目录包含“startup”和“application”两个子文件夹,然后将环境变量“UGII_USER_DIR”的值设为工作目录[13]。
在startup文件夹中用记事本编写菜单脚本文件startupmenu.men,其中ACTIONS后面为菜单要执行的动作,内容如下:
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
BEFORE UG_HELP
CASCADE_BUTTON CUSTOM_MENU
LABEL 液压扳手
END_OF_BEFORE
MENU CUSTOM_MENU
BUTTON SUB_MENU
LABEL 液压扳手快速设计
ACTIONS wrench.dlg
END_OF_MENU
打开NX中的UIStyler界面编辑模块,编写液压扳手快速设计的对话框界面如图7所示。将保存之后生成的文件放在application文件夹下。
图7 对话框界面
在VS2010中根据NX8 Open向导新建VC++项目。更改上面保存的*.c文件为*.cpp文件并将其和*.h文件添加到工程,删除向导自动生成的*.cpp和*.h文件[14-15]。在WRENCH_ok_cb()回调函数内添加代码获取对话框的值,并赋值给表达式,主要代码如下:
//获取对话框参数
char exps_string[7][20];
int i;
UF_STYLER_item_value_type_t data[7];
data[0].item_attr=UF_STYLER_VALUE;
data[0].item_id=WRENCH_REAL_L1;
UF_STYLER_ask_value(dialog_id,&data[0]);
data[1].item_attr=UF_STYLER_VALUE;
data[1].item_id=WRENCH_REAL_H1;
UF_STYLER_ask_value(dialog_id,&data[1]);
……
for(int j=0;j<7;j++)
{
if(data[j].value.real==0)
{
uc1601("对话框数值不能为零",1);
return(UF_UI_CB_CONTINUE_DIALOG);
}
}
//修改表达式的值
sprintf(exps_string[0],"L1=%f",data[0].value.real);
sprintf(exps_string[1],"H1=%f",data[1].value.real);
sprintf(exps_string[2],"H2=%f",data[2].value.real);
……
for(int j=0;j<7;j++)
{
UF_STYLER_free_value(&data[j]);
}
for(i=0;i<7;i++)
{
UF_MODL_edit_exp(exps_string[i]);
UF_MODL_update();
}
……
把生成的*.dll文件放在application文件夹下,在NX中首先创建模型模板文件,将其保存为只读格式。打开NX进入建模环境,点击菜单按钮加载模板并弹出模型另存为对话框,输入新模型保存的地址,然后输入需要修改的尺寸,点击OK按钮即可生成用户所需模型,如图8所示。
图8 系统运行结果
本文通过三维画图软件NX对液压扳手的具体结构进行参数化建模与特征建模,建立了系统的驱动参数与模块特征之间的映射关系。通过NX/Open提供的二次开发功能,实现液压扳手结构系统参数改变之后的快速设计。本文提出的方法适用于其他机械结构产品,对于企业在液压扳手设计效率的提高上具有一定的参考意义。
[1] 李富生,沈景凤.基于VB.NET的余热锅炉蒸发器参数化设计系统[J].电子科技,2015,28(11):135-142.
[2] 刘奇,林岗.基于Visual Studio 2010的UG二次开发研究[J].计算机应用,2015,34(1):41-46.
[3] 汪年结,刘宇.基于UG二次开发的冰箱结构系统快速设计[J].机械设计与制造工程,2013,42(11):6-9.
[4] 李剑,梅跃松.基于UG二次开发的导弹外形结构参数化设计方法研究[D].北京:北京理工大学,2015.
[5] 张乐林,祝锡晶.基于UG二次开发的参数化建模方法[J].计算机系统应用,2016,25(1):146-149.
[6] 张云周,杨军虎.基于UG的离心叶轮三维软件二次开发[D].兰州:兰州理工大学,2012.
[7] 王振,张秋翀,柳玉起,等.面向自动化设计的拉深筋参数化建模方法[J].锻压技术,2016,41(10):37-42.
[8] 张强.基于法规和人机工程的整车总布置参数化建模方法与应用研究[D].上海:上海交通大学,2014.
[9] Xu Rongzheng.The research on secondary development of parametric system of cylindrical gear reducer based on Pro/E[J].Advances in Mechanical and Electronic Engineering,2012(176):85-90.
[10] 陶小刚,郝博.基于UG NX二次开发的自动装配技术研究[J].先进制造技术,2016,33(4):24-29.
[11] 陈诚,徐诚,罗少敏.基于NX的自动武器数控加工刀具库二次开发[J].机械制造与自动化,2016,45(5):132-134.
[12] 李如忠.支持MFC的NX二次开发向导研究[J].信息技术,2014,35(6):14-19.
[13] 常娟,王成军,刘德仿.基于NX自顶向下的后装压缩式垃圾车设计技术研究[D].合肥:安徽理工大学,2015.
[14] 李明新,李斌.UG NX二次开发在产品图样标准化管理中的应用[J].现代制造工程,2016,40(16):123-127.
[15] 王守鹏,郝万军.基于NX的夹具设计系统的研究与开发[D].长春:吉林大学,2013.
Hydraulic Wrench Design System Based on NX Secondary Development
HUANG Lizhi1, YU Zhonghai2
(1.School of Mechanical Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China;2. School of Mechanical,Shanghai Dianji University,Shanghai 201306,China)
Based on the current design of the hydraulic wrench, most of the traditional design methods, start drawing drawings from scratch after the design task, design cycle is long, low efficiency.The structure of hydraulic wrench is designed rapidly and the design program is given by using the method of UG NX/Open.Firstly, using the parametric modeling method to design the main structural system of hydraulic wrench;Then, with Visual Studio 2010 as the development platform, use the UG NX/Open API method development programming interface, using VC++ programming language to achieve the dialog box and the specific functions of the design interface. Complete the whole system and achieve rapid design of hydraulic wrench structure.
hydraulic wrench;NX secondary development;UG NX/Open API;VC++ programming
2017- 03- 14
上海市自然科学基金(15ZR1417200);上海市教委科研创新重点项目(14ZZ169);上海市闵行区科委产学研项目(2014MH182)
黄立智(1991-),男,硕士研究生。研究方向:智能控制。于忠海(1958-),男,博士,教授。研究方向:数控技术、精密检测与智能控制。
TP 333
A
1007-7820(2018)01-025-04