摘要:本文探讨了利用Pro/toolkit及VisualC++6.0、Access2003为开发工具建立刀具参数化模型库和数据库的过程,所创建的刀具库人机交互友善,便于刀具模型的建立与修改,可以大大提高刀具的设计效率,为盾构刀具标准化、系列化设计提供了有利条件。
关键词:盾构刀具;参数化设计; Pro/toolkit;刀具库
1 前言
近年来,全国城市地铁建设开始升温。目前,在国内约有20多个城市正在建设或筹建自己的轨道交通系统,盾构掘进机技术迅速得到发展。盾构刀具是盾构机的执行者,应根据不同地质情况选用不同类型的刀具及刀具组合,以保证刀盘结构的强度、刚度及开挖效率。目前我国虽然可以制造盾构刀具,但大部分为仿制国外,尤其是盘形滚刀,其工作性能和使用寿命均与发达国家存在一定的差距。
企业为缩短新产品开发周期,几乎所有产品的设计都是改进型设计,大约70%新产品的设计都要重新利用原来的产品模型,参数化设计在这样的背景下应运而生。本研究利用Pro/E二次开发工具Pro/toolkit及VisualC++6.0、Access2003为数据库开发工具,建立刀具参数化模型库和数据库系统,能够快速地再生刀具模型,友好的用户界面,由人机交互输入设计参数,既避免了设计人员繁琐的重复劳动,又可提高设计精度和工作效率,节约了成本,有利于盾构刀具设计水平的进一步提高[1,2]。
2 Pro/toolkit参数化实现的步骤
Pro/toolkit二次开发程序的工作模式分为同步模式(synchronus mode)和异步模式(asynchronous mode)。同步模式又可分为动态链接库(DLL)和多进程(MutliProcess)两种方式:DLL形式在编译并链接到Pro/toolkit库文件后生成一个对象库供Pro/E调用,两者之间的数据交换通过直接的函数调用实现;MutliProcess形式在编译并链接后生成一个独立的可执行单元,运行时作为一个子进程供Pro/E调用,两者之间的数据交换通过内部消息机制实现。本研究Pro/toolkit刀具库二次开发使用同步模式的DLL方式,其参数化实现过程主要分以下几步:
(1)建立参数化三维模型
在零件模式下建立三维模型,设置控制三维模型的设计参数,设计参数有两种:一种是用来控制三维模型形状和拓扑关系的与其他参数无关的驱动参数;另一种是与其他参数相关的非驱动参数。参数化程序设计采用的是第一种设计参数,以驱动三维模型的再生。
(2)菜单栏菜单设计
Pro/E中的大多数命令都是通过菜单发出的,使用Pro/toolkit可以修改并增加Pro/E的菜单结构,设计自己的菜单项。
(3)用Visual C++ 6.0的MFC创建对话框
Visual C++ 6.0向用户提供了一个面向对象、可视化的编程环境,它的MFC封装了大部分Windows API函数,大大简化了用户的编程工作,提高了代码的可重用性,使得用户可以快速地进行软件开发。MFC 对话框充分利用了Visual C++ 开发环境提供的可视化界面设计技术,与UI对话框相比,可以更方便地对界面进行布局、修改和调试。
(4)Pro/toolkit应用程序创建
利用VC提供的程序框架,只用在这个框架中添加必要的函数代码、增加新的CPP源文件以及新的资源文件,才能构成一个完整的Pro/toolkit应用程序体系。程序主要有两方面:一是在与工程文件同名的CPP文件中给出程序的入口函数和终止函数,这相当于C程序中的主函数,一般在这两个函数之间设置用户的交互接口,如:设计菜单调用对话框或者直接调用所需的函数等。二是根据功能需要设计应用程序主体部分,主要是调用Pro/E的内部函数或用户自定义函数来完成用户所需功能。
(5)应用程序注册
Pro/toolkit应用程序有两种注册方式,一种为自动注册方式,另一种为手动注册方式,本文采用手动注册方式,即在运行Pro/E后,在Tools菜单下选择Auxiliary Applications菜单项,然后在对话框中选取Register,指向所要注册的注册文件,单击Start按扭便可以启动应用程序。
(6)应用程序的运行
如果以上各步成功完成,可以在Pro/E环境看到应用程序的交互界面,执行相关操作后便会得到应用程序的结果。如果遇到错误或与设计初衷不相符的问题,必须返回前几步检查[3]。
Y N N Y 基准零件库 设计参数更新 模型更新 新模型 满足要求否 结束 用户交互 开始 读取三维零件参数 检索参数值 获取参数值 修改设计参数 满足约束否 提 示 信 息 3 参数化刀具库驱动程序设计流程
图1刀具参数化程序设计流程图
图1是刀具参数化程序设计的流程图,主程序的设计主要是围绕此框图来编程的。首先程序从基准零件库中调入参数化设计的刀具零件的三维原始模型,读入零件的特征信息和各参数
之间的关系,获取主参数值,并用参数值来初始化用户交互界面的设计参数,用户可以重新修改这些设计参数,确定后,程序接受这些设计参数,传递给与零件中与之相对应的参数,并用零件的各种约束来检验是否符合其成型要求,给出提示信息,满足条件时,更新零件全部参数,再生成零件新模型,显示给用户,用户根据自己需求判定是否满意,不满意时,重新调出交互界面,修改设计参数,满意时存储新模型,退出程序[4,5]。
4 参数化刀具库系统实现过程
(1)刀具模型样板的设计
本程序需要设计滚刀(包括单刃正滚刀、边滚刀、仿形刀、双刃正滚刀、双刃中心刀)和齿刀(包括切刀、弧形刮刀、正齿刀、中心齿刀)模型样板。具体操作是在截面草绘和零件模型中,添加那些相关性参数的驱动关系式,比如刀圈外径,刀圈内径等参数,使这些参数与设计参数关联。
(2)刀具库系统的开发策略
刀具模型库和数据库系统的开发是基于Pro/E 内部的二次开发语言Pro/toolkit 进行的,通过调用其内部函数,在Pro/E菜单栏Tools菜单的右侧添加新菜单“刀具库”,如图2所示。在刀具库菜单下嵌套一个二级菜单,按扭设置为 “提取刀具”、“添加刀具”。具体操作是通过Visual C++语言和Pro/toolkit接口,将完成的刀具三维图形做成一个插件的形式插入到Pro/E的菜单栏中,当按下按钮“添加刀具”时调用刀具添加对话框,对话框显示两大刀具种类滚刀和齿刀,滚刀和齿刀又分别以组合对话框显示它们的各种刀具,当你选择一种刀具后,函数响应弹出输入参数对话框,用户可以在对话框中输入合适的参数,确定后,程序接受这些设计参数,传递给与零件中与之相对应的参数,并用零件的各种约束来检验是否符合其成型要求,给出提示信息,满足条件时,更新零件全部参数,再生零件新模型,显示给用户,用户根据自己需求判定是否满意,不 图2“刀具库”菜单的添加