毕业论文-基于ProE二次开发的变压器结构件参数化设计_第1页
毕业论文-基于ProE二次开发的变压器结构件参数化设计_第2页
毕业论文-基于ProE二次开发的变压器结构件参数化设计_第3页
毕业论文-基于ProE二次开发的变压器结构件参数化设计_第4页
毕业论文-基于ProE二次开发的变压器结构件参数化设计_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、哈尔滨工业大学工学硕士学位论文哈尔滨理工大学学士学位论文- PAGE II - PAGE II -基于Pro/E二次开发的变压器结构件参数化设计摘要 电力变压器是电力系统中重要的电气设备,其绝缘结构的合理性很大程度上决定了它的安全可靠运行和使用寿命。本文便是研究如何实现变压器结构件的参数化设计。 Pro/E软件提供了Pro/TOOLKIT二次开发工具,该工具提供了大量Pro/E功能函数。通过编写C语言程序合理使用Pro/E的功能函数,我们可以为Pro/E软件扩展我们所需要的功能,其中便包括针对零件的参数化设计功能。本文中共开发了变压器铁心、静电环、正角环、反角环和端圈等五个零件的参数化设计对话

2、框。其中,铁心的设计包含了高度、宽度以及铁心柱、铁轭厚度的修改;静电环可修改其曲率半径、绝缘层厚度等参数;正反角环,可修改其内径、外径、高度和厚度等参数;端圈,可修改垫块厚度、纸圈厚度、纸圈内外径等参数。在参数对话框中,我们可以通过修改零件原型的各个参数,直接再生出新的零件。所以,我们可以方便的修改参数规格不合理的结构件。利用此功能辅助设计变压器,大大提高了工作效率。关键词:Pro/E二次开发;Pro/TOOLKIT;参数设计 The Parametric Design of the Transformer Structure Based on Pro/E Secondary Developm

3、entAbstractIn this paper, we will learn how can we use the Pro/TOOLKIT to make the secondary development of Pro/E, in order to simple the transformer design and make the parametric design come true.Pro/E software provides us a development tool called Pro/TOOLKIT, which provide us a lot of Pro/E perf

4、ormance functions. We can extend the functionality we need for the Pro/E software, which would include the parametric design capabilities for parts, by means of writing C language program.In this paper, we have made five parametric design UI dialog for transformer core, wrist strap, horn ring and en

5、d circle. The transformer core design includes the height, width, and core column, the iron yoke thickness changes; we can modify radius of curvature, insulation layer thickness and other parameters of wrist strap; we can modify the parameters such as diameter, diameter, height and thickness of posi

6、tive and negative horn ring; for the end circle ,we can modify the pad thickness upon the paper ring and parameters of the paper circle.In the Parameters dialog box, we can modify the parameters of the parts prototype direct regeneration of new parts. With this feature, we can easily modify the unre

7、asonable structure .It can greatly improved work efficiency.Keywords:The Secondary Development of Pro/E;Pro/TOOLKIT;Parametric DesignPAGE II- - PAGE 5 -目录 TOC o 1-3 h z u HYPERLINK l _Toc328492049 摘要 PAGEREF _Toc328492049 h I HYPERLINK l _Toc328492050 Abstract PAGEREF _Toc328492050 h II HYPERLINK l

8、_Toc328492051 第1章 绪论 PAGEREF _Toc328492051 h 5 HYPERLINK l _Toc328492052 1.1 计算机辅助设计变压器意义 PAGEREF _Toc328492052 h 5 HYPERLINK l _Toc328492053 1.2 Pro/E用于变压器设计的优势 PAGEREF _Toc328492053 h 5 HYPERLINK l _Toc328492054 1.3 Pro/E二次开发与Pro/TOOLKIT的优势 PAGEREF _Toc328492054 h 6 HYPERLINK l _Toc328492055 1.4 本

9、文主要研究目的和内容 PAGEREF _Toc328492055 h 6 HYPERLINK l _Toc328492056 第2章 Pro/TOOLKIT应用初步 PAGEREF _Toc328492056 h 7 HYPERLINK l _Toc328492057 2.1 Pro/E二次开发环境设置 PAGEREF _Toc328492057 h 7 HYPERLINK l _Toc328492058 2.1.1 包含Pro/ENGINEER提供的函数的头文件 PAGEREF _Toc328492058 h 7 HYPERLINK l _Toc328492059 2.1.2 包含Pro/E

10、NGINEER提供的库文件 PAGEREF _Toc328492059 h 8 HYPERLINK l _Toc328492060 2.1.3 设置附加依赖项 PAGEREF _Toc328492060 h 8 HYPERLINK l _Toc328492061 2.2 Pro/TOOLKIT的应用程序结构 PAGEREF _Toc328492061 h 9 HYPERLINK l _Toc328492062 2.2.1 Pro/TOOLKIT包含文件(Include Files) PAGEREF _Toc328492062 h 9 HYPERLINK l _Toc328492063 2.2.

