资源目录
压缩包内文档预览:
编号:25664310
类型:共享资源
大小:4.10MB
格式:ZIP
上传时间:2019-11-18
上传人:遗****
认证信息
个人认证
刘**(实名认证)
湖北
IP属地:湖北
20
积分
- 关 键 词:
-
基于
ProE
二次开发
参数
模型
实现
- 资源描述:
-
基于ProE二次开发的端盖参数化模型的实现,基于,ProE,二次开发,参数,模型,实现
- 内容简介:
-
湘 潭 大 学 毕业论文(设计)任务书论文(设计)题目: 基于Pro/E二次开发的端盖参数化模型的实现 学 号: 2003070101 学生姓名: 苏芬 专 业:机械设计制造及其自动化 指导教师姓名: 毛美姣 系主任: 周善炳 一、主要内容及基本要求 1、利用Pro/ENGINEER参数化创建各种端盖模型; 2、运用Visual C+6.0及Pro/TOOLKIT函数编制自定义菜单、端盖参数话框; 3、运用Visual C+6.0及Pro/TOOLKIT函数编写端盖参数化程序; 4、完成所建自定义菜单和对话框; 5、提交毕业设计说明书一份,字数要求在8000字以上; 6、完成英文文献翻译3000字左右。 二、重点研究的问题1、在Pro/ENGINEER平台上参数化建立各种端盖模型; 2、运用Visual C+6.0及Pro/TOOLKIT编制菜单及对话框; 3、端盖的Pro/TOOLKIT程序设计。 三、进度安排序号各阶段完成的内容完成时间1学习Pro/E建模方法、Pro/E的二次开发工具 (Pro/TOOLKIT)及Visual C+ 6.0的程序编制;2006年3月至4月2Pro/TOOLKIT菜单及对话框的设计;2006年4月上旬3运用Visual C+6.0及Pro/TOOLKIT函数编制端盖参数化程序;2006年4月中旬至5月下旬4撰写毕业设计说明书2006年5月下旬5准备答辩2006年6月初四、应收集的资料及主要参考文献 1、李世国.Pro/TOOLKIT程序设计.北京:机械工业出版社,2003.6. 2、吴立军,陈波.Pro/ENGINEER二次开发技术基础.北京:电子工业出版社,2006.7 3、何健辉,董方鹏,实用Visual C+6.0教程.北京:清华出版社,2002.1. 4、刘莹,张福润.Pro/Engineer二次开发中用户界面的制作J.现代机械,2004, 5 Pro/TOOLKIT的帮助文档 湘 潭 大 学毕业论文(设计)鉴定意见学 号: 20030101 学生姓名: 苏芬 专 业: 机械设计制造及其自动化 毕业论文(设计说明书) 59 页 图 表 16 张论文(设计)题目: 基于Pro/E的二次开发的端盖参数化模型的实现 内容提要:机械产品的开发过程中会用到大量的通用件、标准件、相似件,如何方便地建立这些常用零部件的图库,利用已有的资源,花费较少的时间完成产品设计是用户所关心的。建立这些通用件、标准件、相似件零件库作为一项可行方案,一方面可以避免不同设计者的重复劳动,提高设计效率;另一方面还可以提高设计的标准化程度,减少错误发生率,缩短产品开发周期。本课题针对端盖,提出了基于Pro/E平台进行二次开发的一种可行方案。本文先对与本课题相关的三位CAD作了一个简介。然后,讲述了Pro/TOOLKIT的基础知识。重点介绍了自定义菜单的生成,对话框的制作,Pro/TOOLKIT程序的执行。接着根据本课题的要求分析了端盖参数化的整体设计思路。然后以一典型零件为例,较详细地说明了利用Pro/TOOLKIT及Visual C+6.0在Pro/ENGINEER中进行三维建模程序联合开发的方法。建模迅速,大大提高了这类通用件在Pro/E平台上的设计效率。指导教师评语 指导教师姓名(职称): 年 月 日答辩简要情况及评语答辩小组组长: 年 月 日答辩委员会意见答辩委员会主任: 年 月 日湘潭大学毕业论文(设计)评阅表学号 2003070101 姓名 苏芬 专业 机械设计制造及其自动化 毕业论文(设计)题目: 基于Pro/E的二次开发的端盖参数化模型的实现 评价项目评 价 内 容选 题1.是否符合培养目标,体现学科、专业特点和教学计划的基本要求,达到综合训练的目的;2.难度、份量是否适当。能 力1.是否有查阅文献、综合归纳资料的能力;2.是否有综合运用知识的能力;3.是否具备研究方案的设计能力、研究方法和手段的运用能力;4.是否具备一定的外文与计算机应用能力;5.工科是否有经济分析能力。论文质量1.立论是否正确,论述是否充分,结构是否严谨合理;实验是否正确,设计、计算、分析处理是否科学;技术用语是否准确,符号是否统一,图表是否完备、整洁、正确,引文是否规范;2.文字是否通顺,有无观点提炼,综合概括能力如何;3.有无理论价值或实际应用价值,有无创新之处。工作量工作量是否饱满,含论文篇幅、图纸等是否达到规定要求。 综 合 评 价评阅人姓名(职称): 年 月 日湘潭大学毕业设计目录第一章 绪 论11.1 三维CAD技术11.1.1CAD技术的发展11.2 课题背景及意义21.3 应用程序的开发工具31.4 课题的主要研究内容3第二章 Pro/TOOLKIT二次开发的基础理论32.1 Pro/TOOLKIT的基本知识32.1.1 Pro/TOOLKIT简介32.1.2 Pro/TOOLKIT的工作模式42.1.3 Pro/TOOLKIT对象和动作42.1.4 对象句柄42.1.5 Pro/TOOLKIT函数返回值52.2 创建Pro/TOOLKIT应用程序的基本方法52.3 Pro/TOOLKIT信息文件的建立62.4 编译和连接设置72.5 编制注册文件及应用程序的运行72.5.1 编制注册文件72.5.2 应用程序的运行7第三章 用户界面设计83.1 菜单的设计83.1.1 向菜单栏添加菜单条83.1.2 向菜单条下添加下级子菜单83.1.3 端盖菜单设计83.2 对话框的设计123.2.1 MFC对话框123.2.2 UI对话框123.3 端盖对话框设计143.3.1 构想143.3.2 创建方法14第四章 端盖的开发244.1 总体方案244.2 基于三维模型的参数化程序设计分析254.2.1 端盖三维模型的建立254.2.2 端盖参数化程序设计304.3 注册并运行程序364.4 操作流程36第五章 零件图形清单37结束语41参考文献42附录I 程序清单43附录 外文文献翻译44附录 外文文献原文51基于Pro/E二次开发的端盖参数化模型的实现摘 要:CAD技术在机械设计中发挥着越来越突出的作用。而三维实体模型比二维图形能更直观、更全面地反映设计意图,并且在三维模型的基础上可以进行零件装配、干涉检查、有限元分析、运动分析等高级的计算机辅设计工作,因此目前机械设计中广泛采用三维设计。而目前我国Pro/E应用日益普及,而二次开发严重滞后。所以,进行二次开发是非常必要的。论文介绍了其二次开发工具Pro/TOOLKIT,并以凸缘端盖为例,详细的论述了应用ProToolkit进行菜单开发、对话框开发,即UI对话框,以及如何在VC环境下编制C语言程序以激活、调用对话框界面,设计出更加友好透明的用户界面,方便快捷地实现端盖的参数化设计和修改,准确再生出新的实体模型。关键词:ProENGINEER、Visual C+、Pro/TOOLKIT、二次开发、端盖The Realization of Cover Parametric Parts Based on the Redevelopment of Pro/EAbstract:CAD technology is made more and more use in mechanical designDesign idea can be expressed more visualized and more comprehensive in three-dimensional full-scale mock-up than in two-dimensional drawing ,and based on three dimensional fullscale mock up,many other advanced CAD such as component assembly,interference check,finite element analysis,motion analysis and so on can be proceedHence,threedimensional design is widely used in mechanical design However,at the present the application development severely lags behind the increasing popularization of the Pro/E application in our country .So, it is very necessary to develop the Pro/E application.This paper introduces the customization tool Pro/TOOLKIT, and taking cover flange for example, This article provides an example to introduce the technique how to design UI Dialog Boxes By way of Pro/Es secondary development tool Pro/TOOLKIT as well as compile c programs to activate and pick up UI dialog boxes in Visual C+. Taking Pro/Toolkit as development tool, a friendly design interface of Cover is established. This paper investigates the method of establishing parametric 3 D model and programming based on 3D model in Pro/E,auto-modeling of 3D parts is realized using Pro/Toolkit.Keywords:ProENGINEER、Visual C+、Pro/TOOLKIT 、secondary development第一章 绪 论1.1 三维CAD技术设计和生产的方法随着计算机的迅速发展每天都在发生着显著的变化。以前许多只能靠手工完成的作业,逐渐通过计算机实现了高效化和高精度化。这种利用计算机来达到高效化、高精度化,实现自动化设计、生产以及解析计算的方法称为CAD(Computer Aided Design,计算机辅助设计)。CAD是指利用计算机的硬件和软件进行的设计活动,它从根本上改变了过去的手工绘图、发图、凭图纸组织整个生产过程的技术管理方式,使之变为以统一的产品数据库为核心的交互式产品设计、分析、制造和维护的过程。它的迅速发展和广泛应用,给工程设计制造业带来了蓬勃生机,使传统的产品设计方法与生产组织模式发生了深刻的变革。1.1.1CAD技术的发展CAD技术起步于50年代后期,自从计算机出现之后人们就不断地将计算机技术引入机械设计、制造领域。因为它顺应生产力的发展,在其产生之后就得到了迅速地发展。CAD技术经历了四次飞跃:曲面造型系统、实体造型技术、参数化技术、变量化技术。(1)曲面造型系统70年代是飞机和汽车工业的蓬勃发展时期。期间飞机及汽车的制造中遇到了大量的自由曲面问题,此时法国人提出了贝赛尔算法,法国的达索飞机制造公司的开发者们借此算法在二维绘图系统的基础上,开发出以表面模型为特点的自由曲面建模方法,推出了三维曲面造型系统CATIA。(2)实体造型技术表面模型基本上解决CAM的问题,但是由于表面模型技术只能表达形体的表面信息,很难准确地表达如质量、重心、惯性矩等零件的其他特性。基于对CAD一体化技术发展的探索,SDRC公司于1979年发布了世界上第一个完全基于实体造型技术的大型CAD软件I-DEAS。实体造型技术能够精确表达零件的全部属性,给设计带来了很大的方便。(3)参数化技术正当实体造型技术在CAD系统中广泛运用时,出现了一种比无约束自由造型更好的算法参数化实体造型方法。它主要的特点是:基于特征、全尺寸约束、全数据相关、尺寸驱动设计修改。参数化技术彻底克服了自由缄默的无约束状态,由尺寸决定实体造型的几何形状。尺寸驱动已经成为当今造型系统的基本功能。如果想修改零件形状的话,只需修改一下尺寸的数值就可以实现形状上的改变。这种新构想最先在PTC公司(Parametric Technology Corp)的软件PRO/ENGINEER中成为现实。由于参数化技术的成功应用,使得它很快成为CAD业界的标准,许多软件厂商纷纷追赶。(4) 变量化技术变量化造型技术保留了参数化技术基于特征、全数据相关、尺寸驱动设计修改的优点,但是在约束定义方面做了一定的改变。变量化造型技术将所需定义的尺寸“参数”进一步区分为形状约束和尺寸约束,而不仅仅是用尺寸来约束全部几何。通常在新产品开发的概念设计阶段,设计者首先考虑的是设计思想及概念,并将其体现在某些几何形状之中。但是这些几何形状的严格的尺寸定位关系并不能在设计的初始阶段完全确定,所以希望在初始阶段能够允许欠尺寸约束的存在。事实上,参数化技术和变量化技术已经成为了当今主流CAD软件的两大流派。两种造型理论相互依存,共同发展。我国 CAD 技术的引进是从60年代开始的,最早起步于航空工业,最近几年发展很快,现已在机械、电子、建筑、汽车、服装等行业逐步进入实用阶段。1.2 课题背景及意义Pro /ENGINEER是美国PTC(Parametric Technology Corporation)公司于1988年开发的参数化设计系统,是一套由设计至生产的机械自动化软件。参数化设计就是将零件尺寸的设计用参数来描述,并在设计修改时通过修改参数的数值来更改零件的外形。Pro/ENGINEER与传统的CAD系统仅提供绘图工具有着极大的不同,它提供了一套完整的机械产品解决方案,包括机械设计、板金设计、加工制造、机构分析、有限元分析等,它使产品的设计效率大大提高,使产品在设计初期具有更多的灵活性,保证在日后根据系统要求进行相应的更改和计算;另外在产品的设计方案阶段,可以形象的表现系统的组成特点,而在产品的生产阶段可以方便与加工中心数据连接。Pro/ENGINEER的特性如下:3D实体模型,单一数据库,以特征作为设计的单位, 参数式设计,数据管理(Data Management),装配管理(Assemble Management),工程数据库再利用(Engineering Data Reuse),易用性(Ease of Use),硬件独立性(Hardware Independence)。由于Pro/ENGINEER的功能强大并且通用性非常强,然而,由于Pro/ENGINEER软件的通用性,使得该软件在进行具体的产品设计时感到不方便。对系列化产品,可以通过抽取关键的参数值,再依设计规范计算出各尺寸值并传递给下级零件和子装配,自动的将模型建造出来。为了使Pro/ENGINEER软件能在特定的企业单位的特定产品设计中最大限度的发挥潜力,创造效益,需Pro/ENGINEER进行二次开发,换句话说,二次开发就是对Pro/ENGINEER进一步的充实、完善。基于上述原因,利用Pro/TOOLKIT工具箱及VC+开发操作简单的端盖是很有必要。1.3 应用程序的开发工具系统程序模块的设计选择Visual C+6.0作为开发平台。Visual C+6.0是运行于Windows上的交互式可视化集成开发环境,是美国Microsoft Visual Studio的一部分。像其它的可视化开发环境一样,Visual C+6.0集程序的代码编辑编译连接调试于一体,给编程人员提供了一个完整而又方便的开发界面和许多有效的辅助开发工具。VC+6.0的应用程序向导(App Wizard)可以为很大一部分类型的程序提供框架代码,用户不需要书写代码,只需要几个按钮就可以生成一个完整的可以运行的程序。在Pro/TOOLKIT中,PTC向用户提供了大量的C语言函数库,函数采用面向对象的风格。通过调用这些底层函数,用户能方便而又安全地访问Pro/ENGINEER的数据库及内部应用程序,进行二次开发,扩展一些特定功能。1.4 课题的主要研究内容本课题的主要研究内容是端盖的开发设计,当用户选择不同的样式后,应用程序可以在基础模型上自动生成相应的端盖。具体工作包括:(1)Pro/TOOLKIT基本特点和基本数据结构的研究。分析Pro/TOOLKIT内部的基本数据结构、功能函数及其使用方法;探讨Pro/TOOLKIT中的一些基本的自定义对象。(2)用户界面的设计。研究菜单信息文件,制作端盖的菜单界面;研究对话框资源文件,创建主对话框,并在主对话框中弹出一个自定义对话框;研究Pro/TOOLKIT与Visual C+6.0的接口技术;在VC中制作Pro/TOOLKIT用户界面。(3)参数化建模的研究。Pro/ENGINEER软件对于每个模型都有一个主要设计步骤和参数列表,所以要先绘制三维模型,定出参数列表;设计端盖程序,实现自动加载菜单、选择不同的端盖、弹出对话框、修改端盖模型参数值、生成零件等功能。第二章 Pro/TOOLKIT二次开发的基础理论2.1 Pro/TOOLKIT的基本知识2.1.1 Pro/TOOLKIT简介Pro/TOOLKIT是PTC公司为Pro/ENGINEER软件提供的用户化开发工具箱,该工具箱为用户程序及第三方程序提供了与Pro/ENGINEER的无缝连接。用户程序或第三方的程序是用C语言编写的。Pro/TOOLKIT提供了一个C语言的函数库,该函数库能够使用户或第三方的应用程序以一种可控的、安全的方式访问Pro/ENGINEER的数据库和应用程序。用户或第三方通过C程序代码扩充Pro/ENGINEER系统的功能,开发基于Pro/ENGINEER系统的应用程序模块,从而满足用户的特殊要求。Pro/TOOLKIT采用的是功能强大的面向对象的方式来编写的。因此,用来在Pro/ENGINEER和应用程序之间传递信息的数据结构对应用程序来讲是不可见的,而只能通过Pro/TOOLKIT中的函数来访问。Pro/Toolkit支持在windows2000NT/XP操作系统中使用C和C+语言设计程序,采用Microsoft Visual C+6.0的集成环境下完成程序的设计、调试和编译。2.1.2 Pro/TOOLKIT的工作模式Pro/TOOLKIT有两种工作模式,即同步模式和异步模式。同步模式分为两种模式,一种是标准的使用模式,即DLL模式。Pro/TOOLKIT应用程序与Pro/ENGINEER的集成是通过DLL模式来实现的,在DLL模式中,通过编译和连接Pro/TOOLKIT的C代码生成一个目标文件,该目标文件在Pro/ENGINEER启动时与Pro/ENGINEER连接在一起,就像是Pro/ENGINEER本身的程序一样;Pro/TOOLKIT应用程序和Pro/ENGINEER之间的信息交换是直接通过函数调用来实现的。另一种模式是多进程模式。异步模式分为简单异步模式和全异步模式。本课题通过菜单对话框向Pro/ENGINEER发送消息,采用同步DLL模式。2.1.3 Pro/TOOLKIT对象和动作Pro/TOOLKIT采用面向对象的程序设计方法。对象 ( Object)和动作(Action)是Pro/TOOLKIT中最基本的概念。Pro /T OO LKIT的对象实质上是一种类型为结构体的数据,结构体中的成员描述了该对象的属性。所有对象的命名约定为Pro+,其中对象名用英文单词表示,第一个字母大写,如ProFeature(特征对象)。Pro/TOOLKIT对象执行的某种特定操作称为动作,动作的执行是通过调用Pro/TOOLKIT函数库提供的C函数来实现了。与动作相关的Pro/TOOLKIT函数名约定为:Pro+。特别要注意的是Pro/TOOLKIT函数的参数规则,规定为:ProFunction(参数1、参数2、参数3),其中第一个参数用来识别对象(通常为ID值),输入参数在输出参数之前。2.1.4 对象句柄每个Pro/TOOLKIT对象都对应于一个结构体,定义该结构类型的一个具体的结构体变量称之对象句柄。按照对象句柄的定义和使用方式分成两种类型:Ohandle(Opaque Handle,非透明句柄)和DHandle(Database Handle,数据结构句柄)。非透明句柄(Opaque Handle)是使用Pro/ENGINEER数据结构的内存地址引用Pro/ENGINEER对象,这种方式最简单。使用非透明句柄Pro/TOOLKIT应用程序只能获得该对象的内存地址,不能访问该结构体具体成员,其目的是防止PIDITOOLKIT应用程序访问结构体中的成员。其特点是使用简单高效,缺点是由于它是一个内存指针,所以具有可变性。数据结构句柄(DatabaseH andle)则可访问该对象结构体的具体成员。数据结构句柄是一个十分清晰的数据结构,它包含了足够的信息 包括类型、整型标识符和指向所属模型的句柄,由于数据结构句柄至少包含一个整型标识,所以它具有稳定不变的优点。当利用Pro/TOOLKIT在Pro/ENGINEER中创建一个包含很多信息的对象时,非常重要的一点就是必须先建立该对象的所有相关信息,然后把这个对象添加到Pro/ENGINEER数据库中去。然而采用面向对象技术的Pro/TOOLKIT不允许直接访问这些结构的内容。2.1.5 Pro/TOOLKIT函数返回值大多数Pro/TOOLKIT函数的返回值类型为ProError,用来表示调用函数执行状态。最常用返回值是PRO_TK_NO_ERROR,表示函数调用成功。在程序中,通过检查函数的返回值不仅便于在调试是找出错误,更重要的是可以避免在执行时出现异常情况,提高了程序的可靠性。2.2 创建Pro/TOOLKIT应用程序的基本方法创建基本方法;利用Make文件创建Pro/TOOLKIT应用程序;利用VC向导创建Pro/TOOLKIT应用程序。采用Make文件的方法创建Pro/TOOLKIT应用程序必须手工修改make文件,程序的设置与调试均不方便,且不能充分利用VC的资源。所以本课题利用VC向导创建Pro/TOOLKIT应用程序。在Visual C+6.0环境下新建一个dll工程。(1)进入Visual C+6.0集成开发环境,选择“File/New.”选项,启动 “New”对话框。在“New”对话框中选择“Projects”选项卡,选择MFC AppWizard(dll)项。在“Project nam”输入工程文件名,在“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资源文件等。如下图2.1:图2.1 VC文件图2.3 Pro/TOOLKIT信息文件的建立信息文件是一种ASCII码文件,用来定义菜单项、菜单项提示等信息,可以用Word记事本和写字板等文字处理软件建立,也可在VC的集成开发环境中建立,但必须以纯文本格式保存且信息文件以四行为一组。其含义分别如下:第一行:Pro/ENGINEER系统可以识别的关键字,该关键字必须与该信息文件函数中的相关字符串相同。第二行:再菜单项或菜单项提示上显示的英语文本。第三行:另一种语言的译文或为空。第四行:当前的Pro/ENGINEER版本为空。其中,第二第四行的语言显示取决于系统环境变量lang的设置。同时,信息文件必须位于text或text文件夹,为chinese-cn时表示信息为中文,为usascii表示信息为英语。由此,可以通过系统的环境变量控制显示的语种,不必修改程序。2.4 编译和连接设置设置包含文件路径,加入“PROTOOLKITINCLUDES”;设置库文件路径,加入“PROTOOLKITI486_NTOBJ”;设置连接所需库文件,加入“mpr.lib protk_dll.lib”两库文件;在菜单“Project/Settings”的“Link”选项页设定强制文件输出,即选中“Force file output”的复选项。2.5 编制注册文件及应用程序的运行2.5.1 编制注册文件在Pro/ENGINEER中运行Pro/TOOLKIT应用程序,必须先进行注册。注册文件的作用是向Pro/ENGINEER系统传递应用程序的信息。一般可只选择Name EXEC_FILE TEXT_DIR STARTUP ALLOW_STOP REVISION和END项即可。保存注册文件时,要以.dat为扩展名。建立端盖的注册文件如图2.2:图2.2 端盖注册文件图2.5.2 应用程序的运行1注册运行分为自动注册和手动注册。端盖采用自动注册,并将注册文件名取为“Protk.dat”将此文件位于Pro/ENGINEER的起始位置设定的目录。其注册文件设置DELAY_START的值为FALSE,应用程序自动运行。2卸载应用程序。将注册文件中ALLOW_STOP设为TRUE,可以手工终止运行。如果启动应用程序失败,可以选择信息按钮来显示应用程序的有关注册信息,以便找出错的原因。第三章 用户界面设计Pro/ENGINEER可以利用Pro/TOOLKIT提供的菜单UI对话框以及VC的可视化界面技术,设计出方便实用的人机交互界面,从而大大提高系统的使用效率。在设计人机交互界面时,要尽量能使操作自然简便快捷。3.1 菜单的设计菜单是Pro/ENGINEER的主要用户界面,Pro/TOOLKIT提供了一系列菜单操作函数,允许应用程序创建何管理菜单。在应用Pro/TOOLKIT对Pro/ENGINEER进行开发的过程中,添加用户自定义菜单是最常用的技术。菜单在Pro/ENGINEER界面上的生成代表着动态链接库加载成功,这是进行后续工作的基础。3.1.1 向菜单栏添加菜单条Pro/ENGINEER是一个不断发展不断更新的软件,某个版本下有的菜单在另外一个版本下可能没有,因此,如果用户自定义菜单依赖某个菜单条,很有可能在另外一个版本中就不能正常使用。这样只能修改应用程序来适应这种变化,其软件的通用性较差。因此,决定在Pro/ENGINEER界面上添加新的菜单条。菜单条是Pro/ENGINEER菜单体系的最顶层菜单,其创建的方法是:直接调用ProMenubarMenuAdd()函数向Pro/ENGINEER添加所需的菜单,要实现函数的功能,就必须将改按钮和命令捆绑在一起。该命令调用某个函数实现按钮功能,在Pro/TOOLKIT中,完成命令添加的函数是ProCmdAction(),函数调用成功返回PRO_TK_NO_ERROR(0),否则返回PRO_TK_GENERAL_ERROR(-1)。3.1.2 向菜单条下添加下级子菜单端盖分为嵌入闷盖、嵌入透盖、凸缘闷、凸缘透盖,不可能每个都建立一个菜单条。因此必须添加下级菜单以达到建立一个自然便捷的界面的目的。调用ProMenubarmenuMenuAdd()函数,并在此菜单下添加菜单项。3.1.3 端盖菜单设计在旁边插入一个菜单条(UserMenu) “Pro/e二次开发(&E)”,在其下添加一个下级子菜单(SubMenu )“端盖”。在子菜单下建立四个菜单按钮:PushButton1嵌入闷盖,PushButton2嵌入透盖,PushButton3凸缘闷盖,PushButton4凸缘透盖。建立的程序清单如下:/*=*FUNCTION: user_initialize()*=*/extern C int user_initialize()ProError status;ProFileName MsgFile;uiCmdCmdId PushButton_cmd_id1,PushButton_cmd_id2,PushButton_cmd_id3,PushButton_cmd_id4;ProStringToWstring(MsgFile, Message.txt);/设置菜单信息文件名/*=*添加菜单条*=*/status=ProMenubarMenuAdd (UserMenuBar, UserMenu,Utilities, PRO_B_TRUE, MsgFile);/*=*菜单条的下级子菜单设置*=*/添加下级子菜单项ProMenubarmenuMenuAdd(UserMenuBar, SubMenu, SubMenu, NULL, PRO_B_TRUE, MsgFile); /设置菜单按钮的动作函数ProCmdActionAdd(PushButtonAct1,(uiCmdCmdActFn)Duangai1Fn,uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id1);/添加菜单按钮ProMenubarmenuPushbuttonAdd(SubMenu, PushButton1, PushButton1,Adding a push button to the ProE menu bar, NULL,PRO_B_TRUE, PushButton_cmd_id1, MsgFile);/设置菜单按钮的动作函数ProCmdActionAdd(PushButtonAct2,(uiCmdCmdActFn)Duangai2Fn,uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id2);/添加菜单按钮ProMenubarmenuPushbuttonAdd(SubMenu,PushButton2,PushButton2,Adding another push button to the ProE menu bar,NULL,PRO_B_TRUE, PushButton_cmd_id2, MsgFile);/设置菜单按钮的动作函数ProCmdActionAdd(PushButtonAct3,(uiCmdCmdActFn)Duangai3Fn,uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id3);/添加菜单按钮ProMenubarmenuPushbuttonAdd(SubMenu,PushButton3,PushButton3,Adding the third push button to the ProE menu bar,NULL,PRO_B_TRUE, PushButton_cmd_id3, MsgFile);/设置菜单按钮的动作函数ProCmdActionAdd(PushButtonAct4,(uiCmdCmdActFn)Duangai4Fn,uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id4);/添加菜单按钮ProMenubarmenuPushbuttonAdd(SubMenu,PushButton4, PushButton4,Adding the forth push button to the ProE menu bar, NULL,PRO_B_TRUE, PushButton_cmd_id4, MsgFile);return status;/*=*FUNCTION: user_terminate()*=*/extern C void user_terminate()AFX_MANAGE_STATE(AfxGetStaticModuleState();/*=*FUNCTION: AccessAvailable (菜单项的访问权限设置:可选)*=*/static uiCmdAccessState AccessAvailable (uiCmdAccessMode access_mode)return (ACCESS_AVAILABLE);建立端盖的菜单信息文件(中文版)如下:SubMenuSubMenu端盖#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凸缘透盖#创建端盖菜单如下图3.1:图3.1 模型菜单图3.2 对话框的设计弹出式对话框是目前最先进最流行的一种人机交互方式,它能提供图形与文字共存的可视化环境,使操作更为自然快捷。在进行Pro/TOOLKIT程序设计时,有两种方法建立对话框,一种是通过VC提供的MFC可视化对话框设计技术,另一种是通过Pro/TOOLKIT提供的用户界面对话框(User Interface Dialog Boxes,简称UI对话框)。3.2.1 MFC对话框MFC是VC+程序的一个重要的软件资源,为开发Windows应用程序提供了强大的支持,使用MFC可以实现程序界面的可视化设计。MFC对话框作为一种窗口,具有窗口的一切功能,与UI对话框相比,使用MFC对话框界面布局更加容易,设计调试都比较容易。但它建立的对话框与Pro/ENGINEER的风格不一样,不利于用户的操作。3.2.2 UI对话框利用UI对话框技术可以在Pro/TOOLKIT应用程序中设计出风格与Pro/ENGINEER系统本身具有的对话框相似的人机交互界面。控制程序用C或C+语言编写,用来在Pro/ENGINEER环境装入对话框资源、显示对话框、设置动作和退出对话框等。UI对话框的设计主要涉及两个方面:一是按界面的布局编写资源文件;二是针对UI对话框的功能编写相应的控制程序。1.资源文件资源文件是用来定义和描述UI对话框外观及属性的文本文件。主要内容包括UI对话框的组成部分元件(component)或称控件、各元件的属性定义和元件的布局形式。编写资源文件进应注意以下几点:(1)区分大小写;(2)括号必须成对;(3)对话框名应与资源文件名相同;(4)“!”后面的内容为注释部分,对对话框的定义没有任何影响;(5)资源文件可用任何一种支持纯文本格式的文字处理软件编写,如Word、写字板或记事本等,也可以用VC应用程序设计向导编写。无论用何种方法编写,都必须按纯文本格式保存,且扩展名为.res。保存在工作目录下所建VC程序中Release/text/resource子目录中。其中取决于当前使用的语言(chinese_cn或usascii)。资源文件的结构如下:(Dialog(Componens)(Resources))Dialog为顶层语句,下面主要包含两段构成,其中原件段(Components)声明了该对话框的所有元件,资源段(Resource)分为定义了各元件的属性及布局。资源文件仅仅是对UI对话框的描述,必须通过Pro/TOOLKIT应用程序来装入、显示和控制对话框。分为创建和终止两部分。创建对话框的过程如下:(1)调用ProUIDialogCreate()函数将资源文件装入内在;(2)调用对话框零件的动作函数设置指定元件的动作函数;(3)调用ProUIDialogActivate()函数显示和激活对话框;(4)调用ProUIDialogDestroy()函数从内在清除对话框资源。这四步是创建一个UI对话框的最基本步骤。其中第二步可实现数据的调用,它的动作设置函数与元件类型有关,其主要目的是设置用户在对话框界面上对某一元素进行操作时,调用的动作函数。在完成这四步的情况下,可以终止UI对话框,具体方法是调用ProUIDialogExit()函数。3.3 端盖对话框设计3.3.1 构想1.在主对话框中添加以下元件。(1)Label1与Label1.1标签,用于提示图形。Lable1其图形显示零件图形,该图形直接从三维模型中获取。Label1.1显示设计参数与尺寸的对应关系,该图形直接从三维模型中获取,在图形软件中加上尺寸线和参数名后转换为UI对话框支持的GIF格式(保存在resource子目录)。Lable1其图形命名为Duangai3.gif,Label1.1其图形命名为Duangai3_1.gif。(2)Label2标签,用于显示参数名,命名规则为:设计参数名_Label。(3)Separator分隔线(4)PushButton1按钮,用于生成模型。(5)PushButton2按钮,用于退出对话框。(6)PushButton3按钮,用于自定义对话框设计。(7)InputPanel输入框,用于表示参数值,命名规则为:设计参数名_Value。其中两个按钮跟其他的按钮用分隔线隔开。2.在自定义对话框中添加以下元件。(1)Label1.1与主对话框的设置相同。(2)Label2标签,用于显示参数名,命名规则为:设计参数名_Label。(3)Separator分隔线(4)PushButton1按钮,用于生成模型。(5)PushButton2按钮,用于退出对话框。(6)InputPanel输入框,用于表示参数值,命名规则为:设计参数名_Value。3.3.2 创建方法其创建的方法是:编写资源文件,文件扩展名为.res,用纯文本格式保存在注册文件中TEXT_DIR字段指定目录下的resource子目录。调用ProUIDialogCreate()函数将资源文件装入内存;调用ProUIPushbuttonActivateActionSet()函数设置按钮的动作;调用ProUIDialogActivate()函数显示和激活对话框;调用ProUIDialogDestroy()函数从内存清除对话框资源; 调用 ParamsList()显示模型的设计参数;调用ParamGetAndShow()从零件模型中获得参数值,并在相应的输入框中显示;调用ParamUpdate()更新参数值。创建函数原型为:ProError ProUIDialogCreate(char*dialog_name char*resource)ProError ProUIDialogActivate(char*dialog_name int*status)ProError ProUIDialogDestroy (char* dialog_name)3端盖资源文件以凸缘闷盖为例,其主对框资源文件如下:!资源文件:Duangai3.res(Dialog Duangai3(Components !对话框元件声明(Label Image1)(Label Image2)(SubLayout Layout1)(Separator Separator1)(PushButton Update3)(PushButton Cancel) )(Resources !对话框资源(属性定义)(Image1.Bitmap Duangai3.1.gif)!零件尺寸与参数对应图(Image1.TopOffset 10)(Image1.LeftOffset 4)(Image1.RightOffset 2)(Image2.Bitmap Duangai3.gif)!三位零件图(Image2.TopOffset 4)(Image2.BottomOffset 8)(Image2.LeftOffset 4)(Image2.RightOffset 4)(Update3.Label 生成模型(&U)!生成模型按钮(Update3.Bitmap cl_ok)(Update3.TopOffset 4)(Update3.BottomOffset 8)(Update3.LeftOffset 4)(Update3.RightOffset 4)!Cancel按钮属性定义(Cancel.Label 退出(&E)(Cancel.Bitmap cl_cancel)(Cancel.TopOffset 4)(Cancel.BottomOffset 8)(Cancel.LeftOffset 4)(Cancel.RightOffset 4)(Separator1.TopOffset 4)(Separator1.BottomOffset 4)(.Label 端盖参数化设计) !对话框标题(.StartLocation 5)(.Resizeable 0)(.Layout !对话框元件的布局(Grid (Rows 1 1 1) (Cols 1)(Grid (Rows 1 ) (Cols 1 1)Image1 (Grid (Rows 1 1 ) (Cols 1)Layout1Image2)Separator1(Grid (Rows 1) (Cols 1 1)Update3Cancel)(Layout Layout1(Components(Label D_Label)(OptionMenu D_Value)(Label DA_Label)(OptionMenu DA_Value)(Label DB_Label)(OptionMenu DB_Value)(Label DC_Label)(OptionMenu DC_Value)(Label SD_Label)(OptionMenu SD_Value)(Label SB_Label)(OptionMenu SB_Value)(Label R_Label)(OptionMenu R_Value)(Label B_Label)(OptionMenu B_Value)(Label Userdefined3_Value)(PushButton Userdefined3)(Resources(Userdefined3.Label 自定义)(Userdefined3.TopOffset 4)(Userdefined3.BottomOffset 8)(Userdefined3.LeftOffset 4)(Userdefined3.RightOffset 4)(D_Label.AttachLeft True)(D_Label.LeftOffset 4)(D_Label.Label D)(DA_Label.AttachLeft True)(DA_Label.LeftOffset 4)(DA_Label.Label DA)(DB_Label.AttachLeft True)(DB_Label.LeftOffset 4)(DB_Label.Label DB)(DC_Label.AttachLeft True)(DC_Label.LeftOffset 4)(DC_Label.Label DC)(SD_Label.AttachLeft True)(SD_Label.LeftOffset 4)(SD_Label.Label SD)(SB_Label.AttachLeft True)(SB_Label.LeftOffset 4)(SB_Label.Label SB)(R_Label.AttachLeft True)(R_Label.LeftOffset 4)(R_Label.Label R)(Userdefined3_Value.Label 自定义参数)(D_Value.AttachLeft True)(D_Value.TopOffset 4)(D_Value.BottomOffset 4)(D_Value.LeftOffset 2)(D_Value.RightOffset 4)(D_Value.Columns 4)(D_Value.Names n1n2n3n4n5n6n7n8n9n10)(D_Value.Labels 72!列表框的输入值808590100110120125130140)(DA_Value.AttachLeft True)(DA_Value.TopOffset 4)(DA_Value.BottomOffset 4)(DA_Value.LeftOffset 2)(DA_Value.RightOffset 4)(DA_Value.Columns 4)(DA_Value.Names n11n12n13n14n15n16n17n18n19n20)(DA_Value.Labels 100!列表框的输入值110115120125145150155160185)(DB_Value.AttachLeft True)(DB_Value.TopOffset 4)(DB_Value.BottomOffset 4)(DB_Value.LeftOffset 2)(DB_Value.RightOffset 4)(DB_Value.Columns 4)(DB_Value.Names n21!列表框的输入值n22n23n24n25n26n27n28n29n30)(DB_Value.Labels 120!列表框的输入值130135145150170175180185220)(DC_Value.AttachLeft True)(DC_Value.TopOffset 4)(DC_Value.BottomOffset 4)(DC_Value.LeftOffset 2)(DC_Value.RightOffset 4)(DC_Value.Columns 4)(DC_Value.Names n31n32n33n34n35n36n37n38n39n40)(DC_Value.Labels 60!列表框的输入值6570758595105110115120)(SD_Value.AttachLeft True)(SD_Value.TopOffset 4)(SD_Value.BottomOffset 4)(SD_Value.LeftOffset 2)(SD_Value.RightOffset 4)(SD_Value.Columns 4)(SD_Value.Names n41n42n43)(SD_Value.Labels 11!列表框的输入值1213)(SB_Value.AttachLeft - True)(SB_Value.TopOffset 4)(SB_Value.BottomOffset 4)(SB_Value.LeftOffset 2)(SB_Value.RightOffset 4)(SB_Value.Columns 4)(SB_Value.Names n44n45)(SB_Value.Labels 6!列表框的输入值7)(R_Value.AttachLeft True)(R_Value.TopOffset 4)(R_Value.BottomOffset 4)(R_Value.LeftOffset 2)(R_Value.RightOffset 4)(R_Value.Columns 4)(R_Value.Names n46n47 )(R_Value.Labels 5!列表框的输入值4)(B_Value.AttachLeft True)(B_Value.TopOffset 4)(B_Value.BottomOffset 4)(B_Value.LeftOffset 2)(B_Value.RightOffset 4)(B_Value.Columns 4)(B_Value.Names n56n57) (B_Value.Labels 15!列表框的输入值25)(.Decorated True)(.Label 设计参数)(.TopOffset 4)(.BottomOffset 2)(.LeftOffset 4)(.RightOffset 4)(.Layout !列表框的布置格式(Grid (Rows 1 1 1 1) (Cols 1)(Grid (Rows 1) (Cols 1 1 1 1)D_LabelD_ValueDA_LabelDA_Value)(Grid (Rows 1) (Cols 1 1 1 1)DB_LabelDB_ValueDC_LabelDC_Value)(Grid (Rows 1) (Cols 1 1 1 1)SD_LabelSD_ValueSB_LabelSB_Value)(Grid (Rows 1) (Cols 1 1 1 1)R_LabelR_ValueUserdefined3_ValueUserdefined3)创建的凸缘闷盖对话框如下图3.3所示:图3.3 (a)主对话框图图3.3 (b)自定义对话框图第四章 端盖的开发4.1 总体方案为了方便用户的使用,拟采用在Pro/ENGINEER主菜单上添加菜单条,再按照零件的形式添加下级子菜单,分别在子菜单中添加菜单按钮。点击菜单按钮弹出相应的用户界面,输入主要参数,生成所需的零件,具体结构如图所示采用三维模型与程序控制相结合的方式。三维模型不是由程序创建,而是利用交互方式生成。在已创建的零件三维模型基础上,进一步根据零件的设计要求建了一组可以完全控制三维模型形状和大小的设计参数。参数化程序针对该零件的设计参数进行编程,实现设计参数的检索、修改和根据新的参数值生成新的三维模型的功能,其过程如图4.1:图4.1基于三维模型的参数化设计实现过程4.2 基于三维模型的参数化程序设计分析对端盖的二次开发,只需对同类产品的三维模型进行参数化修改,派生出新的三维模型。基本原理是采用三维模型与程序控制相结合的方式。三维模型不是由程序创建,而是利用交互方式生成。在已创建的零件三维模型基础上,进一步根据零件的设计要求建立以足可以完全控制三维模型形状和大小的设计参数。参数化程序针对该零件的设计参数进行编程,实现设计参数的检索修改和根据新的参数值生成新的模型的功能。也就是说,先建立参数化模型,再通过调整其参数来改变几何形状,从而实现产品的精确造型。基于三维模型的参数化程序设计方法,主要内容包括三维模型的创建设计参数的确定及参数化程序设计等。为了与一般三维模型相区别,下面将参数化模型设计成需要使用的模型称为三维模型样板,实现过程如图4.2所示图4.2 基于三维模型的参数化设计实现过程4.2.1 端盖三维模型的建立在Pro/ENGINEER环境用人机交互方式建立端盖三维模型样板。在对端盖样板进行特征造型时,对二维截面轮廓,利用尺寸标注和施加对称等关系实现对几何图形的全约束。在创建或修改特征需要输入数值时,直接输入参数名。如在草图中标注或修改尺寸值时用参数名代替具体数值。下面以凸缘闷盖为例,具体介绍和说明端盖的参数化设计过程。1打开Pro/ENGINEER软件,新建一个零件,命名为”Duangai3.prt”,不使用缺省模板,选择“mmns_part_solid”,进入零件设计环境。2选取主菜单中的【工具】【参数】命令,弹出“参数”对话框,如图4.3所示,单击“”,添加四个参数D、DA、DB、DC、SD、SB、SBA、R、B。它们代表的意义如图所示。并预先设置各参数的值。如D=62,DA=85,DB=110,DC=50,SD=11,SBA=10,R=5,B=15。单击“确定”按钮。图4.3 凸缘闷盖模型参数图3选取主菜单【插入】【旋转】命令。出现实体旋转特征创建的对话框,依次选取【位置】草绘【定义】,弹出草绘【放置】对话框。4选取TOP平面为草绘平面,并取默认的草绘方向,反向;默认的草绘参照面,RIGHT;参照方向,右。进入草绘环境后,绘制如图4.4的图形。完成确定,生成的图形如图4.4所示:图4.4 凸缘闷盖模型旋转特征草绘图5选取主菜单【插入】【孔】命令。出现实体孔特征创建的对话框,选取【位置】,选取参照。在与对称轴成35度和距对称中心DA/2的位置创建四个均匀分布的直孔。6选取主菜单【插入】【倒角】命令。出现实体倒角特征创建的对话框,选取【设置】,设置倒角半径为5,按住Ctrl键依次选取要倒角的边。在图4.3的基础上生成的图形如图4.5:图4.5 凸缘闷盖模型旋转特征生成的三维图7选取【工具】【关系】命令,弹出“关系”对话框。输入如图4.所示关系,较验确定。8最后完成的凸缘闷盖的零件图如图4.6所示:4.6 凸缘闷盖模型样板以上便是的凸缘闷盖参数化建模过程。用户只需输入参数值,再生,便能生成所需的端盖模型,而不用再去重复18步骤。4.2.2 端盖参数化程序设计打开Visual C+6.0,参照第2.2节进行设置、创建工程文件。设置完后在“.cpp”文件内编写程序。程序内容包括自定义菜单程序、对话框程序和调用参数等。然后进行调试修改调试,直至调试到有31个error,19个warning。1源程序流程图本程序的出发点就是在于将同一系列的零件只需建立一个实体模型,然后就利用不同参数值来驱动所变更的尺寸,本程序所达到最终目的的工作流程图如图4.所示。2编写源程序#include stdafx.h/*-*Pro/TOOLKIT includes*-*/#include #include ProUtil.h#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define OK 1#define CANCEL 0/ProParameter *p_data; /参数对象指针数组(全局变量)/*-*Functions declaration 函数声明*-*/void CANCEL_Action(char *, char *, ProAppData);void Update3_Action(char *, char *, ProAppData);void ParamUpdate(char *,char *,char *,ProModelitem *);void Userdefined3_Action(char *, char *, ProAppData);/*=*FUNCTION: Duangai3Fn()*=*/int Duangai3Fn()ProError status;char *dialog_name = Duangai3;int ActiveDialog_status;/*-*装入对话框资源*-*/status=ProUIDialogCreate(dialog_name,dialog_name ); if (status!=PRO_TK_NO_ERROR)AfxMessageBox(UIDialog CreateCreate error!);return status;/设置Cancel按钮的动作函数ProUIPushbuttonActivateActionSet (dialog_name, Cancel,CANCEL_Action, NULL);/设置Update3按钮的动作函数ProUIPushbuttonActivateActionSet (dialog_name, Update3,Update3_Action, NULL);/设置Userdefined3按钮的动作函数ProUIPushbuttonActivateActionSet (dialog_name, Userdefined3, Userdefined3_Action, NULL); /*-*显示和激活对话框*-*/ status=ProUIDialogActivate(dialog_name,&ActiveDialog_status);if (status!=PRO_TK_NO_ERROR)AfxMessageBox(UIDialogActivate error!);return status;/*-*从内存清除对话框资源*-*/status=ProUIDialogDestroy (dialog_name);if (status!=PRO_TK_NO_ERROR)AfxMessageBox(UIDialogDestroy error!);return status;return status;/*=*FUNCTION : ParamUpdate (更新参数值)*=*/void ParamUpdate(char *dialog, /(In)对话框名char *component, /(In)输入框元件名char *Name, /(In)参数名ProModelitem *modelitem) /(In)模型项wchar_t ParamName,*NewValue;ProParameter param;ProParamvalue value;ProCharLine strtmp;ProStringToWstring(&ParamName,Name);/根据指定的参数名获得参数对象指针ProParameterInit(modelitem,&ParamName,¶m);ProUIInputpanelValueGet(dialog,component,&NewValue);ProWstringToString(strtmp,NewValue);/获得参数值ProParameterValueGet(¶m, &value);switch( value.type )case PRO_PARAM_DOUBLE:value.value.d_val=atof(strtmp);break;case PRO_PARAM_INTEGER:value.value.i_val=atoi(strtmp);break;/新的参数值设置ProParameterValueSet(¶m, &value);/*=*FUNCTION Update3_Action (Update按钮的动作函数定义)*=*/void Update3_Action(char *dialog, char *component, ProAppData data)ProMdl model;ProModelitem modelitem;ProMdlCurrentGet(&model);ProMdlRetrieve(L./sheji/Release/text/chinese_cn/Duangai3.prt, (ProMdlType)PRO_PART,(ProMdl*)&model);ProMdlDisplay(model);ProMdlToModelitem(model, &modelitem);ParamUpdate(dialog,D_Value,D,&modelitem);ParamUpdate(dialog,DA_Value,DA,&modelitem);ParamUpdate(dialog,DB_Value,DB,&modelitem);ParamUpdate(dialog,DC_Value,DC,&modelitem);ParamUpdate(dialog,SD_Value,SD,&modelitem);ParamUpdate(dialog,SB_Value,SB,&modelitem);ParamUpdate(dialog,R_Value,R,&modelitem);ParamUpdate(dialog,B_Value,B,&modelitem);/模型再生ProSolidRegenerate (ProSolid)model,PRO_B_TRUE);ProWindowRepaint(PRO_VALUE_UNUSED);/*=*FUNCTION: Userdefined3_Action*=*/void Userdefined3_Action(char *dialog, char *component, ProAppData data)ProError status;char *dialog_name = Duangai3_1;int ActiveDialog_status;/*-*装入对话框资源*-*/status=ProUIDialogCreate(dialog_name,dialog_name ); if (status!=PRO_TK_NO_ERROR)AfxMessageBox(UIDialog CreateCreate error!);/设置Cancel按钮的动作函数ProUIPushbuttonActivateActionSet (dialog_name, Cancel, CANCEL_Action, NULL); /设置Update3按钮的动作函数ProUIPushbuttonActivateActionSet (dialog_name, Update3,Update3_Action, NULL); /*-*显示和激活对话框*-*/status=ProUIDialogActivate(dialog_name,&ActiveDialog_status);if (status!=PRO_TK_NO_ERROR)AfxMessageBox(UIDialogActivate error!);/*-*从内存清除对话框资源*-*/status=ProUIDialogDestroy (dialog_name);if (status!=PRO_TK_NO_ERROR)AfxMessageBox(UIDialogDestroy error!);4.3 注册并运行程序自动注册,将注册文件名改为“Protk.dat”,这样当打开Pro/ENGINEER时,会自动检索该注册文件,自动进行注册。将注册文件字段DELAY_START的值设为FALSE,将注册文件与程序文件夹一起放在Pro/ENGINEER所设的工作目录下,应用程序将自动注册和运行。4.4 操作流程按照操作流程图4.7所示,用户即可以获得开发的端盖零件图。图4.7 操作流程图第五章 零件图形清单除了上述介绍的凸缘闷盖以外,本人还设计开发了其它类型的端盖。即嵌入闷盖,嵌入透盖,凸缘透盖。以下是所有端盖的零件图和对话框。关于这端盖的建模方法参照第三、第四章,这里不再一一介绍。对应的应用程序清单见附录I。1嵌入闷盖的有关图形如图5.1:(a) 主对话框 (b)自定义对话框 (c)零件图图5.1 嵌入闷盖2嵌入透盖的有关图形如图5.2:(a) 主对话框 (b)自定义对话框 (c)零件图图5.2 嵌入透盖3凸缘闷盖的有关图形如图5.3:(a)主对话框 (b)自定义对话框 (c)零件图图5.3 嵌入闷盖4凸缘透盖的有关图形如图5.4:图5.4(a) 凸缘透盖主对话框 (b)自定义对话框 (c)零件图图5.4 凸缘透盖结束语本论文主要论述了利用Pro/ENGINEER参数化创建各种端盖模型;运用Visual C+6.0及Pro/TOOLKIT函数编制自定义菜单、端盖参数话框;运用Visual C+6.0及Pro/TOOLKIT函数编写端盖参数化程序。通过这次毕业设计,我了解了二维建模与三维建模的异同之处,初步掌握了Pro/ENGINEER的相关功能及各种模型的建模方法。由于本设计还要用到Pro/TOOLKIT和Visual C+6.0,我还查阅学习了相关书籍。以前对C语言总是一知半解的,现在已经能够初步运用VC+6.0进行一些设计开发。并且基本上掌握了Auto CAD的二维画图方法,Word使用方法,和初步了解了PhotoShop绘图和RdfSnap抓图软件。最后,衷心地感谢毛美姣老师对我的帮助,在毕业设计期间,毛老师不仅教授我有关知识,而且还给我们提供教室,使我们有一个方便的环境。谢谢您!毛老师!同时,我也要感谢同组同学对我的帮助!参考文献1李世国.Pro/TOOLKIT程序设计.北京:机械工业出版社,2003.6.2吴立军,陈波.Pro/ENGINEER二次开发技术基础.北京:电子工业出版社,2006.7.3张继春.Pro/ENGINEER野火版二次开发实用教程.北京:北京大学出版社,2003.6.4东北工学院机械设计教研室.机械零件设计手册.冶金工业出版社,1974.4.5何健辉,董方鹏,实用Visual C+6.0教程.北京:清华出版社,2002.1.6孙恒,陈作模主编,机械原理第六版M.北京:高等教育出版社,2000.87何健辉,董方鹏,实用Visual C+6.0教程M.北京:清华出版社,2002.1.8江波等.基于Pro/E二次开发的铁道客车结构三维参数化CAD系统J.机械设计与制造工程,2002.319赖朝安等.Pro/E二次开发的关键技术J.机械设计与制造工程,2001.3010张红旗,曹文刚.开发Pro/E用户化菜单的技术与实践J.合肥工业大学学报,2001,2411刘莹,张福润.Pro/Engineer二次开发中用户界面的制作J.现代机械,2004,12Pro/TOOLKIT的帮助文档.附录I 程序清单程序清单见光盘附录 外文文献翻译1593年时伽利略的LeMecaniche中的早期TMMMarco Ceccarellia,摘 要本论文主要论述和评价伽利略在机械工程原理方面的成就。LeMecaniche这篇简短的论文,自从它在TMM方面被撰稿为第一本学术教科书以及在论文中已经使用现代观点后,它就被认为在机械工程上有着很重要的历史意义。关键词:机械工程历史,机械力学,TMM,TMM历史,伽利略文章大纲1.介绍2.对伽利略LeMecaniche的回顾3.LeMecaniche对现代的意义4.总结第一章.引 言在文艺复兴早期,随着实际应用的增多和社会需求的增加,产生了对理论概念的需要,机械工程这一主题就引起了越来越多的注意。虽然在文艺复兴期间,个别的研究和机器设计有所发展并获得了重要的进步,但是这破坏了学科界限的规范。事实上,在大学里没有团体致力于研究机械工程的实际应用方面。机械力学这一课题被当作应用数学来教授,更有一些不成功的人企图不在大学框架规划内为工程师建立一套详细而精确的设计计划。在1597-1598年,伽利略(1564-1642)在非常有名的帕多瓦大学里成功地提出了第一个关于机械力学独立的学术课程.在这里,他使用了这篇简短的论文“LeMecaniche”(它可以被译为机械问题)。在1593年,这篇论文似乎已经被写出来了。而在伽利略的研究工作中,LeMecaniche通常被认为是次要的工作,因为在机械力学这一方面它只是伽利略著作发展过程中最初的几步。在LeMecaniche中,伽利略通过提升重物来分析机器的基本原理,即杆、绞盘、滑轮,和螺旋。通过调查机械的实际操作过程和使用适当的模型来精密分析这些机器,而这些模型建立在早期的几何学和运动学。另外,在论文中提到了被大家普遍关心的实际问题,因此,它已经被认为对实用工程和工程设计有了一定的用处。所有的机构通过适当的模型来分析研究,说得更精确些,伽利略通过应用扛杆系统来研究要分析的机构。因此,机械的扛杆原理被认为是最基本的原理。伽利略明确地引用说,这与阿基米德的“机械问题”中提到的经典法是一致的。伽利略也提到这项工作由PappusAlexandrinus做过。伽利略看起来似乎不仅已经被GuidobaldoDelMonte 极大地鼓舞着,而且也被像Alessandro Piccolomini 、Francesco Maurolico 、Federico Commandino和Giovan Benedetti以及Girolamo Cardano这些人的工作极大地鼓舞着。在那时,他们这些人正在研究决定刚性物体重心的问题,且也被Aristotle、PappusAlexandrinus and Archimedes的古典著作影响着。在LeMecaniche中,伽利略解释到,决定刚体重心的理论分析的结果能被运用到研究工程学的实际问题当中去。实际上,这些问题当作的一个方面使得LeMecaniche成为机械学术领域和现代工程学发展过程中的一个里程碑。Guidobaldo Del Monte所写的先驱著作“Mechanicorum Liber”被认为是最早承认力学在机械制造中的重要性。实际上伽利略看来似乎已经从DelMonte的著作中和他与Del Monte友好的接触中得到了灵感。在本论文中,用一种现代的数据整理分析的方法来评论Lemecaniche论文,并且它的意义被按照历史上的和学术上的观点论述。 第二章伽利略LeMecaniche的回顾这篇简短的论文由一些小章节组成,即就是,关于力学的介绍和所用的仪器设备,定义,机械广告,秤和扛杆系,绞盘,滑轮,螺旋,推进力。伽利略在开始撰写这篇论文时就强烈地抨击一种思想,那就是无论什么都可以被机械制造出来,这与他致力于创造永动机想法是互相矛盾的。然而,他强调,当机器的操作运转能完全地被力所作用的时候,机器就能成为很有用的强大的工具。因此,他用机械的力学性能介绍了提升重物的例子,这关系到力、位移和速度之间的作用关系。实际上,通过强调当同样的大小冲量时,较大的力产生较小的速度,较小的力产生较大的速度,伽利略清楚地阐述了机械动力这一概念。伽利略工程学的观点,被一种“动力”更进一步地阐述了,那就是包括操作员在内,动力是任何一种原始状态的推动器。在介绍这些初步观察资料时,伽利略给机械效用和力学作用下了一个定义,从而,认为机械力学成为一个独立的学科有了一定的价值。在定义这一章节中,伽利略解释到,重力是向下移动的内因和本质。他介绍说,他广泛地在这论文中引用一个概念,即力的静力矩,来证明他所分析研究的扛杆系统的平衡问题。实际上,这种方法被认为是,在处理机械操作的实际问题上,第一个严格地应用力与运动这两个概念。因此,以这一种通用的形式与方法,伽利略利用静态平衡条件来分析刚性物体重心的定义。从中他也推导出具体实际情况下的静态平衡的应用。在这一章节中,伽利略通过分析速度来强调杠杆的运动。另外,他再一次阐述了一个静力矩的实际计算方法。经过以上的初步说明后,伽利略分别用单独的章节来分析每个机构的基本原理。伽利略非常详细地分析了平时实际中应用最多的杠杆的操作方法,例如,杆秤。通过使用日常应用得术语,注释物体的特性(物质、形状、大小)来强调实际操作方法。通过确定静态平衡,使用静力矩来分析研究这种操作。另外,在运动与平衡之间,通过速度赋值来描述动态情况。对于机构分析来说,用模型来研究是非常适当的,模型被认为是最早的运动学图。伽利略从现实体系,如图1.a,抽象出基本的几何形态,如图1.b,来进行运动研究。同样地,论文中普遍利用运动图来辅助分析研究机构。图1.伽利略的杠杆模型 1.a原始体系; 1.b运动图。根据图1.b,这种平衡状态被清楚地表述出来了,公式为:F*CD=P*BC在以上的公式中,P是被撬物体的重力,F是外作用力,CD和BC是距杠杆支点的距离。在绞盘这一章节中,伽利略运用了运动图,其中,他强调了轮轴和负载的作用,相当于一个杠杆,如图2所示。当他进行了不同的等效平衡分析后,他用一个简单直接的方式获得了这台机器的效率和操作性能。实际上,他也通过作图大概讲述了提高系统效率的一条路线。如图2所示,一个物体通过适当的布置经过点F、L、X,这被认为是现代皮带传动的基本原理。这种新的解决办法被认为是设计成功的一个例子,它能从实体模型中抽象出来进行分析。图2 伽利略研究和改善的绞盘传动绞盘体系中使用轴和载荷之间的力学性能,它的目的是强调力学在实际应用中的可行性,这比它提高的机械效率更加有用。作为这篇论文工程学的目的,这一方面又被再一次充分地解释。在滑轮这一章节中,伽利略介绍了杠杆的第二种类型的基本原理和分析过程,即负载位于支点和作用力之间。随后,他分析这种系统的力学和操作过程,并且强调这是一个等效杠杆系统。伽利略用运动图介绍了滑轮,他指出它作为连续的操作杆的实际的效用,而不是使用一个小的力来提升重物的优势。这种等距杠杆有着相等的杠杆臂,即滑轮半径。然后,他承认这种机器的设计目标是使操作起来更加容易。另外,伽利略表示,在机械设计中通过增加滑轮的倍数,并在滑轮组上适当地加载物体,从这种机构中可以获得更加有效率的机器,这就产生了复滑轮的设计。因此,通过一个双杠杆方案,一个滑轮体系能建立如图3所示的图,说得更精确些,要拉起电梯却只要其电梯重力一半的作用力。图3 通过使用图3.b双杠杆模型来分析图3.a的复滑车 通过这种方法的概括,伽利略示范了怎样设计和操作一个倍数滑轮体系,这个倍数滑轮体系被认为是一个杠杆同若干个杠杆并行操作的体系。这是杠杆体系中偶数滑轮组的一个例子。对于奇数的滑轮体系,伽利略也得到了一个滑车和它等效杠杆体系运动图。为此,他注意到这种结论能在以前的例子中同样地得出。在螺旋这一章节中,伽利略以谈论螺旋的设计意义开始,因为螺旋在许多机器中有着不同的实际应用。为了解释螺旋的这种实际操作效率,伽利略经过一个特殊的处理,引用有角杠杆,在斜面上,利用刚体的动力学来分析。另外,除重力以外当所有的作用力都被忽视时,他简述了在斜面上刚体动力学的基本原理。因而,与Pappus的错误尝试相比,他以这种形式获得了一个正确的答案,并且也被DelMonte.所接受。实际上在那个时候,这个课题还被许多人忙于研究,并且有一些人找到了正确的方法。例如,在1608年,Simon Stevin成功地解决了斜面永恒运动不可能性的这一个问题。如图4.b通过分析斜面交角杠杆ABF的平衡状态,伽利略解释了螺旋的研究过程,其实这也与图4.a所示的FH斜面是等效的。图4斜面研究 (a)模型;(b)等效交角杠杆;(c)现代杠杆微积分图。如图4所示,沿着斜面的方向,已知角a,利用平衡状态,则可以得出以下公式:Pcos=F但是根据如图4.b所示几何形态得:cos=BK/BF因此,在图4中,考虑到BF=AB,即杠杆的半径,参考现代的图像,图4.c得:P*AB=F*BK以上杠杆的平衡状态是以静力矩平衡状态的形式表现出来的。然后,伽利略阐明了像圆柱体的斜面螺旋。论文最后,他解释了在斜面上的刚体位移必须被分解为垂向分量,因为它起因于刚体重力的作用。在关于阿基米德螺旋泵的这一章节中,伽利略描述了泵的设计和它的实际操作过程。这是螺旋设计和等效斜面应用于实践的一个杰出例子,他认为这一设计不仅了不起而且非常令人惊奇。这个设计给予了他证明实践应用能成功的机会,沿着给出的固定螺杆泵的坡度,相当于一个等效斜面,如图5,允许水沿着重力方向和沿着螺旋轴上升的方向流动。图5螺旋泵的等效斜面和设计在这篇论文中,伽利略对冲力也作了简略的讲述。当时,冲力的实际应用,还是一个未解决的问题,。他通过动力学性能来处理这个问题,他认为其力学性能就是物体的速度和它所受力大小以及它的位移。伽利略解释到刚体产生位移是由于冲力的作用,冲力产生的能量和刚体吸收能量产生的位移之间存在一个平衡状态,并可以用公式表示F*v*t=R*s其中F表示作用在刚体上的作用力,R表示作用在刚体上的反作用力,v表示F作用在刚体上的瞬时速度,t表示一段很小的时间,s表示产生的位移。伽利略用另外的问题结束了论文,这些问题同样可以用论文中已经分析过的方法解决。第三章.LeMecaniche的重要现代意义LeMecaniche这篇论文有着重要的意义,不仅是因为历史的原因,而且也由于它在学术上建立了一个恰当的观点,它不平常的观察角度。它是一本教科书,是机械分类的开始,它使机械设计和实际操作公式化了。谈到历史意义,伽利略的著作是内容丰富的文献(因为篇幅所限,这里不在叙述)通过这本文献能找到2的注解。最近,技术综论也提到了,例如11作为课堂上的教科书,这篇论文被确认为存在4种手稿的简略本和14种手稿的长版本。简略版本似乎是这篇论文的第一个版本。由于在语言上有小的细节不同,它就有了许多不同的稿件,所以,这篇论文被认为已经具备课堂教学的条件。虽然伽利略确实是其论文的创作者,但实际上,这种情况的出现跟伽利略本人没有什么关系。伽利略提出了有关机械力学的课程,但这跟1593年到1604年亚里士多德和欧几里德的工作也是有关系的,后来Pisa大学和Padua大学也分离出了机械力学的课程。论文可以作为课堂上的教科书,也因为论文中图表简明严格的风格,可以应用到分析统计学问题,描述一个模型,用一个公式来解决问题和更进一步地讨论解释实际应用问题。这种教学观点很重要,伽利略依靠和利用早期运动学上的图表,他得出了一些关于实际机器的结论,强调了主要的设计参数并使参数适当地公式化了。遵循这种已经建立的经典的传统方法和Del Monte的主要工作,由于机械力学实际应用的多样性,伽利略为了推导出一个统一的机械杠杆原理,他研究了许多机器的基本原理,其基本原理作为当时机械的分类方法。事实上,当他研究基本机构的操作时,他发现了一种新的机构,即就是,把以上提到的皮带传动当做提高滑轮体系效率的方法。因此,伽利略的这种不同寻常的方法被认为是考虑了一种新的基理来研究机构,利用这种机理可以设计并使用许多其他的机构。当DelMonte采用阿基米德的方法重新研究机构时,伽利略对基本机构采用了传统的分类法。另外,他在研究中提出的实践工程学的观点,不仅直接地培养了人才而且也认人更加关心实际问题。伽利略抱着一种得到分析公式的明确目的,对机构的运转做分析研究。在这篇论文中,不仅写入了当时常规中没有的数学表达式,而且,也加入了相关问题的图像和解决问题的图像,并加了相关的注释。数学表达是如此地明确的和简明的,以至它们能容易地被理解,例如,像论文中用图1,图2,图3所做的分析一样。伽利略的公式化是论文中所描述的一个方法,它直接指向模拟问题,能被用了分析和设计机器等,例如,用图4的图像来研究螺杆泵。第四章.总 结LeMecaniche这篇论文被认为是关于TMM的第一本学术教科书,1593年到1604年,伽利略按照它的理论分析和实践观点,研究了一个精确的机械力学系统。它的重要性是,事实上也是第一个成功地获得了机械力学的地位,并在这一领域成为了一个独立的学科,这就是典型的现代TMM。附录 外文文献原文Early TMM in Le Mecaniche by Galileo Galilei in 1593 Marco Ceccarellia,Abstract In this paper the work on the Theory of Machines by Galilei is reviewed and interpreted. The small treatise Le Mecaniche can be considered of fundamental significance in the History of Mechanical Engineering since it was written for a first academic course on TMM, and it used modern concepts. Keywords: History of Mechanical Engineering; Mechanics of machinery; TMM; History of TMM; Galileo Galilei Article Outline 1. Introduction 2. A review of Le Mecaniche by Galileo Galilei 3. Modern significance of Le Mecaniche 4. Conclusions 1.IntroductionSince early Renaissance, the subjects of Mechanical Engineering have attracted more and more interest both for practical applications and from a theoretical viewpoint in response to an increase of societal needs. Several studies and designs of machinery were developed during Renaissance, but the matter did not get the dignity of a discipline, although it achieved significant advances. In fact, at the universities no entities were devoted to the practical aspects of engineering. The subjects of mechanics were taught as an application of mathematics. Some unsuccessful attempts were made to establish a specific program for engineers, even outside the frame of the universities. The first successful independent academic course on Mechanics of Machinery was given by Galileo Galilei (15641642) at the prestigious University of Padua in 15971598. In this he used the short treatise Le Mecaniche 1 and.2 (it can be translated as Mechanical Matters) that seems to have been written in 1593.Usually Le Mecaniche is considered as a minor work of Galileis since it is regarded as a preliminary step in the development of the masterpieces of Galilei in the field of experimental mechanics. In Le Mecaniche, Galilei approaches the analysis of fundamental machines for lifting weights, namely lever (lieva), capstan (argano), pulleys (taglie), and screw (vite). A rigorous analysis of these machines is performed by Galilei by examining the physical phenomena of the machinerys operation and by using suitable models derived from early forms of descriptive geometry and kinematics. In addition, practical concerns are mentioned throughout the treatise so that it can be considered to also have been useful for practical engineering and design purposes. All the analyzed machines are treated by referring to suitable models that are studied by Galilei as lever applications. Thus, the mechanics of levers are considered as fundamental. This is in agreement with the classical approach by Archimedes in Mechanical Problems 3, which Galilei refers to explicitly. Galilei mentions also the work by Pappus Alexandrinus 4. Galilei seems to have been strongly inspired by Guidobaldo Del Monte 5, but also by the works of others such as, for example, Alessandro Piccolomini 6 Francesco Maurolico (14941575) 7, Federico Commandino (15091575) 3 and 4, Giovan Battista Benedetti 8 and Girolamo Cardano (15011576) 9, who at that time were discussing the problem of determining the center of gravity in rigid bodies and were influenced by the classical works of Aristotle, Pappus Alexandrinus, and Archimedes. In Le Mecaniche, Galilei explains how the results of a theoretical analysis for determining the center of gravity of a rigid body can be used for the study of practical problems for engineering purposes. Indeed, this is one of the aspects that make Le Mecaniche a milestone in both the academic world and in the development of modern engineering. The pioneer work Mechanicorum Liber 5, by Guidobaldo Del Monte can be also be considered as fundamental for the recognition of the importance of the mechanics of machines. Indeed, Galilei seems to have been strongly inspired by both Del Montes work and the friendly contacts that he had with Del Monte. In this paper, the treatise Le Mecaniche is reviewed with a modern interpretation, and its significance is discussed both in terms of historical and technical viewpoints. 2. A review of Le Mecaniche by Galileo Galilei The small treatise is organized in small chapters, namely, an Introduction on Mechanics and Its Instruments, Definitions, Advertisements, On Steelyard and Lever, On Capstan, On Pulleys, On Screw, and On the Impulse of a Force. Galilei starts the treatise with a strong criticism of the idea that anything can be done by machines (in contradiction with attempts at the time to create perpetual motion machines). Nevertheless, he stresses that machines can be very useful powerful means when their operations are fully understood. Thus, he introduces the task of lifting weights with its mechanical character that is related to the action of forces, displacements, and velocity. Indeed, he clearly refers to the notion of mechanical power by stressing that larger forces can work with smaller velocity and vice versa. The engineering vision of Galilei is further expressed by referring to a moving force as an actuator that can be of any nature, besides a human operator. In doing these preliminary observations, Galilei defines the utility of machines and their mechanical purposes, thereby giving the mechanics of machinery the dignity of being considered as special discipline. In the section for Definitions, Galilei explains the notion of gravity as the predisposition of moving downwards by nature. In addition, he introduces the notion of the static moment of a force that he uses extensively in the treatise to prove the equilibrium of the levers he analyzed. Indeed, this approach can be considered as the first rigorous application of the concept of a moment of a force in dealing with the operation of machines. Thus, by using the conditions for static equilibrium Galilei analyzes the determination of the center of gravity of rigid bodies in a general form, from which he deduces also applications for specific practical situations. In the section for Advertisements, Galilei stresses the motion aspects of the levers operation by emphasizing the velocity. In addition, he remarks once more on the practical calculation of the static moment of a force. After the above-mentioned preliminaries, Galilei uses individual sections for the analysis of each fundamental machine. Galilei analyzes in great detail the operation of lever by referring to its most frequent application, i.e., the steelyard (stadera). The practical approach is emphasized with comments on the construction characteristics (materials, shape, and sizes), using the nomenclature of daily applications. The operation is analyzed by using the notion of static moment for the determination of the static equilibrium. In addition, dynamic aspects are described by giving an evaluation of the velocity during the motion towards the equilibrium. It is of great relevance that the model used for the study can be considered as a first early kinematic diagram for machine analysis. Galilei abstracts from the real system, Fig. 1(a), the essential geometry for the motion study, Fig. 1(b). Similarly, kinematic diagrams are used throughout the treatise to aid in analyzing the machines. Fig. 1.The lever model by Galilei 1: (a) a natural description; (b) a kinematic diagram. Referring to Fig. 1(b), the equilibrium is clearly described and it can be formulated asF*CD=P*BC(1)in which P is the weight of the lifted body, F is the applied force, CD and BC are lever distances. In the section for Capstan, Galilei refers to a kinematic diagram in which he emphasizes the function of an axle with a load as equivalent to a lever, Fig. 2. Then, after an explanation of the equivalence, he obtains the efficiency and operation characteristics of the machine in a straightforward way. Indeed, he also outlines a way to increase the efficiency of the system by illustrating a solution that can be considered as the principle for modern belt transmissions, when one observes a suitable arrangement through points F, L, and X in Fig. 2. This new solution is presented as one example of design achievements than can be obtained from the proposed analysis. Fig. 2.Study and improvements of capstan transmission by Galilei 1. The mechanics of an axle with load is applied to the capstan system with the aim of emphasizing the practical usefulness more than mechanical efficiency. This aspect can be understood once more as an engineering aim of this treatise. In the section on Pulleys, Galilei introduces the concept and analysis of a lever of the second type, with the load between the fulcrum and applied force. Then, he analyzes the mechanics and operation by stressing the equivalence with a lever mechanism. A pulley is described and a kinematic diagram is introduced. Galilei points out its practical utility as a continuously operating lever and not for its advantage of lifting weights using a small force. In fact, the equivalent lever has the lever arms of equal lengths, which is the pulley radius. Then, he recognizes the design goal of these machines that is the need for easy operation. In addition, Galilei shows that from this machine more efficient machines can be obtained by properly combining several of them in a multiple mechanical design, which result in the design of tackles. Thus, by referring to a double lever scheme, a pulley system can be conceived as in Fig. 3 with an applied force that is half of the lifted weight. Fig. 3.Analysis of a tackle in (a) by using a double lever model in (b) 1. By generalizing the procedure, Galilei shows how to design and operate a multiple pulley system, referred to as a lever system with several levers operating in parallel. This is the case for an even number of pulleys. For odd number of pulleys, Galilei shows a kinematic diagram of a tackle and its equivalent lever system too. Therefore, he observes how the results can be obtained similarly to the previous case. In the section on Screw, Galilei starts by remarking on the significance of a screw design in many machines for different applications. In order to explain the operational efficiency of a screw, Galilei makes use of the mechanics of a body on an inclined plane by way of a novel approach that refers to angular levers. In addition, he outlines the fundamentals of the mechanics of a body on an inclined plane, when all actions are neglected except for the weight. Thus, he obtains a correct solution that he compares with a wrong attempt made by Pappus in a form that was accepted also by Del Monte. Indeed, the subject was addressed by many others at that time, and some took the correct approach. For example in 1608 Simon Stevin approached successfully the problem of an inclined plane in 10 with the aim of also proving the impossibility of perpetual motion. Galilei explains the operation of a screw by analyzing the equilibrium of an angular lever ABF through the scheme of Fig. 4(b) that is equivalent to the inclined plane FH of Fig. 4(a). Fig. 4.Study of the inclined plane: (a) a model 1; (b) an equivalent angular lever 1; (c) a modern lever scheme for calculus. Referring to the scheme of Fig. 4(a), by using the equilibrium along the direction of the inclined plane, given by angle , one can formulatePcos=F(2)But from the geometry of the system in Fig. 4(b)cos=BK/BF(3)Thus, considering BF=AB as the radius of the equivalent circular lever in Fig. 4(b) and referring to a modern representation through the scheme in Fig. 4(c), it yieldsPAB=FBK(4)which is the lever equilibrium in the form of a balance of the static moment. Then Galilei explains the screw as an inclined plane that is wrapped on a cylindrical body. Finally, he explains that a displacement of a rigid body on an inclined plane must be evaluated by referring to its vertical component, since it is due to the action of weight. In the section on Archimedes screw pump, Galilei describes the pump design and its operation as a brilliant application of the design of a screw and its equivalent inclined plane, as he recognizes the design as not only marvelous, but wonderful (non solo maravigliosa, ma miracolosa). This description gives him the opportunity to clarify the condition for a successful application, by indicating a proper slope of the s
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

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