基于ProE的通用零件的二次开发设计[含CAD高清图纸和说明书]
收藏
资源目录
压缩包内文档预览:(预览前20页/共85页)
编号:22779095
类型:共享资源
大小:163.02MB
格式:ZIP
上传时间:2019-10-31
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
45
积分
- 关 键 词:
-
含CAD高清图纸和说明书
基于
ProE
通用
零件
二次开发
设计
CAD
图纸
说明书
- 资源描述:
-
基于ProE的通用零件的二次开发设计[含CAD高清图纸和说明书],含CAD高清图纸和说明书,基于,ProE,通用,零件,二次开发,设计,CAD,图纸,说明书
- 内容简介:
-
湘潭大学兴湘学院毕业论文说明书题目:基于Pro/E的通用件二次开发设计学 院: 湘潭大学兴湘学院 专 业: 机械设计制造及自动化 学 号: 2006183811 姓 名: 龚 涛 指导教师: 毛 美 姣 完成日期: 2010 年 6 月 湘潭大学兴湘学院毕业论文(设计)任务书论文(设计)题目: 基于Pro/E的通用件二次开发设计 学号: 2006183811 姓名: 龚 涛 专业:机械设计制造及其自动化 指导教师: 毛美姣 系主任: 一、 主要内容及基本要求要求使用Visual Studio2005软件,基于Pro/E的开发工具包Pro/TOOLKIT,对弹簧、齿轮、链轮、蜗轮、轴承等通用零件库样板另建模型进行二次开发。具体完成以下工作: 1、利用Pro/ENGINEER创建弹簧、齿轮、链轮、蜗轮、轴承的参数化模型; 2、运用Visual Studio2005及Pro/TOOLKIT函数编制自定义菜单、通用零件参数对话框; 3、运用Visual Studio2005及Pro/TOOLKIT函数编写通用零件参数化程序; 4、完成所建自定义菜单和对话框与Pro/ENGINEER的连接; 5、撰写毕业设计说明书一份,字数要求在10000字以上; 6、翻译一篇3000字以上的外文文献。 二、重点研究的问题 1、在Pro/ENGINEER4.0平台上建立各种通用零件的参数化模型; 2、运用Visual Studio2005及Pro/TOOLKIT编制自定义菜单及对话框; 3、在软件设计过程中,实现开发程序菜单及对话框与Pro/ENGINEER的连接。 三、进度安排序号各阶段完成的内容完成时间1查阅资料、调研2010.3.152010.3.312总体方案设计2010.4.12010.4.73利用Pro/ENGINEER进行弹簧参数化建模2010.4.82010.4.244Pro/TOOLKIT菜单及对话框的设计2010.4.252010.4.305运用Visual Studio2005及Pro/TOOLKIT函数编制通用零件参数化程序2010.5.12010.5.206撰写毕业设计说明书(包括外文文献翻译)2010.5.212010.5.317整理资料准备答辩2010年6月初四、应收集的资料及主要参考文献1 黄圣杰,张益三,洪立群.pro/engineer高级开发实例M. 北京:电子工业出版社,2006.2 张滢 .pro/e wildfire2001数控加工及二次开发技术M. 北京:机械工业出版社,2003.3 孙江宏,段大高.wildfire2001 高级功能应用及二次开发M. 北京:清华大学出版社,20044 梁普选C+程序设计与软件技术基础 M. 北京:电子工业出版社,20065 濮良贵,纪名刚. 机械设计M. 北京:高等教育出版社,2007.6 孙恒,陈作模,葛文杰机械原理M. 北京:高等教育出版社,2007.7 成大先机械设计手册M. 北京:化学工业出版社,2005.8 丁淑辉,王海霞 . pro/e wildfire4.0基础设计与实现M.北京:清华大学出版社,2006.9 明智科技,黄小龙,高宏,周建国pro/e wildfire3.0零件设计实例精讲M. 北京:人民邮电出版社,2006.10吴宗泽. 机械零件设计手册M. 北京: 机械工业出版社,2006.湘潭大学兴湘学院毕业论文(设计)评阅表学号 2006183811 姓名 龚 涛 专业 机械设计制造及其自动化 毕业论文(设计)题目: 基于Pro/E的通用零件的二次开发设计 评价项目评 价 内 容选题1.是否符合培养目标,体现学科、专业特点和教学计划的基本要求,达到综合训练的目的;2.难度、份量是否适当;3.是否与生产、科研、社会等实际相结合。能力1.是否有查阅文献、综合归纳资料的能力;2.是否有综合运用知识的能力;3.是否具备研究方案的设计能力、研究方法和手段的运用能力;4.是否具备一定的外文与计算机应用能力;5.工科是否有经济分析能力。论文(设计)质量1.立论是否正确,论述是否充分,结构是否严谨合理;实验是否正确,设计、计算、分析处理是否科学;技术用语是否准确,符号是否统一,图表图纸是否完备、整洁、正确,引文是否规范;2.文字是否通顺,有无观点提炼,综合概括能力如何;3.有无理论价值或实际应用价值,有无创新之处。综合评 价评阅人: 年 月 日湘潭大学兴湘学院毕业论文(设计)鉴定意见学 号: 2006183811 学生姓名: 龚 涛 专 业: 机械设计制造及其自动化毕业论文(设计说明书) 72 页 图 表 0 张论文(设计)题目: 基于Pro/E的通用零件的二次开发设计内容提要:机械产品的开发过程中会用到大量的通用件、标准件、相似件,如何方便地建立这些常用零部件的模型与图库、利用已有的资源,花费较少的时间完成产品设计是用户所关心的。建立这些通用件、标准件、相似件零件库作为一项可行案,一方面可以避免不同设计者的重复劳动,提高设计效率;另一方面还可以提高设计的标准化程度,减少错误发生率,缩短产品开发周期。本课题针对多种类型的弹簧、齿轮、链轮、蜗轮、轴承等,基于Pro/E进行二次开发。本文首先分析了弹簧参数化的整体设计方案,包括开发语言、开发、工具开发环境和工作模式的确定。最后利用Pro/TOOLKIT及Visual Studio2005对弹簧、齿轮、链轮、蜗轮、轴承等基于Pro/ENGINEER进行了二次开发,包括各模型的创建、自定义菜单及对话框的开发设计。通过对开发设计的所有三维建模程序进行测试,结果表明:开发程序正确无误,建模迅速,大大提高了这类通用件在Pro/E平台上的设计效率。指导教师评语该生在整个毕业设计过程中,学习认真 、主动积极 、态度端正 、很好的利用现有的知识和资料完成了本次毕业设计任务。掌握了一定的相关知识和技能。论文工作量饱满 、表达正确 、论述清晰。同意该生参加答辩 ,建议成绩:良好。指导教师姓名(职称): 2010年6月4日 答辩简要情况及评语答辩小组组长: 年 月 日答辩委员会意见答辩委员会主任: 年 月 日目 录第一章 引言11.1 CAD/CAM的发展现状11.2 Visual Studio2005简介21.3 课题的提出及意义61.4 预期功能61.5 本论文主要内容7第二章 二次开发总体方案的确定82.1 二次开发语言(Pro/TOOLKIT)82.2 开发工具的确定82.3 开发环境102.3.1硬件开发环境102.3.2 软件开发环境102.4 工作模式的确定102.5 总体设计框架11第三章 对话框的开发设计184.1对话框的设计184.2 编写菜单操作源程序274.3 注册运行364.4 程序验证37第四章 参数化设计134.1 齿轮的参数化建模134.1.1 直齿圆柱齿轮的参数化建模134.1.2 斜齿轮的参数化建模134.1.3 斜齿轮的参数化建模134.2 弹簧的参数化建模134.2.1 圆柱螺旋压缩弹簧的参数化建模134.2.2 截锥螺旋弹簧的参数化建模134.2.3 圆柱螺旋拉伸弹簧的参数化建模134.2.4 中凹形螺旋弹簧的参数化建模134.2.5 中凸形螺旋弹簧的参数化建模134.3 带轮的参数化建模154.3.1 深沟球轴承的参数化建模134.3.2 圆柱滚子轴承的参数化建模134.3.3 调心球轴承的参数化建模134.4 带轮的参数化建模154.4.1 实心式带轮的参数化建模134.4.2 腹板式的参数化建模134.4.3 孔板式带轮的参数化建模134.5 链轮的参数化建模154.6 蜗轮的参数化建模154.7 其它零件的参数化建模154.7.1 键的参数化建模134.7.2 垫圈的参数化建模13结论47致谢48参考文献49附录I 外文文献翻译50附录 外文文献原文58附录III 全部程序(光盘)68基于Pro/E的通用零件的二次开发设计摘要:本课题针对多种类型通用零件,提出基于Pro/E平台进行二次开发的一种可行方案。并且成功开发设计出能满足用户要求的零件模型库。本文首先简单介绍了与本课题相关的Pro/E二次开发功能,包括自定义菜单的生成、对话框的制作、Pro/TOOLKIT应用程序的执行。其次根据本课题的要求,分析了弹簧二次开发的整体设计思路。然后以圆截面圆柱螺旋压缩弹簧为例,较详细地说明了利用Pro/TOOLKIT及Visual Studio2005在Pro/E二次开发中的应用,并给出了测试实例。最后对开发的三维建模程序进行测试。结果表明:开发程序正确无误,建模迅速,大大提高了这类通用件在Pro/E平台上的设计效率。关键词:Pro/E、二次开发、Pro/TOOLKIT、Visual Studio2005The Secondary Development of common parts Based on Pro/EAbstract:This article introduces a feasible method of secondary development based on Pro/E against some kinds of parts. 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 Studio2005 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 、Pro/TOOLKIT、Visual Studio2005第一章 绪论 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 Visual Studio2005简介今天,企业要获得成功,就必须正视构建和维护日益复杂的信息技术 (IT) 解决方案的需求。此外,他们还要借助于新技术来拓展业务功能并开发全新的业务机会。自 IT 部门接受了技术支持任务的那一刻起,他们便成为绝大部分业务策略中的关键角色。 企业当然希望能从他们在 IT 项目的投资中获得最大利润,这就意味着 IT 部门需要在越来越大的压力下多快好省地完成工作。对更高成本效益的追求使得 IT 项目的预见性需求日渐增加。然而,这样做通常造成繁琐的过程和对成本消耗的监控,这只不过是将费用转嫁到不同的问题。付出的代价是开发机会的时间投入以及膨胀的 IT 预算。 复杂的应用程序需要多支训练有素的开发团队来实现。对于开发团队作出的任何主要承诺来说,信息交流都是成功的一个基本元素。新的Visual Studio Team System 扩展了 Microsoft 的优秀功能,即,通过提供与业务紧密集成的、可扩展的、能够增加成功几率的生命周期工具,从而为用户提供高效的工具。能否成功主要取决于,为了降低交付解决方案的复杂性,团队间是否进行了充分的交流。 构建 IT 解决方案的挑战尽管许多 IT 解决方案项目的工作产品是软件,但生成软件并不是项目的目标。相反,软件是实现目标的手段 驱动不同的业务价值。要应对风险并增加成功的可预见性,大多数 IT 部门转而采用各种各样的工具和过程来支持 SDLC。大部分旨在提高软件开发效率的尝试均不尽如人意。这些尝试要么在实现时过于繁琐,并未达到预期的目标,要么根本无法切中团队开发中令人感到苦恼的要害问题。 信息交流:重要的大型应用程序由团队构建,这其中有大量可能从未编写过代码的参与者,包括:业务发起人、项目管理者、架构师以及测试人员。更甚之,团队本身已演变为地理上分布更广且更专业化。角色的差异导致许多问题无从解决,或者无意识地对计划产生了分歧。为了使团队有效地运转,就必须理顺信息交流流程,而且必须让它与成员的日常工作行为相吻合。 工具捆绑:近些年来,在 SDLC 工具领域中已经大量使用了捆绑手法。但是,仅仅是捆绑工具集合并不能实现工具集成。这只是建立工具包。由于角色限制,非集成工具(无法支持工具间的自动数据流)之间就产生了矛盾。集成性的匮乏就必须通过手工乾预进行弥补,而由此可能产生其他一些问题。在数据层进行集成,能够使数据流自动化跨工具和常规报告实现。 不合适的过程:使过程采纳变得复杂的原因是存在一个矛盾,即开发人员在许多生命周期过程中既是最关键的一环,又是最薄弱的一环。不适合团队成员(特别是整个开发团体)工作风格的过程,将遭遇到明显地阻力。面临的挑战就是平衡可预见、可重复过程的生产效率和创新。当未形成这种平衡时,每一个人都挣扎于成本消耗与实现任务目标的矛盾之中。多数过程都以文档为中心。在这种情况下,他们需要额外付出超出维护日常活动的正常流之外的努力。无论团队使用特定的、灵活的或者常规的过程,每一支团队都可以受益于自动且集成的软件开发过程。 另人失望的投资回报 (ROI):站在 CIO 的角度看,痛苦的抉择在于,在开发活动和工具方面不断投入的、天文数字的 IT 预算换来的却是另人失望的投资回报。大多数采纳过程和 SDLC 工具的尝试之所以困难重重,原因在于其陡峭的学习曲线、缺乏工具集成、高额的前期投入费用、持续的维护、特殊技能需求以及对专门的管理员的需求。结果,包含 SDLC 工具的总拥有成本是难以负担的。因此,CIO 面临一个难题 证明既然费用支出不会再涉及任意可估计到的因素,那么他们的费用支出就是合理的。 改进软件开发生命周期当 Microsoft 首先发布 Visual Basic 之时,就通过降低其复杂度从而使 Windows 软件开发得以广泛应用。利用 Visual Basic 6.0,Microsoft 让数以百万计的开发人员能够快速开发客户端/服务器应用程序。最近,利用 Visual Studio .NET,Microsoft 又为开发人员提供了轻松开发分布式应用程序的工具与技术。通过 Visual Studio 2005 Team System,Microsoft 正在解决日益增加的应用程序复杂性及其设计、开发和部署所必需的生命周期问题。这一点是通过提供必需的工具和指导从而能够预见、重复结果(无需付出生产效率和创新的代价)实现的。 信息交流:通过降低报告的运转开销和寻觅团队成员间新的交流渠道,Visual Studio Team System 着重于能够更好地进行交流。 集成的工具:Visual Studio 的成功已被证实,即开发人员偏爱一个具备对他们需要的工具提供接口的集成开发环境。通过将开发人员在开发环境中需要的测试和性能工具(例如,单元测试、代码分析和性能分析)合并在一起,Visual Studio Team System 也期待着这种成功。这使开发人员能够在生命周期的较早阶段就改善其代码的质量,而无需中断他们的工作。通过尽早地为开发人员提供他们需要用于识别和解决质量问题的工具,更多的产品缺陷就能够在它们还未构成危害之前即被发现并解决。 简化的、集成的工作流和过程:有了 Visual Studio Team System,那么过程就不仅仅是文档了。它还能将自己体现为实际的工具行为更改。当您在项目初期选择过程时,还需要选择工作流和工作产品,它们会驱动系统的行为方式。对 SDLC 过程的支持是内置的,这使得对工作流的支持是无缝的。通过将过程集成到团队成员日常使用的基本工具中,Visual Studio Team System 大大消除了过程采纳的障碍,并使自动收集跨职能的项目标准成为可能,而无需实施人工报告的相关开销。 增加的投资回报:利用信息交流和生产效率的改进,企业将明显地看到针对其在 SDLC 工具和过程方面的投资而增加的 ROI。Visual Studio Team System 提供一个具有成本效益的解决方案,从而通过使用跨所有 SDLC 工具的广泛集成,实现对软件开发生命周期的管理。通过提供集成的工具集并基于现有知识进行构建,Visual Studio Team System 提供一个友好的环境来帮助开发团队提高效率,而无需掌握不必要的、复杂的概念和僵化的工具。 集成通过将 SDLC 工具集成到 UI 级别的表面,Visual Studio Team System 提高了团队工作效率并增强了项目的可预见性,下面说明数据级别表面以及过程级别的项目上下文。 用户界面集成:工具间的无缝集成是增强生产效率的关键。Visual Studio Team System 提供跨整个 SDLC 工具套件的、一致的用户体验。对于开发人员而言,可以在他们当前的开发环境中使用某些活动(例如,单元测试、工作项跟踪、代码剖析以及代码分析)。 数据集成:通过使用一个公共的跨工具集的数据仓库,Visual Studio Team System 解决了在大多数 SDLC 工具中建立数据仓库这一问题,并启动了一个聚合的项目状态视图。团队根据能够收集到的规则来管理项目。今天,数据主要限于缺陷跟踪。Visual Studio Team System 中集成的数据将开创一条新路 通过平衡利用贯穿于 SDLC 的大量、多样的数据来管理项目规则。Visual Studio Team System 会收集精确的数据 不仅限于缺陷跟踪,而是包括测试结果、代码涵盖、代码生成、任务进度等这些贯穿于团队常规工作流程的数据。该数据以某些标准的报告方式呈现,客户和 Microsoft 内部团队已在报告中建立了成功项目管理的关键规则。此外,团队还能够创建自定义报告。仅当以项目的大范围上下文查看数据时,团队才能够精确地报告项目状态。 过程集成:在 Visual Studio Team System 中,工具行为由项目开始时选择的过程决定。通过将过程与工具相集成,Visual Studio Team System 帮助确保在项目各阶段之间或各种项目角色之间避免丢失任何内容。通过自动处理团队成员之间的工作调整,可以提高团队效率。公司通过使过程标准化,能够纠正贯穿于过程改进中的系统问题,而无需增加团队的工作量。此外,过程集成并不增加工作量,而通常能够降低与 SDLC 中所采纳过程相关的开销。 扩展性尽管存在一些基本的工具可组成 SDLC 工具(例如,架构师工具、测试工具等),但是 SDLC 并未限制住工具的数量。当集成支持 SDLC 的工具时,团队会发现在提高团队效率,同时降低复杂性这些方面的好处。Visual Studio Team System 将提供基本的平台,让所有提供商能够以一种普通的、公众可理解的形式交换信息。这理所当然地铸造了一个充满活力的合作伙伴体系,合作伙伴能够构建完全集成的工具,简化构建 IT 解决方案的复杂性,以及推动信息交流和鼓励团队协作。要获得跨 UI、数据和过程集成的最大价值,就需要扩展性。扩展性促成交互性。 Visual Studio Team System 设计基础是扩展性模型。Microsoft 提供的 SDLC 工具利用与第三方可用的扩展性功能相同的扩展性功能。扩展性体现在集成的三个层次:UI、数据和过程。 用户界面扩展性:Visual Studio Team System 利用现有的 Visual Studio Industry Partner (VSIP) 计划,将补充的产品和服务插入到 Visual Studio 集成开发环境 (IDE) 之中。 数据扩展性:Visual Studio Team System 利用 Visual Studio Team Foundation Core Services (TFCS) 将这些工具集成在一起。TFCS 提供一组能够将工具集成在一起的工具,无需工具间的紧密耦合。对于数据收集,TFCS 还能够将第三方工具用于由 Visual Studio Team System 使用的数据仓库。 过程扩展性:Visual Studio Team System 使用方法论模板来定义每个项目将遵循的过程。不存在适用于所有组织、以至一个组织内的所有项目的通用过程。不要为此担心,Visual Studio Team System 是一个灵活的工具集,它采用即灵活又正规的过程。Microsoft 的 Global Solution Integrator 合作伙伴将提供他们自己的方法论模板产品;或者,您可以自己创建模板。过程扩展性允许自定义工作项类型、签入策略、自定义报告以及项目管理模板。 1.3 课题的提出及意义产品的三维设计离不开CAD/CAM系统的支持,具有技术成熟、功能强大的Pro/ENGINEER参数化造型系统在设计和制造业中引起了人们的重视,并得到了日益广泛的应用。Pro/ENGINEER提供了强大的三维几何造型功能,使我们能够创建出各种复杂的几何模型,作为通用的三维CAD/CAM系统在功能上基本能够满足产品三维设计要求,但有时这些功能并不能满足我们的需求。例如标准零件系列,它们的结构都是相同的,区别只在于尺寸,如果标准零件系列都通过三维建模的方式来实现,那么工作量将非常巨大。虽然Pro/ENGINEER自身也有一些模型库,但是这远远满足不了用户的要求。因此,也就有了本课题研究开发的必要。机械产品的开发过程中会用到大量的通用零件、标准件、相似件。如何建立这些常用零部件的库,利用已有的资源,花费较少的时间完成产品设计是用户非常关心的问题。建立这些通用件、标准件、相似件零件库作为一项可行方案,一方面可以避免不同设计者的重复劳动,提高设计效率,提高设计的标准化程度,减少错误发生率,缩短产品开发周期;另一方面还可以基于该软件的三维实体模型进行更深层次的分析(如有限元分析等),以确保机械设计结果安全可靠。综上,对某些特殊零件进行二次开发是非常有必要的。因此也就有了本课题的提出。1.4 预期功能如今,虽然绘图软件很多,而且建模方法也越来越智能,易学易懂。但是有些模型,具有相似性和通用性,如标准件,常用件等。如果每用一次都要建一次模型,那么将会大大延长设计周期,如此繁琐而重复的步骤,将给设计者带来不必要的负重。本课题将通过参数化建模,解决这一问题。用户只需正确选择或输入零件相关参数,Pro/E便能自动生成用户所需的模型,这样大大缩短了开发设计的时间,提高了零件的结构设计效率。1.5 本论文主要内容在本课题中,将涉及到齿轮、弹簧、端盖等零件的二次开发。本人负责弹簧、齿轮、链轮、蜗轮、轴承等通用件零件的二次开发设计。本文首先简单介绍了一些绘图软件特别是Pro/ENGINEER的现状,说明了研究本课题的必要性以及重要性;其次介绍了一些Pro/ENGINEER二次开发工具;接着确定本二次开发的总体方案;最后详细地介绍了对弹簧进行二次开发的全过程。本文的重点在于对弹簧进行二次开发的部分。对弹簧的设计将包含以下内容: 弹簧的参数化建模; 设计弹簧菜单及对话框(其中包含实现对话框上各按钮的功能的相应程序); 检验设计是否能达到预期功能。第二章 二次开发总体方案的确定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 Wildfire4.0的二次开发,因此只要能够安装支持Pro/E Wildfire4.0版本即可。建议配置如表2-1所示。表2-1 计算机配置项目推荐配置CPU2.0GHz内存512MB显卡显存32MB以上,推荐使用Geforce4以上的显卡网卡必须安装网卡(或使用虚拟网卡)2.3.2 软件开发环境操作平台:Windows2000/XP/NT;开发平台:Pro/ENGINEER Wildfire4.0;开发语言:Visual Studio2005.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所示。建立开发目录设计菜单设计对话框打开VS2005新建工程Pro/toolkit编程与Pro/E连接调试通过图2-2 总体设计流程图启动Pro/E自动加载菜单选择自定义菜单选择所需零件调用对话框输入设计参数生成实体模型退出程序图2-3 程序调用响应图第三章 参数化设计3.1 弹簧简介弹簧及弹性元件广泛应用于机械、仪表、电器、交通运输工具以及日常生活器具等行业,是一个涉及面比较大的基础零件。近年来,随着科学技术的发展,国内外在弹簧的研究和生产方面都有不同程序的发展。弹簧是一种机械零件。它利用材料的弹性和结构特点,在工作时产生变形,把机械功或动能转变为变形能(位能),或把变形能(位能)转变为机械功或动能。由于这种特性,它适用于:1)缓冲或减震,如破碎机的弹簧和车辆的悬架弹簧等;2)机械的储能,如钟表、仪表和自动控制机构上的原动弹簧;3)控制运动,如气门、离合器、制动器和各种调节器上的弹簧;4)测力装置,如弹簧秤和动力计上的弹簧。除此之外,在机械设备、仪表、日用电器以及生活器具上也都使用着各式各样的弹性元件,如螺母防松弹簧垫圈,零件在轴上定位用的卡环,门的启闭装置,玩具的发条等等。在机电产品,用量最大的弹簧主要有三大类: 汽车为主的机动车辆弹簧; 以日用电器为主的电子产品弹簧; 以摄像机、复印机和照相机为主的光学装置弹簧。机动车辆弹簧主要是向高强度方向发展,以减轻质量;电子产品弹簧主要是向小型化方向发展;而光学装置弹簧主要向着既要高强度化又要小型化方向发展。相应的弹簧设计方法,材料和加工技术均有所发展。3.2 弹簧的参数化建模圆柱螺旋压缩弹簧应用最为广泛,如车辆的悬架弹簧、内燃机的气门弹簧、计测弹簧等都是这类弹簧。螺旋压缩弹簧所用弹簧材料的截面多为圆形,其次是矩形、多股形。近年来为了提高弹簧材料的利用率,也有采用管材;为了提高疲劳强度,扁形钢丝截面逐渐扩大使用范围。螺旋压缩弹簧一般为等节距,在特殊情况下也有不等节距的。下面以等节距圆柱螺旋压缩弹簧为例,介绍说明弹簧的参数化建模过程。打开Pro/ENGINEER软件,新建一个零件,命名为“example2.prt”,不使用缺省模板,选择“mmns_part_solid”,进入零件设计环境。选取主菜单中的【工具】【参数】命令,弹出“参数”对话框,如图3-1所示,单击“”按钮,添加四个参数teeth、pitch、angle、width(也可以用其它字母或符号)。teeth表示弹簧的外径,pitch表示弹簧的内径,angle表示弹簧的螺距,width则表示弹簧的自由高度。并预先设置各参数的值。如:teeth=80、pitch=60、angle=20、width=200。单击“确定”按钮,如图3-1。图3-1 参数设置图选取主菜单【插入】【螺旋扫描】【伸出项】命令。出现螺旋特征创建的对话框,依次选取【常数】【穿过轴】【右手定则】【完成】,完成螺旋特征【属性】的定义,接下来开始定义“扫引轨迹”。选取FRONT平面为草绘平面,并取默认的草绘方向和参照面。进入草绘环境后,绘制如图3-2的图形。完成确定。按照信息提示输入节距值:如20,并回车。草绘一个圆,直径定为10。完成退出。选取【工具】【关系】命令,弹出“关系”对话框。输入如图3-3所示关系,较验确定。 图3-2草绘图形图 3-3关系设置图 最后完成的弹簧零件图如图3-4所示。以上便是螺旋压缩弹簧的参数化建模过程。用户只需更改参数值,再生,便能生成所需的弹簧模型,而不用再去重复步骤。图3-4 零件图将所建弹簧模型均存放在E:example2parts目录下。3.3 检验弹簧的参数化建模 ( 1 )如图3-5所示,选取“工具”菜单下的“程序”选项卡。图3-5 ()弹出如图3-6所示的对话框,选取“编译设计”选项卡。图3-6()弹出如图3-7所示的对话框,并在该对话框中加入:TEETH NUMBER enter teeth: PITCH NUMBER enter pitch: ANGLE NUMBER enter angle: WIDTH NUMBER enter width:,并且“保存” 如图3-7所示。图3-7()弹出如图3-8所示的子对话框,先单击“选取全部”选项卡,再单击“完成选取”。图3-8()依次改变上述参数,检测再生出的图形是否符合要求。重复上述步骤多次改变参数进行校核。第四章 对话框的开发设计4.1对话框的设计本设计中将向Pro/ENGINEER界面上产生一个“弹簧参数化设计”的类型对话框,对话框中有“圆截面圆柱螺旋压缩弹簧” 、“矩形截面圆柱螺旋压缩弹簧”、“圆柱螺旋拉伸弹簧” 、“圆柱螺旋扭转弹簧” 、“截锥螺旋弹簧” 、“中凹形螺旋弹簧” 、“中凸形螺旋弹簧”选项,用户可以根据自己的要求随意选取,如图4-1所示。图4-1如上图4-1选取“圆截面圆柱螺旋压缩弹簧”将产生如图4-2所示的子对话框。 图4-2 4.1.1 类型对话框的设计类型对话框程序的编写如下:(Dialog gear (Components (PushButton Cancel) (Label Selection) (SubLayout GearLayout) ) (Resources (Cancel.Label 取消) (Cancel.TopOffset 4) (Cancel.BottomOffset 4) (Cancel.LeftOffset 4) (Cancel.RightOffset 4) (Selection.Label 请在上面选择弹簧的种类) (Selection.TopOffset 4) (Selection.BottomOffset 4) (Selection.LeftOffset 4) (Selection.RightOffset 4) (.Label 弹簧参数化设计) (.StartLocation 5) (.Layout (Grid (Rows 1 1 1) (Cols 1) GearLayout Selection Cancel ) ) ) )(Layout GearLayout (Components (PushButton verticalgearbmp) (Label verticalgear) (PushButton inclinegearbmp) (Label inclinegear) (PushButton bevel1bmp) (Label bevel1) (PushButton wormbmp) (Label worm) (PushButton bevel2bmp) (Label bevel2) (PushButton ingearbmp) (Label ingear) (PushButton rackbmp) (Label rack) ) (Resources (verticalgearbmp.Bitmap E: example2TEXTRESOURCESPUR.GIF) (verticalgearbmp.TopOffset 4) (verticalgearbmp.BottomOffset 4) (verticalgearbmp.LeftOffset 4) (verticalgearbmp.RightOffset 4) (verticalgear.Label 圆截面圆柱螺旋压缩弹簧) (verticalgear.TopOffset 4) (verticalgear.BottomOffset 4) (verticalgear.LeftOffset 4) (verticalgear.RightOffset 4) (inclinegearbmp.Bitmap E:example2TEXTRESOURCEinclinspur.gif) (inclinegearbmp.TopOffset 4) (inclinegearbmp.BottomOffset 4) (inclinegearbmp.LeftOffset 4) (inclinegearbmp.RightOffset 4) (inclinegear.Label 矩形截面圆柱螺旋压缩弹簧) (inclinegear.TopOffset 4) (inclinegear.BottomOffset 4) (inclinegear.LeftOffset 4) (inclinegear.RightOffset 4) (bevel1bmp.Bitmap E:example2TEXTRESOURCEBEVEL1.GIF) (bevel1bmp.TopOffset 4) (bevel1bmp.BottomOffset 4) (bevel1bmp.LeftOffset 4) (bevel1bmp.RightOffset 4) (bevel1.Label 圆柱螺旋拉伸弹簧) (bevel1.TopOffset 4) (bevel1.BottomOffset 4) (bevel1.LeftOffset 4) (bevel1.RightOffset 4) (wormbmp.Bitmap E:example2TEXTRESOURCEWORM.GIF) (wormbmp.TopOffset 4) (wormbmp.BottomOffset 4) (wormbmp.LeftOffset 4) (wormbmp.RightOffset 4) (worm.Label 圆柱螺旋扭转弹簧) (worm.TopOffset 4) (worm.BottomOffset 4) (worm.LeftOffset 4) (worm.RightOffset 4) (bevel2bmp.Bitmap E: example2TEXTRESOURCEBEVEL2.GIF) (bevel2bmp.TopOffset 4) (bevel2bmp.BottomOffset 4) (bevel2bmp.LeftOffset 4) (bevel2bmp.RightOffset 4) (bevel2.Label 截锥螺旋弹簧) (bevel2.TopOffset 4) (bevel2.BottomOffset 4) (bevel2.LeftOffset 4) (bevel2.RightOffset 4) (ingearbmp.Bitmap E: example2TEXTRESOURCENIGEAR.GIF) (ingearbmp.TopOffset 4) (ingearbmp.BottomOffset 4) (ingearbmp.LeftOffset 4) (ingearbmp.RightOffset 4) (ingear.Label 中凹形螺旋弹簧) (ingear.TopOffset 4) (ingear.BottomOffset 4) (ingear.LeftOffset 4) (ingear.RightOffset 4) (rackbmp.Bitmap E: example2TEXTRESOURCERACKGEAR.GIF) (rackbmp.TopOffset 4) (rackbmp.BottomOffset 4) (rackbmp.LeftOffset 4) (rackbmp.RightOffset 4) (rack.Label 中凸形螺旋弹簧) (rack.TopOffset 4) (rack.BottomOffset 4) (rack.LeftOffset 4) (rack.RightOffset 4) (.Label 弹簧种类) (.Decorated True) (.Layout (Grid (Rows 1 1 1 1 1 1) (Cols 1 1 1) verticalgearbmp inclinegearbmp bevel1bmp verticalgearinclinegear bevel1 wormbmp bevel2bmp ingearbmpworm bevel2 ingear (Pos 5 1) rackbmp (Pos 6 1) rack ) ) )以上弹簧类型对话框资源文件必须以纯文本格式保存,并且扩展名为将所创建的对话框资源文件存放在E:example2TEXTRESOURCE目录下。此次命名为“GEAR.res”以便注册文件能够找到该资源文件。4.1.2子对话框的设计子对话框程序的编写如下:(Dialog spur (Components (PushButton Ok) (PushButton Cancel) (SubLayout GearLayout) ) (Resources (Ok.Label 确定) (Ok.TopOffset 4) (Ok.BottomOffset 4) (Ok.LeftOffset 4) (Ok.RightOffset 4) (Cancel.Label 取消) (Cancel.TopOffset 4) (Cancel.BottomOffset 4) (Cancel.LeftOffset 4) (Cancel.RightOffset 4) (.Label 圆截面圆柱螺旋压缩弹簧参数化设计) (.StartLocation 5) (.Layout (Grid (Rows 1 1 ) (Cols 1) GearLayout (Grid (Rows 1 ) (Cols 1 1) Ok Cancel ) ) ) ) )(Layout GearLayout (Components (Label teethnumlabel) (InputPanel teethnum) (Label pitchlabel) (InputPanel pitch) (Label anglelabel) (InputPanel angle) (Label widthlabel) (InputPanel width) ) (Resources (teethnumlabel.Label 弹簧外径) (teethnumlabel.TopOffset 4) (teethnumlabel.BottomOffset 4) (teethnumlabel.LeftOffset 4) (teethnumlabel.RightOffset 4) (teethnum.InputType 2) (teethnum.TopOffset 4) (teethnum.BottomOffset 4) (teethnum.LeftOffset 4) (teethnum.RightOffset 4) (teethnum.Columns 6) (pitchlabel.Label 弹簧内径) (pitchlabel.TopOffset 4) (pitchlabel.BottomOffset 4) (pitchlabel.LeftOffset 4) (pitchlabel.RightOffset 4) (pitch.InputType 3) (pitch.TopOffset 4) (pitch.BottomOffset 4) (pitch.LeftOffset 4) (pitch.RightOffset 4) (pitch.Columns 6) (anglelabel.Label 弹簧节距) (anglelabel.TopOffset 4) (anglelabel.BottomOffset 4) (anglelabel.LeftOffset 4) (anglelabel.RightOffset 4) (angle.InputType 3) (angle.TopOffset 4) (angle.BottomOffset 4) (angle.LeftOffset 4) (angle.RightOffset 4) (angle.Columns 6) (widthlabel.Label 弹簧长度) (widthlabel.TopOffset 4) (widthlabel.BottomOffset 4) (widthlabel.LeftOffset 4) (widthlabel.RightOffset 4) (width.InputType 3) (width.TopOffset 4) (width.BottomOffset 4) (width.LeftOffset 4) (width.RightOffset 4) (width.Columns 6) (.Label 输入参数) (.Decorated True) (.Layout (Grid (Rows 1 1 1 1) (Cols 1 1) teethnumlabel teethnum pitchlabel pitch anglelabel angle widthlabel width ) ) ) )以上弹簧类型对话框下的子对话框资源文件必须以纯文本格式保存, 并且扩展名为“.res”将所创建的对话框资源文件存放在E:example2TEXTRESOURCE目录下。此次命名为“spur.res”以便注册文件能够找到该资源文件。4.2 编写菜单操作源程序编写完菜单信息资源文本后,还须使用Pro/TOOLKIT提供的菜单操作函数来实现每个菜单的功能,即编写菜单项菜单的动作函数。具体设计步骤如下:(1) 进入“VisualStudio2005”集成开发环境,选择“文件”选项,启动 “新建”对话框。在“新建”对话框中选择“项目”选项卡,如图4-3。图4-3(2) 在“新建项目”对话框中单击“Visual C+”单选框,选择“win32”,在VisualStudio已安装的模块中选取“win32 项目”,从而弹出名称对话条输入“example2”,解决方案名称中将自动加入“example2”单击“确定”按钮。如图4-4。图4-4(3) 弹出如图4-5对话框,。单击“确定”按钮。图4-5弹出“example2 microsofe Visual Studio”对话框,选择工程选择文件名为前缀的cpp资源文件“example.cpp”在Visual Studio2005环境下编写完程序。(4)在Visual Studio2005的集成开发环境选择“工具/选项“菜单,在弹出的“选项”对话框中,在“显示以下内容的目录:”下拉列表框中选择“包含文件”,加入:E:ptcproeWildfire4.0protoolkitincludes E:ptcproeWildfire4.0protoolkitprotk_applsincludesE:ptcproeWildfire4.0prodevelopincludes三项,如图4-6所示。图4-6(5)在“显示以下内容的目录:”下拉列表中选择“库文件”,加入:E:ptcproeWildfire4.0protoolkiti486_ntobjE:ptcproeWildfire4.0prodevelopi486_ntobj两项,设置如图4-7,单击“确定”。图4-7 (6) 弹出如图4-8所示对话框,选取“项目/example2属性”图4-8(7)弹出“example2 属性页”对话框,选择“配置属性”,选择“C/C+”,选择“预处理器”选项卡,在“预处理器定义”下加入“PRO_USE_VAR_ARGS”库文件,如图4-9。图4-9(8)选择“连接器”,选择“输入”,选择“附加依赖项”选项卡,在弹出的小对话框“附加依赖项”下加入:wsock32.libmpr.libpsapi.libprotk_dllmd.lib四个库文件如图4-10所示。图4-10(9)选择“连接器”下的“命令行”选项,在“附加选项”中加入“/force”如图4-11所示。图4-11(10) 对Visual Studio2005进行相关设置后,便可以编写程序了,example2对应的程序如下:/ example2.cpp : 定义DLL 的初始化例程。#include stdafx.h#include example2.h#include ProToolkit.h#include ProMenu.h#include ProParameter.h#include ProUtil.h#include ProMdl.h#include ProNote.h#include ProArray.h#include ProModelItem.h#include ProMessage.h#include #include #include #include #include #include #include #include ProUICheckbutton.h#include ProFaminstance.h#include ProFamtable.h#include #include #include #include #include #include #include #include ProMenu.h#include ProMenubar.h#include#include ProUITextarea.h#include #include #include #include #include #include #ifdef _DEBUG#define new DEBUG_NEW#endifBEGIN_MESSAGE_MAP(Cexample1App, CWinApp)END_MESSAGE_MAP()Cexample1App:Cexample1App()/ TODO: 在此处添加构造代码,/ 将所有重要的初始化放置在InitInstance 中/ 唯一的一个Cexample1App 对象Cexample1App theApp;/ Cexample1App 初始化BOOL Cexample1App:InitInstance()CWinApp:InitInstance();return TRUE;void gear();void spur(char *,char *,ProAppData);void spurOK(char *,char *,ProAppData);void bevel1(char *,char *,ProAppData);void bevel1OK(char *,char *,ProAppData);void UsrOkAction(char *,char *,ProAppData);void UsrCancelAction(char *,char *,ProAppData);extern Cint user_initialize(int argc,char *argv,char *version,char *build,wchar_t errbuf) gear();return (0);extern Cvoid user_terminate(void)return;void gear() / ProLine wline;/ ProBoolean *state; int status;/*-* Load the dialog from the resource file *-*/ ProUIDialogCreate(gear, gear);ProUIPushbuttonActivateActionSet(gear,Cancel, UsrCancelAction, NULL);ProUIPushbuttonActivateActionSet(gear,verticalgearbmp, spur, NULL);ProUIPushbuttonActivateActionSet(gear,bevel1bmp, bevel1, NULL);/*-* Display and activate the dialog *-*/ ProUIDialogActivate(gear, &status);/*-* Remove the dialog from memory *-*/ ProUIDialogDestroy(gear);void UsrOkAction(char *dialog,char *component,ProAppData data)ProUIDialogExit(dialog, 1);void UsrCancelAction(char *dialog,char *component,ProAppData data)ProUIDialogExit(dialog, 1);void spur(char *dialog,char *component,ProAppData data)int status1;/*-* Load the dialog from the resource file *-*/ ProUIDialogCreate(spur, spur);ProUIPushbuttonActivateActionSet(spur,Ok,spurOK, NULL);ProUIPushbuttonActivateActionSet(spur,Cancel,UsrCancelAction, NULL);/*-* Display and activate the dialog *-*/ ProUIDialogActivate(spur, &status1);/*-* Remove the dialog from memory *-*/ ProUIDialogDestroy(spur);void spurOK(char *dialog,char *component,ProAppData data)/ProUIDialogExit(dialog, 1);ProMdl part;ProParameter param1;ProParameter param2;ProParameter param3;ProParameter param4;ProParamvalue value1;ProParamvalue value2;ProParamvalue value3;ProParamvalue value4;ProModelitem feature;int i;int teethnum1;double pitch1,angle1,width1;ProMdlRetrieve(LE:example2partsspur_gear.prt.1, PRO_MDL_PART, &part);ProMdlDisplay(part);ProMdlIdGet(part,&i);ProModelitemInit(part,i,PRO_PART,&feature);ProParameterInit(&feature, LTEETH, ¶m1);ProParameterInit(&feature, LPITCH, ¶m2);ProParameterInit(&feature, LANGLE, ¶m3);ProParameterInit(&feature, LWIDTH, ¶m4);ProUIInputpanelIntegerGet(spur,teethnum,&teethnum1);ProUIInputpanelDoubleGet(spur,pitch,&pitch1);ProUIInputpanelDoubleGet(spur,angle,&angle1);ProUIInputpanelDoubleGet(spur,width,&width1);value1.type=PRO_PARAM_INTEGER;value1.value.i_val=teethnum1;value2.type=PRO_PARAM_DOUBLE;value2.value.d_val=1/pitch1;value3.type=PRO_PARAM_DOUBLE;value3.value.d_val=angle1;value4.type=PRO_PARAM_DOUBLE;value4.value.d_val=width1;ProParameterValueSet(¶m1, &value1);ProParameterValueSet(¶m2, &value2);ProParameterValueSet(¶m3, &value3);ProParameterValueSet(¶m4, &value4);ProSolidRegenerate(ProSolid)part, PRO_B_TRUE);ProUIDialogExit(dialog, 1);(11)在“example2 Microsoft studio”对话框”中选择“生成” 菜单下的 “生成example2”选项,如图4-12所示。图4-12(12)生成完成后,将产生“E:example2”文件夹,并在此文件夹下加入:两文件夹和“protk.dat”文档,如图4-13所示图4-13并在“TEXT”文件夹下加入文件夹,“RESOURCE”文件夹下加入:两个“ . res ”文档。 4. 3 注册运行编写调试完应用程序后,将整个VC工程文件拷贝到工作目录下,用记事本编写注册文件,并保存为“Protk.dat”。注册文件内容如图4-14所示。图4-14图4-14中各字段及其意义如表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.4程序验证 打开软件“PRO/ENGINEER Wildfire 4.0”,选择“工具”菜单“辅助应用程序”选项,如图4-15所示。图4-15在“E:example2”中选取 文档结果如图4-16,再选取“tanhuang”单击“启动”按钮如图4-17所示。 图4-16 图4-17启动程序后将弹出“对话框1”如图4-18所示。图4-18选取“圆截面圆柱螺旋弹簧”将弹出对话框如图4-19,再在对话框中输入参数:弹簧外径=80 , 弹簧内径=60 ,弹簧节距=20 ,弹簧长度=200如图4-20所示 图4-19 图4-20生成模型如图4-21所示。 图4-21第五章 本设计任务所完成的零件清单除了上述介绍的弹簧外,本人还设计开发了齿轮、链轮、蜗轮、轴承等通用件零件(1)图5-1为:齿数 = 25 模数 = 4 压力角 = 20 齿轮宽度 = 20 齿槽宽 = 12 齿槽高 = 6 齿轮轴径 = 50的直齿圆柱齿轮。(2)图5-1为: 齿数 = 20 模数 = 2 压力角 = 20 齿轮宽度 = 20 齿槽宽 = 10 齿槽高 = 5 齿轮轴径 = 30 螺旋角 = 30的斜齿圆柱齿轮。 图5-1 直齿圆柱齿轮 图5-2 斜齿圆柱齿轮(3)图5-3为:齿数 = 30 模数 = 4 压力角 = 20 齿轮宽度 = 25 锥角 = 30 齿槽宽 = 12 齿槽高 = 6 齿轮轴径 = 50的锥齿轮。(4)图5-4为:弹簧外径=80 弹簧内径 =60 弹簧节距 =20 弹簧长度=200的圆截面圆柱螺旋压缩弹簧。 图5-3 锥齿轮 图5-4 圆截面圆柱螺旋压缩弹簧(5)图5-5为:小口直径 = 50 弹簧斜角 = 30 弹簧节距 = 20 材料直径 = 10弹簧长度=200的截锥螺旋弹簧。(6)图5-6为:弹簧内径 = 50 材料直径 =20 弹簧长度=200的圆截面圆柱螺旋压缩弹簧。 图5-5 截锥螺旋弹簧 图5-6 圆截面圆柱螺旋拉伸弹簧(7)图5-7为:弹簧小径 = 50 弹簧大径 = 100 弹簧节距 = 20 材料直径 = 10弹簧长度=150的中凹形螺旋弹簧。(8)图5-8为:弹簧小径 = 50 弹簧大径 = 100 弹簧节距 = 20 材料直径 = 10弹簧长度=100的中凸形螺旋弹簧。 图5-7 中凹形螺旋弹簧 图5-8中凸形螺旋弹簧(9)图5-9为:轴承外径 =80 轴承内径 =40 滚子数目=8 轴承宽度=20 的深沟球轴承。(10)图5-10为:轴承外径 =80 轴承内径 =40 滚子数目=8 轴承宽度=25 的圆柱滚子轴承。 图5-9 深沟球轴承 图5-10圆柱滚子轴承(11)图5-11为:轴承外径 =80 轴承内径 = 40 滚子数目= 8 轴承宽度=20 的调心球轴承。(12)图5-12为: 带轮轴径=50 带轮基准直径 = 120 带轮齿槽数 =2 槽轮角 = 38的实心式带轮。 图5-11调心球轴承 图5-12实心式带轮(13)图5-13为: 带轮轴径=40 带轮基准直径 = 100 带轮齿槽数 =3 槽轮角 = 32的腹板式带轮。(14)图5-14为:带轮轴径=45 带轮基准直径 = 110 带轮齿槽数 =4 槽轮角 = 36的孔板式带轮。 图5-13 腹板式带轮 图5-14孔板式带轮(15)图5-15为:配用链节距=25.4 配用链滚子外径 = 14 链轮齿数 = 20 链孔轴径 = 45的链轮。(16)图5-16为:蜗轮齿数 =31 蜗轮模数 = 4 蜗轮轴径 = 50 涡轮宽度=30的蜗轮。 图5-15链轮 图5-16蜗轮(17)图5-17为:键长 = 20 键宽 = 10 键高 = 6 的A型平键。(18)图5-18为:键长 = 30 键宽 = 12 键高 = 8 的B型平键。 图5-17 A型平键 图5-18 B型平键(19)图5-19为:键长 = 20 键宽 = 14 键高 = 10 的C型平键。(20)图5-20为:键半径 = 30 键宽 = 10的半圆键。 图5-19 C型平键 图5-20 半圆键(21)图5-21为:花间小径 = 30 键齿高度 = 5 键齿数目 = 6 长度 = 80 的花键。(22)图5-22为:外径 = 20 内径 = 15 高度 = 6 的平面垫圈图5-2 花键 5-2 平面垫圈(23)图5-23为:外径 =18 内径 = 12 高度 = 6 的弹簧垫圈图5-23 弹簧垫圈垫圈结论像弹簧、齿轮、轴承、蜗轮、链轮、带轮、键、垫圈等标准件和通用件,在机械设计中经常会用到,如果像传统的建模方法,当用到同一种类型的零件时(只是参数不一样,模型形状极其类似),每用一次就建一次模型,这样是极费时间和精力的,不仅事倍功半,而且也会延长设计者的开发周期。通过以上研究,利用Pro/ENGINEER、Pro/TOOLKIT和Visual Studio2005 等进行Pro/E的二次开发,将弹簧零件进行参数化、模块化,这样就不用再进行繁琐的手工建模过程。用户只需输入弹簧的相关设计参数,便能快捷准确地得到自己想要的模型,大大方便了用户,提高了设计效率。致谢从开学到现在,已经过去两个多月了。在这几个月里,我得到了毛美姣老师和谭志飞老师的极大帮助。由于目前市面上关于Pro/E二次开发的书籍很少,他们不仅帮我们找到相关书籍资料,还为我们提供了教室,让我们有一个良好的设计开发环境。在工科楼的这两个月里,我学到了不少东西,不仅有与毕业设计相关的,还有一些其他专业知识。在此,我要衷心地对他们说一声:“您辛苦了,谢谢您!”在此之前,我对Pro/ENGINEER Wildfire这个软件并不是很了解,通过这次学习,我初步了解了三维建模的知识,初步掌握了Pro/ENGINEER的相关功能及各种模型的建模方法。由于本设计还要用到Pro/TOOLKIT和Visual Studio2005,我还查阅学习了相关书籍。以前对C语言总是一知半解的,现在已经能够初步运用Visual Studio2005进行一些设计开发。在设计期间,我还通过互联网了解了Pro/E二次开发目前的市场前景。目前Pro/E在中国应用广泛,许多公司均采用Pro/E进行三维绘图。特别是在深圳、上海等发达城市,应用更为广泛。但是,从事Pro/E二次开发工作的相关专业人士却并不多。因此,Pro/E二次开发在目前市场上还是有很大发展潜力的。最后,再次感谢指导老师给予我的帮助。参考文献1 黄圣杰,张益三,洪立群.pro/enginee高级开发实例M. 北京:电子工业出版社,2006.2 张滢 .pro/e wildfire2001数控加工及二次开发技术M. 北京:机械工业出版社,2003.3 孙江宏,段大高.wildfire2001 高级功能应用及二次开发M. 北京:清华大学出版社,20044 梁普选C+程序设计与软件技术基础 M. 北京:电子工业出版社,20065 濮良贵,纪名刚. 机械设计M. 北京:高等教育出版社,2007.6 孙恒,陈作模,葛文杰机械原理M. 北京:高等教育出版社,2007.7 成大先机械设计手册M. 北京:化学工业出版社,2005.8丁淑辉,王海霞 . pro/e wildfire3.0基础设计与实现M.北京:清华大学出版社,2006.9 明智科技,黄小龙,高宏,周建国pro/e wildfire3.0零件设计实例精讲M. 北京:人民邮电出版社,2006.10吴宗泽. 机械零件设计手册M. 北京: 机械工业出版社,2006.11 李世国.Pro/TOOLKIT程序设计M.北京:机械工业出版社,2003.12 吴立军,陈波.Pro/ENGINEER二次开发技术基础M.北京:电子工业出版社,2006.13 张继春.Pro/ENGINEER野火版二次开发实用教程M.北京:北京大学出版社,2003.14 张英会,刘辉航,王德成等.弹簧手册M.北京:机械工业出版社,1997. 附录I 外文文献翻译估计导致工程几何分析错误的一个正式理论SankaraHariGopalakrishnan,KrishnanSuresh机械工程系,威斯康辛大学,麦迪逊分校,2006年9月30日摘要:几何分析是著名的计算机辅助设计/计算机辅助工艺简化 “小或无关特征”在CAD模型中的程序,如有限元分析。然而,几何分析不可避免地会产生分析错误,在目前的理论框架实在不容易量化。本文中,我们对快速计算处理这些几何分析错误提供了严谨的理论。尤其,我们集中力量解决地方的特点,被简化的任意形状和大小的区域。提出的理论采用伴随矩阵制定边值问题抵达严格界限几何分析性分析错误。该理论通过数值例子说明。关键词:几何分析;工程分析;误差估计;计算机辅助设计/计算机辅助教学1. 介绍机械零件通常包含了许多几何特征。不过,在工程分析中并不是所有的特征都是至关重要的。以前的分析中无关特征往往被忽略,从而提高自动化及运算速度。举例来说,考虑一个刹车转子,如图1(a)。转子包含50多个不同的特征,但所有这些特征并不是都是相关的。就拿一个几何化的刹车转子的热量分析来说,如图1(b)。有限元分析的全功能的模型如图1(a),需要超过150,000度的自由度,几何模型图1(b)项要求小于25,000个自由度,从而导致非常缓慢的运算速度。图1(a)刹车转子 图1(b)其几何分析版本除了提高速度,通常还能增加自动化水平,这比较容易实现自动化的有限元网格几何分析组成。内存要求也跟着降低,而且条件数离散系统将得以改善;后者起着重要作用迭代线性系统。但是,几何分析还不是很普及。不稳定性到底是“小而局部化”还是“大而扩展化”,这取决于各种因素。例如,对于一个热问题,想删除其中的一个特征,不稳定性是一个局部问题:(1)净热通量边界的特点是零。(2)特征简化时没有新的热源产生; 4对上述规则则例外。展示这些物理特征被称为自我平衡。结果,同样存在结构上的问题。从几何分析角度看,如果特征远离该区域,则这种自我平衡的特征可以忽略。但是,如果功能接近该区域我们必须谨慎,。从另一个角度看,非自我平衡的特征应值得重视。这些特征的简化理论上可以在系统任意位置被施用,但是会在系统分析上构成重大的挑战。目前,尚无任何系统性的程序去估算几何分析对上述两个案例的潜在影响。这就必须依靠工程判断和经验。在这篇文章中,我们制定了理论估计几何分析影响工程分析自动化的方式。任意形状和大小的形体如何被简化是本文重点要解决的地方。伴随矩阵和单调分析这两个数学概念被合并成一个统一的理论来解决双方的自我平衡和非自我平衡的特点。数值例子涉及二阶scalar偏微分方程,以证实他的理论。本文还包含以下内容。第二节中,我们就几何分析总结以往的工作。在第三节中,我们解决几何分析引起的错误分析,并讨论了拟议的方法。第四部分从数值试验提供结果。第五部分讨论如何加快设计开发进度。2. 前期工作几何分析过程可分为三个阶段:识别:哪些特征应该被简化;简化:如何在一个自动化和几何一致的方式中简化特征;分析:简化的结果。第一个阶段的相关文献已经很多。例如,企业的规模和相对位置这个特点,经常被用来作为度量鉴定。此外,也有人提议以有意义的力学判据确定这种特征。自动化几何分析过程,事实上,已成熟到一个商业化几何分析的地步。但我们注意到,这些商业软件包仅提供一个纯粹的几何解决。因为没有保证随后进行的分析错误,所以必须十分小心使用。另外,固有的几何问题依然存在,并且还在研究当中。本文的重点是放在第三阶段,即快速几何分析。建立一个有系统的方法,通过几何分析引起的误差是可以计算出来的。再分析的目的是迅速估计改良系统的反应。其中最著名的再分析理论是著名的谢尔曼-Morrison和woodbury公式。对于两种有着相似的网状结构和刚度矩阵设计,再分析这种技术特别有效。然而,过程几何分析在网状结构的刚度矩阵会导致一个戏剧性的变化,这与再分析技术不太相关。3. 拟议的方法3.1问题阐述我们把注意力放在这个文件中的工程问题,标量二阶偏微分方程式(pde): 许多工程技术问题,如热,流体静磁等问题,可能简化为上述公式。作为一个说明性例子,考虑散热问题的二维模块如图2所示。图2二维热座装配热量q从一个线圈置于下方位置列为coil。半导体装置位于device。这两个地方都属于,有相同的材料属性,其余将在后面讨论。特别令人感兴趣的是数量,加权温度Tdevice内device(见图2)。一个时段,认定为slot缩进如图2,会受到抑制,其对Tdevice将予以研究。边界的时段称为slot其余的界线将称为。边界温度假定为零。两种可能的边界条件slot被认为是:(a)固定热源,即(-kt)n=q,(b)有一定温度,即T=Tslot。两种情况会导致两种不同几何分析引起的误差的结果。设T(x,y)是未知的温度场和K导热。然后,散热问题可以通过泊松方程式表示:其中H(x,y)是一些加权内核。现在考虑的问题是几何分析简化的插槽是简化之前分析,如图3所示。图3defeatured二维热传导装配模块现在有一个不同的边值问题,不同领域t(x,y):观察到的插槽的边界条件为t(x,y)已经消失了,因为槽已经不存在了(关键性变化)!解决的问题是:设定tdevice和t(x,y)的值,估计Tdevice。这是一个较难的问题,是我们尚未解决的。在这篇文章中,我们将从上限和下限分析Tdevice。这些方向是明确被俘引理3、4和3、6。至于其余的这一节,我们将发展基本概念和理论,建立这两个引理。值得注意的是,只要它不重叠,定位槽与相关的装置或热源没有任何限制。上下界的Tdevice将取决于它们的相对位置。3.2伴随矩阵方法我们需要的第一个概念是,伴随矩阵公式表达法。应用伴随矩阵论点的微分积分方程,包括其应用的控制理论,形状优化,拓扑优化等。我们对这一概念归纳如下。相关的问题都可以定义为一个伴随矩阵的问题,控制伴随矩阵t_(x,y),必须符合下列公式计算23:伴随场t_(x,y)基本上是一个预定量,即加权装置温度控制的应用热源。可以观察到,伴随问题的解决是复杂的原始问题;控制方程是相同的;这些问题就是所谓的自身伴随矩阵。大部分工程技术问题的实际利益,是自身伴随矩阵,就很容易计算伴随矩阵。另一方面,在几何分析问题中,伴随矩阵发挥着关键作用。表现为以下引理综述:引理3.1已知和未知装置温度的区别,即(Tdevice-tdevice)可以归纳为以下的边界积分比几何分析插槽:在上述引理中有两点值得注意:1、积分只牵涉到边界slot;这是令人鼓舞的。或许,处理刚刚过去的被简化信息特点可以计算误差。2、右侧牵涉到的未知区域T(x,y)的全功能的问题。特别是第一周期涉及的差异,在正常的梯度,即涉及-k(T-t) n;这是一个已知数量边界条件-ktn所指定的时段,未知狄里克莱条件作出规定-ktn可以评估。在另一方面,在第二个周期内涉及的差异,在这两个领域,即T管; 因为t可以评价,这是一个已知数量边界条件T指定的时段。因此。引理3.2、差额(tdevice-tdevice)不等式然而,伴随矩阵技术不能完全消除未知区域T(x,y)。为了消除T(x,y)我们把重点转向单调分析。3.3单调性分析单调性分析是由数学家在19世纪和20世纪前建立的各种边值问题。例如,一个单调定理:添加几何约束到一个结构性问题,是指在位移(某些)边界不减少。观察发现,上述理论提供了一个定性的措施以解决边值问题。后来,工程师利用之前的“计算机时代”上限或下限同样的定理,解决了具有挑战性的问题。当然,随着计算机时代的到来,这些相当复杂的直接求解方法已经不为人所用。但是,在当前的几何分析,我们证明这些定理采取更为有力的作用,尤其应当配合使用伴随理论。我们现在利用一些单调定理,以消除上述引理T(x,y)。遵守先前规定,右边是区别已知和未知的领域,即T(x,y)-t(x,y)。因此,让我们在界定一个领域E(x,y)在区域为:e(x,y)=t(x,y)-t(x,y)。据悉,T(x,y)和T(x,y)都是明确的界定,所以是e(x,y)。事实上,从公式(1)和(3),我们可以推断,e(x,y)的正式满足边值问题:解决上述问题就能解决所有问题。但是,如果我们能计算区域e(x,y)与正常的坡度超过插槽,以有效的方式,然后(Tdevice-tdevice),就评价表示e(X,Y)的效率,我们现在考虑在上述方程两种可能的情况如(a)及(b)。例(a)边界条件较第一插槽,审议本案时槽原本指定一个边界条件。为了估算e(x,y),考虑以下问题:因为只取决于缝隙,不讨论域,以上问题计算较简单。经典边界积分/边界元方法可以引用。关键是计算机领域e1(x,y)和未知领域的e(x,y)透过引理3.3。这两个领域e1(x,y)和e(x,y)满足以下单调关系:把它们综合在一起,我们有以下结论引理。引理3.4未知的装置温度Tdevice,当插槽具有边界条件,东至以下限额的计算,只要求:(1)原始及伴随场T和隔热与几何分析域(2)解决e1的一项问题涉及插槽:观察到两个方向的右侧,双方都是独立的未知区域T(x,y)。例(b) 插槽Dirichlet边界条件我们假定插槽都维持在定温Tslot。考虑任何领域,即包含域和插槽。界定一个区域e(x,y)在满足:现在建立一个结果与e-(x,y)及e(x,y)。引理3.5注意到,公式(7)的计算较为简单。这是我们最终要的结果。引理3.6 未知的装置温度Tdevice,当插槽有Dirichlet边界条件,东至以下限额的计算,只要求:(1)原始及伴随场T和隔热与几何分析。(2) 围绕插槽解决失败了的边界问题,:再次观察这两个方向都是独立的未知领域T(x,y)。4. 数值例子说明我们的理论发展,在上一节中,通过数值例子。设k = 5W/mC, Q = 10 W/m3 and H = 。表1:结果表表1给出了不同时段的边界条件。第一装置温度栏的共同温度为所有几何分析模式(这不取决于插槽边界条件及插槽几何分析)。接下来两栏的上下界说明引理3.4和3.6。最后一栏是实际的装置温度所得的全功能模式(前几何分析),是列在这里比较前列的。在全部例子中,我们可以看到最后一栏则是介于第二和第三列。T Tdevice T对于绝缘插槽来说,Dirichlet边界条件指出,观察到的各种预测为零。不同之处在于这个事实:在第一个例子,一个零Neumann边界条件的时段,导致一个自我平衡的特点,因此,其对装置基本没什么影响。另一方面,有Dirichlet边界条件的插槽结果在一个非自我平衡的特点,其缺失可能导致器件温度的大变化在。不过,固定非零槽温度预测范围为20度到0度。这可以归因于插槽温度接近于装置的温度,因此,将其删除少了影响。的确,人们不难计算上限和下限的不同Dirichlet条件插槽。图4说明了变化的实际装置的温度和计算式。预测的上限和下限的实际温度装置表明理论是正确的。另外,跟预期结果一样,限制槽温度大约等于装置的温度。5. 快速分析设计的情景我们认为对所提出的理论分析什么-如果的设计方案,现在有着广泛的影响。研究显示设计如图5,现在由两个具有单一热量能源的器件。如预期结果两设备将不会有相同的平均温度。由于其相对靠近热源,该装置的左边将处在一个较高的温度,。图4估计式versus插槽温度图图5双热器座图6正确特征可能性位置为了消除这种不平衡状况,加上一个小孔,固定直径;五个可能的位置见图6。两者的平均温度在这两个地区最低。强制进行有限元分析每个配置。这是一个耗时的过程。另一种方法是把该孔作为一个特征,并研究其影响,作为后处理步骤。换言之,这是一个特殊的“几何分析”例子,而拟议的方法同样适用于这种情况。我们可以解决原始和伴随矩阵的问题,原来的配置(无孔)和使用的理论发展在前两节学习效果加孔在每个位置是我们的目标。目的是在平均温度两个装置最大限度的差异。表2概括了利用这个理论和实际的价值。从上表可以看到,位置W是最佳地点,因为它有最低均值预期目标的功能。附录II 外文文献原文A formal theory for estimating defeaturing -induced engineering analysis errorsSankara Hari Gopalakrishnan, Krishnan SureshDepartment of Mechanical Engineering, University of Wisconsin, Madison, WI 53706, United StatesReceived 13 January 2006; accepted 30 September 2006AbstractDefeaturing is a popular CAD/CAE simplification technique that suppresses small or irrelevant features within a CAD model to speed-up downstream processes such as finite element analysis. Unfortunately, defeaturing inevitably leads to analysis errors that are not easily quantifiable within the current theoretical framework.In this paper, we provide a rigorous theory for swiftly computing such defeaturing -induced engineering analysis errors. In particular, we focus on problems where the features being suppressed are cutouts of arbitrary shape and size within the body. The proposed theory exploits the adjoint formulation of boundary value problems to arrive at strict bounds on defeaturing induced analysis errors. The theory is illustrated through numerical examples.Keywords: Defeaturing; Engineering analysis; Error estimation; CAD/CAE1. IntroductionMechanical artifacts typically contain numerous geometric features. However, not all features are critical during engineering analysis. Irrelevant features are often suppressed or defeatured, prior to analysis, leading to increased automation and computational speed-up.For example, consider a brake rotor illustrated in Fig. 1(a). The rotor contains over 50 distinct features, but not all of these are relevant during, say, a thermal analysis. A defeatured brake rotor is illustrated in Fig. 1(b). While the finite element analysis of the full-featured model in Fig. 1(a) required over 150,000 degrees of freedom, the defeatured model in Fig. 1(b) required 25,000 DOF, leading to a significant computational speed-up.Fig. 1. (a) A brake rotor and (b) its defeatured version.Besides an improvement in speed, there is usually an increased level of automation in that it is easier to automate finite element mesh generation of a defeatured component 1,2. Memory requirements also decrease, while condition number of the discretized system improves;the latter plays an important role in iterative linear system solvers 3.Defeaturing, however, invariably results in an unknown perturbation of the underlying field. The perturbation may be small and localized or large and spread-out, depending on various factors. For example, in a thermal problem, suppose one deletes a feature; the perturbation is localized provided: (1) the net heat flux on the boundary of the feature is zero, and (2) no new heat sources are created when the feature is suppressed; see 4 for exceptions to these rules. Physical features that exhibit this property are called self-equilibrating 5. Similarly results exist for structural problems.From a defeaturing perspective, such self-equilibrating features are not of concern if the features are far from the region of interest. However, one must be cautious if the features are close to the regions of interest.On the other hand, non-self-equilibrating features are of even higher concern. Their suppression can theoretically be felt everywhere within the system, and can thus pose a major challenge during analysis.Currently, there are no systematic procedures for estimating the potential impact of defeaturing in either of the above two cases. One must rely on engineering judgment and experience.In this paper, we develop a theory to estimate the impact of defeaturing on engineering analysis in an automated fashion. In particular, we focus on problems where the features being suppressed are cutouts of arbitrary shape and size within the body. Two mathematical concepts, namely adjoint formulation and monotonicity analysis, are combined into a unifying theory to address both self-equilibrating and non-self-equilibrating features. Numerical examples involving 2nd order scalar partial differential equations are provided to substantiate the theory.The remainder of the paper is organized as follows. In Section 2, we summarize prior work on defeaturing. In Section 3, we address defeaturing induced analysis errors, and discuss the proposed methodology. Results from numerical experiments are provided in Section 4. A by-product of the proposed work on rapid design exploration is discussed in Section 5. Finally, conclusions and open issues are discussed in Section 6.2. Prior workThe defeaturing process can be categorized into three phases:Identification: what features should one suppress?Suppression: how does one suppress the feature in an automated and geometrically consistent manner?Analysis: what is the consequence of the suppression?The first phase has received extensive attention in the literature. For example, the size and relative location of a feature is often used as a metric in identification 2,6. In addition, physically meaningful mechanical criterion/heuristics have also been proposed for identifying such features 1,7.To automate the geometric process of defeaturing, the authors in 8 develop a set of geometric rules, while the authors in 9 use face clustering strategy and the authors in 10 use plane splitting techniques. Indeed, automated geometric defeaturing has matured to a point where commercial defeaturing /healing packages are now available 11,12. But note that these commercial packages provide a purely geometric solution to the problem. they must be used with care since there are no guarantees on the ensuing analysis errors. In addition, open geometric issues remain and are being addressed 13.The focus of this paper is on the third phase, namely, post defeaturing analysis, i.e., to develop a systematic methodology through which defeaturing -induced errors can be computed. We should mention here the related work on reanalysis. The objective of reanalysis is to swiftly compute the response of a modified system by using previous simulations. One of the key developments in reanalysis is the famous ShermanMorrison and Woodbury formula 14 that allows the swift computation of the inverse of a perturbed stiffness matrix; other variations of this based on Krylov subspace techniques have been proposed 1517. Such reanalysis techniques are particularly effective when the objective is to analyze two designs that share similar mesh structure, and stiffness matrices. Unfortunately, the process of 几何分析 can result in a dramatic change in the mesh structure and stiffness matrices, making reanalysis techniques less relevant.A related problem that is not addressed in this paper is that of localglobal analysis 13, where the objective is to solve the local field around the defeatured region after the global defeatured problem has been solved. An implicit assumption in localglobal analysis is that the feature being suppressed is self-equilibrating.3. Proposed methodology3.1. Problem statementWe restrict our attention in this paper to engineering problems involving a scalar field u governed by a generic 2nd order partial differential equation (PDE):A large class of engineering problems, such as thermal, fluid and magneto-static problems, may be reduced to the above form.As an illustrative example, consider a thermal problem over the 2-D heat-block assembly illustrated in Fig. 2.The assembly receives heat Q from a coil placed beneath the region identified as coil. A semiconductor device is seated at device. The two regions belong to and have the same material properties as the rest of . In the ensuing discussion, a quantity of particular interest will be the weighted temperature Tdevice within device (see Eq. (2) below). A slot, identified as slot in Fig. 2, will be suppressed, and its effect on Tdevice will be studied. The boundary of the slot will be denoted by slot while the rest of the boundary will be denoted by . The boundary temperature on is assumed to be zero. Two possible boundary conditions on slot are considered: (a) fixed heat source, i.e., (-krT).n = q, or (b) fixed temperature, i.e., T = Tslot. The two cases will lead to two different results for defeaturing induced error estimation.Fig. 2. A 2-D heat block assembly.Formally,let T (x, y) be the unknown temperature field and k the thermal conductivity. Then, the thermal problem may be stated through the Poisson equation 18:Given the field T (x, y), the quantity of interest is:where H(x, y) is some weighting kernel. Now consider the defeatured problem where the slot is suppressed prior to analysis, resulting in the simplified geometry illustrated in Fig. 3.Fig. 3. A defeatured 2-D heat block assembly.We now have a different boundary value problem, governing a different scalar field t (x, y):Observe that the slot boundary condition for t (x, y) has disappeared since the slot does not exist any morea crucial change!The problem addressed here is:Given tdevice and the field t (x, y), estimate Tdevice without explicitly solving Eq. (1).This is a non-trivial problem; to the best of our knowledge,it has not been addressed in the literature. In this paper, we will derive upper and lower bounds for Tdevice. These bounds are explicitly captured in Lemmas 3.4 and 3.6. For the remainder of this section, we will develop the essential concepts and theory to establish these two lemmas. It is worth noting that there are no restrictions placed on the location of the slot with respect to the device or the heat source, provided it does not overlap with either. The upper and lower bounds on Tdevice will however depend on their relative locations.3.2. Adjoint methodsThe first concept that we would need is that of adjoint formulation. The application of adjoint arguments towards differential and integral equations has a long and distinguished history 19,20, including its applications in control theory 21,shape optimization 22, topology optimization, etc.; see 23 for an overview.We summarize below concepts essential to this paper.Associated with the problem summarized by Eqs. (3) and (4), one can define an adjoint problem governing an adjoint variable denoted by t_(x, y) that must satisfy the following equation 23: (See Appendix A for the derivation.)The adjoint field t_(x, y) is essentially a sensitivity map of the desired quantity, namely the weighted device temperature to the applied heat source. Observe that solving the adjoint problem is only as complex as the primal problem; the governing equations are identical; such problems are called self-adjoint. Most engineering problems of practical interest are self-adjoint, making it easy to compute primal and adjoint fields without doubling the computational effort.For the defeatured problem on hand, the adjoint field plays a critical role as the following lemma summarizes:Lemma 3.1. The difference between the unknown and known device temperature, i.e., (Tdevice tdevice), can be reduced to the following boundary integral over the defeatured slot:Two points are worth noting in the above lemma:1. The integral only involves the slot boundary slot; this is encouraging perhaps, errors can be computed by processing information just over the feature being suppressed.2. The right hand side however involves the unknown field T (x, y) of the full-featured problem. In particular, the first term involves the difference in the normal gradients, i.e.,involves k(T t). n; this is a known quantity if Neumann boundary conditions kT . n are prescribed over the slot since kt. n can be evaluated, but unknown if Dirichlet conditions are prescribed. On the other hand,the second term involves the difference in the two fields,i.e., involves (T t); this is a known quantity if Dirichlet boundary conditions T are prescribed over the slot since t can be evaluated, but unknown if Neumann conditions are prescribed. Thus, in both cases, one of the two terms gets evaluated. The next lemma exploits this observation.Lemma 3.2. The difference (Tdevice tdevice) satisfies the inequalitiesUnfortunately, that is how far one can go with adjoint techniques; one cannot entirely eliminate the unknown field T (x, y) from the right hand side using adjoint techniques. In order to eliminate T (x, y) we turn our attention to monotonicity analysis.3.3. Monotonicity analysisMonotonicity analysis was established by mathematicians during the 19th and early part of 20th century to establish the existence of solutions to various boundary value problems 24.For example, a monotonicity theorem in 25 states:“On adding geometrical constraints to a structural problem,the mean displacement over (certain) boundaries does not decrease”.Observe that the above theorem provides a qualitative measure on solutions to boundary value problems.Later on, prior to the computational era, the same theorems were used by engineers to get quick upper or lower bounds to challenging problems by reducing a complex problem to simpler ones 25. Of course, on the advent of the computer, such methods and theorems took a back-seat since a direct numerical solution of fairly complex problems became feasible.However, in the present context of defeaturing, we show that these theorems take on a more powerful role, especially when used in conjunction with adjoint theory.We will now exploit certain monotonicity theorems to eliminate T (x, y) from the above lemma. Observe in the previous lemma that the right hand side involves the difference between the known and unknown fields, i.e., T (x, y) t (x, y). Let us therefore define a field e(x, y) over the region as:e(x, y) = T (x, y) t (x, y) in .Note that since excludes the slot, T (x, y) and t (x, y) are both well defined in , and so is e(x, y). In fact, from Eqs. (1) and (3) we can deduce that e(x, y) formally satisfies the boundary value problem:Solving the above problem is computationally equivalent to solving the full-featured problem of Eq. (1). But, if we could compute the field e(x, y) and its normal gradient over the slot,in an efficient manner, then (Tdevice tdevice) can be evaluated from the previous lemma. To evaluate e(x, y) efficiently, we now consider two possible cases (a) and (b) in the above equation.Case (a) Neumann boundary condition over slotFirst, consider the case when the slot was originally assigned a Neumann boundary condition. In order to estimate e(x, y),consider the following exterior Neumann problem:The above exterio
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

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