资源目录
压缩包内文档预览:(预览前20页/共26页)
编号:24963864
类型:共享资源
大小:6.95MB
格式:RAR
上传时间:2019-11-18
上传人:遗****
认证信息
个人认证
刘**(实名认证)
湖北
IP属地:湖北
19
积分
- 关 键 词:
-
基于
ProE
三维
标准件
研究
开发
- 资源描述:
-
基于ProE的三维标准件库的研究与开发,基于,ProE,三维,标准件,研究,开发
- 内容简介:
-
1. 绪论1.1开发的目的和意义标准件在机械、电子、轻工、汽车、航空航天、造船等各个领域应用广泛。对当今机械产品的零部件分析表明,标准零部件的数量约占到60%左右,30%左右的零部件是通过变型设计得到的通用件,而根据客户特殊需求开发的零部件只有10%左右。标准零部件不仅数量多,且在设计过程中需要频繁查阅各种设计手册。据统计,标准零部件的选用及绘制约占全部设计时间的70%,所以,在产品设计中,标准零部件的设计是一项费时费力且带有很大重复性的操作,这显然与日趋激烈的市场竞争环境不相适应。因此,很有必要开发各种通用和专用的标准件库来取代这一繁琐、复杂的劳动。随着经济的发展和计算机应用的普及,尤其是信息技术、网络技术的发展,标准件库的共享己成为我国CAD技术广泛应用后所面临的难题之一。目前国内的机械、建筑等行业的大部分企业都采用了CAD系统,如AutoCAD,Pro/ENGINEER(以下简称Pro/E), UG, CATIA,SolidWorks,SolidEdge等。但是,大多数CAD系统本身并不包含标准件库,少数提供标准件库的CAD系统,其所包含的标准件种类及数量也都非常有限,且有一个共同的缺点:可抑制性和软件复用性差,不能满足工程设计人员的需求。因此,为了建立符合我国国标或各行业行标的标准件库,许多研究单位和部门都在各种CAD平台上利用其提供的二次开发接口进行了二次开发。Pro/Engineer Widefire软件是美国PTC公司开发的新一代CAD/CAM系统,自从面世以来,以全参数化尺寸驱动、基于特征、单一全关联的数据库等优点深受顾客好评,并成为国际参数化的行业标准。本课题采用的是基于Pro/Engineer Widefire2.0平台,通过加载Pro/Toolkit应用程序,借助第3方编译环境VC+对Pro/Engineer进行二次开发,通过参数设置,采用程序自动完成尺寸修改更新模型的方法,设计各类不同规格的产品,把零件模型的标准库和自动更新模块加入到Pro/E中,利用MFC集成方式,实现了标准件的参数化自动更新技术。便快捷地实现产品设计者意图,有较好的实用性和推广价值。1.2 本课题所涉及的问题在国内研究现状及分析:随着计算机的广泛应用和蓬勃发展,许多高校和科研所及公司根据我国的计算机国情和国家标准在很多领域进行了大量的二次开发工作。但是,每项二次开发工作都有其独有的特点。正是如此,才满足了不同层次、不同行业部门的需求。目前,国内实际应用的CAD系统可分为两大类:一类是国产自主版权的CAD软件,另一类是国外商品化CAD软件。由于国外CAD软件的功能齐全,性能优良,并完成了商品化和工程化的需求,因此在国内市场占有很大的份额。然而,此类商品化的软件一般都是通用化软件,用户在应用时必须根据各自行业的特点进行不同程度的二次开发,方能发挥出应有的效益。因此,CAD进口软件的二次开发是具有实际应用价值的课题。下面介绍本课题基于Pro/Engineer Widefire平台的三维标准件库的研究与开发在CAD软件应用中的研究现状及分析:1.2.1研究现状: PRO/E不仅提供了参数化特征造型的环境,同时PRO/E还允许用户和开发者对产品及设计过程采用二次开发方法进行参数化定制。PRO/E提供了多种二次开发工具,在我国设计者们常用的有:族表(Family Table)、用户自定义特征(UDF)、Pro/Program、 J-link和Pro/Toolkit等。1.2.2现状分析: 其中,Pro/Toolkit是基于C语言的,能实现与Pro/E的无缝集成,是Pro/E功能最为强大的二次开发工具,它采用面向对象的方法,封装了许多可以访问Pro/E底层资源的库函数与头文件,借助第三方编译环境进行编译调试,因而最为开发者所使用。 此系统以Pro/Engineer Widefire为支撑平台,应用Pro/Toolkit二次开发工具,采用面向对象的设计思想及VC+6.0编程语言,将设计代码编译成动态链接库文件,在Pro/E环境下运行,从而既利用Pro/E环境的强大功能,又利用C语言的结构化编程、运行效率高的优势,在系统界面上保持与Pro/E系统一致的风格,采用全汗化界面、菜单及丰富的对话框等接口形式。力求提示醒目、操作简单、容错能力强,以适合从事机械设计人员实际使用的需要。2. 系统开发工具及采用的关键技术2.1系统开发工具介绍2.1.1 Pro/Engineer的简介Pro/Engineer软件系统是美国参数化技术公司PTC (Parametric Technolog Corporation)的优秀产品,提供了集成产品的三维造型设计、加工、分析及绘图等功能的完整CAD/CAE/CAM解决方案。该软件以使用方便、参数化造型和系统的全相关性而著称。目前Pro/Engineer软件在我国的机械、电子、家电、塑料模具、工业设计、汽车、自行车、航天、家电、玩具等行业取得了广泛的应用,该软件在国内的应用数量大大超过了同类型的其它国外产品。 Pro/Engineer可谓是个全方位的3D产品开发软件,集合了零件设计、产品组合、模具开发、NC加工、饭金件设计、铸造件设计、造型设计、逆向工程、自动测量、机构仿真、应力分析、产品数据管理于一体,其模块众多。主要由以下六大主模块组成:工业设计(CAID)模块、机械设计(CAD)模块、功能仿真(CAE)模块、制造(CAM)模块、数据管理(PDM)模块和数据交换(Geometry Translator)模块。这里将介绍一下Pro/Engineer的主要特性:(1)相关性(Full Associativity)相关性是指所有的Pro/Engineer的功能都相互关联.这就意味着在产品开发过程中,用户任何时候所作的变更,都会扩展到整个设计中,同时自动更新所有工程文档如部件、加工以及产品信息管理等。全相关性鼓励在开发周期的任一点进行修改却没有任何损失一并使并行工程成为可能,所以能够使开发后期的一些功能提前发挥作用。Pro/Engineer系统开发环境最突出的特点就在于它能够支持并行工程,通过一系列足以表现外形、装配性能的全相关性的解决方案,可以让用户同时在几个技术领域处理一个产品模型。这些能力包括造型设计、机械设计、功能设计、加工以及产品信息管理等。Pro/Engineer提供的参数化设计的最大的特点就是单一数据库(SingleDatabase). Pro/Engineer配合单一数据库,所有设计过程所使用的尺寸(参数)都存在数据库中,修改CAD模型及工程图不再是一件难事,设计者只需更改3D零件的尺寸,则2D工程图就会依照尺寸的修改做几何形状的变化,同样修改2D工程图的尺寸其相关的3D实体模型也会自动修改,同时装配、制造等相关设计也会自动修改,这样可确保数据的正确性,达到设计修改工作的一致性,避免发生人为改图的疏漏情形,且减少许多人为改图的时间和精力的消耗。也正因为有参数式设计,用户才可以运用强大的数学运算方式,建立各尺寸参数间的关系式使得模型可自动计算出应有的外型,减少尺寸逐一修改的繁琐费时,并减少错误发生。(2)基于特征的参数化建模(Feature-based Parametric Modeling)参数式设计就是将零件尺寸的设计用参数来描述,并在设计修改时通过修改参数的数值来更改零件的外形。参数化设计的思想在工业界传播了许多年,1988年,Pro/Engineer以参数式设计的思想问世以后,业内人士即对参数式设计CAD/CAM的思想翘首以待。Pro/Engineer:对于传统机械设计工作来说,有相当大的帮助作用,因为Pro/Engineer中参数不只代表设计对象的外观相关尺寸,并且具有实质上的物理意义24。例如我们可以运用系统参数(System parameters,如体积、表面积、重心、三维坐标等),或用户依设计流程所定义的用户定义参数(User defined parameters,如密度、厚度等具有设计意义的物理量或字符串)加入设计构思中来表达设计思想。这项参数化设计的功能不但改变了设计的概念,并且将设计的便捷性推进了一大步。(3)数据管理(Data Management)为了在最短的时间内完成最多的开发工作,必须允许多个学科的工程师同时对同一产品进行开发。Pro/Enginee:数据管理功能可以管理并行工程所要求的并行作业程序,并通过全相关性达到并行工程的有的。(4)装配管理(Assembly Management)Pro/Engineer能够让用户使用贴合(Mate),插入(Insert)、对齐(Align)等直觉式指令,轻松装配零部件,保持设计意图,达到设计目的。而高级的功能则支持大型复杂装配体的创建与管理,并且零件数目不受限制。(5)工程数据库重用(Engineering Date Reuse EDR)工程数据库重用就是为了达到大幅提高生产力、降低成本的目的,而以标准、公认的设计作为新产品设计的基础,它能够让用户快速开发整个产品系列。Pro/Engineer的基本结构使EDR易于实现。随着将来几代产品的创建,会发现从Pro/Engineer中获得的益处将大大超过最初的投资.(6)易用性(Ease of Use)Pro/Engineer独有的自动导引菜单为用户提供了使用方便的选项,也可以预先选定最常用的功能。此外,系统还提供了简短的功能菜单说明和完整的在线帮助。这些都使得Pro/Engineer具有非常好的易用性。(7)硬件独立性(Hardware Independence)Pro/Engineer可以在UNIX和Windows98/2000NT/XP平台下运行,并在每个系统中都维持相同的界面,使用的感觉也一样。用户可以根据自己的需求,选购最经济的硬件配置,再混用或搭配任何一种平台组合。由于Pro/Engineer可以运行在不同环境中,具有独特的数据结构模式,因此可以方便地让信息在不同平台的机器之间相互转换。2.1.2应用程序开发工具系统程序模块的设计选择Visual C+6.0作为开发平台。VC+6.0是运行于Windows上的交互式可视化集成开发环境,是美国Microsoft Visual Studio的一部分。像其它的可视化开发环境(如Visual Basic, Delphi, C+ Builder)一样,VC十十6.0集程序的代码编辑、编译、连接调试等于一体,给编程人员提供了一个完整而又方便的开发界面和许多有效的辅助开发工具。VC+6.0的应用程序向导(App Wizard)可以为很大一部分类型的程序提供框架代码,用户不需要书写代码,只需要几个按钮就可以生成一个完整的可以运行的程序网。2.2所采用的关键技术2.2.1参数化设计的概念参数化设计模型是以约束来表达产品模型的形状特征,以一组参数来控制设计结果,从而能通过变换一组参数值方便地创建一系列形状相似的零件。参数化设计的基本手段有程序驱动与尺寸驱动。程序驱动法是通过分析图形几何模型的特点,确定模型的主参数以及各尺寸间的数学关系,将这种关系输入程序中,进而在零件设计时只要输入几个参始值就可生成所要求的模型(26。尺寸驱动是对程序驱动的扩展,它的基本思想是由应用程序生成所涉及的基图,该图的尺寸有一系列的标识,这些尺寸由用户在编程时输入或交互式输入,从而生成用户的模型。传统的CAD绘图技术都用固定的尺寸值定义几何元素,输入的每一条线都有确定的位置,要想修改图面内容,只有删除原有的线条后重画。而新产品的开发设计只需要多次反复修改,进行零件形状和尺寸的综合协调和优化。对于定型产品的设计,需要形成系列化,以便针对用户的生产特点提供不同功率、规格的产品。2.2.2 Pro/Engineer的二次开发工具Pro/Engineer是一个功能强大的三维产品设计软件。它融入了单一数据库、参数化、基于特征、全相关的设计概念,可以将设计至生产全过程集成到一起,让所有的用户能够同时进行同一产品的设计制造工作,即实现所谓的并行工程。Pro/Engineer在提供强大的设计、分析、制造功能的同时,也为用户提供了多种二次开发工具。常用的二次开发工具有:族表(Family Table)、用户定义特征(UDF),Pro/Program, J-link, Pro/toolkit等。(1)族表(Family Table)。族表是一个用表格来驱动模型的工具,通过族表可以方便地管理具有相同或相近结构的零件,特别适用于标准零件的管理。族表可以将事先定义好的模型(称为“GENERIC”的零件)中可供驱动的尺寸参数、特征、模型参数等放入表格中,通在表格中输入参数值就可创建一个新的零件(称为“INSTANCE”的零件)。族表的产生过程是,首先建立一个具有代表性的零件,此零件称为通用零件或原始零件(GENERIC PART)。然后,根据可变情况编辑族表项目,可变项目可以是:尺寸(Dimension)、参数(Parameter)、特征( Feature )、与组件(Component)等。完成族表内容后,需进行校验,然后系统会自动一一再生,从而生成若干子零件(Instance Part).(2)用户定义特征(UDF)。用户定义特征是将若干个系统特征融合为一个自定义特征,使用时作为一个整体出现。系统将UDF特征以gph文件保存。UDF适用特定产品中的特定结构,有利于设计者根据产品特征快速生成几何模型。(3) Pro/Program。在零件的设计过程中,如果零件的外形具有高度的重复性,那么经常重复同样的步骤便显得不具效率。为了提高工作效率,Pro/Engineer提供了一个可程序化的工具 Pro/Program。在Pro/Engineer系统中,每建立一个模型,都会有一个宏文件记录模型的产生过程,如果能够对这个宏文件进行修改,则可以控制模型的建立过程,从而控制所生成的模型。这个宏文件是由类似Basic的高级语言构成的,用户可以根据设计需要来编辑模型的Program,使其作为一个程序来工作。通过运行该程序,系统通过人机交互的方法来控制系统参数、特征出现与否和特征的具体尺寸。利用此工具可以将某些经常要更改的步骤或尺寸,事先以语句的方式写入,使得每个使用这些零件的普通人员也能明白如何操作,在使用当中只需输入关键的参数。便可直接生成零件,从而大大地提高了零件设计效率明。(4)J-link. J-link是Pro/Engineer中自带的基于JAVA语言的二次开发工具。用户通过JAVA编程实现在软件Pro/Engineer中添加功能。(5) Pro/toolkit.Pro/toolkit同J-link一样也是Pro/Engineer中自带的二次开发工具。不过它是基于C语言的。Pro/toolkit能实现与Pro/Engineer的无缝集成,是Pro/Engineer自带的功能最强大的二次开发工具3. VC+ 的环境设置3.1 VC+6.0简介VC+6.0是Microsoft公司推出的目前使用极为广泛的基Windows平台的可视化编程环境。其特点是:(1)与操作系统紧密配合,不存在兼容问题。(2)功能强大,适用面广。(3)操作简单。VC+指的是面向对象的C语言。VC+6.0提供APPWizard帮助使用MFC的用户构造一个程序框架,用户只需在此基础上增加代码即可。此外,VC+6.0具有执行速度快,底层操作能力强,数据占有资源可以准确控制等优点。3.2 创建工程及更改设置 3.2.1 启动VC+6.0,利用向导MFC App Wizard(dll)创建一个工程,使用“Regular DLL using shared MFC DLL”, 打开 Project Setting 对话框,更改工程的设置如下:1)c/c+ - Preprocessor definitions: _DEBUG,_WINDLL, WIN32,_WINDOWS, _MBCS,_USRDLL.PRO_USE_VAR_ARGS2)c/c+ - Code Generation - Use run-time library: Multithreaded3)c/c+ Code Generation - Precompiled Headers:选择 Not using precompiled headers4)link - General - Object/library modules: mpr.lib prodev_dll.lib wsock32.lib protk_dll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib sheel32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib 5)Link -Customize: 选中 Force file output 3.2.2 打开工具|选项|目录,选include files,把“E:Program FilesPROEWILDFIRE 2.0PROTOOLKITINCLUDES”加入到路径中。“E”代表PROEWILDFIRE 2.0的安装盘符 图3.1在同样的目录中,选library files, 把“E:Program FilesPROEWILDFIRE 2.0PROTOOLKITI486_NTObj”加入到路径中。 图3.2 4 Pro/Toolkit应用程序的开发4.1 Pro/TOOLKIT软件包简介Pro/TOOLKIT是PTC公司提供专门用于对Pro/E进行二次开发的软件包,即应用程序接口( API )。它为用户或第三方软件程序提供了与Pro/E的无缝链接Pro/TOOLKIT软件包提供了大量的C语言函数,可利用C语言编程来增加Pro/E的功能。Pro/TOOLKIT提供的一个C的函数库,该函数库能够使用户或第三方的应用程序以一种可控制的、安全的方式访问Pro/E的数据库和应用。客户和第三方能够在 Pro/Engineer 系统中添加所需地功能。 Pro/TOOLKIT采用的是功能强大的面向对象的方式来编写的。因此,用于Pro/E和应用程序之间传递信息的数据结构对应用程序来讲是不可见的,而只能通过Pro/TOOLKIT中的函数来访问,这就是我们所说的Pro/E底层函数。在Pro/TOOLKIT中最基本的两个概念是对象(Object)和行为(Action),它们是构成底层函数的关键。4.2 Pro/TOOLKIT 的安装和使用 4.2.1 系统要求和软件安装 想要利用 Pro/TOOLKIT 进行 Pro/Engineer 二次开发,首先必须正确安装 Pro/TOOLKIT ,所以下面先介绍如何安装 Pro/TOOLKIT ,然后再介绍如何测试 Pro/TOOLKIT 是否已经安装成功。 4.2.2 Pro/TOOLKIT 的安装 安装Pro/Engineer的时候选择安装组件步骤,打开组件 API Toolkits ,选中 Pro/TOOLKIT 选项,如下图所示,Pro/TOOLKIT 就会随着 Pro/Engineer 一起安装在用户的机器上。如图: 测试 Pro/TOOLKIT当安装完 Pro/TOOLKIT 后,应该马上通过编译、连接和运行一个简单的 Pro/TOOLKIT 程序来检验 Pro/TOOLKIT 是否安装成功,以免给后面的开发工作带来不必要的麻烦。 Pro/TOOLKIT 软件包提供了一个简单的测试程序 pt_install_test, 下面通过此程序叙述测试过程。4.2.4 编译和连接 根据 Pro/TOOLKIT 提供的 Makefile 文件“ make_install ”进行编译和连接。此文件位于(Pro/Engineer 的安装目录)protoolkiti486_ntobj目录下。有两种编译方法,一种方法是采用MS-DOS方式,另一种编译方法是在VC环境中进行编译。两种方法最后生成的的pt_install_test.exe文件完全一样,只是这两种方法的调试环境不同,一般推荐采用VC开发环境作为调试方法,主要是因为在VC调试环境下可以反复修改源程序。本设计采用在 VC 环境中进行编译,首先将文件 make_install 改名为 make_install.mak ,然后利用 VC 开发环境打开此文件,生成 VC 工程项目文件,然后执行 Build 命令编译连接,最后生成一名为 pt_install_test.exe 的文件。 图4. 14.2.5 注册 在此工作目录下,建立一个注册文件 protk.dat 文件。注册文件是一个专门用来告知 Pro/ENGINEER 系统应用程序相关信息的文件,以便 Pro/ENGINEER 系统能够识别并执行我们的 Pro/TOOLKIT 应用程序。 此 protk.dat 文件的内容如下: NAME pt_intall_testEXEC_FILE E:555888pt_install_test.exeTEXT_DIR E:ProgramFilesproeWildfire 2.0protoolkit protk_appls pt_install_testtextREVISION 26END4.2.6应用程序的执行 以包含上面的 protk.dat 文件的目录为启动目录启动 Pro/ENGINEER 系统, Pro/ENGINEER 将启动应用程序 pt_install_test 。 当该程序正确执行时,在 Pro/ENGINEER 系统的 File 菜单下会增添一个新的命令 -Install Test 。当用户单击此命令时,就会在 Pro/ENGINEER 窗口中弹出一个对话框,在该对话框中显示出“ The Pro/TOOLKIT Installation Test succeeded ”的信息。 图4. 2 图4.34.3基于Pro/TOOLKIT的二次开发 4.3.1Pro/TOOLKIT的工作模式同步模式在同步模式下,Pro/TOOLKIT和Pro/ENGINEER产生各自的进程。每个进程都能发送消息(请求),请求执行某个操作,之后每个进程都在等待返回消息,以报告操作的完成。控制权在两个进程间交换,总有一个进程处于等待状态。因此,在同步模式下,Pro/TOOLKIT应用程序和Pro/ENGINEER进程之间不是并行工作的。异步模式在异步模式下,Pro/TOOLKIT应用程序和Pro/ENGINEER能够并行,也就是说能够同时进行各自的操作。在应用程序与Pro/ENGINEER的通信方面,异步模式采用远程程序调用(rpc)方式。4.3.2工作模式的区别异步模式和同步模式的另一个主要区别在于Pro/TOOLKIT应用程序的启动;在异步模式下,应用程序(包含自己的main()主函数)能够独立于Pro/ENGINEER而启动,然后启动Pro/ENGINEER或与正在运行的Pro/ENGINEER进程连接;而在同步模式下,Pro/ENGINEER根据注册文件的信息启动应用程序。由于异步模式使用了远程调用,程序的运行要比同步模式慢的多。考虑到Pro/TOOLKIT应用程序是离不开Pro/ENGINEER环境的,所以除非万不得已,一般不主张采用异步模式。4.4 Pro/TOOLKIT 应用程序的基础知识Pro/TOOLKIT应用程序主要包括三部分:头文件、主程序、自定义函数。4.4.1 头文件:每个Pro/TOOLKIT应用程序必须包含Pro/TOOLKIT.h,放在所有文件之前。4.4.2 主程序:Pro/TOOLKIT应用程序的主程序必须包含User_initialize()和User_terminate()两个函数。函数User_initialize()在应用程序被加载、图形窗口创建之后,用户和Pro/ENGINEER交互作用之前被调用。函数User_terminate()在Pro/ENGINEER会话结束时被调用。4.4.3 用户自定义函数:这是用户自己编写的部分,他对应Pro/ENGINEER界面上添加菜单中按钮的动作,这些动作通过函数来实现。以紧固件为例,添加的菜单函数有(以标准件库为例): ProMenubarMenuAdd(标准件库,标准件库,Utilities,PRO_B_TRUE,UserMsg);/添加标准件库主菜单在Utilities后;ProMenubarmenuMenuAdd (标准件库, 紧固件, 紧固件, NULL, PRO_B_TRUE, UserMsg); /在标准件库主菜单下添加紧固件子菜单;ProCmdActionAdd(紧固件,(uiCmdActFn)GetFeature,uiCmdPrioDefault,TestAccess Default, PRO_B_TRUE,PRO_B_TRUE,&cmd_id); /动作函数ProMenubarmenuPushbuttonAdd(标准件库,紧固件,紧固件,USER New Button help., NULL,PRO_B_TRUE,cmd_id,UserMsg); /在标准件库一级子菜单下添加紧固件二级子菜单;以下是本程序的菜单:图4.4图4.5 图4.6 图4.7 4.5应用程序的开发 下面就以整体法兰为例,详细介绍一下Pro/TOOLKIT应用程序的开发过程。4.5.1建立MFC App Wizard(dll)工程启动VC+,利用向导MFC App Wizard(dll)创建一个工程,环境配置在概述中讨论过,下面以图示的方法展示创建的过程。 图4.8选择MFC App Wizard(dll),在工程名称中写“jian”,在位置处选存放路径,点击确定。图4.9在应用程序向导中选 动态链接库使用共享MFC DLL,点击完成。然后继续确定。出现VC+界面。 在Flle View 文档中出现左图所示的源文件Source Files、头文件Heder Files、资源文件Resource Files,这些文件都是在创建工程后系统自动建立的。在工程设置里进行环境设置。 具体步骤按3.VC+环境设置去做。 图4.10 图对话框的创建启动VC+环境,在插入|资源|T资源类型:中选Dialog,单击新建,建立对话框,图4.12 在FileView文档中产生了对话框实现文件Cfalan.cpp和头文件Cfalan.h 。在刚建立的对话框中,右击鼠标,在属性对话框里设置对话框标题,边框等和添加对话框控件和参数,其中的参数是再生实体的完全控制参数。图4.13图中的ID是系统产生的也可改名。右击鼠标选择建立类向导,弹出MFC ClassWizard,选Member Variables页面,在Control IDs:中给输入框设置变量类型和名称标示,如图。确定按扭添加鼠标单击函数ON_IDOK:BN_CLICKED 图4.14 图4.15图4.16选中Member functions:中的OnOK函数,点Edit Code 进入代码的编辑,VC+将自动切换到Cfalan.cpp源程序文件,添加的代码如下:(代码中附说明文字)cfalan message handlersvoid cfalan:OnOK() / TODO: Add extra validation hereProMdl model;ProModelitem modelitem;ProName ParamName1,ParamName2,ParamName3,ParamName4; /wchar_t *ParamName;ProParameter param1,param2,param3,param4;ProParamvalue value1,value2,value3,value4;ProError status;UpdateData(true); /获得当前模型status=ProMdlCurrentGet(&model);if (status!=PRO_TK_NO_ERROR)return;ProMdlToModelitem(model, &modelitem);/根据指定的参数名获得参数对象指针ProStringToWstring(ParamName1,DD);ProStringToWstring(ParamName2,NN);ProStringToWstring(ParamName3,DI);ProStringToWstring(ParamName4,DW);status=ProParameterInit(&modelitem,ParamName1,¶m1);status=ProParameterInit(&modelitem,ParamName2,¶m2);status=ProParameterInit(&modelitem,ParamName3,¶m3);status=ProParameterInit(&modelitem,ParamName4,¶m4);if (status=PRO_TK_NO_ERROR) /获得参数值(DD) ProParameterValueGet(¶m1, &value1); value1.value.d_val=m_DD; /新的参数值设置(DD) ProParameterValueSet(¶m1, &value1); /获得参数值(NN) ProParameterValueGet(¶m2, &value2); value2.value.i_val=atoi(m_NN); /新的参数值设置(NN) ProParameterValueSet(¶m2, &value2); /获得参数值(DI) ProParameterValueGet(¶m3, &value3); value3.value.d_val=m_DI; /新的参数值设置(DI) ProParameterValueSet(¶m3, &value3);/获得参数值(DW) ProParameterValueGet(¶m4, &value4); value4.value.d_val=m_DW; /新的参数值设置(DW) ProParameterValueSet(¶m4, &value4);/模型再生 ProSolidRegenerate (ProSolid)model,PRO_B_TRUE);ProWindowRepaint(PRO_VALUE_UNUSED);UpdateData(false);创建和显示对话框的源程序文件(也是菜单函数ProCmdActionAdd()的一个参数-动作函数F(),代码如下:/*=*FUNCTION: F() 菜单按钮的动作函数*=*/#include stdafx.h/*-*File includes*-*/#include #include jian.h#include ProUtil.h#include cfalan.h#include #include #include cfalan dlg;/声明对话框对象/*-*Functions declaration 函数声明*-*/*=*FUNCTION: F()*=*/int F() int w_id;ProPath PartName; ProMdl solid_mdl;ProStringToWstring(PartName, E:jianzuihoufalan.prt); ProMdlLoad(PartName,PRO_MDL_UNUSED,PRO_B_FALSE,&solid_mdl); ProMdlDisplay(solid_mdl);ProMdlWindowGet(solid_mdl,&w_id);ProWindowActivate(w_id);ProSolidRegenerate(ProSolid(solid_mdl),PRO_B_TRUE); AFX_MANAGE_STATE(AfxGetStaticModuleState();int status;status=dlg.Create(IDD_DIALOG2,NULL);/创建并显示对话框 if(status=0) AfxMessageBox(对话框创建失败.);dlg.ShowWindow(SW_SHOW);return status;以上为无模式对话框的代码,无模式对话框在拖动时可以及时刷新屏幕,可以在不退出的情况下激活其他的窗口,如果想重新激活对话框只须单击鼠标即可,比模式对话框有优势。到此,菜单,对话框,函数都已创建完毕。4.6 程序的编译菜单中选择编译|构件*.DLL ,*代表工程名,单击它,系统开始编译,编译结果会在工程文件夹下产生一个名为*_jian.html的网页文件,编译完全通过后,会提示有0处错误和0处警告。完成编译后,会在Release文件夹中生成一个动态连接库文件,jian.dll 。4.7 程序文件的注册和启动4.7.1 程序文件的注册它是负责加载我们编好的jian.dll,在Pro/E里,它是告知系统有应用程序加载,并把所需的.dll文件和消息文件,信息文件的路径给系统。注册文件的格式如下:NAME jian /工程名EXEC_FILE E:jian Releasejian.dll / 动态连接库文件路径TEXT_DIR E:jian Release text /信息文件路径STARTUP dll / 应用程序类型ALLOW_STOP TRUE / 在Pro/ENGINEER工作时可以终止应用程序DELAY_START TRUE /手动启动应用程序REVISION 2004 /指定Pro/TOOLKIT的版本号END /段结束标志4.7.2程序文件的启动在功能下选辅助应用程序,启动注册对话框。点击登记,打开文件夹选择jian/protk.dat的文件进行注册。选重jian,点击启动,会在proeWildfire 2.0菜单中出现一个“标准件库菜单”,如图所示。应用程序启动成功。图4.17 图4.18 图4.195. 开发实例上一章已经以整体法兰为例,详细介绍了Pro/TOOLKIT应用程序的开发过程。本章主要介绍本课题所开发的标准件库下设的紧固件、轴承、弹簧、发兰、液压元件、机床夹具零部件、机车车辆通用件、其它常用件等八大模块的部分开发实例。以下是本设计开发实例的部分对话框界面,该界面保持了与Pro/E系统一致的风格,交互性能良好。用户在使用时,可以直接从Pro/E界面中添加的标准件库菜单中调入所需零件,并在该对话框界面中修改其参数尺寸即可得到所需的三维实体标准件。 图5.1图5.2 图5.3 图5.46.特色与优势此次设计的课题以Pro/Engineer Widefire2.0为支撑平台,应用Pro/Toolkit二次开发工具,采用面向对象的设计思想及VC+6.0编程语言,将设计代码编译成动态链接库文件,在Pro/E环境下运行,利用Pro/E环境的强大功能,C语言的结构化编程、运行效率高的优势。 在系统界面上保持与Pro/E系统一致的风格,采用全汉化界面、菜单及丰富的对话框等接口形式。其中,利用MFC对话框技术开发的界面,可视化效果非常好。力求提示醒目、操作简单、容错能力强,以适合从事机械设计人员实际使用的需要。 开发的标准件库在使用时,直接从Pro/E界面中添加的标准件库菜单中调入所需零件,并按照该零件的国标尺寸修改其参数尺寸即可得到所需的标准件。它实现了与Pro/E无缝连接。相信本软件系统经过不断完善后,将受到更多设计人员的青睐,将具有较好的实用价值。只要是严格按照标准件的国标尺寸去修改其参数尺寸,即能准确无误的生成用户所需要的三维标准件,这也证明了本次开发的这套三维标准件库软件系统具有良好的稳定性。 7.展望Pro/TOOLKIT参数化设计的前景:利用参数化设计手段开发的专用产品设计系统,可使设计人员从大量繁重而琐碎的绘图工作中解脱出来,可以大大提高设计速度,并减少信息的存储量。本文所讲的参数化是指输入零件的基本参数,即可实现三维模型的创建,从而减少了大量重复劳动、极大地提高了工作效率。标准件库中的零件又因其复杂的形状和众多的数据而更加重了设计者的重复劳动,本系统中开发的三维参数化系统有效的解决了这一问题,并取得很好的效果。利用Pro/TOOLKIT建立一个完整的标准件库,在使用时直接调用修改即可,大大缩短了建模的时间。另外,Pro/TOOLKIT参数化设计还可以广泛应用于以下领域:(1)应用机车产品设计中(2)纺织机械常用零件的参数化(3)三维夹具标准元件库的开发 (4)齿轮、链轮的参数化设计(5)定制二维工程图标准图框(6)铸造工装三维图库的开发总之,Pro/TOOLKIT参数化设计生成的三维标准件模型不仅能真实地表达形状特征,而且可以根据需要将面向装配的信息或者面向制造的信息“附加”到三维模型上,为进一步实现CAD/CAM集成奠定基础。8.设计心得 时光飞逝,光阴荏苒;大学生活即将结束,我的毕业设计也同时接
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。