【摘 要】本文介绍了以C,C++语言为工具,在Pro/ENGINEER上利用Pro/TOOLKIT进行药筒快速建模二次开发的方法,并给出了药筒快速建模快速设计应用实例。
【关键词】 注册文件 药筒 特征 快速建模
1 引言
传统的药筒设计是一个相当烦琐的过程,设计人员被动地往返于公式和手册之间,借助计算器一点一点地计算。这当中有任何失误都必须从头再来,即使计算过程中没有任何失误,当计算结果不合适时,一切也必须从头再来。一个熟练的设计人员,在药筒设计过程中,简单的计算一遍就需要一个星期以上时间。如何使这一设计过程变的简单、直观,对设计人员来说十分迫切。针对这一问题,本文给出了基于Pro/ENGINEER快速建模并结合炮用发射药筒理论设计的约束条件,给出了快速设计的方法及实例。
2 炮用发射药筒结构分析及建模的约束方程
药筒的设计与火炮、弹丸及装药设计密切相关。本文以配制式火炮为例。药筒的设计主要受药室形状及弹丸结构限制[1]。
图2 方程约束网络图
图4 药筒设计菜单系统
(2)模型的接口程序和实现程序。以下为药筒快速建模程序入口和出口,它注册了菜单文件以及响应函数。
user_initialize()
{ int menu_id ,err;
ProMenuFileRegister("PART","part. mnu",&menu_id);
ProMenuAuxfileRegister("PART","part.aux",&menu_id);
err=ProMenubuttonActionSet("part","_YaotongDesign",(ProMenubuttonAction)UserYaotongSystem,NULL,0);
return(0); }
void user_terminate(){} ;
以下为药筒建模实现程序,它定义了UDF文件及驱动参数等。
UserYaotongCreate(){ ......
ProStringToWstring(data.name,"yaotongudf.gph"); 指定UDF文件
data.n_var_dims=15;
data.var_dims=(Pro_udf_var_dim*)calloc(15,sizeof(Pro_udf_var_dim));
ProStringToWstring(data.var_dims[0].name,"YTJ_zg"); 变量赋值
data.var_dims[0].type=PROUDFVAR_DIM;
data.var_dims[0].value=_YTJ_zg;
......
data.n_references=0; 指定参考基准
data.dependency=PROUDFDEP_INDEPENDENT; 指定模型独立性
prodb_create_group(p_model,&data,NULL,NULL,0); 创建模型
ProWindowRepaint(PRO_VALUE_UNUSED); 显示模型
free(data.var_dims);
return(0); }
通过以上方法产生的模型如图5所示。
图6 药筒几何参数输入界面
在药筒模型生成以后,可以通过以下两种方法修改编辑药筒的尺寸:(1)可以直接用鼠标双击需要修改的特征,选中需要修改的尺寸即可进行交互式尺寸修改和编辑。修改后的效果可以迅速从模型上反映出来。(2)通过几何参数输入对话框输入要修改结构的尺寸数值来完成对尺寸的修改。参数输入对话框如图6所示,直接输入需要修改参数的新数值即可。
5 结束语
利用快速建模技术,可以大幅度提高设计效率,减轻设计人员的劳动强度,缩短产品设计周期,可使产品的设计变的直观、轻松,可在产品设计的初期易于发现设计缺陷。产品可以方便地通过PDM系统进行管理。
参考文献
1 弹药技术丛书编辑部. 黄铜药筒设计与制造实践.第1版.北京:兵器工业出版社,1993
2 C. Ou , C. W. CHANG. Developing an integrated Intelligent Framework to Support an Engineering Change Process for an Axial Piston Pump. Advanced Manufacture Technology, 3, pp. 345~355,1999