《基于UG二次开发工具的直齿圆柱齿轮斜齿轮直齿锥齿轮的参数化设计论文.doc》由会员分享,可在线阅读,更多相关《基于UG二次开发工具的直齿圆柱齿轮斜齿轮直齿锥齿轮的参数化设计论文.doc(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 摘要在机械加工中,孔加工占机械加工的比例在30%以上,特别是在汽车与航空等行业中麻花钻的应用极为广泛。由于长期以来,麻花钻的设计大多是靠工程师的经验来进行,在设计过程中,难免会出现重复性的工作,从而降低了设计效率。同时通常的设计都是在二维图纸上进行设计,不能得到可视化的麻花钻三维造型,这就阻碍了麻花钻的数控刃磨加工与利用一些分析软件对麻花钻的钻削过程进行分析。在UG中利用麻花钻参数表达式绘制麻花钻实体模型,实现麻花钻在UG的参数化设计。从而实现产品的快速设计。UG/Open二次开发模块是UG软件的二次开发工具集,利用该模块可对UG系统进行用户化开发,可满足用户进行各种二次开发的需求。学习了U
2、G二次开发的各种工具,了解了各种工具的特点和适用围。选择 UG/Open API编程语言,结合使用UG/Open Menu Script和UG/Open UI Styler开发工具,实现了基于UG二次开发工具的直齿圆柱齿轮、斜齿轮、直齿锥齿轮的参数化设计。关键词:麻花钻,二次开发,参数化,APIKey Words:parameter,gear,UG/Open,API67 / 69目录第 1 章 绪论11.1课题的研究背景11.2课题的研究容和解决方法2第 2 章 UG二次开发的研究421 UG软件概述42.1.1 UG软件的功能介绍42.1.2 UG功能模块52.2 UG二次开发相关工具概述5
3、2.2.1 UG/OPEN GRIP62.2.2 UG/OPEN API72.2.3 UG/OPEN MenuScript72.2.4 UG/OPEN UIStyler92.2.5 User Tools工具9第 3 章 二次开发方案的选择1131列举可行的方案1132 方案的选择1333利用二次开发工具制作系统菜单143.3.1 设置系统环境变量143.3.2制作菜单15第 4 章齿轮常用的齿形曲线渐开线1841渐开线的形成原理1842渐开线的数学模型1943 渐开线齿廓的绘制20第 5 章 直齿圆柱齿轮的参数化设计2251 数学模型2252 齿轮三维建模23第 6章 斜齿轮的参数化设计266
4、1 数学模型2662 齿轮三维建模27第 7 章 直齿锥齿轮的参数化设计2871 数学模型2872 齿轮三维建模29第 8 章 程序设计308.1 总体方案设计308.2 对话框设计318.3 程序设计36第 9 章 结论48致50参考文献51附录52第1章 绪论11课题的研究背景齿轮机构用于传递空间任意两轴之间的运动和动力,具有质量小、体积小、传动比大和效率高等优点,已广泛应用于汽车、船舶、机床、矿山冶金等领域,它几乎适用于一切功率和转速围,是现代机械中应用最广泛的一种传动机构。目前齿轮传动技术已成为世界各国机械传动发展的重点之一。齿轮设计在齿轮制造应用过程中占有重要地位。传统的齿轮设计过程
5、繁冗,效率低,采用传统的设计方法设计一组较为合理的齿轮副要反复修正参数、多次校核计算,花费很长时间才能实现。另外,齿轮类零件的绘图工作(包括几何绘图、标注、参数表填写等容)也是一项繁杂而费时的工作1。但齿轮类零件大部分具有相似的结构和形状,在新产品的设计和图纸绘制过程中,不可避免地要多次反复修改,进行零件形状、尺寸的综合协调和优化.这时寻求一种简便、合理的设计方法,提高设计工作效率,是齿轮设计工作者的迫切愿望。因此,借助CAD技术实现其绘图过程的参数化和自动化,对于提高设计效率和保证设计质量具有重要意义2。因此,现代齿轮机构的设计建模技术有着广泛的工程应用背景和研究意义 。随着计算机技术和现代
6、设计理论与方法的迅速发展,三维设计软件尤其是Unigraphics 在机械零件和产品设计中的日益普与,齿轮实体在三维软件特别是在UG中的绘制变得越来越重要。但基于UG的齿轮设计系统一般都局限于齿轮二维轮廓的绘制或三维实体建模,齿轮参数的设计计算难以与CAD 系统很好地集成, 给齿轮的CAD/ CAM 带来不利影响3。建模技术是CAD的核心技术,参数化造型技术和特征造型技术是新一代继承化CAD系统应用研究的热点理论4。目前国外对二维图形参数化和简单三维实体的参数化造型较为成熟。对复杂的三维实体的参数化造型尚不多见,特别是齿轮这类形状复杂、精确齿形的三维实体参数化造型设计更少。这有多方面原因:一方
7、面齿轮二维图形参数化设计能够满足传统的齿轮加工要求;另一方面运用低级CAD软件对复杂的三维实体很难实现参数化虚拟造型设计。随着塑料齿轮的广泛应用和快速成型与虚拟制造技术的迅速发展,传统的二维图形已不能满足现在的设计、加工要求5。因此,在三维软件上绘制齿轮实体变得十分重要。但是,由于齿轮形状复杂,且齿形曲线有一定的规律,绘制齿形曲线较复杂。并且齿轮各参数间都有严格的函数关系,再加上随着当代机械制造业的不断发展,齿轮的精度要求也越来越高,齿轮实体的绘制较为麻烦。齿轮并不是一个标准件,它的各个参数随着设计要求的不同而不同。如果每设计一个齿轮都要画一个对应的实体部件的话,那不仅增加了设计者的劳动量,还
8、大大降低了设计效率,阻碍了企业的生产和发展。参数化设计是新一代智能化、集成化CAD系统的核心容,也是当前CAD技术的研究热点6。用大型的三维软件实现齿轮的参数化造型已成为设计者的迫切需求,齿轮体参数化造型有重要的意义:(1)齿轮传动的参数化设计与建模系统是CAD技术与齿轮设计相结合的产物,也是两者发展的趋势所在。(2)实现设计过程自动化避免了设计人员手动查阅大量的数据,也避免了手工取点造型的复杂过程,该系统的开发,可以将手算设计的工作人员从繁琐、低效的工作中解放了出来。(3)实现齿轮的参数化设计以与渐开线齿廓的精确造型,可以将设计计算、三维造型与绘制工程图的无缝结合,同时为齿轮的有限元分析、机
9、构仿真和数控加工等工作奠定基础。(4)采用建立原始齿轮结构模型并驱动其特征参数,为其它复杂曲面的造型提供了有益的参考。本课题利用UG的二次开发技术,为解决齿轮参数化设计问题提供了可行的方法,通过直接输入齿轮设计条件,利用计算得出的有关设计参数(模数、齿数、压力角、变位系数、齿顶高系数、顶隙系数等) 进行实体建模,实现齿轮的参数化设计,提高齿轮设计的效率和准确性。12课题的研究容和解决方法本课题利用大型软件UGNX4.0来实现齿轮的三维参数化造型,通过改变齿轮的一些基本参数,生成其相应齿轮。要达到相应的设计要求,首先要知道如何在UG中绘制齿轮部件,要绘制齿轮必然要知道齿轮的啮合原理与各个参数间的
10、关系,还应熟知渐开线的数学模型,精确画出渐开线。画出齿轮模型后,还应知道UG二次开发的知识,灵活运用UG系统提供的二次开发工具,在模型的基础上编制相应的程序,最后完成齿轮参数化设计模块的开发。具体容和步骤如下:(1) 研究直齿、斜齿圆柱齿轮与直齿锥齿轮的基本啮合理论和各参数间的关系并建立数学模型;(2)渐开线数学模型的建立,通过对齿轮的啮合原理的深入研究,建立渐开线数学模型,得到渐开线方程;(3) 深入掌握UG二次开发的各种方法,并熟练运用UG/OPEN 开发工具,在建立直齿圆柱齿轮、斜齿轮和直齿锥齿轮的数学模型的基础上,对各齿轮实现三维参数化造型;(4) 在构建齿轮模块框架的基础上,深入研究
11、菜单的制作技术以确定本课题应采用的最佳菜单制作技术。UG 软件是集CAD/CAM/CAE一体化的三维参数化软件,是当今世界上最为先进的计算机辅助设计、制造和分析软件,在国使用相当广泛。另外它所提供的二次开发语言模块UG/OpenAPI、UG/OpenGRIP和辅助开发模块UG/OpenMenuscript与UG/Open UI Styler与其良好的高级语言接口,使UG的图形功能和计算功能有机的结合起来,便于用户去开发各种基于自身需要的专用CAD系统。使用UG/OpenAPI和UG/OpenGRIP中任何一个模块都能实现UG的二次开发,再结合辅助模块,就能开发出UG界面的应用模块。因此,合理利
12、用UG的二次开发语言模块和辅助模块,就可以实现在UG环境下对齿轮进行参数化设计。第二章 UG二次开发的研究 Unigraphics(简称UG)是当前世界上最先进和紧密集成的、面向制造行业的CAID/CAD/CAE/CAM高端软件。它为制造业产品开发的全过程提供解决方案,主要功能包括:概念设计、工程设计、性能分析和制造。此外,UG软件还提供了CAD/CAE/CAM业界最先进的编程工具集,以满足用户二次开发的需要。本章先讨论UG软件的主要功能,然后简单介绍二次开发各功能模块的特点和应用。21 UG软件概述211 UG软件的功能介绍 UG是知识驱动自动化技术领域中的领先者。它实现了设计优化技术与基于
13、产品和过程的知识工程的组合,显著地改进了如汽车、航天航空、机械、消费产品、医疗仪器和工具等工业的生产率。它为各种规模的企业递交可测量的价值;更快地递交产品到市场;使复杂产品的设计简化;减少产品成本和增加企业的竞争实力 7。 NX是一个交互的计算机辅助设计、计算机辅助制造和辅助工程(CAD/CAE/CAM)系统。CAD功能自动化是在今天制造公司中见到的一般工程、设计和制图能力;CAM功能利用NX描述完成零件的设计模型,为现代机床提供NC编程;CAE功能横越一广的工程学科,提供许多的产品、装配和零件的性能防真能力。NX是一个全三维、双精度系统,它允许用户精确地描述几乎任一几何形状。通过组合这些形状
14、,用户可以设计、分析产品和建立他们的工程图。一但设计完成,制造应用允许用户选择描述零件的几何体,加入制造信息,如刀具直径并自动生成一刀具位置,源文件(CLSF),它可用来驱动大多数NC机床8。目前UGS公司已经推出NX5产品,本次设计中使用的是NX4版本的软件。NX4的特点是:1、为了数字化产品开发集成的自动化;2、在所有开发学科中的新能力,包括工业设计、防真、工装、加工和管理;3、在一个全面的产品生命周期管理(PLM)解决力案的领先前沿的CAD、CAE和CAM技术。212 UG功能模块 利用NX,可以建立、存储、恢复和操纵设计与制造信息,典型地通过建立描述一零件的几何体开始工作。NX功能被划
15、分成共同功能的一系列“应用(Application)”共18个模块,各模块分别为:1、入口(Gateway):对所有其他交互应用的首要必备的应用;2、建模(Modeling):包括实体、特征、自由形状、钣金特征建模和用户定义特征;3、装配(Assembilies):支持装配建模;4、几何公差模块(Geometric Tolerancing Module):让用户捕捉公差;5、产品和制造信息(PMI Introduction):可用于在三维环境中对产品形成文档说明;6、分析(Analysis):包括注塑模流动分析、运动应用和ICAD;7、制图(Drafting):可将三维模型生成二维视图;8、高
16、质量图像(High Quality Image):生成逼真照片的图像;9、知识熔接(Knowledge Fusion):允许用户应用工程知识驱动规则和设计意图到NX中的几何模型和装配;10、制造(Manufacturing):可进行虚拟加工和自动加工编程;11、开放的用户界面设计(Open User Interface Styler):允许用户和第三方开发商生成NX对话框;12、编程语言(Programming Languages):包括GRIP和API;13、质量控制(Quallity Control);14、走线(Routing):定义围绕和通过其他NX装配的装配;15、钣金(Sheet
17、Metal):包括钣金设计、冲压和多零件加工的栅格;16、电子表格(Spreadsheet):提供一在Xess或者电子表格应用和NX间的智能界面;17、Web Express;18、Wire Harness:可在用于描述产品机械装配的同一三维空间建立电气布线的表示。2.2 UG二次开发相关工具概述UG软件提供了CAD/CAE/CAM业界最先进的编程工具集,以满足用户二次开发的需要,这组工具集称之为UG/Open,是一系列UG开发工具的总称,它们随UG一起发布,以开放性架构面向不同的软件平台提供灵活的开发支持。UG/Open包括以下几个部分:UG/Open Menuscrip开发工具,对UG软件
18、操作界面进行用户化开发,无须编程即可对UG标准菜单进行添加、重组、剪裁或在UG软件中集成用户自己的软件功能;UG/Open UIStyler开发工具是一个可视化编辑器,用于创建类似UG的交互界面,利用该工具,用户可为UG/Open应用程序开发独立于硬件平台的交互界面;UG/Open API开发工具提供了UG软件直接编程接口,支持C、C+、Fortran和Java等主要高级语言;UG/Open GRIP开发工具是一个类似API的UG部开发语言,利用该工具用户可生成 NC自动化或自动建模等用户的特殊应用9。利用UG/Open提供的应用程序和开发工具,用户可以在其提供的平台上开发出适合自己需要的CA
19、D产品。2.2.1 UG/Open GRIP UG/Open GRIP(Graphics Interactive Programming)是一种专用的图形交互编程语言。这种语言与UG系统集成,实现UG下的绝大多数的操作。GRIP语言与一般的通用语言一样,有其自身的语法结构,程序结构,部函数,以与与其他通用语言程序相互调用的接口。一个GRIP语句是由一个或几个GRIP命令组成,GRIP命令是GRIP语言的基本组成部分。GRIP命令有三种表示格式:a)述格式。主要用于生成和编辑实体。b)GPA符号格式。GPA是全局参数存取(Global Parameter Access)的缩写,用于访问UG 系统
20、中各种对象的状态和参数。c)EDA符号格式。EDA是实体数据存取(Entity Data Access)的缩写,用于访问UG数据库,能够访问各种对象的功能性数据。例如在属性、绘图和尺寸标注以与几何体等领域与UG进行交互操作时,其参数可用EDA格式的命令取得。用GRIP语言编写GRIP源程序,可以在windows的记事本中进行,记为*.grs;或者在GRIP高级开发环境(GRAD-Grip Advanced Development Environment)中编写。执行GRIP程序必需进入UG环境中,运行FileExecute UG/OpenGrip。GRIP编程语言是面向工程师的语言,具有简单、
21、易学、易用的特点,但是所编写的程序长、复杂。要考虑程序的各个细节问题。因此,GRIP语言常用于开发一些规模比较小的程序,例如,同类零件建模、计算和分析、数据访问等程序。与GRIP语言相比较,用API函数编程则可实现功能复杂的操作10。2.2.2 UG/Open API 作为UG NX4.0与外部应用程序之间的接口,UG/Open API是一系列函数的集合。通过UG/Open API的编程,用户几乎能够实现所有的UG NX4.0功能。开发人员可以通过用C+语言编程来调用这些函数,从而实现用户的需要。(1) 对UG part文件与相应模型进行操作,包括建立UG NX4.0模型、查询模型对象、建立并
22、遍历装配体,以与创建工程图等。(2) 在UG NX4.0中创建交互式程序界面。(3) 创建并管理用户定义对象等。应用函数时应注意所有的UG/Open API应用必须与时进行初始化和终止,以确保获取或者释放UG/Open API的执行许可权限。初始化函数是UF_initialize(),当开始调用UG/Open API的函数时应先调用UF_initialize()来获取执行许可权限。一般来说,我们在变量声明完成后,第1个调用UG/Open API的函数就是UF_initialize()。终止函数是UF_terminate(),当不再调用UG/Open API的函数时必须调用UF_terminat
23、e()来释放执行许可。UG/Open API程序能在两种不同环境(依赖于程序的连接方式)下运行,即Internal环境(也称为“Internal开发模式”)和External模式。其中Internal环境下的程序只能在UG NX4.0的界面环境(session)下运行,在运行这些程序时他们被加载到UG NX4.0的运行空间中(UG NX4.0分配的存);External模式开发的程序能在操作系统(Windows NT/2000/XP与UNIX)下运行,不在UG NX4.0环境中或作为UG NX4.0的子进程运行。尽管没有图形显示,但UG/Open API提供了函数用于打印机或绘图仪输出,也可以
24、输出为CGM文件等其他数据文件11。2.2.3 UG/Open MenuScript UG/Open MenuScript不仅可以使用户利用ASC文件来编辑UG的菜单,也可以以一种无缝集成的方式为用户开发的应用程序创建菜单。MenuScript同时也提供了一个菜单栏报告工具,以帮助用户查看定制的菜单,诊断错误。对于菜单的自定义大致可以分为如下三个层次。(1)自定义菜单 该级别的自定义允许单个用户或者管理员重新安排UG的功能,去除在其产品开发过程中不需要的功能。这种级别的自定义不需要编程实现。(2)自定义UG功能 该级别的自定义允许单个用户或者管理员取代或增加标准的UG功能,并添加其自己定义的功
25、能。(3)添加自定义应用 该级别的自定义其目的在于使用户或第三方开发商开发的应用程序完全集成在UG中。该级别的自定义需要编程实现。 UG的菜单文件是扩展名为.men的文本文件,可以使用Windows 的记事本进行编辑。UG/Open MenuScript提供了一套用于定义UG菜单的脚本语言。实际上,UG系统的菜单文件也是用该脚本语言编写的。UG为主菜单栏、快捷菜单栏提供了丰富的系统菜单文件,这些菜单文件默认情况下都保存在UG_BASE_DIR/ug/menus文件夹下12。 使用UG/Open MenuScript自定义UG菜单可以有两种方法,分别是使用Add-on菜单文件和复制和编辑系统菜单
26、文件。使用Add-on菜单方法是添加编辑量很小的菜单文件到菜单文件的目录中,使用Add-on菜单可以移出用户不需要的菜单项;添加新的菜单和菜单项;重新组织UG的菜单;修改菜单和菜单项的标题;为已经存在的应用按钮添加动态库和菜单文件。复制和编辑系统菜单文件是指复制、编辑系统菜单文件并将其放置在特定的目录下,覆盖原始菜单文件。系统推荐使用Add-on菜单文件方法,该方法不仅编辑起来比较方便、易于维护,而且其功能也相当强大,基本可以满足应用开发的所有需求。使用Add-on菜单文件的另一个优点在于它可以被UG很方便地自动加载。对于与具体应用模式无关的菜单文件放置在startup文件夹下,与具体应用模式
27、相关的菜单文件放置在相应的application文件夹下,通过使用MENU_FILES声明,即可将菜单名与应用模式按钮相关联,点击该应用模式按钮后即可自动加载与其相关联的菜单文件。复制和编辑系统菜单文件方法不推荐使用,这主要是由于其编辑起来相当复杂,特别是对于像ug_main.men这样大型的菜单文件,其维护也非常麻烦。2.2.4 UG/Open UIStyler UIStyler是开发UG对话框的可视化工具,生成的对话框能与UG集成,让用户更方便、更高效地与UG进行交互操作。UG/Open UI Styler模块提供了强大的制作UG风格窗口的功能,其主要功能如下:(1) 提供了让开发人员建造
28、UG风格对话框的可视化环境,并能生成UG/Open UI Styler文件和C代码,从而使用户在使用UG/Open UIStyler产生的对话框时,不必考虑图形用户界面(Graphical User Interface缩写为GUI )的实现。(2) 利用可视化环境快速生成UG风格对话框,从而减少开发时间。(3) 通过选取和放置控件,从而能实现所见即所得。(4) 可以在对话框中实现用户自定义位图。(5) 提供了属性编辑器,从而允许开发人员设置和修改控件属性。(6) UIStyelr产生的对话框可以在MenuScript中被调用,因此可以实现在UG菜单项上调用UIStyler产生的对话框,从而将用
29、户应用程序和UG软件完全融合。应用UIStyler这一工具可以使开发人员方便、快速地设计出与UG界面风格一致的对话框,避免其他复杂的编程。而且可以和用其他开发工具开发出的结果进行集成。UG/Open UIStyler工具和UG/Open MenuScript工具一样,都只具有某一方面的功能:UG/Open UIStyler用于对话框的开发,UG/Open MenuScript用于菜单的开发。2.2.5 UserTools工具 UG软件为用户提供了一个调用二次开发结果的交互式接口:User Tools。它的功能是生成弹出式对话框或工具条,其界面风格与UG界面风格一致。通过执行对话框或工具条,操作
30、相应的控件就可运行菜单文件、宏文件、UG/Open GRIP程序、UG/Open API程序和其他二次开发文件。例如,执行齿轮生成的程序集,可以用User Tools工具产生两个对话框分别为直齿轮和斜齿轮,然后在相应的对话框上进行操作就生成相应种类的齿轮。通过编写对话框定义文件(*.utd)来实现User Tool工具的功能。编写文件完成以后,在UG 中执行ToolsCustomizeUser ToolsLoad选择所编写的*.utd文件即可弹出需要的对话框或工具条。*.utd这个文件是文本文件,可用 Windows中的记事本进行编写和编辑。一种比较简单的实现方法:拷贝UG中的模板文件User
31、too1.utd到UG启动目录下,然后编辑模板文件,实现所需要的功能。在以前较早版本中例如V13,运用User Tools工具必须编写两个文件:菜单定义文件(*.utm)和对话框定义文件(*.utd),然后通过执行菜单项弹出相应的对话框或工具条。现在,较高的UG版本已经省略产生菜单这一步,操作同上所述。在UG 界面中应用File Execute UG/Open菜单执行UG/Open API程序或UG/Open GRIP程序,操作一次只能执行一个程序,而且必须找到程序所在的路径。若利用User Tools这个工具,用户可以将多个GRIP或API函数所编写的程序集成到一个User Tools对话框
32、或者工具条中,一个程序对应一个控件,通过操作控件来调用程序,使用起来就非常方便。第三章 二次开发方案的选择31可行方案UG软件为用户提供的二次开发工具不但可以独立使用,而且可以相互调用其它工具开发的结果,这就大大扩展了工具本身所具有的功能,方便用户进行二次开发。它们之间的关系如下附图所示:MenuScript所开发的菜单可以与User Tools开发的对话框相互调用;MenuScript所开发的菜单与User Tools开发的对话框可以调用UIStyler开发的对话框;MenuScript、User Tools和UIStyler开发的对话框均可以调用GRIP程序和API程序。GRIP程序和AP
33、I程序之间也可以相互调用。另外,使用UG二次开发工具必须要设置相应的环境变量,这样系统才能找到这些开发文件,执行相应的程序。UIStyler DialogUser ToolsAPIGRIPMenuScript图3-1 二次开发工具关系图 本课题的目的是以UG为平台,使用UG二次开发工具,实现齿轮的参数化设计。在UG界面中就是实现在对话框中输入齿轮的各个参数,确定后UG系统自动生成对应的实体模型。要达到设计要求,首先必须自定义一个菜单,制作相对应的对话框,使设计者能调用对应的对话框并输入所需齿轮的参数。之后更重要的是编写一定的程序,程序的作用是读取对话框中的参数并自动生成所需的实体模型。通过对U
34、G系统中各个二次开发工具的性能和特点的分析,要实现设计要求有以下几种方案:(1)在菜单和对话框的基础上使用GRIP语言编写生成齿轮实体的程序。由二次开发工具之间的关系我们知道,UG对话框可以调用GRIP程序。只要能编写出一个生成齿轮实体的程序,我们就可以用编制好的对话框调用该程序,生成齿轮实体,满足设计要求。在UG/Open GRIP 工具中中拥有丰富的函数,可实现几何体的生成、数据的存取和分析、变换等一系列功能。因此,使用GRIP完全能编写出生成齿轮实体程序,程序编写好后使用User Tool工具对程序进行编译连接,最后生成可被对话框调用的可执行程序。将可执行程序放在对应的文件夹里就可实现对
35、话框对程序的调用,执行程序,满足设计要求。(2)在菜单和对话框的基础上使用API语言编写生成齿轮实体的程序。同样,对话框也能实现对API程序的调用。只要能编写出实现齿轮建模的API程序,就能实现设计要求。API与GRIP一样,也具有丰富的函数。运用该语言可以实现对部件保存、打开等基本操作、对表达式的操作、装配体操作、工程图的生成和控制等功能,可以满足生成齿轮实体的程序的编写。此外,API语言借助C+来编写程序,借助C+强大的编程功能,编写API程序比GRIP更加灵活、更加的简单使用,还能满足更多的编程要求。在C+中编写好相应的程序后编译程序,将生成的可执行程序(.dll)放在对应的文件夹下,就
36、可以实现对话框对程序的调用和执行,满足设计要求。(3)基于三维模型的参数化程序设计。该方法采用三维模型与程序控制相结合的方式,在创建好三维模型的基础上,根据部件的设计要求建立一组可以完全控制三维模型形状和大小的设计参数。参数化程序针对该部件的设计参数进行编程,实现设计参数的查询、修改,根据新的参数值更新模型从而实现设计变更。其中程序的编写是使用API语言的表达式功能。在本课题中,采用这种方案具体方法是先新建一个部件,在建模模块下写好表达式,然后使用表达式绘出齿轮的三维实体,并确保实体模型应随着表达式的值变化而变化。建好模型后,编写菜单和对话框,然后在C+上用API语言进行编程,程序应把对话框和
37、模型联系起来,将对话框中输入的值传递到模型的表达式中,并更新程序。这样,当在对话框中输入齿轮的设计参数后,运行程序,原来的齿轮部件就会按新的表达式数据重生成模型,这样就得到了设计所需要的齿轮实体模型。将新生成的部件另存,保留原部件,这样就可以随时生成需要的齿轮了。 UG二次开发工具的功能非常强大,要实现本课题目的应还有其他方案,在这里只列举了这三个常用方案。32 方案选择 比较上述三个方案,有一个共同点就是都使用了菜单技术和对话框技术。这是为了在设计齿轮时设计者能在UG界面下直接输入对应的参数,使该模块更加直观,方便设计者使用。这三个方案中,前两个都是使用编写程序来绘制齿轮实体,程序比较复杂;
38、最后一个是建立模型后将对话框中数值传递到表达式,程序较简单。齿轮是较复杂的实体部件,精度要求也比较高,要创建齿轮实体比较麻烦。前两种方案中,都是用程序来编写整个齿轮实体创建过程,这要涉与到的函数非常多,程序烦琐,出现错误时不容易修改和维护。此外,在画齿轮轮廓过程中需要修剪、变换许多曲线,这在程序中很难做到。如果要使用前两种方案,需要深入学习GRIP和API这两种语言,需要花费很多时间。而第三种方案是直接在UG界面上画实体模型,可以直接对各种特征进行编辑、修改曲线,相对于前两种方案来说更直观、更容易。不过要注意的是在第三种方案中,在画齿轮实体过程中要注意应保证所画出的实体模型应能随着表达式中的值
39、的变化而变化。不过在UG界面下比程序中绘制参数化齿轮模型要直观、容易的多。在编写程序方面,最后一种方案只需写一些数值的传递的程序,使用的函数少,程序简单,易于发现错误和修改调试。同时,如果能够实现,前两种方案所得的齿轮设计模块使用起来要比第三种方案方便。由于毕业设计时间不长,而且之前没有接触过有关二次开发的知识,在短时间无法深入学习GRIP和API的知识,前两种方案很难实现。第三种方案最为简单,也最有可能在规定时间完成设计任务,达到设计目的。综合比较这三种方案,最终选择第三种方案作为本次设计方案。33利用二次开发工具制作系统菜单3.3.1 设置系统环境变量 虽然各种菜单的制作方法,在结构、容和
40、开发过程上有一定的差异,但是在整个构建过程中有其共性和一样的部分,就是菜单制作之前应先设置系统环境变量。设置了系统环境变量,UG才能找到开发容所在目录。系统环境变量设置方法有以下两种:方法一:打开$UG_BASE_DIR/ugii目录下的ugii_env.dat文件(该文件包含Unigraphics系统的全部环境变量与系统路径定义),找到下面两条语句:#UG_VENDOR_DIR=$UGALLIANCE_DIR/vendor和#UG_ SITE_DIR=$UGALLIANCE_DIR/site。将它们前面的注释符号“#”删除,以使它们起作用。这两条语句其实指明了供用户放置二次开发文件的目录。在
41、Unigraphics初始安装时,它们不起作用,当删除了“#”号后,UG/OPEN才能从这些目录下得到二次开发的功能扩展。这两个目录的功能和结构是完全一样的,下面都有startup和application两个目录。其中startup存放Unigraphics启动时需载入的动态共享库(以ufsta()为入口的.dl1)与菜单脚本文件(.men);application目录存放具体的功能扩展程序文件(如应用模块的功能扩展共享库( .dl1)与对话框资源文件( .dlg)。Unigraphics下设置的这两个目录是为不同等级的开发者提供的,vendor目录下放置Unigraphics指定的开发商的二
42、次产品,site目录下存放其余开发者的产品。因此vendor目录下同类容的文件要比site目录下的优先载入。此外,在ugii_env.dat文件中还有一条语句,是用来设置用户自己二次开发容的目录:#UG_USER_DIR =$HOME,同样将其前面的“#”号删除,并在其后使用用户自己的目录替换$HOME。例如,UG_USER_DIR=E:ugapi,在此目录下也必须建立目录startup和application,存放的容和site与vendor下的startup、application一样,不过它的优先级更低13。 方法二:打开UG安装目录UG_BASE_DIR UGmenus下的custom
43、_dirs.dat(用记事本打开),在文件最后添加开发的文件夹的绝对路径。在添加的文件里建立两个子目录:startup和application ,分别用来放置开发的各种文本文件(.men文件)、动态库文件和对话框文件。 上述两种方法中第二种方法较简单方便,本课题采用第二种方法。打开UG安装目录UG_BASE_DIR UGmenus下的custom_dirs.dat,在文件最后添加开发的文件夹的绝对路径E:gearsopen。在E:gearsopen文件夹下建立startup和application两个子目录。3.3.2制作菜单 本课题涉与到三个齿轮的参数化设计,因此应在一个主菜单下建立三个子菜
44、单。在E:gearsopenstartup下建立文件gearsopen.men,代码如下:VERSION 120 /菜单脚本文件的版本信息EDIT UG_GATEWAY_MAIN_MENUBAR /编辑UG系统菜单文件BEFORE UG_HELP /定义菜单位于“帮助”菜单前CASCADE_BUTTON GEARS /主菜单按钮名LABEL 齿轮参数化设计 /主菜单标题END_OF_BEFORE /结束BEFORE定义MENU GEARS /定义主菜单BUTTON SPUR_GEAR /第一个子菜单名LABEL 直齿圆柱齿轮 /第一个子菜单标题ACTIONS SPUR_GEAR /第一个子菜单的IDBUTTON HELICAL_GEAR /第二个子菜单名LABEL 斜齿轮 /第二个子菜单标题ACTIONS HELICAL_GEAR /第二个子菜单的IDBUTTON STRAIGHT_BEVEL_GEAR /第三个子菜单名LABEL 直齿锥齿轮 /第三个子菜单标题