11、2 Pro/TOOLKIT应用程序的内核 PAGEREF _Toc328492063 h 9 HYPERLINK l _Toc328492064 2.3 Pro/TOOLKIT的数据结构 PAGEREF _Toc328492064 h 10 HYPERLINK l _Toc328492065 2.3.1 对象及对象名 PAGEREF _Toc328492065 h 10 HYPERLINK l _Toc328492066 2.3.2 动作及Pro/TOOLKIT函数 PAGEREF _Toc328492066 h 10 HYPERLINK l _Toc328492067 2.3.3 对象句柄

12、PAGEREF _Toc328492067 h 11 HYPERLINK l _Toc328492068 2.3.4 Pro/TOOLKIT的函数原型与函数的返回值 PAGEREF _Toc328492068 h 11 HYPERLINK l _Toc328492069 2.4 宽字符(wchar_t) PAGEREF _Toc328492069 h 11 HYPERLINK l _Toc328492070 2.4.1 宽字符函数 PAGEREF _Toc328492070 h 11 HYPERLINK l _Toc328492071 第3章 Pro/E模型参数化设计文件与函数说明 PAGER

13、EF _Toc328492071 h 13 HYPERLINK l _Toc328492072 3.1 相关文件的使用与说明 PAGEREF _Toc328492072 h 13 HYPERLINK l _Toc328492073 3.1.1 注册文件 PAGEREF _Toc328492073 h 13 HYPERLINK l _Toc328492074 3.1.2 跟踪文件 PAGEREF _Toc328492074 h 14 HYPERLINK l _Toc328492075 3.2 设计菜单 PAGEREF _Toc328492075 h 14 HYPERLINK l _Toc3284

14、92076 3.2.1 向菜单栏中添加菜单条 PAGEREF _Toc328492076 h 14 HYPERLINK l _Toc328492077 3.2.2 向菜单条中添加菜单按钮设置按钮动作函数 PAGEREF _Toc328492077 h 14 HYPERLINK l _Toc328492078 3.3 设计对话框 PAGEREF _Toc328492078 h 15 HYPERLINK l _Toc328492079 3.3.1 资源文件 PAGEREF _Toc328492079 h 15 HYPERLINK l _Toc328492080 3.3.2 UI对话框的控制程序设计

15、 PAGEREF _Toc328492080 h 16 HYPERLINK l _Toc328492081 3.4 模型 PAGEREF _Toc328492081 h 16 HYPERLINK l _Toc328492082 3.4.1 模型对象 PAGEREF _Toc328492082 h 16 HYPERLINK l _Toc328492083 3.4.2 模型项 PAGEREF _Toc328492083 h 16 HYPERLINK l _Toc328492084 3.4.3 实体对象 PAGEREF _Toc328492084 h 16 HYPERLINK l _Toc32849

16、2085 3.5 三维模型的参数化设计 PAGEREF _Toc328492085 h 17 HYPERLINK l _Toc328492086 3.5.1 三维模型样板的建立 PAGEREF _Toc328492086 h 17 HYPERLINK l _Toc328492087 3.5.2 参数化设计程序 PAGEREF _Toc328492087 h 18 HYPERLINK l _Toc328492088 第4章 自定义函数与变压器结构件的参数设计 PAGEREF _Toc328492088 h 19 HYPERLINK l _Toc328492089 4.1 自定义函数 PAGERE

17、F _Toc328492089 h 19 HYPERLINK l _Toc328492090 4.1.1 函数ParamsList ( ) PAGEREF _Toc328492090 h 19 HYPERLINK l _Toc328492091 4.1.2 函数ParamGetAndShow( ) PAGEREF _Toc328492091 h 20 HYPERLINK l _Toc328492092 4.1.3 函数Update_Action( ) PAGEREF _Toc328492092 h 20 HYPERLINK l _Toc328492093 4.1.4 函数 ParamUpdat

18、e( ) PAGEREF _Toc328492093 h 21 HYPERLINK l _Toc328492094 4.1.5 函数CANCEL_Action( ) PAGEREF _Toc328492094 h 22 HYPERLINK l _Toc328492095 4.2 铁心的参数化设计 PAGEREF _Toc328492095 h 22 HYPERLINK l _Toc328492096 4.3 静电环的参数化设计 PAGEREF _Toc328492096 h 23 HYPERLINK l _Toc328492097 4.4 角环的参数化设计 PAGEREF _Toc328492

