徐鹏,赵秀艳,张开兴,王丽,刘贤喜*
1.山东农业大学机械与电子工程学院,山东泰安271018
2.山东农业大学信息科学与工程学院,山东泰安271018
基于Pro/Toolkit的膜片弹簧离合器参数化系统的设计
徐鹏1,赵秀艳2,张开兴1,王丽1,刘贤喜1*
1.山东农业大学机械与电子工程学院,山东泰安271018
2.山东农业大学信息科学与工程学院,山东泰安271018
传统的机械产品开发过程,从设计到最终成型需要反复修改,使产品开发的周期长,成本高。而建立一个参数化系统,利用人机交互的方式对产品尺寸进行参数化处理,可以大大提高设计的效率,缩短设计周期。本文主要讲述了利用Pro/Toolkit的二次开发功能,利用VC作为开发工具,建立一个以膜片弹簧离合器各零件为主的参数化系统的具体实现过程。
Pro/Toolkit;二次开发;参数化设计;离合器
Pro/Engineer是由美国PTC公司开发的三维CAD/CAM系统,它具有基于特征、参数化、全相关等特点,被广泛的应用于造型设计、模具设计、加工处理、机构分析、有限元分析以及相关数据库管理系统等多个领域。
Pro/E为用户提供了多种形式的二次开发工具,常用的有:族表(Family Table)、用户自定义特征(UDF)、Pro/Program、J-Link和Pro/Toolkit等。其中Pro/Toolkit是基于C语言的功能强大的开发工具,用户通过编译C程序代码扩充Pro/E的系统功能,从而满足用户的特殊要求。[1~2]
本文主要以膜片弹簧离合器为例,利用Pro/Toolkit的二次开发功能,使用VC语言编写代码,用户通过参数化界面输入尺寸参数,实现对膜片弹簧离合器各零部件的快速设计,从而缩短设计周期,提高设计质量。下文中叙述实现过程主要以离合器中的压盘为例,其他零件参数化过程与压盘相似。膜片弹簧离合器模型如图1所示。
基于Pro/Toolkit的参数化设计有两种方法,其一是应用特征描述法,利用Pro/Toolkit提供的底层函数完成特征建模,并且建立人机对话框,从而实现模型的参数化设计,但这一方法过程繁琐,且不易生成结构复杂的三维模型;另外一种是采用模型与程序控制相结合的方法,首先完成三维模型的创建,然后利用Pro/E的关系和参数功能建立设计参数,由Pro/Toolkit应用程序检索出这些设计参数,并提供参数的编辑功能和根据新参数实现三维模型再生的功能,这种方法编程相对简单,且可以生成复杂的三维模型。本文使用方法二实现三维模型的参数化设计,流程如图2所示[3]
图1 膜片弹簧离合器模型爆炸图Fig.1 The explosive view of diaphragm spring clutch model
图2 参数化设计流程图Fig.2 The flow chart of parametric design
3.1零件模板的建立
建立具有尺寸驱动的膜片弹簧离合器各零件的三维模板是实现本系统程序设计的基础。Pro/E采用的是基于特征的方式来实现对三维模型的构建,建立参数化零件模板的基本过程是:首先创建三维模型;然后利用Pro/E工具栏中的参数功能,输入参数名称并赋予初值;最后用工具栏中关系按钮的功能,添加合理的参数驱动关系,将驱动参数与非驱动参数关联起来,如此便实现了参数化零件模板的创立。以膜片弹簧离合器的压盘为例,实现添加尺寸驱动的操作如图3所示。
图3 膜片弹簧离合器压盘参数关联操作过程图Fig.3 The parameter correlation operation process of pressure plate
3.2菜单设计
本文采用的菜单设计采用辅助菜单(.aux文件)的方式,即在Pro/E原本的菜单基础上添加菜单按钮。添加菜单的大体过程是:1.编写窗口信息文件;2.使用Pro/Toolkit中的函数编写程序;3.给菜单按钮设置动作函数;4.注册运行应用程序。
窗口信息文件是一种ASII码文件,必须以纯文本的形式保存,用来定义菜单项,菜单项提示等信息。由若干个<提示信息组>组成,每个信息提示组由<提示信息的关键字>、<提示信息的内容>和两行<空格>组成。[4]
本文中所提及的膜片弹簧离合器的参数化是联合收割机底盘参数化系统的一部分,所以下拉菜单的编写如下:
extern"C"int user_initialize()
{
ProError status;
ProFileName message_file;
uiCmdCmdId cmd_id1;
ProStringToWstring(message_file,"Message.txt");
status=ProMenubarMenuAdd("Parametric","Parametric","Utilities",PRO_B_TRUE,message_file);//一级菜单
status=ProMenubarmenuMenuAdd("Parametric","Transmission","Transmission",NULL,PRO_B_TRUE,message_file);
//二级菜单
status=ProMenubarmenuMenuAdd("Transmission","liheqi","liheqi",NULL,PRO_B_TRUE,message_file);
//三级菜单
status=
ProCmdActionAdd("Part1Design",(uiCmdCmdActFn)Part1Design,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,
PRO_B_TRUE,&cmd_id1);//四级菜单
return status;
}
extern"C"void user_terminate()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
}
完成上述步骤后,编写注册文件protk.dat,启动Pro/E,在工具栏中的辅助应用程序选项中注册该protk.dat文件,启动应用程序。完成启动后菜单界面如图4所示
图4 菜单按钮界面Fig.4 Menu button interface
图5 膜片弹簧离合器压盘参数化界面Fig.5 The parametric interface of pressure plate
3.3可视化界面设计
利用Pro/Toolkit提供的对话框技术,可以设计出风格与Pro/E本身具有的对话框类似的人机交互界面。界面的设计主要涉及两个方面:一是按界面的布局编写资源文件;二是针对对话框的功能编写相应的控制程序。资源文件是用来定义和描述对话框外观和属性的文件,其主要内容包括对话框各组成部分元件的属性定义和布局形式;控制程序用来在Pro/E环境中装入对话框资源、显示对话框、设置动作和退出对话框等。本文中用到的资源文件和控制程序均在VC程序中编写完成。
创建对话框的基本步骤为:1.调用ProUIDialog()函数读取对话框资源文件,以便将对话框调入内存;2.调用对话框各元件动作设置函数,设置指定元件的动作函数;3.调用ProUIDialogActivate函数显示和激活对话框,接受用户输入;4.调用ProUIDialogDestroy函数关闭对话框,释放对话框所占的内存[5~7]。
以膜片弹簧离合器压盘为例,创建的参数化设计界面的效果图(图5)。
3.4界面文本框参数与模型参数关联
调用Pro/Toolkit中提供的C程序函数库中的的函数语句,将文本框元件中输入的参数与模型各尺寸驱动的参数关联起来,实现模型的获取、显示及参数化再生等功能。实现过程如下:
int i;
ProMdl part;
ProModelitem feature;
ProParameter p1;//定义参数
ProParamvalue v1;//定义参数
ProMdlRetrieve(L"E:\test\ProeTest\Debug\模型.prt",PRO_MDL_PART,&part);//模型地址
ProMdlIdGet(part,&i);//获得模型句柄
此汽车各轮制动力和已达标,因其是前轮左轮制动力偏小,跑偏趋势是向右,后轮是右轮制动力偏小,跑偏趋势是向左,这样,前后轮跑偏趋势互相抵消了。本人认为,如上述超标车,因其制动力小的轮的制动力数据已超过轴重的30%,而制动力差为非同测车轮,应按合格车对待。
ProMdlDisplay(part);
ProModelitemInit(part,i,PRO_PART,&feature);
ProParameterInit(&feature,L"L1",&p1);//将模型尺寸与参数关联
v1.type=PRO_PARAM_DOUBLE;//定义参数类型
UpdateData();
v1.value.d_val=文本框1;
ProParameterValueSet(&p1,&v1);//文本框输入值与参数关联
ProSolidRegenerate((ProSolid)part,PRO_B_TRUE);//模型实现再生
}
3.5参数化设计演示
程序设计完成后,在Pro/E的辅助应用程序中选择相应的注册文件点击启动程序,就可以加载运行。以上文中提到的压盘为例,模型参数化的演示效果如图6:
图6 参数化设计演示效果Fig.6 The parametric design presentation of pressure plate
本文主要介绍了以膜片弹簧离合器为例,利用Pro/Toolkit实现参数化设计的过程。通过输入参数的改变,可以实现不同尺寸的离合器各零部件的快速设计。通过实践证明,此方法实用并且有效,对包括膜片弹簧离合器在内的收割机底盘零部件参数化系统的建立具有重要意义。可以推广到其他机械零件和产品的三维参数化系统设计中去。
[1]林清安.Pro/Engineer2001零件设计高级篇[M].上篇.北京:清华大学出版社,2003
[2]李世国.Pro/Toolkit程序设计[M].北京:机械工业出版社,2003
[3]钟山,李继荣.基于Pro/Toolkit二次开发的齿轮参数化CAD系统[J].梧州学院学报,2007,17(3):31-35
[4]沈萌红,关金生.基于Pro/E的三维参数化零件库的开发[J].现代设计与制造,2003,32(7):115-118
[5]孟祥旭,徐延宁.参数化设计研究[J].计算机辅助设计与图形学学报,2002,4(11):1086-1090
[6]鲁泳,廖永和.零件库应用等级模型的研究与实现[J].中国制造业信息化,2006,35(1):48-52
[7]韩国才,张锂.基于Pro/E的机械零件特征模型库参数化设计[J].制造业自动化,2001,30(1):14-15
The Design of Diaphragm Spring Clutch Parametric System Based on Pro/Toolkit
XU Peng1,ZHAO Xiu-yan2,ZHANG Kai-xing1,WANG Li1,LIU Xian-xi1*
1.College of Mechanical and Electronic Engineering,Shandong Agricultural University,Tai'an271018,China
2.College of Information Science and Engineering,Shandong Agricultural University,Tai'an271018,China
The traditional mechanical product development process,from design to finalize requires repeated modifications, makes a long product development cycle and a high cost.Establish a parameterized system,use the interactive way to product dimensions parameterization processing,can greatly improve the design efficiency,shorten the design cycle.This article is mainly about use the secondary development function of Pro/Toolkit,and use VC as a development tool,to establish a parametric system about the parts of diaphragm spring clutch.
Pro/Toolkit;secondary development;parametric design;clutch
TP311.5
A
1000-2324(2014)04-0541-04
2013-02-11
2013-02-22
“十二五”国家科技支撑重大项目“农机专业底盘数字化设计与复杂件精益制造”的子课题“农机专业底盘数字化设计技术研究与示范”(2011BAD20B01)
徐鹏(1987-),男,硕士研究生,专业方向为现代设计方法与应用.E-mail:409573465@qq.com
*通讯作者:Author for correspondence.E-mail:13515486668@139.com