基于Pro/E平台的CAD/CAPP/CAM系统集成化研究
扫描二维码
随时随地手机看文章
Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E是美国参数化公司(PTC)研制的CAD/CAM软件包,Pro/TOOLKIT是PTC公司专门提供的Pro/E二次开发工具。在 Pro/TOOLKIT中,PTC向用户提供了大型的C语言函数库,通过调用这些底层函数,用户能方便、安全地访问Pro/E的数据库及内部应用程序,进行二次开发,扩展一些特定的功能。
1 系统总体结构设计
从功能而言,系统各模块只是对Pro/E的主要功能利用面向对象的思想所作的进一步封装,其目的在于简化人机交互的次数,使系统更易于操作和学习。各模块间的相互关系如图1所示。
图1 系统总体结构图
所有模块均为各自独立的Pro/TOOLKIT应用程序,模块间的通讯由Pro/TOOLKIT提供的接口函数实现,相关参数的传递利用Pro/TOOLKIT函数和相关指针实现。
整个零件的设计和加工信息都存储在Pro/E的数据库中,由于Pro/E是基于单一数据库的软件系统,因此在任一处的修改都将引起所有相关参数的变化,这使模型的修改非常方便。
当系统在仿真环节发现问题时,用户可以通过修改工艺设置或直接修改产品几何模型,然后再经仿真环节验证设计的合理性,在加工轨迹仿真结果符合设计要求之后,即可经后处理模块生成NC加工代码。
2 各功能模块的设计及其实现
2.1 造型模块
该模块的功能是实现零件的结构设计,其目标在于生成一个存储零件整体信息的文件。
该模块的核心是建立特征库。首先依据生产的实际情况,按照GT技术的方法对零件的结构及加工条件进行分析和归纳,最终确定特征的种类和数量。特征的分类如图2所示。
图2 特征分类图
几何特征的建立是采用Pro/E提供的用户自定义特征功能实现的 [2,3]。对每个几何特征的建立过程是类似的,即首先手工构建产品模型,将要创建的特征附着在模型的上面,然后选择菜单项进行几何特征的创建。一个几何特征的定义中要包括参考基准、可变尺寸及可变尺寸的记号,通过在程序中修改可变参数的数值,即可获得所需要的特征衍生件,在建模的过程中也可利用鼠标点选标注尺寸,利用尺寸驱动技术修改这些参数。对非几何特征则以特征码的方式存放,最后将所有的特征以相同的格式(.gph)存放在同一根目录下,形成特征库 (UDFLibrary),作为造型的基本工具。
在应用中,首先利用特征库进行几何型的建立,然后根据对各几何特征加工要求的不同,将非几何特征附加到各特征上,从而形成对零件信息的完整描述。在几何特征和非几何特征之间通过指针的方式实现通信。
模型的建立采用与Pro/E系统建模思想完全吻合的特征拼装技术。首先选择几何模型的主特征,并以其作为整个模型的父特征,其余特征依次从特征库中选取并附加到主特征上,形成模型的基本形状;然后对各特征的可变尺寸根据设计要求进行修改,完成零件的几何模型的建立;最后,实现非几何特征的附加。方法是:1)用鼠标选取定制菜单中“添加非几何特征”项,弹出设置对话框并将其固定在桌面上;2)依次用鼠标选取几何特征,使它的相关指针项指向对话框;3)对对话框中各项参数进行赋值,这个过程也即对选中特征相关参数的赋值。至此,零件的建模工作结束,将所有的设置以文件的方式存放在指定位置,作为 CAPP部分的输入参数。
2.2 工艺处理模块及加工仿真
工艺处理模块的主要功能是CAM对系统加工参数的自动获取,其目标是在加工仿真完成后生成刀位数据文件,以其作为后处理的输入。其基本构成及相互关系如图3所示。
图3 工艺处理模块框图
显然,制造模型的建立是整个工作的起点,首先制造模型建立模块通过自身的指针函数读取造型模块所产生的文件,然后根据毛坯选择规则库的相关规则自动从毛坯库中选取毛坯,并自动完成制造模型的建立,从而实现了制造模型建立的完全自动化操作。
工艺规划为该部分的核心,也是整个二次开发的难点所在。鉴于Pro/E系统本身缺乏CAPP的信息集成,用户对各加工特征的设定、加工方法的选择、刀具的选择、切削参数的设定等均需人机交互完成,这些操作对操作人员的要求高、交互复杂,是限制Pro/E的CAM功能广泛应用的主要原因之一,为此,系统提出了如下的解决方案。
首先用交互的方式输入工艺装备信息,如夹具、机床信息等。然后进入推理环节,推理步骤为:1)读取造型文件,根据针对每个特征所建立的工艺推理规则自动产生每个特征加工的工序;2)结合制造模型的输出信息,自动对所有特征的加工工序进行整合和排序,生成整个零件加工的刀位文件。其中,在推理环节完成粗加工、半精加工、精加工等各工序的加工参数、刀具选择、切削参数的确定,在排序过程中确定加工的退刀面、走刀方式和进退刀方式、走刀次数等。将推理的结果输入Pro/NC CHECK模块进行刀具轨迹的仿真,以检查设置是否合理,是否出现干涉等情况。用户可以通过修改几何模型或修改加工参数的设置使仿真结果更符合设计要求。在仿真结果满足加工要求后,即生成最终的刀位文件。
2.3 后处理
利用Pro/E的后处理功能模块,将刀位文件转化为机床能够识别的NC代码。
3 用户界面的开发
因为Pro/E一直是以工作站的UNIX作为开发和使用环境,所以界面风格更类似于XWINDOWS,而不像AutoCAD那样与Windows 风格完全一致,同时Pro/E提供的对话框控件也非常有限。为此,系统采用VC++6.0的MFC类库对用户界面进行二次开发[1,3],同时也利用 VC++开发相关的数据库,开发的实质是在Pro/E系统中调用MFC应用程序。在开发中使用动态连接库(DLL)方式实现Pro/E系统、Pro /TOOLKIT应用程序、MFC应用程序三者之间的通信,因为通信是通过直接调用函数实现的,故有执行速度快的特点[4]。三者之间的相互关系如图4所示。
图4 Pro/TOOLKIT与MFC连接的示意图
在系统中为每个Pro/TOOLKIT应用程序都开发了对话框界面,在应用程序加载到Pro/E系统后,点击定制菜单项即可调用二次开发模块及其界面,从而使设计过程更加符合设计人员的思维习惯。
4 实例
为说明系统的运行情况,制作了一个阶梯轴的例子,这样的阶梯轴由形状特征(圆柱体和圆锥体)经过多次调用拼装而成,造型过程不再论述。在修改过程中,通过添加不同的非几何特征,可以得到不同的加工方案,其运行框图如图5所示。
图5 零件加工流程图
5 结论
在充分利用Pro/E系统提供的资源的情况下,应用Pro/E提供的二次开发工具Pro/TOOLKIT以及VC++6.0集成开发环境实现了 CAD/CAPP/CAM的集成,简化了Pro/E系统CAM模块的操作,为专用CAD/CAPP/CAM的集成研究提供了一定的经验。
致谢:本文得到兰州理工大学特色研究方向基金的资助,在此表示感谢。
参考文献:
[1] Kruglinski DJ. Visual C++6.0 技术内幕[M]。北京:希望电子出版社,1998.
[2] 黄圣杰,张益三.Pro/Engineer 2001高级开发实例[M]。北京:电子工业出版社,2002.
[3] 赖朝安,李振南,孙延明,等.Pro/E二次开发的关键技术[J].机械设计与制造,2001,(1):43 45.
[4] 钟建琳.Pro/Engineer数控加工实用教程[M].北京:机械工业出版社,2002.
[5] 王 政,党军峰,许文涛.基于Pro/E的WFCAD系统菜单的开发[J].甘肃工业大学学报,2003,29(1):26 28.
[6] 胡赤兵,阎树田,邬再新.齿轮加工参数自动编程[J].机械工艺师,1998,(7):18 19.
[7] 杨 萍,张淑珍,李鹤岐,等.基于Pro/E软件平台的混流式水轮机转轮叶片形状拟合及实体模型的建立[J].机械设计与制造,2002,(6):62 63.