19、097 h 24 HYPERLINK l _Toc328492098 4.5 端圈的参数化设计 PAGEREF _Toc328492098 h 25 HYPERLINK l _Toc328492099 结论 PAGEREF _Toc328492099 h I HYPERLINK l _Toc328492100 致谢 PAGEREF _Toc328492100 h II HYPERLINK l _Toc328492101 参考文献 PAGEREF _Toc328492101 h III HYPERLINK l _Toc328492102 附录A PAGEREF _Toc328492102 h I

20、V HYPERLINK l _Toc328492103 附录B PAGEREF _Toc328492103 h VIII绪论 -计算机辅助设计变压器意义电力变压器是电力网中的主要电力设备,在电力系统中起到改变电压等级的作用。并且,电力变压器还广泛应用与发电厂、输变电网络和变电中。由于其重要性,电力变压器得到迅猛得发展。电力变压器在未来有着极大的发展空间。目前,制约变压器电压等级和容量的关键因素是其绝缘问题。绝缘结构设计的优劣不仅限制了变压器容量,而且对变压器的安全可靠运行及经济性具有重要意义。从二十世纪80年代以后,随着计算机技术的发展,CAD在变压器设计方面的应用变得越来越广泛。世界上很多大

21、型的变压器制造商,如瑞士的ABB、德国的西门子等都开发研制出了自己的变压器CAD技术。而美国,早在二十世纪50年代便将计算机辅助设计引入到变压器的电磁设计中。在二十世纪60年代,日本、英国、挪威等发达国家也开始致力于研究变压器的优化设计工作。随着我国电力事业的快速发展,为了满足市场对加快产品设计即生产周期的需求同时也为了减轻设计人员的劳动强度及降低差错率,使用计算机CAD技术辅助设计变压器已经广泛使用于行业之中。我国在变压器CAD技术方面的研究开始于二十世纪70年代。在变压器三维结构设计方面,我国沈变研究所处于全国领先水平,先后研制出引线设计、铁心设计、油箱设计、绕组及器身绝缘设计等一系列数字

22、化设计系统,并得到全面应用,充分验证了计算机辅助设计系统的实用性与便捷性。先进、完善的CAD技术不仅可以提高企业设计生产的效率,它的演进,更是与一个国家的工业发展息息相关。我国在CAD技术上虽然取得了很大的进步,但从总体上看,尤其是在变压器CAD技术上,与发达国家相比还有一段距离。我国自主研发的CAD软件功能略为单一且商业化程度不够高,有很大的发展空间。Pro/E用于变压器设计的优势Pro/E是1988年由美国PTC(参数设计)公司开发的三维建模软件。经过不断的发展和完善,目前该软件已成为世界上最普及的CAD/CAM/CAE软件之一,成为三维机械设计软件的领军者。使用Pro/E进行变压器设计与

23、AutoCAD相比优势非常显著。1提高了效率。天威保定变压器厂对使用两种设计方法设计相同型号变压器所需时间进行了对比。采用AutoCAD软件设计折算到1名设计人员所需时间为5个月,同时,使用Pro/E软件设计只需1个月的时间。设计周期缩短了80%。2减少了设计错误的发生。Pro/E具有干涉检查与虚拟装配两大AutoCAD不具备的功能。其中,干涉检查可以检查装配体中各零件是否有相交部分,虚拟装配功能使设计人员可以讲每个零件装配起来,形成一个完整产品。这两大功能可以大大减少设计人员的错误,提高产品的质量。3工程图纸比例真实。利用Pro/E软件进行设计产生的工程图纸均是在三维实体模型上产生的,这就保

24、证了工程图纸的图形比例与真实结构一致性,提高了工程图纸的质量。Pro/E二次开发与Pro/TOOLKIT的优势Pro/E具有很强的通用性,广泛应用与电气、机械、模具、工业设计等行业,是一个全方位3D产品开发软件。然而,正是由于这种广而博的通用性,衍生出“二次开发”的出现。所谓的“二次开发”就是插件设计,也就是“编程”。因为:“天下没有十全十美的软件,同时因为设计行业的面太广太杂,也无法应付所有的分支专业”。当企业因为竞争激烈,而急需设计效益或降低成本时,就愿意花钱购买一些特别针对该专业设计的CAD功能软件,以增加企业竞争力。变压器CAD技术便是在原有软件上作二次开发。对Pro/E二次开发主要通

25、过两种方法分别是C语言和VB语言。C语言是通过基于Pro/E软件自带的二次开发软件包Pro/TOOLKIT来实现的,该方法是Pro/E最根本的二次开发方法。甚至Pro/E程序本身便是基于Pro/TOOLKIT应用程序开发的,所以,用它写成的程序可达到与Pro/E无缝连接的境界。同时,Pro/TOOLKIT使用面向对象风格的C编程,且提供了一个庞大、用于底层资源调用的C语言函数库和头文件 ,能够使外部应用程序安全有效地访问Pro/E的数据库和应用程序。使用VB语言的优势在于简单易学,但使用此语言一般需要第三方软件作为中间桥梁才能访问Pro/E的底层数据库,达到Pro/E二次开发目的。本文主要研究

