满意时,重新调出交互界面修改设计参数,满意时存储新模型,退出程序。图3所示为盘形滚刀的添加。在提取刀具库参数时则是采 用了Visual C++的MFC ODBC数据存取技术来实现Access数据库与 Pro/E的相连, 应用程序先调用ODBC访问ODBC驱动器管理器,ODBC 驱动器管理器再调用数据库ODBC驱动器,通过数据库ODBC驱动器访问数据库数据,并把数据读入表格,比较清晰地显现出刀具的参数(图4所示为弧行刮刀的提取),且可以按照已建好的数据库数据生成实体模型,以供在虚拟样机中调用和进行刀具的相关受力分析。MFC ODBC并可以对刀具数据库中的内容方便的实现添加、修改、删除等操作,从而极大地减少了软件开发的工作量,缩短了开发周期,提高了效率。
图3 刀具的添加
图4 刀具的提取
(3)刀具库对话框的创建过程
创建对话框的一般过程为:
①用应用程序向导AppWizard 创建Pro/toolkit 应用程序基本框架。
②在由AppWizard 创建的且与工程文件名同名的CPP文件中添加user_initializ( )和user_terminate( )函数。如果需要通过Pro/E的菜单项启动对话框,则可以在user initialize () 中添加菜单定义和菜单动作函数设置。刀具库菜单定义和动作函数部分主要语句如下:
ProStringToWstring(UserMsg, "menusmsg.txt");
ProMessageDisplay (UserMsg, "USER %0s", "新菜单启动。");
status=ProMenubarMenuAdd ("UserMenu", "新菜单","Utilities", PRO_B_TRUE, UserMsg);
ProCmdActionAdd("命令一",(uiCmdCmdActFn)func1,
uiCmdPrioDefault,TestAccessDefault,PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);
ProCmdActionAdd("命令二",(uiCmdCmdActFn)func2,
uiCmdPrioDefault,TestAccessDefault,PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);
ProMenubarmenuPushbuttonAdd("UserMenu", " 按钮一", "按钮一","按扭示例一", NULL,PRO_B_TRUE, cmd_id1, UserMsg);
ProMenubarmenuPushbuttonAdd("UserMenu", " 按钮二", "按钮二","按钮示例二", NULL,PRO_B_TRUE, cmd_id2, UserMsg);
③创建对话框,在Visual C++ 集成开发环境选择“Insert”菜单中的“Resouce”菜单项,显示出“Insert Resource”对话框,选择资源类型为Dialog ,单击“New”按钮生成新的对话框。
④用ClassWizard 创建对话框类,自动生成Cdialog 派生类定义的头文件和相应的实现文件。本文完成CDialog派生类的定义,并生成相应的头文件daojuku.h和实现文件daojuku.cpp。
⑤创建和显示对话框,该程序代码在菜单动作函数中设计。
(4)生成Pro/toolkit 应用程序
具体的源程序代码比较繁复,限于篇幅,不在赘述,本文主要介绍比较关键的参数化驱动添加刀具程序(以单刃滚刀添加为例)。参数化驱动添加单刃滚刀部分主要程序语句如下:
ProMdlRetrieve(path, PRO_MDL_PART, &part);
ProMdlIdGet(part,&i);
ProModelitemInit(part,i,PRO_PART,&feature);
ProParameterInit(&feature, dim1, ¶m1);
ProParameterInit(&feature, dim2, ¶m2);
ProParameterInit(&feature, dim3, ¶m3);
ProParameterInit(&feature, dim4, ¶m4);
value1.type=PRO_PARAM_DOUBLE;
value1.value.d_val=m_pBoxgun->waijing;
value2.type=PRO_PARAM_DOUBLE;
value2.value.d_val=m_pBoxgun->neijing;
value3.type=PRO_PARAM_DOUBLE;
value3.value.d_val=m_pBoxgun->kuandu;
value4.type=PRO_PARAM_DOUBLE;
value4.value.d_val=m_pBoxgun->renjiao;
ProParameterValueSet(¶m1, &value1);
ProParameterValueSet(¶m2, &value2);
ProParameterValueSet(¶m3, &value3);
ProParameterValueSet(¶m4, &value4);
ProSolidRegenerate((ProSolid)part, PRO_B_TRUE);
ProMdlDisplay(part);
5 结束语
开发的盾构刀具参数化模型库和数据库系统可以大大提高刀具设计效率,为盾构刀具产品的标准化、系列化设计提供了有利条件,在实际应用中,设计人员可以借助上述方法在同类产品的开发中推广应用。
参考文献
[1] 王强,赵喜荣,刘星安.盾构刀盘虚拟样机优化设计与研究[J]. 矿山机械,2006,(12):14-16.
[2] 王强,赵喜荣,刘星安等.基于Pro/E与ANSYS的盾构刀盘虚拟样机优化设计系统开发[J].矿山机械.
[3] 李世国.Pro/toolkit程序设计[M].北京: 机械工业出版社, 2003,10-342.
[4] 郭新玲,李韶杰,邱尚高.MFC类库在Pro/E二次开发中的应用[J].现代制造工程,2004,(10):49-51.
[5] 陈鹏,曾建谋等.基于Pro/toolkit二次开发的参数化程序设计[J].机电工程技术,2005,(6):78-81