基于ug的二次开发技术实现齿轮参数化设计.doc_第1页
基于ug的二次开发技术实现齿轮参数化设计.doc_第2页
基于ug的二次开发技术实现齿轮参数化设计.doc_第3页
基于ug的二次开发技术实现齿轮参数化设计.doc_第4页
基于ug的二次开发技术实现齿轮参数化设计.doc_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

73 73基于UG的二次开发技术实现齿轮参数化设计学生:江风指导教师:王祥机械与材料学院摘要:渐开线齿轮是机械传动中的常用零件,由于齿形轮廓复杂,其参数化设计困难。本课题基于Unigrphics二次开发平台,应用其UG/Open API开发工具和VC+6.0开发环境对渐开线齿轮三维参数化造型系统进行了研究。在研究了Unigrphics与应用程序的接口UG/Open API的基础上,引入参数化建模的思想,基于UG构建了渐开线齿轮的三维参数化造型系统。该系统具有友好的用户界面,能方便地进行齿轮的三维参数化建模。Abstract: Helical gear is a part in mechanical drives in common use,while because of its complex tooth profile, it is difficult to conduct parameterized design.In this paper, the 3D parametric modeling system for helical gear is researched using the UG/Open API and VC+6.0 based on Unigrphics secondary development. By researching the interface-UG/Open API between the Unigrphics and application procedures, the 3D parametric modeling system for typical gear is constructed based on Unigrphics and the concept of parametric modeling. This system has friendly user interface, can conveniently construct 3D parametric model of helical gear.关键词:齿轮;参数化建模;二次开发;UnigrphicsKeywords: Gear; Parametric modeling; Secondary developing; Unigrphics前言日益激烈的市场竞争,迫切要求企业具备快速响应市场的能力,在产品设计和开发过程中,零部件的标准化、通用化和系列化是提高产品设计质量、缩短产品开发周期的有效途径。U G是市场上优秀的三维设计软件,它是集CAD/ CAE/CAM于一体的软件集成系统,其功能覆盖了整个产品的开发过程,即从概念设计、功能工程、分析到制造的过程。但是没有一个CAD系统能够完全满足用户的各种需求,因此主流的CAD软件都提供二次开发工具和用户定制功能。目前,关于CAD应用的UG二次开发方面的研究逐渐推广开来,UGS 公司提供了一个开放的二次开发平台,软件用户或者第三方开发商在其基础上进行客户化的开发,如上海同捷数字化技术有限公司开发的Gear Engineering Wizard 等。UG 软件是现在市场上比较成熟的三维建模软件, 但是对于复杂的零件来说, UG 本身因功能复杂,往往在生产中操作显得繁琐,加上许多企业对其的应用一般只限于若干应用模块,不需要全部的功能,企业也有许多通用件、常用件、标准件,也不必每次都进行重复的设计操作,单纯的使用软件本身所带的工具已经无法满足客户的需求, 如渐开线的绘制就很难达到精确绘制的目的。考虑到这些,UG 专门提供了多种二次开发工具,供企业根据自身特点,开发用户自定义模块。目前, 国内外有不少学者对UG平台下齿轮参数化建模进行了研究, 但通常采用的方法是表达式生成法和创建模板零件。本文提出了一种在UG4.0环境下, 采用自身的编程语言UG/Open API, 调用UG造型函数来实现渐开线的绘制, 达到提高设计效率的目的。目前, 常用的利用UG二次开发进行参数化设计的方法分为图形交互设计和编程方法两种。图形交互设计是指在现有的参数化CAD系统环境下, 通过交互操作来完成产品的参数化模型设计, 是在产品设计中不可缺少的方法。编程方法是指在现有的CAD系统基础上, 利用二次开发接口、高级语言和数据库等相关技术, 来定义产品的参数化模型, 并支持对参数化模型的建立、管理和使用, 它是一种高级的参数化设计方法。本文将采用编程的方法实现齿轮的参数化设计。利用UG/Open API、UIStyler 和MenuScript进行菜单和界面设计, 使用户有一个良好直观的操作环境, 通过VC+6.0 建立齿轮的人机交互界面。本文根据上述基本情况,针对渐开线齿轮进行参数化建模,并利用UG二次开发工具UG/Open API、UIStyler 和MenuScript对其进行对话框的设计和菜单文件的添加,以达到本课题所要求的基于UG的二次开发技术实现齿轮的参数化设计的目的。1 绪 论1.1 Unigraphics简介与发展现状Unigraphics(简称UG)是美国Unigraphics Solutions公司五大主要产品(UG,Parasolid,iMAN,Solid Edge,ProductVision)之一,以CAD/CAE/CAM一体化而著称。其主要具有如下优势:(1)可以为机械设计、模具设计以及电器设计单位提供一套完整的设计、分析和制造方案。(2)UG是一个完全的参数化软件,为零部件的系列化建模、装配和分析提供了强大的基础支持。(3)可以管理CAD数据以及整个产品开发周期中所有相关数据,实现逆向工程和并行工程等先进设计方法。(4)可以完成包括自由曲面在内的复杂模型的创建,同时在图形显示方面运用了区域化管理方式,节约系统资源。(5)具有强大的装配功能,并在装配模块中运用了引用集的设计思想,为节省计算机资源提出了行之有效的解决方案,可以极大地提高设计效率。UG软件自1990年进入中国市场,经过十余年的发展,目前国内用户已近千家。国内许多大型企业、公司均采用UG作为其产品设计生产的支撑软件。国内外关于UG应用包括两种类型,一是直接利用UG软件进行产品的建模、分析、制造,二是在UG平台上进行二次开发。具体应用有以下几类。1 开发用户自定义模块进行快速建模UG现有的建模功能完全能够实现复杂零件的建模要求,快速建模的目的是提高建模速度以缩短产品的整个研制周期。快速建模通常是针对某一复杂零件。这类零件的特点是设计参数多,各参数满足一定的函数关系,从设计参数向结构参数转化需要复杂的数学运算。通常的设计方法是:首先根据设计参数计算出结构参数,然后用UG软件建模。这种方法的缺点是:模型生成速度慢且不易修改设计。一旦调整某一设计参数,则牵一动全身,模型所有结构参数均可能改变;建模就得从头开始。如果利用UG/Open API或UG/Open GRIP创立用户程序,使设计计算和UG建模集成在一起,实现设计、建模的自动化,则建模速度将大大提高,改动设计也十分方便,非常适合系列化零件的建模设计。有些模型的生成是以实测的数据为基础,则可通过用户程序实现数据的自动采集、处理,最后建立模型。2 建立用户参数图库UG 软件没有标准零件库,更没有具体行业的专用零件库,而具体行业的产品设计总是经常会用到标准件、相似件。若每次设计对每一零件均从头开始建模,则要做许多重复性的工作。建立用户参数图库即是把常用的标准件、结构相似件建成特征库,使用时只需输入确定参数,直接调用,提高建模速度。3 建模与分析的用户集成UG 软件本身带有建模和分析模块,若要对模型进行分析,通常先在建模模块中建立模型,然后切换到分析模块中进行分析,如果模型需要不断改变,则设计过程要在建模与分析模块之间反复切换。并且分析过程是固定的标准过程,用户无法提取计算过程数据进行优化控制,用户的特殊要求没有途径实现。利用UG/Open API或UG/Open GRIP 可以实现建模与分析的用户集成,也可实现分析过程的用户化。4 CAD/CAPP/CAM集成UG软件不含零件的工艺设计功能。在CAD/CAPP/CAM集成系统中,利用UG/Modeling和UG/Manufacturings功能实现零件建模和刀具轨迹生成,再利用UG/Open API 功能增加工艺特征定义。 CAPP系统则利用UG/Open API功能读取UG模型数据进行工艺过程决策处理。集成系统以数据库为基础完成必要数据的传递及工艺规程的保存、发送,为生产现场提供工艺准备数据。5 UG的专家系统专家系统(Expert System)是问题求解的智能软件系统;在某一专业领域内,把有关专家的经验和知识表示成计算机能够接受和处理的符号形式,采用专家的推理方法和控制策略;解决该领域中只有专家才能解决的问题并达到专家级水平。基于UG的专家系统研究,利用UG/Open API和UG/Open GRIP编程,针对具体零件或简单系统,建立知识库、推理机、解释系统等专家系统的基本结构,把专家系统和UG 结合起来,在建模、分析、制造过程中随时得到专家级的指导.提高产品设计的质量。1.2 本课题的研究目的与意义1.2.1 本课题的研究目的齿轮作为最重要的基础传动部件被广泛地应用于机械、冶金、石化、煤炭、水电等行业。在齿轮设计和生产过程中,需要大量的分析、绘图工作,采用现代设计方法可彻底改变过去依靠手工绘图时的效率低、易出错等局面,使齿轮设计人员借助计算机CAD/CAM技术可迅速、高效、准确地进行设计方案的确定、比较、分析和绘图,为生产企业以高技术、高质量、低成本占领市场提供技术保障。Unigraphics是当今世界上最流行的三维CAD软件之一,其功能十分强大,具有很多模块可以实现不同的功能,广泛应用于航空、航天、模具、汽车、造船、通用机械、家用电器、医疗设备和电子工业等行业。同众多的CAD软件一样,它也具备二次开发功能,UG的二次开发工具有两个模块,分别是UG/OPEN GRIP和UG/OPEN API。但是由于在UG中建模过程比较复杂,特别是像齿轮零件特征较多,外型轮廓复杂,要想快速的建立模型比较困难,需要用户对UG的功能十分熟悉。由于齿轮的结构型式是固定的,不同的型号之间可能只有细微的差别,因此,可以建立参数化模型,通过改变其参数,派生出外型相同的不同尺寸要求的零件。因此本课题将基于UG软件,利用UG提供的二次开发包UG/Open API和VC+ 6.0编程,建立一种齿轮零件快速参数化建模系统,能够方便改变模型参数,实现友好的参数化交互界面,充分发挥计算机绘图的准确和快速性,同时发挥本系统的专业性,提高效率,减少重复性劳动。1.2.2 本课题的研究意义本课题主要针对渐开线圆柱齿轮的参数化设计而进行的,可显著地提高设计的精度和效率。渐开线齿轮是各种机械传动设备中常用的零件,在设计制造中工程设计人员经常需要对齿轮齿形进行精确的造型。由于其复杂性,有一些软件(如SolidWorks,AutoCAD)没有提供齿形的精确造型功能。UG作为通用三维CAD/CAM系统在功能上完全能够满足机械产品的设计要求,但是在系统操作的人性化和易用性方面并非完全尽人意。为此,本文应用了UG的开发工具的开发接口,开发了基于UG的渐开线齿轮参数化设计系统,来解决齿轮精确造型方面的难题。系统的开发具有如下意义:(1)保证了齿形造型的精确性。(2)造型速度快,避免了手工造型的复杂繁琐过程。(3)为后续的齿轮CAE、CAM等提供了精确的三维实体。(4)对UG二次开发的有益探索。1.3 UG二次开发的基本思路与方法1.3.1 UG二次开发的基本思路本系统开发的基本思路是,在UG中建立齿轮零件的三维参数化模型,在UG自身提供的UG/Open API的编程接口基础上,利用VC+编写的UG/Open API程序,以实现自动得到当前模型参数变量,并且根据用户界面输入的参数,更新当前模型,得到一个新的派生模型。 1.3.2 UG二次开发的工具和基本方法1)UG二次开发工具UG本身因功能复杂,往往在生产中操作显得繁琐,加上许多企业对其的应用一般只限于若干应用模块,不需要全部的功能,企业也有许多通用件、常用件、标准件,也不必每次都进行重复的设计操作。考虑到这些,UG专门提供了多种二次开发工具,供企业根据自身特点,开发用户自定义模块。用户自定义特征是UG提供的造型特征之一,其可提供一个三维实体的若干特征,形成一个特征集,并入库,这个库是依赖于UG而存在的。UDF 是UG实现参数化快速设计与零件建库的一个重要模块。适合于不太复杂的零件,特别是不同零件之间有部分特征类似,只是尺寸、组合或位置不同的场合。其突出的是特征的自由导出,与调入的重新组合,故在变参变结构快速设计上有明显的优势。用户菜单脚本UG/open MenuScript提供一套用于定义Unigraphics菜单的脚本语言,Unigraphics的菜单也是用该语言写成的,开发者使用该脚本语言可以修改Unigraphics 界面的菜单结构,如添加、删除和定制菜单,以及改变菜单的显示文本或响应行为等。用户工具是一种生成用户对话框的工具。它有两种功能:一是在UG主菜单的User Tools下拉菜单中添加用户项;二是生成弹出式对话框。用户工具生成的界面风格和UG界面一致,通过它可运行对话框文件、宏文件、UG/Open API及UG/Open GRIP程序。用户工具生成的文件扩展名有*.utm和*.utd,其中*.utm文件用于UG160以前的版本,在主菜单User Too1s中添加用户项,这需在UG 的初始化文件ugh_env.dat文件中指明路径,自动装载。*.utd文件可通过*.utm文件调用或由*.men菜单文件调用。*.utm文件和*.utd文件可用微软中的写字板制作,最后改动扩展名即可用户自定义对话框(UG/Open UIStyler)提供了强大的制作UG风格窗口的功能。其主要功能如下。(1)提供了让开发人员建造UG风格对话框的可视化环境,并能生成UG/Open UIStyler 文件和C代码,从而使用户在使用UG/Open UIStyler产生的对话框时,不必考虑图形界面的实现。(2)利用可视化环境快速生成UG风格对话框,从而减少开发时间。(3)通过选取和放置控件,从而能实现所见即所得。(4)可以在对话框中实现用户自定义位图。(5)提供了属性编辑器,从而允许开发人员设置和修改控件属性。(6)UIStyler产生的对话框可以在MenuScript中被调用,因此可以实现在UG菜单项上调用UIStyler产生的对话框,从而将用户应用程序和UG完全融合。UG/Open API是UG用户最常用的二次开发工具。作为UG与外部应用程序之间的接口,UG/Open API是一系列函数的集合。通过UG/OpenAPI的编程,用户几乎能够实现所有的UG功能,因此我们选用开发工具UG/Open API进行软件的二次开发。Visual C+6.0是面向对象的、可视化的开发工具,可以添加功能强大的ugopen.awxg工程向导,可以方便的编写对话框等资源文件。这对要求基于UG开发出UG风格界面的二次开发工作来说是一个很好的开发环境。本系统开发将基于UG NX 4.0,选用的开发工具是UG/Open API,编程调试工具是Visual C+6.0。2)参数化设计技术参数化设计是目前CAD应用技术中最重要的技术之一。参数化设计将零部件图形的描述分为三部分:图形的拓扑关系、图形的几何参数以及这些几何参数与图形结构参数之间的联系;将图形信息记录在数据库中,用一组变量记录图形的几何参数;通过定位某一组特定数据记录而得到所需设计的全部相关数据。它的主要特点是全尺寸约束、全数据相关、尺寸驱动设计修改。这种设计技术特别适合于标准件、通用件的设计以及结构定型的系列产品设计。3)UG参数化特征造型技术基于特征的参数化造型是将参数化造型的思想和特征造型的思想有机地结合到一起,用尺寸驱动或变量设计的方法定义特征并进行类似的操作,这样就形成了参数化特征造型。由于特征全部用参数化定义,因此对形状、尺寸、公差和表面粗糙度等均可随时修改和更新,最终达到修改设计的目的。参数化方法使设计者在构造几何模型时可以集中于概念设计和整体设计,充分发挥创造性,提高设计效率。基于特征的技术为设计者提供了符合人们思维习惯的设计环境,二者有机地结合起来进行实体造型将极大地提高设计效率。4)零件参数化设计的实现方式零件参数化设计方法大体分两种:一种是对现有软件进行二次开发,这里需要编程,另一种虽然利用UG软件达到参数化设计,但采用渐开线方程需要转换,不易理解。UG交互环境能够实现复杂零部件的参数化设计,但是对于相似零部件,新设计零件时都需要重新建立模型,设计周期变长。利用UG二次开发工具UG/Open API,只要建立了相似零部件间的尺寸关系、约束关系,通过程序控制,就可以实现相似零部件的快速设计,缩短开发周期。而对于复杂零部件的模型,完全由UG/Open API程序自动生成是非常困难甚至是不可能的,如可变截面扫描,混合扫描等高级特征。因此可采用结合二者的优势来实现参数化零件设计的二次开发,即采用三维模型与程序控制相结合的方式,基本过程为在UG环境下利用交互方式生成三维模型,然后在已创建的零件三维模型的基础上,根据零件的设计要求建立一组可以完全控制三维模型形状和大小的设计参数。参数化程序针对该零件的设计参数进行编程,实现设计参数的检索、修改和根据新的参数值生成新的三维模型的功能,其过程如下图1-1所示,此种方法可以生成形状复杂的产品模型,编程相对来说也较简单。齿轮三维模型新的派生零件输入设计参数参数化设计程序图 1-1 程序控制的参数化设计2 UG/Open API 程序设计方法2.1 UG/Open API简介UG/Open API是UG用户最常用的二次开发工具。作为UG与外部应用程序之间的接口,UG/Open API是一系列函数的集合。通过UG/OpenAPI的编程,用户几乎能够实现所有的UG功能,从而它的功能比OPEN/GRIP要强大得多。UG/Open API程序能在两种不同的环境下运行。即一个共享库(Internal),称为内部模式;另一个是独立的可执行代码(External),称为外部模式。内部模式的特点:(1)执行代码小,连接快。(2)Internal的程序一旦被加载到内存中,只能通过UG/Open API的卸载功能才能从UG 的运行环境中卸载它。(3)运行结果在UG界面的图形窗口可见。(4)入口函数是ufusr或ufsta。而外部模式(External)模式开发的程序能在操作系统(Windows NT/2000/XP及UNIX)下运行,不是在UG环境中作为它的子进程运行。通常外部模式用于那不需要图形界面的后台运行应用程序,如打印机或绘图仪输出,即不需在前台UG中显示图形。2.2 建立UIStyler对话框 UIStyler对话框与VC的对话框设计比较类似,包括如下的一些控件,即UIObjects对象,静态文本(Label),整型数值输入框(Integer),浮点型数值输入框(Real),字符串输入框(String),宽字符串输入框(Wide String),多行文本框(Multi-line Text),按钮(Push Button)、复选框(Toggle),分隔线(Separator),位图(Bitmap),布局按钮(ButtonLayout),下拉列表框(Option Menu)等等。这些UIObjects对象都有一定的属性,UIStyler是通过回调函数来响应各种控件的事件的。在主菜单项 Application-User InterfaceStyler.即可进入该对话框设计界面,可以设计所需的用户界面。设计完后,进行保存即可,而UG自动生成三个文件:*.dlg,template.c,*.h。若对原对话框资源进行修改,也就是对定制的对话框界面进行修改,比如增添一控件,保存后会重新生成这3 个文件。将*.dlg 复制到$UG_VENDOR_DIRapplication或$UG_SITE_DIRapplication 或$UG_USER_DIRapplication目录下,这样相当于加载到UG 进程中,可由定制的菜单等工具调用。*.dlg 是UIStyler对话框界面文件,非ACSII格式,封装了对话框的图形界面,存储着用户设计好的界面信息,可以在User Interface Styler的应用界面下,通file-open再次打开;template.c和*.h分别是UIStyler对话框C语言模板文件和头文件。用户的工作便是修改template.c模板文件并在其中添加代码,实现对话框欲想的功能。如果用户创建VC工程不包括这两个文件,也可拷贝其中的回调函数,及有关定义语句到应用的工程。只要有回调函数,并且*.dlg在应用的工程application目录下就能使定制的对话框得到响应。无论是何种方式,最后程序编译连接生成*.dll后,必须将这个文件复制到应用工程的startup目录下,这样UG启动时才能将整个应用工程通过这个dll装载,包括用户对话框资源的装载。 对话框的调用有多种方式。可以由CallBack,Menu,User Exit三种形式用:CallBack指被对话框调用;Menu指被MenuScript调用;UserExit指被用户接口调用。2.3 在VC环境下开发UG应用程序UG/Open API应用程序是利用UG/Open API,采用C语言进行程序设计,使用C编译器和连接器创建的能够在外部(External)环境和内部(Internal)环境运行的可执行程序(文件名后缀为EXE)和动态链接库(文件名后缀为DLL)形式的程序。这里我们选用动态链接库形式的程序来实现UG二次开发,环境是在Visual C+6.0的集成开发环境。对于UG/Open API,在VC环境下最常用的是使用工程向导ugopen.awx创建应用程序,具体步骤如下:一:检查目录Microsoft Visual StudioCommonMSDev98Template下是否有文件ugopen.awx及ugopen.hlp。二:启动VC+,选择下拉菜单【文件】【新建】选项,系统弹出如图2-1所示的“新建”对话框。在对话框中选择“工程”选项卡,在项目类型中选择“Unigraphics NX AppWizard V1”。在右侧的“工程名”文本框中输入工程名称,在“位置”文本框中设置合适的路径来存放工程文件,单击“OK”按钮确定。三:在系统弹出的“Step lof 2”对话框中,可以选择“internal application”内部模式,生成DLL文件,也可以选择“external application”外部模式生成EXE文件。另外,在产生的源代码中可以选择使用“C+”语言,也可以选择“C”语言,如图2-2所示。选择之后,单击“Next”按钮。图2-1 “新建”对话框图2-2“Unigraphics NX AppWizard V1-Step 1 of 2”对话框四:在系统弹出的“Unigraphics NC APPWizard V1-Step 2 of 2”对话框中。可以选择如何激活和卸载应用程序。各复选框的含义如表2-1和表2-2所示。这里我选择如图2-3所示的各选项,单击“完成”按钮完成应用程序的创建表2-1 应用程序的加载选项含义Automatically(ufsta)使用ufsta函数作为入口函数,可以在UG启动后自动加载应用程序Explicitly(ufusr)使用ufusr函数作为入口函数,可以再UG环境下选择下拉菜单【文件】【执行】【NX打开】,打开“执行用户函数”对话框,选择应用程序手动加载Form a User Exit使用用户出口函数作为入口函数,例如使用ufget函数,将在UG打开一个文件时,激活应用程序;使用ufcre函数,将在UG创建一个部件文件时,激活应用程序表2-2 应用程序的卸载选项含义Automatically, when the Unigraphics session teminates当UG进程结束时,自动卸载应用程序Automatically, when the application completes 当应用程序结束时,自动卸载Explicity, via an unload dialog 选择下拉菜单【文件】【实用工具】【卸载共享图片】,打开“除去共享图片”对话框,选择应用程序手动卸载图2-3 “Unigraphics NX APPQizard V1-Step 2 of 2”对话框2.4 UG/Open API程序设计2.4.1自定义菜单的添加方法 UG的菜单文件扩展名为.men的文本文件,可以使用Windows的记事本进行编辑。UG/Open MenuScript提供了一套用于定义UG菜单的脚本语言。实际上,UG系统的菜单文件也是用该脚本语言编写的。将菜单文件放在startup文件下面,然后将.men文件夹的路径注册到custom_dirs.dat文件中,启动UG就可以看到定制的下拉菜单。2.4.2 程序代码的添加方法 对于通过UISyler建立的对话框,主要采用CallBack(回调)方式来调用。由CallBack调用的程序如下:#ifdef DISPLAY_FROM_CALLBACKextern int (int *response )int error_code = 0;if (error_code = UF_initialize()!= 0 )return (0);if (error_code = UF_STYLER_create_dialog (1st_layer.dlg,CHANGE_cbs, /* Callbacksfrom dialog由另一对话框调用*/CHANGE_CB_COUNT, /* numberof callbacks*/NULL, /* This is your clientdata */response )!= 0 )char fail_message133;/* Get the user function fail message based on the fail code.*/UF_get_fail_message(error_code,fail_message);UF_UI_set_status (fail_message);printf (%sn, fail_message );UF_terminate();return (error_code);#endif /* DISPLAY_FROM_CALLBACK*/被CallBack的调用,指被其他对话框调用。另外,要使这部分程序发生作用,必须将程序中#ifdef以及#endif的所在语句去掉或屏蔽。在菜单脚本文件与UIStyler对话框之间是通过UF_MB_add_styler_actions(actions)来关联上。其中形参actions传递数组actions的首地址。数组actions的定义如下:static UF_MB_styler_actions_t actions= 1st_layer.dlg,NULL,CHANGE_cbs,UF_MB_STYLER_IS_NOT_TOP , NULL, NULL, NULL, 0 /* Thisis a NULL terminated list */;对话框响应后,以一个数组的形式将对话框中回调信息资源,即各UIObject对象ID包含进来,程序如下:static UF_STYLER_callback_info_t CHANGE_cbsCHANGE_CB_COUNT= UF_STYLER_DIALOG_IDEXUF_STYLER_BACK_CB,0 ,CHANGE_back_cb, UF_STYLER_DIALOG_INDEX,UF_STYLER_CANCEL_CB ,0,CHANGE_cancel_cb, CHANGE_PREVIEW_MANNER,UF_STYLER_ACTIVATE_CB,0,CHANGE_PREVIEW_MANNER_cb , CHANGE_INQUIRE_MANNER ,UF_STYLER_ACTIVATE_CB,0,CHANGE_INQUIRE_MANNER_cb, UF_STYLER_NULL_OBJECT,UF_STYLER_NO_CB, 0, 0 ;对话框被调用后,就是UIObject对象的响应,UIObject对象主要包括各种按钮、控件等。UIStyler主要是通过回调函数实现的。在回调函数中,在语句/* - Enter your callback code here - */ 的下面,编制用户程序,调用UG API,实现用户的特定任务。另外,所有UG/Open API 程序必须位于初始化函数UF_initialize()和UF_terminate ()之间,在定义变量后调用的第一个UG/Open API函数必须是UF_initialize(),最后一个必须是UF_terminate ()。3 基于UG的齿轮三维参数化模型的构建3.1 渐开线齿轮的基本结构3.1.1 渐开线齿轮轮廓渐开线齿轮的齿廓主要是渐开线曲面,此外还包括过渡平面。要在UG中生成渐开线齿廓,是比较复杂的同时也是非常重要的,本课题首先要解决的问题就是完成渐开线齿廓的构造,继而实现齿轮的参数化设计。渐开线齿廓涉及到齿轮的四个基本圆,即分度圆、齿顶圆、齿根圆和基圆。它们与齿轮基本参数之间得基本关系为:分度圆直径d=m*z,其中m为模数,z为齿数;齿顶圆直径da=(z+2*ha)*m ,其中 ha为齿顶高系数,标准化值为1;齿根圆直径df=(z-2*ha-2*ca)*m ,其中为ca顶隙系数,标准化值为0.25;基圆直径db=d*cos,为压力角,标准值为20o;3.1.2 常见渐开线齿轮的基本结构型式常见的齿轮结构型式有实心式(图3-1(a))、腹板式(图3-1(b)、(c))、轴齿轮等。轴齿轮是当与齿轮配合的轴和齿轮相差不大的时候采用的一种结构型式。本系统主要对实心式和腹板式两种型式的齿轮参数化设计进行了研究。 (a) (b) (c)图3-1 齿轮的常见结构型式3.2 渐开线直齿圆柱齿轮参数化模型的构建3.2.1 齿轮基本参数的设置众所周知,齿轮的几何尺寸和形状取决于齿轮的六个基本参数(齿数z、模数m、压力角ak、齿顶高系数ha、顶隙系数c、齿轮厚度h) 。按照UG中的要求,所有的变量必须预先定义,且表达式必须使用“参数表达式变量”,故在对齿轮进行三维建模前首先要对以上六个基本参数赋予初值。又由于UG系统不兼容希腊字母以及上、下标,因此通过表达式对基本参数赋初值时采用英文字母或字母与数字的组合来替代表示(在对齿轮进行数学模型分析时相关符号采用希腊字母或不同的上下标表示) 。选择工具表达式 ,建立如下表达式: z = 20 z为齿数m= 3 m 为模数ak = 20 ak 为压力角ha = 1 ha 为齿顶高系数c = 0.25 c 为顶隙系数h = 16 h 为齿轮厚度3.2.2齿轮基准曲线的绘制在绘制基准曲线之前,要实现参数化控制,还需建立控制基准曲线尺寸的如下表达式:d = m*z d 为分度圆直径da = d + 2*ha*m da 为齿顶圆直径db = d *cos(ak) db 为基圆直径df = d - 2*m*(ha+c) df 为齿根圆直径在完成上述基准曲线参数表达式的建立后, 利用“草图” 选项中的“建立草图” 和“基本曲线”功能选项在XC-YC基准面上绘制出齿轮的四条基本曲线(基圆、分度圆、齿根圆和齿顶圆) ,并使用“尺寸约束” 操作使它们的直径分别为:db,d,df和da;选用“几何约束” 功能操作使它们的圆心共心,且都位于ZC轴上。如图3-1所示。 图3-1 齿轮基准曲线 图3-2 渐开线与基圆的关系3.2.3 渐开线齿廓的形成对齿轮的实际加工可以有多种方法,如成形法、范成法等,它们都是在毛坯上去除齿槽最终形成齿轮。这里利用UG对齿轮进行三维造型时所采用的思路是:先生成参数化的轮齿的单个齿廓曲线;再利用特征操作和布尔运算“加” 生成单个轮齿;然后环形阵列已经生成的轮齿形成齿轮。在此,两次使用渐开线方程生成单个轮齿,然后环形阵列生成齿轮。渐开线与基圆的关系在生成渐开线齿廓之前,先对其相应关系进行分析。如图3-2所示,在直角坐标系中渐开线的方程为:x=rb*sin(u)-rb*u*cos(u),y=rb*cos(u)+rb*u*sin(u);其中u为渐开线上点K的滚角, rb为基圆半径。要实现可参数化控制齿廓曲线,最好使生成的渐开线曲线段的终点始终位于齿顶圆上,同时为了减少设计步骤,要建立相关的表达式确定出滚角u,假设渐开线曲线与齿顶圆的交点为K,可以根据曾经学过的相关的数学关系式:cos(k)=rb/ra=db/(d+2*ha*m),k=tan(k)- k及u=k+k确定出渐开线曲线和齿顶圆交点K处所对应滚角u值的大小。在利用方程表达式生成第一条渐开线时,为了便于操作,选择XC-YC基准面放置渐开线曲线。要实现完全可参数化控制齿廓曲线,需再次利用渐开线方程生成另外一条渐开曲线,为此要生成一个新的基准面A作为另外一条渐开线的水平参考,使第二条渐开线和基准面A相关联,这样可以通过对基准面A的参数控制继而实现对第二条渐开线曲线放置位置的参数控制。新设置的基准面A与系统默认的XC-ZC基准面夹角为a+2*bk ,其中a为分度圆上齿厚所对应的圆弧角度值, bk为分度圆和基圆之间渐开线段对应的展角角度值。生成渐开线曲线的过程如下。1) 建立如下所需表达式 rb=db/2 ak1=arccos(db/(d+2*ha*m) ak2=deg(ak1) bk1=tan(ak2)-ak1 bk2=deg(bk1) u=ak2+bk2 u1=rad(u) t=1 xt=rb*sin(u*t)-rb*u1*t*cos(u*t) yt=rb*cos(u*t)+rb*u1*t*sin(u*t) x1t=-xt a=180/z bk=deg(tan(ak)-ran(ak) a1=a+2*bk2) 选择 插入曲线规律曲线 ,定义X为xt ,Y为yt,并定义Z为恒定的 ,取其值为0 ,放置基准点为坐标原点,在XT-YT坐标平面内生成第一条渐开线曲线段S1,其起始点坐标为(0 ,rb) 。3) 接着生成一个与XC-ZC平面夹角为a1的基准面A。4) 再次选择插入曲线规律曲线,定义X值为x1t,Y值为yt,并定义Z为恒定的 ,取其值为0 ,并选择“指定参考坐标系” ,选取XC-ZC 基准面为渐开线曲线放置面,基准面A为水平参考,基准轴ZC为参考原点,生成第二条渐开线曲线段S2 ,其起始点与基圆圆心的连线与YC 轴夹角a1。5) 齿根处轮廓有两种情况,当齿数z41时,齿根圆直径小于基圆直径即df41时,齿根圆直径大于基圆直径,即dfdb, 这样齿根部分轮廓全部由渐开线构成。6) 用草图添加到草图, 将生成的两条渐开线曲线( S1和S2) 添加到草图中。对于齿数z41的情况,渐开线完成以后,进行编辑曲线修剪操作,以齿根圆和齿顶圆为边界将渐开线修剪成齿廓形状,在进入草图界面,绘制出和齿顶圆半径相同,且同圆心的圆弧段,并且绘制出和齿根圆半径相同,且同圆心的圆弧段。至此,完成齿数大于41的齿轮齿廓的绘制。图3-3 齿廓曲线的生成7) 在生成了基准曲线、渐开线齿廓曲线后,选取齿根圆进行“拉伸” 特征操作,使拉伸距离为h 。然后继续选择“拉伸”命令,依次选取组成齿廓的各条线 ,通过布尔运算“加”生成齿轮上的单个轮齿,如图3-4所示。 图3-4 单个轮齿的生成 图3-5 整个齿轮的完成8) 利用阵列特征,插入实例关联复制 ,选取通过“拉伸”生成的单个轮齿特征,并输入数量为z ,角度为360/z ,得到其他的齿。最后绘制中心孔和键槽,完成整个渐开线圆柱直齿轮的参数化设计。如图3-5所示。3.3 渐开线斜齿圆柱齿轮参数化模型的构建渐开线斜齿圆柱齿轮的参数化设计和直齿基本是一样的,区别就在于:设计斜齿轮式,需要画出一条螺旋线作为导引线,螺旋线的旋向决定斜齿轮是左旋还是右旋,然后进行“扫掠”操作形成单个轮齿,最后经过“关联复制”生成整个轮齿。生成的渐开线左旋斜齿轮和右旋斜齿轮如图3-6和3-7所示。 图3-6 左旋斜齿轮 图3-7 右旋斜齿轮4系统设计 UG/Open MenuScript不仅可以使用户利用ASC文件来编辑UG的菜单,也可以以一种无缝集成的方式为用户开发的应用程序创建菜单。使用UG/Open MenuScript自定义UG菜单可以有两种方法:一种是使用Add-on菜单文件;另一种是复制和编辑系统菜单文件。系统推荐使用Add-on菜单文件方法,由于该方法不仅编辑起来比较方便、易于维护,而且其功能也相当强大,基本可以满足应用开发的所有要求。使用Add-on菜单文件的另一个优点在于它可以被UG很方便地自动加载。4.1 自定义菜单的添加菜单是用户在UG下使用UG/Open API应用程序的“接口”,而且提高了调用对话框的效率,并且体现出了二次开发的水平和质量,所以菜单的添加时不可或缺的。本系统所开发的菜单结构如图4-1:主菜单实心式直齿轮腹板式直齿轮实心式斜齿轮腹板式斜齿轮腹板式斜齿轮对话框三维参数化设计腹板式直齿轮对话框实心式斜齿轮对话框子菜单实心式直齿轮对话框图4-1 菜单结构4.1.1 菜单文件的编写自定义菜单的菜单文件可以使用Window记事本进行编辑,UG/Open MenuScript提供了一套用于定义UG菜单的脚本语言。本系统的菜单的编写方式如下所示:VERSION 120EDIT UG_GATEWAY_MAIN_MENUBARBEFORE UG_HELP CASCADE_BUTTON PARAMETER_DESIGN LABEL 参数化设计 END_OF_BEFORE MENU PARAMETER_DESIGN BUTTON SHIXINSHIZHICHILUN LABEL 实心式直齿轮 ACTIONS PARAMETER_DESIGN_SHIXINSHIZHICHILUN BUTTON FUBANSHIZHICHILUN LABEL 腹板式直齿轮 ACTIONS PARAMETER_DESIGN_FUBANSHIZHICHILUN BUTTON SHIXINSHIXIECHILUN LABEL 实心式斜齿轮 ACTIONS PARAMETER_DESIGN_SHIXINSHIXIECHILUN BUTTON FUGBANSHIXIECHILUN LABEL 腹板式斜齿轮 ACTIONS PARAMETER_DESIGN_FUBANSHIXIECHILUN END_OF_MENU各句代码的解释说明如下:VERSION 120:菜单脚本文件的版本信息EDIT UG_GATEWAY_MAIN_MENUBAR:编辑UG系统菜单文件BEFORE UG_HELP:之后定义的内容将在菜单之前CASCADE_BUTTON PARAMETER_DESIGN:定义CASCADE按钮,点击这种按钮将弹出下拉菜单,该按钮的名称为“PARAMETER_DESIGN”,该名称必须出现在相应的MENU声明中LABEL参数化设计:CASCADE按钮的标题为“参数化设计”END_OF_BEFORE:结束BEFORE定义,与BEFORE UG_HELP相对应MENU PARAMETER_DESIGN:声明要定义PARAMETER_DESIGN菜单,其名称与之前的CASCADE按钮的名称相对应BUTTON SHIXINSHIZHICHILUN:定义BUTTON,在MenuScript中BUTTON即为一般的按钮,点击该按钮会激发相应行为,其名称为“SHIXINSHIZHICHILUN”LABEL 实心式直齿轮:定义BUTTON的标题为“实心式直齿轮”ACTIONS PARAMETER_DESIGN_

温馨提示

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

评论

0/150

提交评论