




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录1 概论11.1 CAD/CAM的发展现状11.2 课题的提出及意义21.3 预期功能31.4 本论文内容32 二次开发总体方案的确定42.1 二次开发语言(Pro/TOOLKIT)42.2 开发工具的确定42.3 开发环境62.3.1硬件开发环境62.3.2 软件开发环境62.4 工作模式的确定62.5 总体设计框架73 弹簧的参数化设计93.1 弹簧简介93.2 弹簧的参数化建模94 菜单与对话框的开发设计124.1 菜单的设计124.1.1 编写菜单信息资源文件134.1.2 编写菜单操作源程序164.1.3 注册运行224.2 对话框的设计234.2.1 编写对话框资源文件234.2.2 编写对话框操作源程序344.3 程序验证355 本设计任务所完成的零件清单37结论42致谢43参考文献44附录46附录I 程序清单46附录 外文文献翻译54附录III 外文文献原文62 摘 要本课题针对多种类型弹簧,提出基于Pro/E平台进行二次开发的一种可行方案。并且成功开发设计出能满足用户要求的弹簧模型库。本文首先简单介绍了与本课题相关的Pro/E二次开发功能,包括自定义菜单的生成、对话框的制作、Pro/TOOLKIT应用程序的执行。其次根据本课题的要求,分析了弹簧二次开发的整体设计思路。然后以圆截面圆柱螺旋压缩弹簧为例,较详细地说明了利用Pro/TOOLKIT及Visual C+6.0在Pro/E二次开发中的应用,并给出了测试实例。最后对开发的三维建模程序进行测试。结果表明:开发程序正确无误,建模迅速,大大提高了这类通用件在Pro/E平台上的设计效率。关键词:Pro/E、二次开发、弹簧模型库、Pro/TOOLKIT、Visual C+6.0 AbstractThis article introduces a feasible method of secondary development based on Pro/E against some kinds of springs. And the spring parts library is successfully designed meet to the user requirements.Firstly, this article simply introduces the secondary development functions of Pro/E referring to this task which includes the creation of menu, the creation of the dialogue, the Pro/TOOLKIT procedure execution. Then the precept to the overall design way of spring secondary development is analyzed. With an example of a round cross-section helical compression spring in detail, it particularly describes the application of Pro/TOOLKIT and Visual C+6.0 in the secondary development base on Pro/E, and test examples. At last, the test of all process of three-dimension-part-model driven by database is performed indicates that the program is right, and the mold can be set up quickly. The efficiency for the design of interchangeable part based on Pro/E can be increased.Keywords: Pro/E、Secondary Development、Spring parts library、Pro/TOOLKIT、Visual C+6.0一、 概论1.1 CAD/CAM的发展现状CAD/CAM技术作为电子信息技术的重要组成部分,其应用已遍及各个工程领域,是工程设计、产品制造业界的一场革命。经过四十多年的发展,CAD/CAM技术有了长足的进步。以前CAD/CAM技术大都是在工作站平台上运行和开发,随着计算机水平的大幅提高,目前CAD/CAM软件均可以在微机上运行。微机平台为普及CAD的应用创造了绝好的条件。在此基础上,CAD/CAM软件厂商展开了新一轮的竞争。目前CAD/CAM软件动态如下: Unigraphics(UG)UG是UnigraphicsSolutions公司的拳头产品。该公司首次突破传统CAD/CAM模式,为用户提供一个全面的产品建模系统。在UG中,优越的参数化和变量化技术与传统的实体、线框和表面功能结合在一起,这一结合被实践证明是强有力的,并被大多数CAD/CAM软件厂商所采用。 SOLIDEDGESOLIDEDGE是真正Windows软件。它不是将工作站软件生硬地搬到Windows平台上,而是充分利用Windows基于组件对象模型(COM)的先进技术重写代码。SOLIDEDGE与MicrosoftOffice兼容,与Windows的OLE技术兼容,这使得设计师们在使用CAD系统时,能够进行Windows下字处理、电子报表、数据库操作等。SOLIDEDGE具有友好的用户界面,它采用一种称为SmartRibbon的界面技术,用户只要按下一个命令按钮,既可以在SmartRibbon上看到该命令的具体的内容和详细的步骤,同时在状态条上提示用户下一步该做什么。SOLIDEDGE是基于参数和特征实体造型的新一代机械设计CAD系统,它是为设计人员专门开发的,易于理解和操作的实体造型系统。 AutoCADAutoCAD是Autodesk公司的主导产品。Autodesk公司是世界第四大PC软件公司。目前在CAD/CAE/CAM工业领域内,该公司是拥有全球用户量最多的软件供应商,也是全球规模最大的基于PC平台的CAD和动画及可视化软件企业。Autodesk公司的软件产品已被广泛地应用于机械设计、建筑设计、影视制作、视频游戏开发以及Web网的数据开发等重大领域。AutoCAD是当今最流行的二维绘图软件,它在二维绘图领域拥有广泛的用户群。AutoCAD有强大的二维功能,如绘图、编辑、剖面线和图案绘制、尺寸标注以及二次开发等功能,同时有部分三维功能。在许多实际应用领域(如机械、建筑、电子)中,一些软件开发商在AutoCAD的基础上已开发出许多符合实际应用的软件。 Pro/EngineerPro/Engineer系统是美国Parametric Technology Corporation(简称PTC)的产品。PTC公司提出的单一数据库、参数化、基于特征、全相关的概念改变了机械CAD/CAE/CAM的传统观念,这种全新的概念已成为当今世界机械CAD/CAE/CAM领域的新标准。利用该概念开发出来的第三代机械CAD/CAE/CAM产品Pro/Engineer软件能将设计至生产全过程集成到一起,让所有的用户能够同时进行同一产品的设计制造工作,即实现所谓的并行工程。Pro/Engineer系统主要功能如下:(1)真正的全相关性,任何地方的修改都会自动反映到所有相关地方;(2)具有真正管理并发进程、实现并行工程的能力;(3)具有强大的装配功能,能够始终保持设计者的设计意图;(4)容易使用,可以极大地提高设计效率。Pro/Engineer系统用户界面简洁,概念清晰,符合工程人员的设计思想与习惯。整个系统建立在统一的数据库上,具有完整而统一的模型。Pro/Engineer建立在工作站上,系统独立于硬件,便于移植。因此,本开发利用Pro/Engineer为平台对弹簧进行二次开发。1.2 课题的提出及意义产品的三维设计离不开CAD/CAM系统的支持,具有技术成熟、功能强大的Pro/ENGINEER参数化造型系统在设计和制造业中引起了人们的重视,并得到了日益广泛的应用。Pro/ENGINEER提供了强大的三维几何造型功能,使我们能够创建出各种复杂的几何模型,作为通用的三维CAD/CAM系统在功能上基本能够满足产品三维设计要求,但有时这些功能并不能满足我们的需求。例如标准零件系列,它们的结构都是相同的,区别只在于尺寸,如果标准零件系列都通过三维建模的方式来实现,那么工作量将非常巨大。虽然Pro/ENGINEER自身也有一些模型库,但是这远远满足不了用户的要求。因此,也就有了本课题研究开发的必要。机械产品的开发过程中会用到大量的通用零件、标准件、相似件。如何建立这些常用零部件的库,利用已有的资源,花费较少的时间完成产品设计是用户非常关心的问题。建立这些通用件、标准件、相似件零件库作为一项可行方案,一方面可以避免不同设计者的重复劳动,提高设计效率,提高设计的标准化程度,减少错误发生率,缩短产品开发周期;另一方面还可以基于该软件的三维实体模型进行更深层次的分析(如有限元分析等),以确保机械设计结果安全可靠。综上,对某些特殊零件进行二次开发是非常有必要的。因此也就有了本课题的提出。1.3 预期功能如今,虽然绘图软件很多,而且建模方法也越来越智能,易学易懂。但是有些模型,具有相似性和通用性,如标准件,常用件等。如果每用一次都要建一次模型,那么将会大大延长设计周期,如此繁琐而重复的步骤,将给设计者带来不必要的负重。本课题将通过参数化建模,解决这一问题。用户只需正确选择或输入零件相关参数,Pro/E便能自动生成用户所需的模型,这样大大缩短了开发设计的时间,提高了零件的结构设计效率。1.4 本论文内容在本课题中,将涉及到平键、铆钉、销等零件的二次开发。本文首先简单介绍了一些绘图软件特别是Pro/ENGINEER的现状,说明了研究本课题的必要性以及重要性;其次介绍了一些Pro/ENGINEER二次开发工具;接着确定本二次开发的总体方案;最后详细地介绍了对弹簧进行二次开发的全过程。设计将包含以下内容: 零件的参数化建模; 设计弹簧菜单及对话框(其中包含实现对话框上各按钮的功能的相应程序); 检验设计是否能达到预期功能。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等。以下简单介绍上述几种二次开发工具:族表(Family Table)通过族表可以方便地管理具有相同或相近结构的零件,特别适用于标准零件的管理。族表工具是通过建立一个通用零件作为父零件,然后在其基础上对各参数加以控制生成派生零件。整个族表是通过电子表格来实现的,因此可以称其为表格驱动。用户定义特征(UDF)用户定义特征是将若干个系统特征整合为一个自定义特征,使用时作为一个整体出现。UDF适用特定产品的特定结构,有利于设计者根据产品特征快速生成几何模型。 Pro/ProgramPro/ENGINEER软件对于每个模型都有一个主要设计步骤和参数列表Pro/Program,它是由类似BASIC的高级语言构成,用户可以根据设计需要来编辑该模型的Program,使其以一个程序来工作。通过运行该程序,系统通过人机交互的方法来控制系统参数、特征出现与否以及特征的具体尺寸等。 J-linkJ-link是Pro/ENGINEER中自带的基于JAVA语言的二次开发工具,是一种面向对象、独立于操作系统平台的开发工具。用户通过JAVA编程实现向Pro/ENGINEER软件添加功能。 Pro/TOOLKITPro/TOOLKIT同J-link一样也是Pro/ENGINEER自带的二次开发工具。在Pro/TOOLKIT中,PTC向用户提供了大量的C语言函数库,函数采用面向对象的风格。通过调用这些底层函数,用户能方便而又安全地访问Pro/ENGINEER的数据库及内部应用程序,进行二次开发,扩展一些特定功能。上述各种二次开发工具集中在Pro/ENGINEER的“工具”菜单中,如图2-1所示。其中“辅助应用程序”主要用来调用Pro/TOOLKIT程序。图2-1开发工具由于Pro/TOOLKIT具有函数简单,应用方便等优点,本课题将使用Pro/TOOLKIT进行二次开发研究。2.3 开发环境开发环境包括两部分:即硬件开发环境和软件开发环境。2.3.1硬件开发环境本课题是基于Pro/Engineer Wildfire2.0的二次开发,因此只要能够安装支持Pro/E Wildfire2.0版本即可。建议配置如表2-1所示。表2-1 计算机配置项目推荐配置CPU1.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应用程序有两种工作模式:异步模式和同步模式。异步模式无需启动Pro/ENGINEER,就能够单独运行Pro/TOOLKIT应用程序的方法叫异步模式。异步模式实现了两个程序的并行运行,可以只在程序需要调用Pro/ENGINEER功能时,才启动Pro/ENGINEER。但由于异步模式具有代码复杂、执行速度慢等缺点,因此一般不采用异步模式。同步模式同步模式下,Pro/TOOLKIT应用程序必须与Pro/ENGINEER系统同步运行。同时,当Pro/TOOLKIT应用程序执行时,Pro/ENGINEER系统是处于停止状态的。同步模式又分为两种模式,即动态连接模式(DLL模式)和多进程模式(Multiprocess Mode)。动态连接模式是将用户编写的C程序编译成一个DLL文件,这样Pro/TOOLKIT应用程序和Pro/ENGINEER运行在同一个进程中,它们之间的信息是直接通过函数调用实现的。多进程模式是将用户的C程序编译成一个可执行文件,Pro/TOOLKIT应用程序和Pro/ENGINEER运行在各自的进程中,它们之间的信息交换是由消息系统来的。由于本设计任务要求运行Pro/ENGINEER时,所设计零件能自动嵌入到Pro/ENGINEER菜单上,兼之动态连接模式(DLL模式)又较为简单,运行速度比较快,因此本设计开发将采用同步模式中的动态连接模式,即DLL模式。2.5 总体设计框架本二次开发是基于Pro/ENGINEER的关于弹簧的参数化设计。设计的对象是弹簧。本任务将设计多种类型的弹簧,要求用户只需选择或输入相关参数,就能自动生成所需的弹簧零件。弹簧的类型非常多,这里将其分为两大类:圆柱螺旋弹簧和非圆柱螺旋弹簧。圆柱螺旋弹簧又分为圆截面圆柱螺旋压缩弹簧、矩形截面圆柱螺旋压缩弹簧、圆柱螺旋拉伸弹簧、圆柱螺旋扭转弹簧等;非圆柱螺旋弹簧分为截锥螺旋弹簧、中凹形螺旋弹簧、中凸形螺旋弹簧、非圆形螺旋弹簧等各类。本开发的总体设计流程如图2-2所示,调用响应图如图2-3所示。建立开发目录设计菜单设计对话框打开VC2008新建工程Pro/toolkit编程与Pro/E连接调试通过图2-2 总体设计流程图启动Pro/E自动加载菜单选择自定义菜单选择所需零件调用对话框输入设计参数生成实体模型退出程序图2-3 程序调用响应图3 弹簧的参数化设计3.1 弹簧简介弹簧及弹性元件广泛应用于机械、仪表、电器、交通运输工具以及日常生活器具等行业,是一个涉及面比较大的基础零件。近年来,随着科学技术的发展,国内外在弹簧的研究和生产方面都有不同程序的发展。弹簧是一种机械零件。它利用材料的弹性和结构特点,在工作时产生变形,把机械功或动能转变为变形能(位能),或把变形能(位能)转变为机械功或动能。由于这种特性,它适用于:1)缓冲或减震,如破碎机的弹簧和车辆的悬架弹簧等;2)机械的储能,如钟表、仪表和自动控制机构上的原动弹簧;3)控制运动,如气门、离合器、制动器和各种调节器上的弹簧;4)测力装置,如弹簧秤和动力计上的弹簧。除此之外,在机械设备、仪表、日用电器以及生活器具上也都使用着各式各样的弹性元件,如螺母防松弹簧垫圈,零件在轴上定位用的卡环,门的启闭装置,玩具的发条等等。在机电产品,用量最大的弹簧主要有三大类: 汽车为主的机动车辆弹簧; 以日用电器为主的电子产品弹簧; 以摄像机、复印机和照相机为主的光学装置弹簧。机动车辆弹簧主要是向高强度方向发展,以减轻质量;电子产品弹簧主要是向小型化方向发展;而光学装置弹簧主要向着既要高强度化又要小型化方向发展。相应的弹簧设计方法,材料和加工技术均有所发展。3.2 弹簧的参数化建模圆柱螺旋压缩弹簧应用最为广泛,如车辆的悬架弹簧、内燃机的气门弹簧、计测弹簧等都是这类弹簧。螺旋压缩弹簧所用弹簧材料的截面多为圆形,其次是矩形、多股形。近年来为了提高弹簧材料的利用率,也有采用管材;为了提高疲劳强度,扁形钢丝截面逐渐扩大使用范围。螺旋压缩弹簧一般为等节距,在特殊情况下也有不等节距的。下面以等节距圆柱螺旋压缩弹簧为例,介绍说明弹簧的参数化建模过程。打开Pro/ENGINEER软件,新建一个零件,命名为“spring_1.prt”,不使用缺省模板,选择“mmns_part_solid”,进入零件设计环境。选取主菜单中的【工具】【参数】命令,弹出“参数”对话框,如图3-1所示,单击“”按钮,添加四个参数H、D、L、DD。H表示弹簧的自由高度,D表示弹簧的中径,L表示弹簧的螺距,DD则表示弹簧的材料直径。并预先设置各参数的值。如H=300,D=80,L=20,DD=12。单击“确定”按钮。选取主菜单【插入】【螺旋扫描】【伸出项】命令。出现螺旋特征创建的对话框,依次选取【常数】【穿过轴】【右手定则】【完成】,完成螺旋特征【属性】的定义,接下来开始定义“扫引轨迹”。选取FRONT平面为草绘平面,并取默认的草绘方向和参照面。进入草绘环境后,绘制如图3-2的图形。完成确定。按照信息提示输入节距值:如20,并回车。草绘一个圆,直径定为12。完成退出。选取【工具】【关系】命令,弹出“关系”对话框。输入如图3-3所示关系,较验确定。 图3-1 参数设置图 图3-2 草绘图形切去弹簧两端端面,使其端面平整。最后完成的弹簧零件图如图3-4所示。以上便是螺旋压缩弹簧的参数化建模过程。用户只需更改参数值,再生,便能生成所需的弹簧模型,而不用再去重复步骤。图3-3 关系设置图图3-4 零件图将所建弹簧模型均存放在TextReleasetextchinese_cnparts目录下。4 菜单与对话框的开发设计4.1 菜单的设计菜单是Pro/ENGINEER的主要用户界面。Pro/TOOLKIT提供了一系列菜单操作函数,允许应用程序创建和管理菜单。Pro/ENGINEER菜单包括菜单栏、菜单、菜单项(按钮)、筛选按钮、单选按钮等等,如图4-1示。图4-1 菜单种类Pro/TOOLKIT可以向Pro/ENGINEER菜单中添加上述类型的菜单。添加菜单的大致过程如下:编写信息资源文件(信息资源文件用于提供菜单的标签文本和帮助信息);使用Pro/TOOLKIT的函数编写源程序,给菜单按钮设置调用函数(动作函数);注册运行程序。下面介绍菜单的相关术语:l 菜单条(Menu bar)Pro/ENGINEER界面顶部菜单栏中的菜单,如File、Edit和View等均称为菜单条;l 菜单条菜单(Menu bar menu)菜单条的下级子菜单。即多层菜单的次级菜单;l 菜单的按钮(Push button)下拉菜单中用来启动一组指令的菜单项,如File菜单条中的Edit按钮;l 菜单的复选按钮(Check button)下拉菜单中用来执行开关动作的菜单项,如View菜单条中的Model Tree(模型树)显示或关闭菜单项;l 菜单的单选按钮组(Radio group)下拉菜单的一组选项中只能设置其中一项的菜单项;l 命令(Command)从菜单条或工具栏图标激活的一个执行过程;l 命令标识号(Command id)指向某一命令的指针。一般作为Pro/TOOLKIT函数的输入参数;l 动作命令(Action command)启动菜单按钮执行的一组指令;l 选项命令(Option command)基于界面元素的状态执行的一组指令。该命令由菜单筛选按钮和菜单单选按钮组启动。本设计要求所设计的菜单风格与Pro/ENGINEER一致,即将菜单添加到Pro/ENGINEER的菜单栏,在其下拉菜单项菜单中要求有各种类型的弹簧,每种类型弹簧的下级子菜单中包含其相应的弹簧类型,如圆柱螺旋弹簧包括圆截面圆柱螺旋压缩弹簧、圆柱螺旋拉伸弹簧等。4.1.1 编写菜单信息资源文件信息资源文件用于提供菜单的标签文本(包括其他语言版本的标签)和帮助信息,如果要向Pro/ENGINEER中添加菜单,就必须使用信息资源文本,否则所添加的菜单不会在Pro/ENGINEER菜单栏中出现。信息资源文件是一种ASCII码文件,用来定义菜单项、菜单项提示等信息,可以用记事本和写字板等文字处理软件建立,也可在VC的集成开发环境中建立,但必须与纯文本格式保存。在信息文件中以4行为一组,其含义为:第1行:Pro/ENGINEER系统可以识别的关键字。该关键字必须与使用该信息文件函数中的相关字符串相同。第2行:在菜单项或菜单项提示上显示的英语文本。第3行:另一种语言的译文或为空。这里为中文。第4行:当前的Pro/ENGINEER版本为空,“#”号。按第2行或第3行的语言取决于系统环境变量lang的设置。本设计中将向Pro/ENGINEER界面的顶部菜单栏中添加一个名为“弹簧”的Menu bar类型的菜单,下属两个菜单项:圆柱螺旋弹簧和非圆柱螺旋弹簧。名为“圆柱螺旋弹簧”的下级子菜单又包含了:圆截面压缩弹簧、矩形截面压缩弹簧、圆柱螺旋拉伸弹簧三个菜单项。名为“非圆柱螺旋弹簧”的下级子菜单包含了:截锥螺旋弹簧、等节距中凹形螺旋弹簧、等节距中凸形螺旋弹簧、方形螺旋弹簧四个菜单项。最终结果如图4-2(a)、4-2 (b)所示。图4-2(a) “圆柱螺旋弹簧”菜单图4-2(b) “非圆柱螺旋弹簧”菜单图4-2所示菜单的资源文件如下:UserMenuUser&Menu弹簧(&E)#SubMenu1SubMenu1圆柱螺旋弹簧#SubMenu2SubMenu2非圆柱螺旋弹簧#PushButton1PushButton1圆截面压缩弹簧#Adding a push button to the ProE menu barAdding a push button to the ProE menu bar圆截面压缩弹簧#PushButton2PushButton2矩形截面压缩弹簧#Adding another push button to the ProE menu barAdding another push button to the ProE menu bar矩形截面压缩弹簧#PushButton3PushButton3圆柱螺旋拉伸弹簧#Adding the third push button to the ProE menu barAdding the third push button to the ProE menu bar圆柱螺旋拉伸弹簧#PushButton4PushButton4截锥螺旋弹簧#Adding the forth push button to the ProE menu barAdding the forth push button to the ProE menu bar截锥螺旋弹簧#PushButton5PushButton5等节距中凹形螺旋弹簧#Adding the fifth push button to the ProE menu barAdding the fifth push button to the ProE menu bar等节距中凹形螺旋弹簧#PushButton6PushButton6等节距中凸形螺旋弹簧#Adding the sixth push button to the ProE menu barAdding the sixth push button to the ProE menu bar等节距中凸形螺旋弹簧#PushButton7PushButton7方形螺旋弹簧#Adding the seven push button to the ProE menu barAdding the seven push button to the ProE menu bar方形螺旋弹簧#在记事本编辑完以上资源后,保存为纯文本格式(.txt),并且命名为Message。将Message.txt文件存放在TextReleasetextchinese_cn目录下。4.1.2 编写菜单操作源程序编写完菜单信息资源文本后,还须使用Pro/TOOLKIT提供的菜单操作函数来实现每个菜单的功能,即编写菜单项菜单的动作函数。具体设计步骤如下:(1) 进入Visual C+6.0集成开发环境,选择“File/New.”选项,启动 “New”对话框。在“New”对话框中选择“Projects”选项卡,选择MFC AppWizard(dll)项。在“Project name:”输入工程文件名“Text”,在“Location”输入框中输入路径。单击OK按钮。(2) 在“MFC AppWizard”对话框中选择“Regular DLL using shared MFC DLL”单选框,使Pro/TOOLKIT应用程序使用共享的MFC。单击Finish按钮,进入New Project Information窗口后,单击OK按钮,完成工程文件框架的建立。(3) 选择FileView,打开VC应用程序向导自动生成程序文件。VC应用程序设计向导在FileView中自动加入了ReadMe.txt、StdAfx.cpp和以工程文件名为前缀的cpp资源文件、def模块定义文件以及rc资源文件等。在VC环境下编写完程序后,需要对其进行编译和连接,包括文件路径的设置、库文件路径设置、库文件的连接等。Pro/TOOLKIT头文件位于protoolkitincludes文件夹中。在Visual C+6.0的集成开发环境选择Tools/Options菜单,在弹出的“Option”对话框中选择“Directorise”选项卡,在“Show directories for:”下拉列表框中选择“Includes”,加入“.PROTOOLKITINCLUDES”一项,设置Pro/TOOLKIT头文件所在文件夹,如图4-3所示。图4-3 包含文件路径设置在“Show Directorise for:”下拉列表中选择“Library files”,加入“.PROTOOLKITI486_NTOBJ”一项,设置如图4-4。图4-4 库文件路径设置选择Project/Settings.菜单,选择“Link”选项卡,在“Category:”下拉列表中选择General,在“Object/Library modules”下加入mpr.lib protk_dll.lib两个库文件,并且去掉“Generate debug into”和“Link incrementaily”两个选项。具体设置如图4-5。图4-5 库文件设置在菜单Project/Settings的“Link”选项页中选择Category下拉列表中的“Customize”设置强制文件输出,即选中“Force file output”的复选框,如图4-6所示。由protk_dll.lib及LIBC.lib产生的unresolved external symbol连接错误均可忽略,并可生成在Pro/ENGINEER系统正常运行的Pro/TOOLKIT应用程序。由于连接protk_dll.lib及LIBC.lib库产生的错误有31个,警告有19个。在“Project Settings”中的“C/C+”选项页中选择“Generate browse info”复选框,并且在“Debug info:”下拉列表中选择“None”,具体设置如图4-7。图4-6 强制输出设置图4-7 语言设置在“Project Settings”中选择General选项,将“Output directories”输出目录改为“Release”,这样VC创建的DLL文件将存放入“Release”文件夹中,设置如图4-8所示。图4-8 输出路径设置对Visual C+6.0进行相关设置后,便可以编写程序了。图4-2菜单对应源程序代码见附录菜单操作源程序部分。首先,必须列出VC程序将用到的相关头文件,如#includeProMenu.h#includeProUtil.h#includeProMenubar.h#include 其次,必须对用到的函数进行声明,否则将会出错,如int Spring1Fn();int Spring2Fn();int Spring3Fn();int Spring4Fn();int Spring5Fn();int Spring6Fn();int Spring7Fn();static uiCmdAccessState AccessAvailable (uiCmdAccessMode);最后才编写程序主体部分。下面介绍说明菜单程序中用到的Pro/TOOLKIT函数。user_initializ()函数是Pro/TOOLKIT应用程序的初始化函数,主要用来对同步模式的Pro/TOOLKIT应用程序进行初始化,任何同步模式的应用程序要在Pro/ENGINEER系统中加载都必须包含该函数。其格式如上程序所示。user_terminate()函数在Pro/ENGINEER终止同步模式的Pro/TOOLKIT应用程序时调用(如退出Pro/ENGINEER将终止应用程序的运行),该函数由用户定义,其中可以不执行任何动作。ProMenubarMenuAdd()函数的作用是向Pro/ENGINEER添加所需的菜单,包含头文件为:#include。函数的返回值类型为ProError,调用成功返回PRO_TK_NO_ERROR(0),否则返回PRO_TK_GENERAL_ERROR(-1)。函数如下:ProMenubarMenuAdd (UserMenuBar, UserMenu, Utilities, PRO_B_TRUE, MsgFile)其中UserMenuBar为菜单项名,作为调用其他菜单函数的输入参数;UserMenu为菜单标签名,即该菜单条的关键字。必须与信息文件该段的标识关键字相同。Utilities, PRO_B_TRUE表示该菜单加在“工具”菜单的右侧。MsgFile为菜单信息文件名,这里定为Message。ProMenubarmenuMenuAdd()函数的作用是向菜单添加下级子菜单。注意,在生成的下级子菜单中必须至少包含一项菜单项,否则将不显示下级子菜单。该函数可以创建多层下级子菜单,只需用不同层次的菜单名标识作为们菜单名即可。其函数如下:ProMenubarmenuMenuAdd(UserMenuBar, SubMenu1, SubMenu1, NULL, PRO_B_TRUE, MsgFile)UserMenuBar表示这个下级菜单是挂接在此菜单项名下。SubMenu1为菜单标签名,必须与信息文件中对应标识关键字相同。ProCmdActionAdd()函数的作用是设置菜单按钮的动作函数。其函数如下:ProCmdActionAdd(PushButtonAct1,(uiCmdCmdActFn)Spring1Fn, uiCmdPrioDefault,AccessAvailable, PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id1)Spring1Fn为该按钮的动作函数,即当单击此按钮,便调用此函数,产生相应动作。ProMenubarmenuPushbuttonAdd()函数的作用是添加菜单按钮。其函数如下:ProMenubarmenuPushbuttonAdd(SubMenu1,PushButton1,PushButton1, Adding a push button to the ProE menu bar, NULL, PRO_B_TRUE, PushButton_cmd_id1, MsgFile)SubMenu1表示此菜单是菜单名为“SubMenu1”的下级子菜单,PushButton1是菜单标签名,与信息文件中对应一致。Adding a push button to the ProE menu bar是提示信息,必须与信息文件中一致。程序中用到了菜单条、菜单条菜单、下级子菜单、菜单按钮等。将上面编辑的资源信息文件放入“TextReleasetextchinese_cn”文件夹内。4.1.3 注册运行编写调试完应用程序后,将整个VC工程文件拷贝到工作目录下,用记事本编写注册文件,并保存为“Protk.dat”。注册文件内容如图4-9所示。图4-9 注册文件这里的“.”代表相对路径方式,即起始目录为Pro/ENGINEER的工作目录。用相对路径方式的优点在于具有可移植性。即此二次开发程序只要存放在Pro/ENGINEER设置的工作目录下,便能自动运行,而不要求用户更改设置,大大地方便了用户的使用。图4-9中各字段及其意义如表4-1所示。表4-1 注册表字段及意义字段名意义Name外部程序标识名,该标识名不一定要与可执行程序名相同Exec_file可执行程序名(包括路径)Text_dir指定外部程序的text目录树的全路径Startup这里取dll(动态连接库)Allow_stop如设为TRUE,在Pro/ENGINEER工作时可以终止应用程序,如设为FALSE则不能终止应用程序Delay_start若设为TRUE, Pro/ENGINEER在启动时不调用Pro/TOOLKIT应用程序,但可以手工启动,若设为FALSE,则系统将自动启动。Revision指定Pro/TOOLKIT版本号End段结束标志注意,将DELAY_START字段内容设为FALSE,这样打开Pro/ENGINEER时使自动注册运行该应用程序。即启动Pro/ENGINEER后,自定义菜单使自动挂接到Pro/ENGINEER菜单条上。不必再手动注册和运行。这样,所创建的“弹簧”菜单便如同Pro/ENGINEER菜单栏中的一项菜单,即当运行Pro/ENGINEER,“弹簧”菜单项将自动连接上去。4.2 对话框的设计用户界面对话框(User Interface Dialog Boxes,简称UI对话框)是Pro/TOOLKIT提供的一项交互界面。可以利用UI对话框技术,在Pro/TOOLKIT应用程序中设计出风格与Pro/ENGINEER系统本身具有的对话框相似的人机交互界面。UI对话框的设计思路和方法与AutoCAD的DCL对话框类似。主要由对话框资源文件和相应的控制程序两大部分构成。对话框资源文件的功能相当于AutoCAD的对话框控制语言(DCL),用ASCII码文本格式编写,其内容定义了对话框的组成、外观和属性。控制程序相当于AutoCAD的DCL驱动程序,用C或C+语言编写,用来在Pro/ENGINEER环境装入对话框资源、显示对话框、设置动作和退出对话框等。下面以圆截面圆柱螺旋压缩弹簧为例介绍说明弹簧对话框的创建全过程。其余弹簧类型见附录I。4.2.1 编写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康促进与公共卫生教育考试2025年试卷及答案
- 2025年一级建造师市政实务模拟真题及答案
- 2025年历届社工考试试题及答案
- 2025年对外汉语教师资格证考试教育心理学与教育方法试题附答案
- 2025年建设工程考试试题及答案
- 2025年医疗器械质量安全主体责任监督管理规定培训必考题库及答案
- 2025年科普知识竞赛试题库与答案
- 2025年电工(技师)职业技能考试笔试试题附答案
- 2025年起重机械电气安装维修作业人员考试笔试试题1含答案
- 导游业务模拟试题及答案
- 4.2《遵守规则》教学设计 -2025-2026学年八年级道德与法治上册
- 人工智能+高质量发展文化旅游产业智能化升级研究报告
- 2025年自考专业(计算机网络)考试综合练习附参考答案详解(A卷)
- 冷链技术对水果品质保持的数值预测模型研究
- 集输工应急处置考核试卷及答案
- 2025年全国保密教育线上培训考试试题库附完整答案(必刷)
- 珠江医院护理面试题库及答案
- 流程管理某省市场营销MPR+LTC流程规划方案
- 疏浚管线工技能操作考核试卷及答案
- 化工厂实习安全培训课件
- 疏浚清淤工程合同协议书
评论
0/150
提交评论