26、目的和内容本文主要研究如何利用Pro/E系统提供的Pro/TOOLKIT工具包的支持,实现变压器端部绝缘件的参数化设计。在本文中,共设计了变压器铁心、静电环、正角环、反角环和端圈的参数化设计对话框。可以通过编辑对话框中显示的对应参数值,修改绝缘件的参数尺寸。并且,再生为一个新的零件。本文编写的详细代码见附录。Pro/TOOLKIT应用初步本章主要研究Pro/TOOLKIT使用的一些基础知识,是做Pro/E二次开发的必备知识,可以说是做二次开发的常识。所以,本章节除了做参数化设计所用到的个别函数外,其余知识不提供具体例子加以详细解说。Pro/E二次开发环境设置针对Pro/E WildFire 5

27、.0版本官方推荐使用Microsoft Visual Studio 2008(下文简称VS2008)编写二次开发程序。要开发用于Pro/E的程序,必须使用Pro/E提供的接口函数,要使用这些接口函数,就必须对VS2008进行一些配置,使VS2008能够找到这些函数的声明和用法。 包含Pro/ENGINEER提供的函数的头文件设置方法:打开VS2008之后,直接选择“工具”“选项”,在选项对话框内做如上图2-1所示的设置。图2-1 Microsoft Visual Studio 2008配置包含文件需要在包含目录中添加如图所示四个路径,路径中为Pro/E的安装路径。protoolkitprotk

28、_applsincludesprotoolkitincludesprodevelopprodev_applsincludesprodevelopincludes包含Pro/ENGINEER提供的库文件设置方法:需要在库目录中添加如图2-2所示三个路径。prodevelopx86e_win64objprotoolkitx86e_win64objx86e_win64obj图2-2 Microsoft Visual Studio 2008配置库文件设置附加依赖项设置方法如图2-3所示。图2-3 Microsoft Visual Studio 2008 项目属性设置附加依赖项是针对于具体项目的设置,所

29、以首先要“文件”“新建”“项目”,建立“MFC DLL”项目,生成新项目之后,选择菜单上的“项目”“属性”,进行如图2-3所示的设置。在附加依赖项红框内加入一些库:wsock32.lib mpr.lib psapi.lib protk_dllmd.lib netapi32.lib这些库保证了链接的时候能够找到toolkit函数,这些库项目根据不同的二次开发项目是不同的,库的说明参见“附录2 Pro/TOOLKIT各个库文件的详解.docx”。配置红框内有Debug和Release两个选项,都需要设置附加依赖项。前两项设置是在Microsoft Visual Studio 2008未建立任何项目

30、的时候设置的,这两项设置始终被Microsoft Visual Studio 2008保存,以后不需要重新设置。但第三项附加依赖项的设置是每建立一个新项目都需要重新设置的。Pro/TOOLKIT的应用程序结构Pro/TOOLKIT包含文件(Include Files) 在在编程过程中,使用的每一个Pro/TOOLKIT函数,必须总是包含含这些函数原形的头文件。如果在使用Pro/TOOLKIT应用程序中使用Pro/DEVELOP-类型函数,必须在Pro/Toolkit.h前包含Prodevelop.h。每个Pro/TOOLKIT应用程序源文件中,都必须包含的“头文件”(Header File)是

31、ProToolkit.h。这个文件定义了值wchar_t,即以广义字符定义了字符类型,而这些字符将被许多其他的包含文件所引用。Pro/TOOLKIT应用程序的内核Pro/TOOLKIT应用程序必须包含user_initialize和user_terminate函数。user_initialize()是Pro/TOOLKIT应用程序的初始化函数,主要用来对同步模式的Pro/TOOLKIT应用程序进行初始化,任何同步模式的应用程序要在Pro/E系统中加载都必须包含该函数,其作用相当于C程序中的main()函数。在该函数中设置用户的交互接口,如设置菜单及菜单的响应函数等。user_initializ

32、e()函数的参数如下: extern “C”:指明函数名改编的方式,实现C+与C及其它语言的混合编程。Int:函数返回值为整数。argc:参数数组argv中的参数个数。argv:char型的指针数组,用来存放输入的命令行变量。version:Pro/ENGINEER的版本号。build:Pro/ENGINEER的构建代码。errbuf:是输出函数,用来存放初始化失败的错误信息。argc、argv、version、build是Pro/E向应用程序传递的参数。user_initialize()的这五个参数可以不定义,直接不写。函数返回PRO_TK_NO_ERROR表示初始化成功。user_init

