1.3 预期功能
如今,虽然绘图软件很多,而且建模方法也越来越智能,易学易懂。但是有些模型,具有相似性和通用性,如标准件,常用件等。如果每用一次都要建一次模型,那么将会大大延长设计周期,如此繁琐而重复的步骤,将给设计者带来不必要的负重。本课题将通过参数化建模,解决这一问题。用户只需正确选择或输入零件相关参数,Pro/E便能自动生成用户所需的模型,这样大大缩短了开发设计的时间,提高了零件的结构设计效率。
1.4 本论文内容
在本课题中,将涉及到平键、铆钉、销等零件的二次开发。本文首先简单介绍了一些绘图软件特别是Pro/ENGINEER的现状,说明了研究本课题的必要性以及重要性;其次介绍了一些Pro/ENGINEER二次开发工具;接着确定本二次开发的总体方案;最后详细地介绍了对弹簧进行二次开发的全过程。
设计将包含以下内容:
1 零件的参数化建模; ○
2 设计弹簧菜单及对话框(其中包含实现对话框上各按钮的功能的相应○程序);
3 检验设计是否能达到预期功能。 ○
第 3 页 共 72 页
2 二次开发总体方案的确定
2.1 二次开发语言(Pro/TOOLKIT)
Pro/TOOLKIT是美国Parametric Technology Corporation(PTC)公司为Pro/ENGINEER软件提供的开发工具包,其主要目的是让用户或第三方通过C程序代码扩充Pro/ENGINEER系统的功能,开发基于Pro/ENGINEER系统的应用程序模块,不仅如此,还可以利用Pro/TOOLKIT提供的UI对话框、菜单以及VC的可视化界面技术,设计出方便实用的人机交互界面,从而大大提高系统的使用效率。Pro/TOOLKIT是Pro/ENGINEER的一个应用程序接口(API),它的编程语言是C语言,可以对Pro/ENGINEER进行功能扩展,满足PTC客户的特定需求。而且,Pro/TOOLKIT提供了定制标准Pro/ENGINEER用户界面的能力,自动执行重复性的程序,通过Pro/ENGINEER集成的内部程序(Dll)或外部应用程序(Exe)可以为造型用户提供自定义的应用程序、设计规划和绘图自动化。
Pro/TOOLKIT工具包提供了开发Pro/ENGINEER所需的函数库文件和头文件,使用户编写的应用程序能够安全地控制和访问Pro/ENGINEER,并可以实现应用程序模块与Pro/ENGINEER系统的无缝集成。
Pro/TOOLKIT工具包是随Pro/ENGINEER安装盘一起提供的,安装时在“元件”列表框中选中“API Toolkits”复选框,并在“子元件”列表框中选中“Pro/TOOLKIT”复选框,这样将在Pro/ENGINEER系统的默认目录下自动创建两个下级目录:protoolkit和prodevelop。
Pro/TOOLKIT采用面向对象的程序设计方法(Object_Oriented Programming)。在Pro/ENGINEER和应用程序之间主要是通过特定的数据结构来传递信息,以应用程序来说这种数据结构并不是直接访问的,而只能通过Pro/TOOLKIT提供的函数来访问。
2.2 开发工具的确定
Pro/ENGINEER软件本身自带了一些二次开发工具,如族表工具、用户定义特征(UDF)、Pro/Program、J-link、Pro/Toolkit等。
以下简单介绍上述几种二次开发工具: 1族表(Family Table) ○
通过族表可以方便地管理具有相同或相近结构的零件,特别适用于标准零件的管理。族表工具是通过建立一个通用零件作为父零件,然后在其基础上对各参数加以控制生成派生零件。整个族表是通过电子表格来实现的,因此可以称其为表格驱动。
2用户定义特征(UDF) ○
用户定义特征是将若干个系统特征整合为一个自定义特征,使用时作为一
第 4 页 共 72 页
个整体出现。UDF适用特定产品的特定结构,有利于设计者根据产品特征快速生成几何模型。
3 Pro/Program ○
Pro/ENGINEER软件对于每个模型都有一个主要设计步骤和参数列表Pro/Program,它是由类似BASIC的高级语言构成,用户可以根据设计需要来编辑该模型的Program,使其以一个程序来工作。通过运行该程序,系统通过人机交互的方法来控制系统参数、特征出现与否以及特征的具体尺寸等。
4 J-link ○
J-link是Pro/ENGINEER中自带的基于JAVA语言的二次开发工具,是一种面向对象、独立于操作系统平台的开发工具。用户通过JAVA编程实现向Pro/ENGINEER软件添加功能。
5 Pro/TOOLKIT ○
Pro/TOOLKIT同J-link一样也是Pro/ENGINEER自带的二次开发工具。在Pro/TOOLKIT中,PTC向用户提供了大量的C语言函数库,函数采用面向对象的风格。通过调用这些底层函数,用户能方便而又安全地访问Pro/ENGINEER的数据库及内部应用程序,进行二次开发,扩展一些特定功能。
上述各种二次开发工具集中在Pro/ENGINEER的“工具”菜单中,如图2-1所示。其中“辅助应用程序”主要用来调用Pro/TOOLKIT程序。
图2-1开发工具
由于Pro/TOOLKIT具有函数简单,应用方便等优点,本课题将使用
第 5 页 共 72 页
Pro/TOOLKIT进行二次开发研究。
2.3 开发环境
开发环境包括两部分:即硬件开发环境和软件开发环境。 2.3.1硬件开发环境
本课题是基于Pro/Engineer Wildfire2.0的二次开发,因此只要能够安装支持Pro/E Wildfire2.0版本即可。建议配置如表2-1所示。
表2-1 计算机配置
项目 CPU 内存 显卡 网卡 推荐配置 1.0GHz以上(建议2.0GHz) 256MB以上(建议512MB) 显存32MB以上,推荐使用Geforce4以上的显卡 必须安装网卡(或使用虚拟网卡) 2.3.2 软件开发环境
操作平台:Windows2000/XP/NT; 开发平台:Pro/ENGINEER Wildfire2.0; 开发语言:Visual C++6.0。
2.4 工作模式的确定
Pro/TOOLKIT应用程序有两种工作模式:异步模式和同步模式。 1异步模式 ○
无需启动Pro/ENGINEER,就能够单独运行Pro/TOOLKIT应用程序的方法叫异步模式。异步模式实现了两个程序的并行运行,可以只在程序需要调用Pro/ENGINEER功能时,才启动Pro/ENGINEER。但由于异步模式具有代码复杂、执行速度慢等缺点,因此一般不采用异步模式。
2同步模式 ○
同步模式下,Pro/TOOLKIT应用程序必须与Pro/ENGINEER系统同步运行。同时,当Pro/TOOLKIT应用程序执行时,Pro/ENGINEER系统是处于停止状态的。
同步模式又分为两种模式,即动态连接模式(DLL模式)和多进程模式(Multiprocess Mode)。
动态连接模式是将用户编写的C程序编译成一个DLL文件,这样Pro/TOOLKIT应用程序和Pro/ENGINEER运行在同一个进程中,它们之间的信息是直接通过函数调用实现的。
多进程模式是将用户的C程序编译成一个可执行文件,Pro/TOOLKIT应用程
第 6 页 共 72 页
序和Pro/ENGINEER运行在各自的进程中,它们之间的信息交换是由消息系统来的。
由于本设计任务要求运行Pro/ENGINEER时,所设计零件能自动嵌入到Pro/ENGINEER菜单上,兼之动态连接模式(DLL模式)又较为简单,运行速度比较快,因此本设计开发将采用同步模式中的动态连接模式,即DLL模式。
2.5 总体设计框架
本二次开发是基于Pro/ENGINEER的关于弹簧的参数化设计。设计的对象是弹簧。本任务将设计多种类型的弹簧,要求用户只需选择或输入相关参数,就能自动生成所需的弹簧零件。弹簧的类型非常多,这里将其分为两大类:圆柱螺旋弹簧和非圆柱螺旋弹簧。
圆柱螺旋弹簧又分为圆截面圆柱螺旋压缩弹簧、矩形截面圆柱螺旋压缩弹簧、圆柱螺旋拉伸弹簧、圆柱螺旋扭转弹簧等;非圆柱螺旋弹簧分为截锥螺旋弹簧、中凹形螺旋弹簧、中凸形螺旋弹簧、非圆形螺旋弹簧等各类。
本开发的总体设计流程如图2-2所示,调用响应图如图2-3所示。
建立开发目录 新建工程 设计菜单 Pro/toolkit编程 设计对话框 与Pro/E连接 打开VC2008 调试通过 图2-2 总 体设计流程图
第 7 页 共 72 页