33、ialize( ) 必须至少包含一个Pro/TOOLKIT的API调用。user_terminate ( )在需要终止同步模式的Pro/TOOLKIT应用程序时调用。user_terminate( )由用户定义,其中可以不包含任何代码,但必须添加在dll中。该函数完整定义格式如图2-3:图2-3 user_initialize()函数的完整定义Pro/TOOLKIT的数据结构对象及对象名 Pro/TOOLKIT的对象实质是一种类型为结构体的数据,结构体中的成员描述了该对象的属性。为了便于区别,在Pro/TOOLKIT中所有对象的命名约定为:Pro+,对象名用英文表示。如ProFeature(特

34、征对象)、ProSurface(曲面对像)。动作及Pro/TOOLKIT函数对特定的Pro/TOOLKIT对象执行某种操作称为动作,动作的执行时通过调用Pro/TOOLKIT函数库提供的C函数实现的。与动作相关的Pro/TOOLKIT函数命名约定为:Pro+,表示和的英文单词首字母均用大写表示,如ProFeatureCreate()(特征创建)、ProFeatureDelete()(特征删除)。对象句柄句柄,是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,控件或者文

35、件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。在每个Pro/TOOLKIT中,每一个对象都有一个相应的C类型定义(TypeDef),称为一个“句柄”(Handle),它的名字通常在对象名称前加上前缀“Pro”。句柄作为类型被使用在所有指向一个那种类型的对象的变量和参数中。例如,任何对一个实体执行一个操作的Pro/TOOLKIT函数都有一个ProSolid类型的输入参数。Pro/TOOLKIT的函数原型与函数的返回值 Pro/TOOLKIT函数库提供的库函数均有相应的ANSI函数原型,并在相应的头文件中定义,在调用函数之前必须将头文

36、件包含在C程序中。大多数Pro/TOOLKIT函数的返回值类型为ProError。用来表示调用函数执行状态。其中,返回值是PRO_TK_NO_ERROR表示函数调用成功。在编程中,通过检查函数的返回值不仅便于在调试时找出错误,更重要是可以避免在执行时出现异常情况,提高程序的可靠性。宽字符(wchar_t) 与Pro/E相同,Pro/TOOLKIT必须在使用非ASCII的字符(Character Strings)的环境下运行,即所有对用户可见的字符及字符串(包括各种文字消息、键盘输入、文件名,以及所有尺寸标注名、参数名等)都不是字符char,而是一种宽字符 wchar_t。宽字符函数 宽字符串函

37、数包括ProStringToWstring()和ProWstringToString( )。在设计自己的处理宽符串的工具,为了保证可移植性,如果程序中需要使用ASCII编码,那么要将所有输入的宽字符串转化为字符串。一般使用的方法是,使用ProWstringToString( );然后在适当之处使用标准C函数执行必要的操作;并使用ProStringToWstring( )将结果转回广义字符串。1ProWstringToString( )用来将标准的ASCII字符转化为宽字符;2ProStringToWstring( )用来将宽字符转化为标准的ASCII字符。本文所做参数化设计中使用到ProStr

38、ingToWstring( )函数,其函数定义为: wchar_t* ProStringToWstring (wchar_t* wstr ,char* str) 该函数用来将char变量转化为wchar_t变量;其中第一个参数wstr为宽字符指针,输出变量;第二个参数str为普通字符指针,输入变量。在本文参数化设计中的用法举例:ProFileName MsgFile;1ProStringToWstring(MsgFile, Message.txt);2Note:第一行为变量“MsgFile”的声明,此变量为下面的菜单添加函数ProMenubarMenuAdd ( )需要调用的信息文档名(信息文

39、档的详细用法说明将在下一章节说明)。在第二行,因为ProMenubarMenuAdd ()为Pro/TOOLKIT提供函数,无法直接在函数中调用char字符变量“Message.txt”,必须经由ProStringToWstring( )输出为成宽字符MsgFile提供给函数ProMenubarMenuAdd ( )使用。Pro/E模型参数化设计文件与函数说明相关文件的使用与说明注册文件 任何一个Pro/TOOLKIT应用程序,必须编写一个dat格式的文本文件(如ZhengJiaoHuan_protk.dat)作为注册文件,才能使Pro/ENGINEER系统识别并执行应用程序。注册文件的语法格

40、式 注册文件是一个简单的文本文件,每一行都有一个预先定义的关键词,典型的DLL模式注册文件内容如:name 毕业设计 /应用程序名称/startup dll /程序启动方式/exec_file /TieXin.dll /dll程序路径及名称/text_dir /text /文本路径/allow_stop true /允许终止程序/revision 24 /版本号/end /结束标志/注册文件中主要关键字的含义如下:name: 应用程序的标识名称。exec_file: 指定包含具体路径的应用程序名称。text_dir: 指定完整的应用程序所需的文本路径。在这个路径下应用程序所用到的菜单资源文件、

41、窗口信息资源文件、对话框资源文件。这些资源文件一般包含在名为“text”的文件夹下。allow_stop:若设置为“TRUE”,则准许用户在Pro/ENGINEER进程中中止Pro/TOOKIT程序的执行,以满足在不退出Pro/E进程的前提下反复修改应用程序的目的。end:用于指示注册文件的结尾。文本信息文件文本信息文件主要是为所编写的函数程序提供文本信息说明。本文中所编写的显示于外的菜单名称、按钮名称、对话框名、以及它们的注释说明,都需要在信息文件中编写提供。信息文件将由四行语句的组构成(每组对应一条编写的信息)。这四行语句的内容如下: 1一个作为关键字的字符串,作为函数调用的标识信息。 2

42、当调用函数时,一个被用于代替第一个字符串的字符串。这个字符串类似printf ( ) 语句中的格式化字符串。通过修改信息文件中的这一行,就可以修改信息的文本,而无需修改C代码。 3另一种语言的信息翻译。 4一个空行,为将来的扩展预留(“#”也表示空行)。跟踪文件处理菜单界面的所有函数都需要用到Pro/E用于识别命令和下拉式菜单选项的字符串。我们可以通过Pro/E工作目录下的跟踪文件(Trail File)来获取一个动作命令(包括下拉菜单名、命令按钮等所有界面上看得到的选项)的识别名称。获取方法:首先,打开Pro/E,并单击目标按钮;然后,打开Pro/E工作目录,使用文字处理软件打开最新生成的跟

43、踪文件(即以trail为扩展名的文件)查看。设计菜单 Pro/E中所有的命令都可以通过菜单发出。为了方便的使用自定义的应用程序,必须为自定义的功能函数创建触发的菜单命令选项。使用Pro/TOOLKIT可以修改并新增Pro/E的菜单结构。PTC并不保证Pro/E界面的结构在将来的版本中不会改变,因此,在编写Pro/TOOLKIT应用程序时,需要向菜单栏中新增一个菜单条,并往菜单条中新增菜单按钮。设置菜单选项的动作函数。向菜单栏中添加菜单条菜单条是Pro/E菜单体系中最顶层的菜单,包含菜单、按钮、复选按钮、单选按钮等项目。创建方法分两步:1使用函数ProMenubarMenuAdd ( ) 向Pr

44、o/E添加所需菜单;2根据函数ProMenubarMenuAdd ( ) 中参数名编写信息文件。该函数的包含头文件为“ProMenuBar.h”,所以,在编写程序是必须首先添加“#include ”。这里需注意,在Microsoft Visual Studio 2008程序中编程必须使用英文输入法编写,否则,程序无法识别。其中,Microsoft Visual Studio 2008明确无法识别的包括中文引号、分号等标点符号。向菜单条中添加菜单按钮设置按钮动作函数 要添加一个按钮至菜单条,应做以下操作: 1使用函数ProCmdActionAdd ( ) 定义新增按钮的动作命令。其实质是设置菜单

45、项与动作相关联。 2使用函数ProMenubarmenuPushbuttonAdd ( ) 新增按钮至菜单条,这个操作绑定了新增动按钮到菜单条的操作。通过以上操作,点击新Pro/E菜单条下新增按钮时,Pro/E就会执行的动作函数ProCmdActionAdd( )。该函数一般为用户自定义函数。设计对话框用户界面对话框( User Interface Dialog Boxes,简称UI对话框 )是Pro/TOOLKIT提供的一种交互界面。程序员可以利用UI对话框技术,在Pro/TOOLKIT应用程序中设计出风格与Pro/E系统本身具有的对话框相似的人机交互界面。UI对话框的设计方法主要由对话框资

46、源文件和相应的控制程序两大部分构成。对话框资源文件用ASCII码文本格式编写,其内容定义了对话框的组成、外观和属性。控制程序相当于驱动程序,用C或C+语言编写,用来在Pro/E环境装入对话框资源、显示对话框、设置动作和退出对话框等。资源文件首先介绍资源文件的总体结构,如下所示:(Dialog (Components )(Resources)Dialog为顶层语句,主要包含以下两段:1.元件段 (Components)本段声明了该对话框的所有元件,元件声明的格式:(元件类型名 元件名)。2.资源段 ( Resources )资源段包含了对原件属性的定义以及对话框中布局的定义。元件属性的格式为:(

47、元件名.属性名 属性值)。对话框的布局定义格式如下:(.Layout(Grid (Rows l) (Cols l) )其中 ( Grid (Rows l) ( Cols l) 定义了对话框中元件的位置网格。Row表示行,Cols表示列,其值为“l”表示一行,“l l”则表示两行,n个1或0代表n行。表示行或列的“l”也可以取“0”,“l”表示元件的大小可随UI对话框的大小变化而变。UI对话框的控制程序设计资源文件仅仅是对UI对话框的描述,必须通过Pro/TOOLKIT应用程序来装入、显示和控制对话框。创建一个UI对话框的分四个步骤。1调用函数ProUIDialogCreate ( ) 用于将资

48、源文件调入内存,是创建一个UI对话框的首要步骤 。2编写输入框的设置函数以及按钮的动作函数。UI对话框中每个元件都有各自的属性、属性值、以及相关的控制函数。因为本文主要为了实现参数设计,所以在本文只用到并介绍输入框(InputPanel)和按钮(PushButton)的动作函数。以下为Pro/TOOLKIT提供的三个基本函数。ProUIInputpanelValueGet ( )从输入框中获取参数值。ProUIInputpanelValueSet ( ) 获取指定参数值。ProUIPushbuttonActivateActionSet( )设置按钮的动作。3调用ProUIDialogActiv

49、ate ( ) 显示和激活对话框。4调用ProUIDialogDestroy( ) 清除对话框资源。模型模型对象模型对象即模型句柄。句柄,是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,来标志应用程序中的不同对象和同类对象中的不同的实例。模型句柄被定义为无类型指针。它不仅可以表示零件模型。工程图模型,还可以表示其他类型的模型。同时,因为其值的不确定性,不能直接用来引用不在Pro/E系统当前内存中的模型。当前窗口中模型句柄的获取可以通过函数ProMdlCurrentGet ( )来实现的。 模型项模型项(modelitem)是一个结构体类型的通用对象,主要用来描述不同类型模型

50、中所包含的项目。在Pro/TOOLKIT中用ProModelitem表示模型项对象(结构体)。可以通过函数ProMdlToModelitem ( )将模型句柄转换为模型项。实体对象实体对象是模型对象的一中,用于表示零件模型和装配件模型。函数ProSolidRegenerate ( ) 可以再生或更新一个实体零件。定义如下:ProError ProSolidRegenerate (ProSolid p_handle,int flags);函数中参数“p_handle”是零件模型的句柄;“flags”是用来设置再生过程的选项。详细设置请参考帮助文档。三维模型的参数化设计利用设计参数来控制三维模型的

51、基本原理是采用三维模型与程序控制相结合的方式。在以创建的零件三维模型基础上,进一步根据零件设计要求建立一组可以控制三维模型形状大小的设计参数。参数化程序针对该零件的设计参数进行编程,实现设计参数的检索、修改以及根据新的参数值生成新的三位模型的功能。其主要过程如图3-1所示:图3-1 三维模型参数设计流程图三维模型样板的建立 在Pro/E环境用人机交互方式建立三维模型样板。创建方法与一般的三维模型相同,但需注意以下几点:约束在对三维模型样板进行特征造型时,对二维截面轮廓,利用尺寸标注和施加相切、固定点、同心、共线、垂直及对称等关系实现对几何图形的全约束。设计参数 正确设置控制三维模型的设计参数。

52、设计参数可分为两种情况:一是与其他参数无关的独立参数;另一种是与其他参数相关的非独立参数。前者主要用来控制三维模型的几何尺寸和拓朴关系,后者可用以独立参数为自变量的关系式表示。参数与尺寸变量关联 正确建立设计参数与三维模型尺寸变量之间的关联关系。在Pro/E中创建草图、加减材料和其他修饰特征时,系统将会以d0、dl、d2等默认的符号给特征的约束参数命名。系统的约束参数命名是由Pro/ENGINEER系统自动创建的,其值控制三维模型的几何尺寸和拓朴关系,与用户建立的参数无关。要使用户建立的设计参数能够控制三维模型,必须使二者相关联。主要有两种方法: 1在创建或修改特征需要输入数值时,直接输入参数

53、名。如在草图中标注或修改尺寸值时用参数名代替具体数值。2利用Pro/E的关系式功能创建新的关系式,使Pro/E系统自动创建的约束参数名与设计参数关联。参数化设计程序 本程序的功能主要包括检索三维模型的设计参数、并提供参数的编辑功能和根据新的设计参数再生三维模型的功能。参数对象和参数值参数对象(Parameter Object)和参数值(the value of a parameter)均是结构体的一种数据对象。在Pro/TOOLKIT中,前者为ProParameter类型数据,后者为ProParamvalue类型数据。参数对象的检索 要从Pro/E的模型或特征中获取参数值,首先必须得到只想该参

54、数对象的指针,即从Pro/E数据库中检索到所需的参数对象句柄。通过调用函数ProParameterInit ( )初始化参数指针,根据已知的参数名和父对象获取指向ProParameter对象的指针。参数的编辑本文中对参数的编辑即是将零件中旧的参数值替换为我们输入的新的参数值。又因为UI对话框的输入框的存在,这里就需要用到下面两个函数ProParameterValueGet( )与ProParameterValueSet( )。函数ProParameterValueGet( )通过输入一个参数对象指针来获取参数对象的值。函数ProParameterValueSet( )作用为输入一个参数对象指针

55、与参数对象值,并将对象值赋与该对象。实体模型的再生 模型的再生可使用函数ProSolidRegenerate ( )实现。自定义函数与变压器结构件的参数设计自定义函数虽然Pro/TOOLKIT自身提供了大量的函数,但这些函数的功能毕竟单一,仅仅依靠它们并不能实现用户多样的功能要求。这时候,必须依靠用户编写自定义的函数来合理运用各函数的功能以实现自己所要的功能。以铁心的参数化设计为例(见图5-6)。点击菜单条下“铁心参数设计”按钮,会弹出铁心参数设计对话框。在铁心的对话框中,输入框首先会显示零件的对应参数的初始值。然后,我们可以在输入框中输入新的参数。最后点击“模型更新”按钮会执行一个将输入框中

56、的新参数更新到零件并再生为一个新的零件。这些,仅仅简单使用Pro/TOOLKIT提供的输入框设置函数与按钮动作函数是无法实现这些功能的。所以,必须编写自定义函数,将Pro/TOOLKIT提供的对话框函数、模型函数、参数相关函数有机的结合起来,使其各部所需以实现上述功能。本文共编写了MenuActFn( )、ParamGetAndShow( )、ParamsList( )、ParamUpdate( )、Update_Action( )与CANCEL_Action( )六个自定义函数。其中函数MenuActFn( )将作为4.2.2款中的动作函数,即执行UI对话框的创建函数、对话框中输入框设置函数

57、、按钮的动作函数以及将对话框从内存中清除。自定义函数ParamsList( )作为输入框的设置函数,在本函数里将会执行函数ParamGetAndShow( )。自定义函数Update_Action( )作为按钮“模型更新”的动作函数,在本函数里包含了函数ParamUpdate( )。自定义函数CANCEL_Action( )作为按钮“退出”的动作函数,将会清除输入框中数据,并执行函数ProUIDialogExit( )来退出对话框。函数ParamsList ( )本函数的完整编码如图4-1所示。图4-1函数ParamsList ( ) 编码示意图 第一框中声明了两类模型变量,第二框中通过第一条

58、函数获取了当前窗口中模型的对象句柄,并由第二个函数转换为模型项输出。第三框中,以为需要处理多组数据,所以另外编写了自定义函数ParamGetAndShow( )。函数ParamGetAndShow( )本函数完整编码如图4-2所示。图4-2 函数ParamGetAndShow ( ) 代码示意图图中绿色文字为对编码的注释,对程序无影响。1号框:一个模型项,该参数从在ParamsList( )中获取;2号框:4个参数变量的声明;3号框:两个Pro/TOOLKIT函数语句,分别用于初始化零件模型的参数和获取参数值;4号框:上文介绍的Pro/TOOLKIT提供的输入框设置函数,用于将前面获取到的参数

59、值显示于输入框中。函数Update_Action( )函数Update_Action( ) 的完整代码如图4-3所示。图4-3 函数Update_Action( )代码示意图1号框:声明了模型对象和模型项对象;2号框:第一个函数作用为获取当前模型的模型句柄,第二个函数是将模型对象转换为模型项对象;3号框:自定义函数,函数功能为从参数输入框中获取新的参数值,并设置参数对象新的参数值。4号框:模型零件再生命令。当前界面的零件经过3号框中函数更新了指定的参数值,需要执行此函数再生为新的零件。5号框:当执行零件再生命令后,会弹出再生进度条,需要使用该函数来更新视图。函数 ParamUpdate()函数

60、的完整代码如图4-4所示。图中各部分代码意义如下。1号框:声明了一个宽字符指针、宽字符对象、参数对象、参数值对象、“Char”类型字符串;2号框:首先利用函数ProStringToWstring( )将自定义ParamUpdate( )函数的第三个输入参数“char”字符转换为宽字符作为函数ProParameterInit( )的输入值以初始化模型参数。然后执行函数ProUIInputpanelValueGet( )从UI对话框的输入框中获取数值;3号框:将从UI对话框中获取的数值转换为“char”字符,作为四号框中C语句中选择结构的输入值;4号框:第一条函数通过参数对象“¶m”与参数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论