基于UGNXOpen二次开发的渐开线齿轮参数化造型 - 图文 下载本文

独创性声明

本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。

学位论文作者签名:

日期: 年 月 日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

保密□, 在 年解密后适用本授权书。

本论文属于

不保密□。

(请在以上方框内打“√”)

学位论文作者签名:

指导教师签名: 日期: 年 月 日

日期: 年 月 日

华 中 科 技 大 学 硕 士 学 位 论 文

摘 要

渐开线齿轮常应用于各类机械传动系统中,具有传动平稳、承载能力强、体积小等优点,是一种典型的传动机构。但由于各种机械装备所需的齿轮型号和规格存在差异,因此齿轮的设计、生产仍以订制为主,其设计效率较低。实践证明,三维CAD技术对加速产品开发、提高产品质量、降低成本起着关键作用。因此开发实用的、高效的参数化齿轮造型系统已成为各企业的迫切要求。

本文以功能强大的三维软件UG为开发平台,在深入掌握UG二次开发方法的基础上,选用 UG/NXOpen和 Visual Basic.NET为二次开发工具,实现了直齿圆柱齿轮、斜齿圆柱齿轮和锥齿圆柱齿轮的三维参数化造型。首先,从建立平面渐开线数学模型入手,分别建立直齿圆柱齿轮、斜齿圆柱齿轮及直齿圆锥齿轮的数学模型,然后实现齿轮的三维参数化造型,最后完成各个子系统应用程序的编写,实现UG内部调用。

该渐开线齿轮参数化造型系统,是基于特征、参数化和模块化的,易于使用、扩充和维护,提高了设计效率,缩短了设计周期,为进一步的计算机辅助分析、辅助制造奠定基础,同时本设计方法的提出对其他类型齿轮造型有一定的指导借鉴意义。

关键词:渐开线齿轮 参数化造型 二次开发 VB.NET

I

华 中 科 技 大 学 硕 士 学 位 论 文

Abstract

Involute gears, which have much advantage such as high stability, strong load-bearing capacity and small size, are widely used in various types of mechanical transmission system. It is a typical transmission. Because there ale some differences in gear model number and specification,it becomes the key way to design and produce gear by evoking.Therefore, it has become an urgent requirement of enterprises to develope the practical and efficient parametric gear modeling system.

In this paper, based on three-dimensional software UG develop platform, using UG / NXOpen and Visual Basic.NET as secondary develop languages, the three-dimensional parametric modeling of spur gears. Helical gears and straight bevel gears are realized.Starting with the establishment mathematical model of plane involute, the mathematical models of spur gears, helical gears and bevel gears are established, and then the three-dimensional parametric modeling of gears is realized. The programming of system applications is completed to achieve UG inner call.

The involute gear parametric modeling system,is based on the features,parameters,modular,the system is easy to use,easy to maintain and expend. It also improves design efficiency and shortens the design cycle. It lays the foundation for CAE and CAM, .and the proposal of this method provides a useful reference for modeling other types of gears.

Keywords:involute gear,parameterized modeling,secondary development,VB.NET

II

华 中 科 技 大 学 硕 士 学 位 论 文

目 录

摘 要 .......................................................................................................... I Abstract .......................................................................................................... II 1 绪论

1.1 课题背景 ................................................................................................ (1) 1.2 参数化理论及其齿轮CAD系统的发展概况 ..................................... (2) 1.3 UG二次开发工具简介 ....................................................................... (3) 1.4 UG二次开发的环境配置与菜单制作 ............................................... (6) 1.5主要研究内容及关键技术 .................................................................... (8) 2 直齿圆柱齿轮参数化设计子系统的开发

2.1 渐开线的数学模型 ............................................................................. (10) 2.2 渐开线齿廓的绘制 ............................................................................. (12) 2.3 直齿圆柱齿轮的数学模型 ................................................................. (15) 2.4 直齿圆柱齿轮的全参化建模 ............................................................. (16) 2.5 子系统应用程序设计 ......................................................................... (18) 3 斜齿圆柱齿轮参数化设计子系统的开发

3.1 斜齿圆柱齿轮的数学模型 ................................................................. (22) 3.2 斜齿圆柱齿轮的全参化建模 ............................................................. (23) 3.3 子系统应用程序设计 ......................................................................... (26) 4 直齿圆锥齿轮参数化设计子系统的开发

III

华 中 科 技 大 学 硕 士 学 位 论 文

4.1 直齿圆锥齿轮的数学模型 ................................................................. (30) 4.2 直齿圆锥齿轮的全参化建模 ............................................................. (31) 4.3 子系统应用程序设计 ......................................................................... (37) 5 总结及展望

5.1 总结 ...................................................................................................... (38) 5.2 展望 ...................................................................................................... (38) 致 谢..................................................................................................... (40) 参考文献..................................................................................................... (41)

IV

华 中 科 技 大 学 硕 士 学 位 论 文

1 绪论

1.1 课题背景

齿轮传动是现代机械中应用最广泛的一种传动形式,它可以传递空间任意两轴间的运动和力,其特点有:传动平稳,传动比精确,工作可靠、效率高、寿命长,使用的功率、速度和尺寸范围大。例如传递功率可以从很小至几十万千瓦;速度最高可达300m/s;齿轮直径可以从几毫米至二十多米。随着现代化工业的发展,齿轮装置已广泛应用于车辆、船舶、机床、矿山冶金等众多领域。

齿轮的齿形包括齿廓曲线、压力角、齿高和变位等特性。目前常用齿廓曲线有渐开线、摆线和圆弧等,其中渐开线齿轮容易制造和便于安装,因此现代使用的齿轮中,渐开线齿轮占绝对多数。在压力角方面,我国标准齿轮的压力角是20°。小压力角齿轮的承载能力较小;而大压力角齿轮,虽然承载能力较高,但在传递转矩相同的情况下轴承的负荷增大,因此仅用于特殊情况。而齿轮的齿高已标准化,一般均采用标准齿高。而变位齿轮的优点较多,也大量用于各类机械设备中[1]。

使用传统的齿轮设计方法其过程比较复杂而且效率低下,一般设计一组较为合理的齿轮副,需要花费较长的时间来反复的修正参数和进行多次强度计算,才能够实现。在绘图各种齿轮零件的二维工程图时也需要花费大量的时间精力。因为齿轮类零件的结构和形状基本相同,在设计新产品的过程中,不可避免地要进行多次的修改,还要进行形状、尺寸的优化。齿轮设计人员需要一种使用方便、合理的设计方法,来提高设计工作效率。这时可以通过三维CAD软件来实现齿轮设计的参数化和自动化,来大大的提高齿轮设计效率和保证齿轮设计质量。

本文在参考国内外CAD设计及齿轮参数化方面的研究成果的基础上,开发了圆柱齿轮和圆锥齿轮的三维CAD系统,使用 UG NX5.0来建立渐开线齿轮的全参数化模型,大大的提高了建模的效率,并为其后继的结构分析和制造工作打下基础。

1

华 中 科 技 大 学 硕 士 学 位 论 文

1.2参数化理论及其齿轮CAD系统的发展概况

1.参数化理论的发展概况

参数化设计是CAD技术在实际应用中提出的课题,它不仅可使CAD系统具有交互式绘图功能,还具有自动绘图的功能。目前它是CAD技术应用领域内的一个重要的、且待进一步研究的课题。利用参数化设计手段开发的专用产品设计系统,可使设计人员从大量繁重而琐碎的绘图工作中解脱出来,可以大大提高设计速度,并减少信息的存储量。

参数驱动是一种新的参数化方法,其基本特征是直接对数据库进行操作。因此它具有很好的交互性,用户可以利用绘图系统全部的交互功能修改图形及其属性,进而控制参数化的过程;与其他参数化方法相比较,参数驱动方法具有简单、方便、易开发和使用的特点,能够在现有的绘图系统基础上进行二次开发[2]。而且适用面广,对三维的问题也同样适用。

在早期的CAD技术中,二维绘图与三维绘图都是采用精确造型的方法。精确造型用固定的尺寸值定义几何元素,几何元素之间没有相互关联的关系。如果修改几何元素和其属性,则必须重新绘制整个图形,而参数化技术则可以自动修改整个图形,它是80年代兴起的第三代CAD系统的重要功能。第三代CAD技术使参数化设计得到了广泛的应用,产生了一些著名的参数化造型系统,如Pro/E、UG、Solidworks等,参数化成为先进CAD系统的必备功能之一。

2.齿轮CAD系统的发展概况

这些年,计算机辅助设计CAD技术在国外迅速发展。在各种新产品设计时大量应用了参数化设计方法。从而能够更快的跟踪市场、缩减产品设计周期和保证产品质量。而国内的很多设计人员还是习惯使用传统的手工绘图,效率低下[3]。

而目前市场上尚缺乏一种能够满足三维设计要求的高级齿轮三维造型系统。这就需要由少数既掌握计算机应用技术又懂得产品设计的工程技术人员对现有的三维CAD软件进行二次开发,使开发后的齿轮CAD应用软件具有良好的人机界面,并融进了大量专业设计人员的经验,使一般的设计人员能够使用此软件进行产品设计,从而能够提高设计效率和质量。

本课题的研究,即通过对机械原理和机械设计的深入分析,融入齿轮设计人员

2

华 中 科 技 大 学 硕 士 学 位 论 文

的设计经验,建立齿轮轮齿的数学模型,并开发一个基于UG软件的齿轮CAD系统,从而方便实用的进行齿轮的三维参数化造型。

(1) 齿轮类零件参数化二维设计现状

很多学者都对齿轮类零件的二维CAD参数化设计进行过相应的研究。通常二维CAD设计主要使用软件AutoCAD,但是运用AutoCAD进行二维设计也并不是很方便,有工作量大、操作繁琐、容易出错、难于修改等不便。严格的来说,基于AutoCAD的二维图形设计并不是标准的参数化设计技术,而只是一种精准的绘图技术。它虽然可以辅助工程设计人员进行计算机绘图,甩脱绘图板,但是它对一些复杂模型的建立及模型修改以后的图纸更新等问题,无法很好的解决。

(2) 齿轮类零件参数化三维设计现状

三维实体造型有三种层次的建立方法,即线框、曲面和实体,也就是分别对应于用一维的线,二维的面和三维的体来构造形体。通过计算机辅助设计建立的立体的、有光的、有色的生动画面,虚拟逼真地表达大脑中的产品设计效果,比传统的二维设计更符合人的思维习惯与视觉习惯[4]。三维造型技术从最初的三维CAD已发展到目前专用的基于特征造型的三维软件,常用软件有UG、SolidWorks、SolidEdge、MDT、Pro/E、3DS max等。关于齿轮类零件的三维参数化设计,很多国内外学者也进行了大量的研究。

1.3 UG二次开发工具

UG是集CAD/CAE/CAM一体化的三维参数化设计软件,是当今世界最先进的计算机辅助设计、制造和分析软件之一。自从UG出现以后,在航空航天、汽车、通用机械、工业设备、医疗器械以及其它高科技应用领域的机械设计和模具加工自动化的市场上得到了广泛的应用。在本文中主要采用UG作为设计平台来建立齿轮系统。

UG作为一种功能强大的三维CAD/CAM/CAE软件,往往在实际操作中十分复杂,加上很多企业在产品设计过程中经常进行大量重复的操作,产品设计比较繁琐。很多企业在使用该软件一段时间后,都会提出二次开发的要求,希望通过进一步的开发使UG能更好地适应本企业的要求,从而进一步提高设计效率,减少使用UG

3

华 中 科 技 大 学 硕 士 学 位 论 文

过程中技术人员的重复操作。为此,UG专门提供了专门的二次开发工具,可供企业根据自身特点,开发用户自定义模块[5]。

(1) UG/OPEN API

UG/OPEN是一系列UG二次开发工具的总称,是UG软件为广大用户或第三方开发人员提供的主要开发工具。其主要包括API(C语言编程接口)、GRIP(专用用户图形交互语言)、MenuScript (用户界面制作工具)和UI Styler (菜单脚本语言),如图1.1所示。它以开放性架构面向不同的软件平台提供灵活的开发支持,实现计算机的集成应用和数据共享。

图1.1 UG/OPEN的组成

UG/OPEN API (又称user Function) [6]是一个允许用户访问且能够改变UG对象模型的程序集。UG/Open API中封装了近2000个UG操作的函数。UG系统中大部分的操作都可以通过调用这些函数的组合来实现,是应用最为广泛的二次开发工具。

UG/OPEN API程序使用的是C或C++编程语言,按其连接方式可以分为两种:内部模式(Internal环境)和外部模式(External环境)。采用内部模式开发的程序,其优点是可以连接的更快且程序更小并能与用户实现交互,该程序以*.dll(动态链接库)的方式被调到UG的进程空间中,一旦调进便常驻内存,该类型程序的运行既可以从UG菜单界面来调用,另外还可以从UG/Open MenuScript、user Tools和UG/Open GRIP里面调用;采用外部模式开发的程序以*.exe方式可以直接在操作系统下运行,独立于UG软件系统,其缺点是无法实时显示图形与用户交互[7]。

(2) UG/NXOPEN

UG NX是UGS公司在并购了SDRC公司后整合了UG和l-DEAS所推出的三维

4

华 中 科 技 大 学 硕 士 学 位 论 文

CAX软件,建模功能非常强大,但是其二次开发工具UG/Open和UG/Open++仍然是UG时代的产品,相对于强大的建模功能,其二次开发工具的功能显得有些不足。在经过两个版本的过渡后,在UG的 NX3.0版本中UGS公司引入了新一代的二次开发工具NXOPEN,新的开发工具以COMMON API[8]为基础,支持多个实用工具,如日志工具、NXOpen系列工具和知识熔接工具等。日志工具则可以将交互状态下执行的操作以文件的形式记录下来,并能够进行编辑和重放,日志可以用VB、C#,C++和Java等多种语言记录,极大地方便了二次开发。借助NXOpen for.NET的功能,我们可以用Visual Basic.NET和Visual C#.NET来开发UG NX,而有了NX Open for Java[9]我们就可以用Java来开发UG NX,NX Open C/C++则是对原来的UG/Open和UG/Open++的重新包装,使用者可以用C/C++语言开发UG NX。

新的二次开发工具的最显著特点有:支持更多的编程语言,除了原来可以使用的编程语言外,现在还可以使用Java、C#、VB.NET这些新一代的语言;支持分布式程序,可以通过.NET或Java RMI[10]编写分布式程序。

目前UG的二次开发绝大多数都是基于UG/Open架构使用GRIP或者C/C++语言开发。 但是UGS公司从UGNX4.0开始已经停止对UG/Open的后续支持,UG/Open将不再增加新的函数,所有的二次开发的重点将转移到新一代的开发工具——NXOpen。NXOpen支持C++、Java和.NET开发语言,是完全面向对象的,可以使用.net框架类,可以使用代码自动生成JA (Journal and Automation), 可以写分布式客户机程序,并且几乎能够使用所有UG的功能。本文使用VB.NET编程语言开发基于UG/NXOpen的直齿圆柱齿轮、斜齿圆柱齿轮和直齿圆锥齿轮的三维参数化建模系统。

(3) UG/Open MenuScript

开发者使用MenuScript来创建和编辑下拉菜单及工具栏,使用此工具可以改变UG的菜单布置和定制用户专用菜单项,来执行用户的应用开发程序或调用操作系统的某些命令。

然后在文件custom_dirs.dat中注册用户工程的路径。再重新打开软件UG,在菜单栏上即可以看到用户定制的下拉菜单。

5

华 中 科 技 大 学 硕 士 学 位 论 文

1.4 UG二次开发的环境配置与菜单制作

1) 设置系统环境变量

在UG二次开发过程中,首先要设置系统环境变量, UG才能在相应目录中找到用户的开发内容。可通过两种方法来设置。

方法一:将UGII_BASE_DIR\\UGII\\menus目录下的custom_dirs.dat文件用记事本打开,在文件的最后添加二次开发的文件夹路径。这个文件夹中通常有startup目录和application目录,分别用来放置二次开发的各种文本文件、图形文件、对话框文件、动态链接库文件等。

方法二:将UG主目录下ugii_env.dat文件用记事本打开,在文件中找到下面的语句:#UGII_USER_DIR=${HOME}、#UGII_SITE_DIR=${UGALLIANCE_DIR}\\site #UGII_VENDOR_DIR=${UGALLIANCE_DIR}\\vendor[11],删除语句开头的注释符号“#”以激活相应的语句,共可提供三个目录来存放用户的二次开发文件。这三个目录的功能和结构是完全相同的,都有startup和application这两个目录,放置二次开发的各种文件。而UG设下的这三个目录user、site和vendor,是为了供给不同等级的开发者使用,vendor目录下存放UG指定开发商的二次开发产品, site下则存放其余开发者的产品,而user目录下存放用户自己开发的产品[12]。vendor目录的优先级别高于site目录,文件先载入,user目录优先级别最低,文件最后载入。

由于方法一的操作更简单方便,所以本系统使用方法一来设置系统环境变量。 2) 虽然可以使用各种方法来制作菜单,在这些方法的使用中有一些相同的内容,相同的内容步骤如下 :

(1) 建立一个存放用户文件的主目录,本文中在D盘下建立一个名为“nxcapp”的文件夹,来存放二次开发的所有内容;

(2) 在nxcapp下建立两个子目录startup和application,分别存放具体的开发内容;

(3) 用记事本方式打开UG主目录的custom_dirs.dat文件,在最后一行输入D:\\nxcapp,存盘,退出;

(4) 结合本文齿轮系统的需要,编写菜单脚本文件,其文件名为NXCAPP.men,工具栏按键脚本文件名为NXCAPP.tbr,运行结果如图1.2所示,下面给出这两个文

6

华 中 科 技 大 学 硕 士 学 位 论 文

件代码。

图1.2 用户菜单和工具栏

菜单脚本文件NXCAPP.men的内容如下: VERSION 120

EDIT UG_GATEWAY_MAIN_MENUBAR TOP_MENU

CASCADE_BUTTON UG_CHILUN LABEL 齿轮建模 END_OF_TOP_MENU MENU UG_CHILUN

BUTTON UG_CHILUN_ZHICHIYUANZHU LABEL 直齿圆柱齿轮

MESSAGE 生成一个直齿圆柱齿轮模型 ACTIONS zhichiyuanzhu.dll

BUTTON UG_CHILUN_XIECHIYUANZHU LABEL 斜齿圆柱齿轮

MESSAGE 生成一个斜齿圆柱齿轮模型 ACTIONS xiechiyuanzhu.dll

BUTTON UG_CHILUN_ZHICHIYUANZHUI LABEL 直齿圆锥齿轮

MESSAGE 生成一个直齿圆锥齿轮模型

7

华 中 科 技 大 学 硕 士 学 位 论 文

ACTIONS zhichiyuanzhui.dll END_OF_MENU

工具栏按键脚本文件NXCAPP.tbr的内容如下: TITLE CHILUN VERSION 160

BUTTON UG_CHILUN_ZHICHIYUANZHU LABEL 直齿圆柱齿轮

BITMAP D:\\Program Files\\UGS\\NX 5.0\\NXCAPP\\Application\\images01.bmp ACTIONS D:\\Program Files\\UGS\\NX 5.0\\NXCAPP\\Application\\zhichiyuanzhu.dll BUTTON UG_CHILUN_XIECHIYUANZHU LABEL 斜齿圆柱齿轮

BITMAP D:\\Program Files\\UGS\\NX 5.0\\NXCAPP\\Application\\images02.bmp ACTIONS D:\\Program Files\\UGS\\NX 5.0\\NXCAPP\\Application\\xiechiyuanzhu.dll BUTTON UG_CHILUN_ZHICHIYUANZHUI LABEL 直齿圆锥齿轮

BITMAP D:\\Program Files\\UGS\\NX 5.0\\NXCAPP\\Application\\images03.bmp ACTIONS D:\\Program Files\\UGS\\NX 5.0\\NXCAPP\\Application\\zhichiyuanzhui.dll

1.5 主要研究内容及关键技术

齿轮模块的开发包括两个部分:齿轮模板的建立及应用程序的设计。齿轮模板是基础,采用基于关键参数驱动的参数化、变量化相关性三维建模技术,建立齿轮的部件模型,部件模型能随着参数/变量的变化而变化,提取关键参数/变量,创建齿轮部件族模板。应用程序是实现手段,其设计包括三个方面:用户菜单设计、接口界面设计及应用程序设计。用户通过用户菜单,调用齿轮自动生成模块。通过接口界面输入关键参数,与应用程序实现交互。应用程序使用两种方法生成齿轮,一是访问齿轮模板,根据用户输入的参数,创建该部件族模板的一个实例,从而获得用户所要求参数的齿轮模型;二是新建一个部件,将齿轮模板作为组件添加进来,并

8

华 中 科 技 大 学 硕 士 学 位 论 文

设置为工作部件,再根据用户输入的参数修改用户表达式中数据,更新模型,也可以获得要求的齿轮[13]。齿轮模块的实现原理如图1.3所示,这样即实现了功能,又简化了编程。

图1.3 齿轮模块的实现原理

9

华 中 科 技 大 学 硕 士 学 位 论 文

2 直齿圆柱齿轮参数化设计子系统的开发

本章首先分析渐开线轮廓齿形曲线的特性,并建立相应的渐开线数学模型,以此来指导渐开线齿廓的参数化建模。其次,在上述研究的基础上进一步建立直齿圆柱齿轮、斜齿圆柱齿轮及直齿圆锥齿轮的数学模型,并使用UG/NXOpen实现各种齿轮的三维参数化造型。

2.1 渐开线的数学模型

凡能满足齿廓啮合基本定律的一对齿廓称为共轭齿廓。理论上,可用作共轭齿廓的曲线很多,如渐开线齿廓、摆线齿廓和圆弧齿廓等。但在实际生产中,除了传动比要求外,还要考虑设计、制造、安装和使用等方面的问题。因为渐开线齿廓有容易制造和便于安装等优点,所以在机械中通常采用渐开线齿廓[14]。

1.渐开线齿廓的形成 直线BK沿半径为rb的圆作纯滚动时,直线上任一点K 的轨迹称为该圆的渐开线。该圆称为渐开线的基圆,基圆半径为rb。 直线BK称为渐开线发生线;角?k 称为渐开线上K点的展角;角?k称为渐开线上K点

的滚动角[15]。 图2.1 渐开线齿廓曲线的计算

如图2.1,A为渐开线在基圆上的起点,K为渐开线上任意点,其矢径为rk,渐

10

华 中 科 技 大 学 硕 士 学 位 论 文

开线AK段的展开角为?k。当渐开线作为齿轮的齿廓在点K啮合时,则此齿廓在点K所受的正压力方向(即法线方向)与速度方向所夹的锐角?k为渐开线在点K的压力角。由图可见,?k=∠BOK,?k+?k=?k,且

cos?k=rb/rk (2-1)

式中:

rb为基圆半径;

?k为渐开线在点K的压力角;

rk为基圆圆心到渐开线上点K的矢量。 又因tan?k=

KBrb(?k??k)=??k??k,故得?k=tan?k-?k,由上式知,展开角OBrb?k是压力角?k的函数,称其为渐开线函数,工程上常用inv?k表示[16],即

inv?k=tan?k-?k (2-2)

式中:

?k为渐开线AK段的展开角。

由式(2-1)及(2-2)可得渐开线的极坐标方程式为:

??? (2-3)

?k?tan?k??k??如己知基圆半径rb和一个压力角?k值时,就可算出渐开线上相应点的极坐标(rk、

rbrk?cos?k?k)。

在直角坐标系中,如图2.1所示,为求得渐开线方程而做BQ、KP两条辅助线,则有:∠KBP=90-∠OBQ=?k。

K点坐标为:

xk=OQ+PK=OB*cos(?k)+BK*sin(?k)=rb*cos(?k)+rb*?k*sin(?k) (2-4)

11

华 中 科 技 大 学 硕 士 学 位 论 文

yk=BQ-BP=OB*sin(?k)-BK*cos(?k)=rb*sin(?k)-rb*?k*cos(?k) (2-5)

式中:

?k为渐开线上K点的滚动角。

由式(2-4)及(2-5)可得渐开线的直角坐标方程式:

xk?rb*cos( ?k)?rb*?k*sin(?k )?? (2-6)

yk?rb*sin( ?k)-rb* ?k*cos(?k )?如己知基圆半径rb和滚动角?k值时,就可算出渐开线上相应点的坐标(xk、yk),当算出若干点后,就可得出整条渐开线,渐开线齿轮的齿廓曲线是由两条对称的渐开线所形成。

2.2 渐开线齿廓的绘制

齿轮上所有齿都是相同的,具有统一特征。直齿轮的轮廓线为渐开线型,因此可直接利用UG中的Expression工具,根据公式(2-6)输入渐开线表达式:

xt=(db/2)*cos(q)+(db/2)*q*u*sin(q) yt=(db/2)*sin(q) -(db/2)*q*u*cos(q) (2-7) zt=0

式中:

q为滚动角,取值范围为0-90度; u为单位转换值,将角度值转换为弧度值; db为基圆直径。

按UG中Law Curve的By Equation[17]方式,以坐标原点为基准点插入规则曲线。UG将自动计算xt、yt值并绘制渐开线,z轴坐标为0,绘制出的渐开线起点从x轴开始。将此渐开线先对x轴做镜像,再绕z轴逆时针旋转θ度,得到齿槽轮廓的另一条渐开线。另一条渐开线采用了矩阵变换的方式来求出方程式,从而解决了渐开线轮廓的对称问题,其精度相对手工取舍旋转角度的方式大大提高[18],为齿轮轮廓的精确绘制打下了良好的基础。

在三维图形程序中,使用矩阵来进行几何变换。可以使用一个4×4的矩阵将任

12

华 中 科 技 大 学 硕 士 学 位 论 文

何点变换到另一个点。下面的例子中,我们用一个矩阵对点(x, y, z)进行变化,产生了一个新的点(x', y', z'):

?M11?M?x' y' z' 1???x y z 1??21?M31??M41M12M22M32M42M13M23M33M43M14?M24?? M34??M44? 对点(x, y, z)进行一下运算,会得到一个新点(x', y', z'):

x' =(x×M11)+(Y×M21)+(Z×M31)+(1×M41) y' =(x×M12)+(Y×M22)+(Z×M32)+(1×M42) z' =(x×M13)+(Y×M23)+(Z×M33)+(1×M43)

最常用的变换包括:平移(translation),旋转(rotation)和缩放(scaling)。你可以将这些变换合并起来,组成一个矩阵,同时进行几种变换。

下面的变换将一个点(x, y, z)沿x-轴进行旋转,得到了一个新的点(x', y', z'):

0?1?0cos??x' y' z' 1???x y z 1???0?sin??0?0下面的变化沿y-轴进行旋转:

0sin?cos?00?0?? 0??1?0?0?? 0??1?00100?0?? 0??1??cos??0?x' y' z' 1???x y z 1???sin???0下面的变换沿z-轴进行旋转:

0?sin?100cos?00?cos???sin??x' y' z' 1???x y z 1???0??0顺时针方向来度量。

sin?cos?00希腊字母θ代表旋转的角度,用弧度来表示。从旋转轴向原点看,这个角度按

使用矩阵可以通过矩阵相乘来将几个矩阵变换的效果合并起来。当我们对一个

13

华 中 科 技 大 学 硕 士 学 位 论 文

模型进行对x轴镜像和旋转时,不再需要用到两个矩阵。我们可以通过将镜像矩阵与旋转矩阵相乘来得到一个合并的矩阵。这一过程就被称为矩阵级联[19],可以用下面的公式来表示:

?1?T=T1*T2=?0?0??00?10000100??cos(?)??sin(?)0???0??0??1??0sin(?)cos(?)0000100??cos(?)?sin(?)0????0??0??1??0sin(?)?cos(?)0000100?0?? 0??1?将原渐开线方程(xt, yt, zt)与矩阵级联T[20]相乘,会得到一个新的渐开线方程:

xt2=xt*cos(-th)+yt*sin(-th)

yt2=xt*sin(-th)-yt*cos(-th) (2-8) zt2=zt

其中旋转角度为th=(tan(a))/u-a+(s/d)/u,因为是逆时针旋转,所以取负。

将新的方程式输入UG中表达式,再按UG中Law Curve的By Equation方式,以坐标原点为基准点插入规则曲线,就绘制出第二条渐开线了。两个方程式中的所有参数可以随时进行修改,生成的两条渐开线将发生相应变化。生成的曲线如图2.2所示。

图2.2 齿槽渐开线

14

华 中 科 技 大 学 硕 士 学 位 论 文

2.3 直齿圆柱齿轮的数学模型

渐开线直齿圆柱齿轮是渐开线齿轮中结构最简单的齿轮,实现直齿圆柱齿轮的参数化精确建模是实现其他齿轮建模的基础。渐开线直齿圆柱齿轮的重要的基本参数有:模数m、齿数z、分度圆压力角a、齿顶高系数ha、顶隙系数c、变位系数x、齿轮齿宽B,另外内孔键槽数据也是必不可少的重要参数,如表2.1所示。

表2.1 渐开线直齿圆柱齿轮参数表

名称 代号 计算公式 模数 m 2.5(用户输入) 齿数 z 20(用户输入) 齿顶高系数 ha 1(用户输入) 顶隙系数 c 0.25(用户输入) 压力角 a 20(用户输入) 齿宽 B 20(用户输入) 变位系数 x 0.1(用户输入) 分度圆直径 d d=m*z 齿顶圆直径 da da=m*(z+2*ha+x) 齿根圆直径 df df=m*(z-2*ha-2*c+x) 基圆直径 db db=m*z*cos(a) 内孔直径 d2 30(用户输入) 轴直径 d1 60(用户输入) 键槽宽 b1 5(用户输入) 键槽深 b2 35(用户输入) 总宽 bz 50(用户输入)

标准齿轮有许多优点,因而得到广泛的应用。但是标准齿轮也暴露出下列主要的缺点:①标准齿轮的齿数必须大于或者等于最小齿数zmin[21],否则会产生根切。②标准齿轮不适用于实际中心距a’不等于标准中心距a的场合。因为当a’a时,虽然可以安装,但将产生较大的齿侧间隙,影响传动的平稳性。

15

华 中 科 技 大 学 硕 士 学 位 论 文

③一对相互啮合的标准齿轮中,由于小齿轮的齿根厚小于大齿轮的齿根厚度,在其它条件相同的情况下,小齿轮更容易损坏[22]。为了弥补标准齿轮的不足,在机械传动中常采用变位齿轮传动。

通过改变刀具与轮坯相对位置而达到不发生根切的方法称为变位法,采用这种方法制造的齿轮称为变位齿轮。以切制标准齿轮的位置为基准,刀具由基准位置沿径向移开的距离用xm表示,其中,m为模数,x为变位系数,并规定刀具离开轮坯中心的变位系数为正,反之为负。对应于x>0、x=0、x<0的变位分别称为正变位、零变位和负变位。用标准齿条刀具加工变位齿轮时,刀具变位后刀具上总有一条与分度线平行的直线作为节线与齿轮的分度圆相切并保持纯滚动。故变位齿轮的齿距p、模数m和压力角a仍等于标准齿形刀具。如图2.3所示,与标准齿轮相比,变位齿轮的分度圆、基圆不变,因而渐开线的形状也不变;变位齿轮的齿顶圆和齿根圆改变了,因而使用了渐开线上的不同部位。

图2.3 变位齿轮的齿廓

2.4 直齿圆柱齿轮的全参化建模

本文在进行直齿轮设计的过程中,将UG中的三维参数化造型功能、表达式处理和曲面裁剪实体相结合,提出了一种全参数化的直齿轮三维设计方法。该方法的

16

华 中 科 技 大 学 硕 士 学 位 论 文

思路为:首先由输入的渐开线直齿轮参数,完成齿轮齿槽轮廓两条渐开线绘制,将渐开线沿z轴拉伸齿宽b的长度获得轮齿轮廓面,利用该面对实体进行裁剪操作生成单个齿槽实体,再将齿槽实体和齿顶圆圆柱通过布尔求差运算在齿顶圆圆柱上生成一个齿槽,最后对齿槽做阵列获得完整轮齿[23]。实践证明该方法精度高、简单、直接、设计效率高。

在直齿圆柱齿轮造型中,通过方程曲线生成两条渐开线后,将它们延长3mm,如图2.4所示。再拉伸齿宽b的长度得到两个轮齿轮廓面b和c,在齿顶圆和齿根圆之间生成一段长度为齿宽b的实体a,用刚才的两个面裁剪得到单个齿槽实体,如图2.5所示。再以齿顶圆为截面线段拉伸一个齿宽b长的圆柱体,和齿槽实体做求差运算的得到图2.6所示实体。将生成实体a和曲面b、c裁剪实体a等三个特征合并为一个特征集,对此特征集绕齿轮轴线做圆周阵列,阵列数为齿数z,角度为360/z,从而获得所有轮齿。

图2.4 延长渐开线 图2.5 渐开面裁减实体 图2.6 单个齿槽

当标准齿轮的齿数大于40时,基圆直径db=m*z*cos(a)=m*40*cos200=37.59*m,齿根圆直径df=m*(z-2*ha-2*c)=m*(40-2*1-2*0.25)=37.5*m,基圆直径大于齿根圆直径。渐开线拉伸的曲面将不能裁剪实体a,所以需要将渐开线延长之后再拉伸成曲面b、c,才能裁剪。而对变位齿轮来说,齿根圆直径df=m*(z-2*ha-2*c+x) [24],基圆直径大于齿根圆直径时的齿数将由变位系数x决定。采用上述方法则无论齿数多少都能裁剪出单个齿槽实体。

最后根据输入的齿轮内孔、键槽等数据绘制草图生成齿轮内部结构。先在草图上

17

华 中 科 技 大 学 硕 士 学 位 论 文

以轴直径d1做个圆并将其拉伸为轴,轴长度为总宽bz,布尔运算为求和,如图2.7所示。再根据内孔直径d2、键槽宽b1和键槽深b2建立内孔草图,在轴上拉伸出内孔结构,如图2.8所示。

图2.7 带轴直齿圆柱齿轮 图2.8 完整直齿圆柱齿轮

接着建立直齿圆柱齿轮的部件族(标准件库)[25],首先在菜单【工具】里选择【部件族】,将需要用户输入的参数表达式添加到选定的列中,设置部件族的保存目录,再点击【创建】,自动打开Excel软件,在表格中输入顺序号、零件名称和相应参数的值后保存部件族,完成零件模板的创建。部件族成员可以加入到装配中,但对零件族成员的修改只能在模板中进行,还可以对部件族成员进行另名保存,这样该成员就成为一个独立的零件,而不再是零件族成员了,可以象操作零件一样对它进行操作。

2.5 子系统应用程序设计

打开Visual Studio 2005,选择菜单命令“文件”-“新建项目”,界面弹出新建项目对话框,在Visual Basic工程已安装的模板列表中查看是否有NX5_VB项,若没有此项,将NX5安装文件里提供的VB向导拷贝到Microsoft Visual Studio 8\\VB\\VBWizards和VBProjects[26]路径下。重新启动Visual Studio 2005,自动创建NX5_VB项,此后即可建立dll或exe工程。

二次开发中的一个重要部分就是建立对话框,并在对话框与程序之间进行参数的传递。NX下对话框的创建有好几种方法,常用的有:

18

华 中 科 技 大 学 硕 士 学 位 论 文

1)用NX自己的UTSYTLER,进入User Interface Styler模块就可。 2)MFC的方法,主要是应用与VC6.0的开发, 3)直接用winform,主要是.net环境下。

在VB中创建应用程序用户界面组件是非常容易的,为显示窗体我们无须编写大量代码,开发人员只需简单的将各种窗体组件拖进窗口就可以了。使用winform创建的对话框和主程序之间参数的传递在VB工程内部进行,也变的很简单。所以这里使用winform来创建对话框,建立直齿圆柱齿轮的参数输入对话框如图2.9所示:

图2.9 直齿圆柱齿轮用户参数表

为了体现出UG新的二次开发工具NXOpen的用途,本课题齿轮系统的开发使用了两种方式,其中直齿圆柱齿轮的应用程序使用传统的UGOpen API函数编制,它已被整个封装在NXOPEN.UF中;斜齿圆柱齿轮和锥齿轮的应用程序使用全新的NXOpen开发方式。

19

华 中 科 技 大 学 硕 士 学 位 论 文

直齿圆柱齿轮的自动生成使用的是UG内部调用模式,在UG界面下通过菜单项或者工具栏按钮调用应用程序。应用程序的执行流程如下:

(1) 如果显示部件为空则新建一个部件zhichilun.prt;

(2) 使用UF函数调用UG的点选择对话框让用户确定一个定位点; (3) 调出直齿圆柱齿轮用户参数表,交互输入斜齿轮参数;

(4) API 应用程序访问直齿圆柱齿轮模板,根据用户输入的参数,创建该部件族模板的1 个实例,从而获得用户所要求参数的齿轮模型。

在主程序的开始,应该声明NXOPEN名称空间Imports NXOpen和Imports System,由于程序中使用NXOPEN中封装的UF函数,则还应声明Imports NXOpen.UF和Imports NXOpen.UF.UFUI[27]等。

在main模块中定义四个公共变量,分别取得UG通道和UF通道,再获得当前的工作部件和显示部件,代码如下:

Dim theSession As Session = Session.GetSession() '取得UG通道

Dim theUfSession As NXOpen.UF.UFSession = UFSession.GetUFSession '取得UG通道

Dim workPart As Part = theSession.Parts.Work

Dim displayPart As Part= theSession.Parts.Display

在main(入口函数)函数中首先判断显示部件是否为空,为空则新建一个zhichilun.prt文件。然后使用UF函数调用点选择对话框,由用户指定一个点,函数调用代码如下:

theUfSession.Ui.PointConstruct(message, response)

显示直齿圆柱齿轮用户参数表对话框,如表3.1给上图的用户参数一个初始值,在确定按钮单击事件中将所有用户参数文本框的值赋给一个数组edg_len,然后调用主程序中的生成直齿齿轮的函数CreateModle,并将数组edg_len和点corner作为函数参数传递。使得函数CreateModle根据用户输入的参数建立一个斜齿圆柱齿轮。

在CreateModle函数中,先定义一个变量获得前面建立的参数化直齿圆柱齿轮模板文件路径,代码如下:

Dim engine_file_name As String = \

20

base_method, point_tag, base_pt,

华 中 科 技 大 学 硕 士 学 位 论 文

Documents\\chilun\\zhichiyuanzhu.prt\

打开此模板文件,并获得文件标识part_tag;

theUfSession.Part.OpenQuiet(engine_file_name, part_tag, error_status)

获得模板文件中零件族的标识family_tag[28];

theUfSession.Part.AskFamilies(part_tag, family_count, family_tag) 根据零件族的标识返回零件族的一行数据并赋值给数组new_data; theUfSession.Fam.AskMemberRowData(family_tag(0), 1, new_data)

将数组赋值为用户自定义的参数值,再利用此数组增加一行零件族数据; theUfSession.Fam.AddMember(family_tag(0), new_data, n)

使用刚增加的一组零件族数据创建一个包含零件族实例的新部件文件; theUfSession.Part.CreateFamilyInstance(family_tag(0), 5, part_tag, family_inst) 将包含零件族实例的部件设置为显示部件,并保存; theUfSession.Part.AskPartName(part_tag, instance) part_inst = theUfSession.Part.AskPartTag(instance) theUfSession.Part.SetDisplayPart(part_inst) theUfSession.Part.Save()

再把前面建立的zhichilun设为显示部件,并将刚创建的零件族实例包含进来; Dim part1 As BasePart = theSession.Parts.FindObject(\) Dim partLoadStatus1 As PartLoadStatus

theSession.Parts.SetDisplay(part1, True, True, partLoadStatus1)

theUfSession.Part.Import(instance, modes, dest_csys, base_pt, 1, part_inst)

21

华 中 科 技 大 学 硕 士 学 位 论 文

3 斜齿圆柱齿轮参数化设计子系统的开发

3.1 斜齿圆柱齿轮的数学模型

斜齿圆柱齿轮的渐开线端面齿形轮廓的形成过程与直齿圆柱齿轮相同。不同的是,斜齿圆柱齿轮的轮齿方向与轴线倾斜了一个角度。假设把一个直齿圆柱齿轮垂直于其轴线作无数的剖面,则这些剖面与直齿圆柱齿轮相交,可得到无数的薄片轮齿,如果把这些无数薄片轮齿中的后面一个薄片都相对前一个绕轴线转动一个微小的角度,也就是使无数薄片中每个薄片的端面齿形都转过一个极小的位置,形成的齿面就是斜齿面。

从端面上看,一对渐开线斜齿轮啮合就相当于一对渐开线直齿轮啮合。因此,它也满足齿廓啮合基本定律。在一对斜齿轮啮合传动时,两轮的瞬时接触线为一斜线,且由短变长,然后又由长变短。由于其啮合过程是逐渐进行的,所以克服了直齿轮啮合传动时总是沿着全齿宽同时进行的缺点,减少了传动的冲击、振动和噪声,提高了传动的平稳性,故斜齿轮适用于高速、重载的传动。

由于斜齿轮圆柱齿轮的齿面为渐开线螺旋面,因而在不同方向的截面上其轮齿的齿形各不相同,故斜齿轮具有三套基本参数,即:在垂直于齿轮回转轴线的截面内定义的端面参数、在垂直于轮齿方向的截面内定义的法面参数和在通过齿轮回转轴线的截面内定义的轴面参数。由于在加工斜齿轮时,刀具通常是沿着螺旋线方向进刀的,所以斜齿轮的法面参数应该是与刀具参数相同的标准值[29]。但在计算斜齿轮的大部分几何尺寸时却需要按端面参数进行计算,因此必须建立法面参数与端面参数的换算关系。

渐开线斜齿圆柱齿轮的重要的基本参数有:螺旋角β、齿数z、法面模数m、法面压力角a、法面齿顶高系数ha、法面顶隙系数c、法面变位系数x、齿轮齿宽B,另外内孔键槽数据也是必不可少的重要参数,如表3.1所示。

22

华 中 科 技 大 学 硕 士 学 位 论 文

表3.1 渐开线斜齿圆柱齿轮参数表

名称 代号 计算公式 螺旋角 β 15(用户输入) 法面模数 mn 2.5(用户输入) 端面模数 mt mt=mn/cos(β) 齿数 z 30(用户输入) 法面齿顶高系数 han 1(用户输入) 端面齿顶高系数 hat hat=han*cos(β) 法面顶隙系数 cn 0.25(用户输入) 端面顶隙系数 ct ct=cn*cos(β) 法面压力角 an 20(用户输入) 端面压力角 at at=arctan(tan(an)/cos(β)) 齿宽 b 20(用户输入) 法面变位系数 xn 0.1(用户输入) 端面变位系数 xt xt=xn*cos(β) 分度圆直径 d d=mt*z 齿顶圆直径 da da=mt*(z+2*hat+xt) 齿根圆直径 df df=mt*(z-2*hat-2*ct+xt) 基圆直径 db db=mt*z*cos(at) 内孔直径 d2 30(用户输入) 轴直径 d1 60(用户输入) 键槽宽 b1 5(用户输入) 键槽深 b2 35(用户输入) 总宽 bz 50(用户输入)

3.2 斜齿圆柱齿轮的全参化建模

本文在设计斜齿圆柱齿轮的模型时,主要使用到了UG中的实体造型功能、表达式功能和自由曲面扫描功能,来建立其全参数化驱动的三维实体模型[30]。主要的步骤为:首先由用户交互输入的法面参数计算出端面参数,完成端面齿轮轮廓线绘制,将端面轮廓线沿螺旋线扫描获得斜齿轮廓面,用此轮廓面裁剪圆柱体生成具有单个齿槽实体,再通过布尔运算在齿轮圆柱上生成一个齿槽,最后对齿槽做阵列获得完整轮齿。这种建模方法操作简单、设计精度高、效率也高。

23

华 中 科 技 大 学 硕 士 学 位 论 文

1) 齿轮轮廓线与螺旋线生成

由上面分析可知,斜齿圆柱齿轮的三维参数化造型有两个重点:端面齿形曲线和螺旋线的生成。

本方法从斜齿轮的端面轮齿轮廓线绘制开始,斜齿轮在端面上的轮廓线为渐开线型,其中斜齿轮的端面参数可按标准值法面参数计算,因此可直接利用直齿圆柱齿轮的表达式。这样,齿廓曲线的参数化造型参照上章的直齿圆柱齿轮的造型经验即可解决。

因为需要使用端面轮廓线沿着螺旋线扫描来生成斜齿轮轮廓面,所以要绘制出分度圆上的螺旋线,作为引导线扫描。由于UG的自由曲面扫描方式中,沿着三条引导线生成的曲面才能不变形,所以要生成三条螺旋线[31]。

图3.1所示是斜齿轮分度圆柱面的展开图,S是导程,β是分度圆上的螺旋角。根据三角形关系,可得出arc的长度(arc是分度圆圆柱面上螺旋线在端面上投影的弧长):

arc=b*tan(β) (3-1) 式中:

b为斜齿轮齿宽。 由几何学可得到:

??arc/r?arc*2/d (3-2) 式中:

r为分度圆半径;

?为arc弧长在分度圆上对应的中心 角的弧度值。

在UG中三角函数值是度,因此,需要进行转换。通过表达式绘制圆弧,必须以圆

弧所对应的中心角为变量参数。系统提供的内部变量t的变化范围是0~1,所以要进行参数代换a*t(a是arc圆弧所对应的中心角?的角度值),使其在0~arc*2/d的角度范围内变化。代入圆的方程,得到螺旋线的参数方程:

图3.1 斜齿轮分度圆柱面

24

华 中 科 技 大 学 硕 士 学 位 论 文

xo=d/2*cos(a*t) yo=d/2*sin(a*t) (3-3) z=b*t

这样绘制出来的螺旋线是从x轴开始的,z轴的取值范围是0-b,生成全齿宽上的螺旋线。将此螺旋线分别顺时针和逆时针旋转角度th可获得另外两条螺旋线。根据矩阵变换,求出另两条螺旋线的方程式:

xo1=xo*cos(th)-yo*sin(th)

yo1=xo*sin(th)+yo*cos(th) (3-4) zo1=b*t

xo2=xo*cos(-th)-yo*sin(-th)

yo2=xo*sin(-th)+yo*cos(-th) (3-5) zo2=b*t

在UG中表达式里输入三条螺旋线的参数方程式,再按Law Curve的By Equation[32]方式,以坐标原点为基准点插入规则曲线。UG将自动计算x、y和z值并绘制出三条螺旋线。

按照UG中自由曲面的Swept(扫描)方式,在对象窗口内依次选择三条螺旋线作为引导线,然后选取延长以后的端面轮廓线,在对齐方式中选择弧长对齐(AraLength)方式,得到如图3.2所示曲面。

图3.2 斜齿轮廓面 图3.3 斜齿圆柱齿轮

25

华 中 科 技 大 学 硕 士 学 位 论 文

与直齿圆柱齿轮造型过程相同,先用扫描得到的两个面裁剪在齿顶圆和齿根圆之间的一段实体得到单个齿槽实体,再以齿顶圆为截面线段拉伸一个齿宽b长的圆柱体,和齿槽实体做布尔求差运算的得到有一个齿槽的圆柱体。做单个齿槽的圆周阵列,阵列数为齿数z,从而获得所有轮齿[33]。最后根据输入的齿轮内孔、键槽等数据绘制草图生成齿轮内部结构,完成斜齿圆柱齿轮的绘制,如图3.3所示。

3.3 子系统应用程序设计

斜齿圆柱齿轮的自动生成使用的是UG内部调用模式,在UG界面下通过菜单项或者工具栏按钮调用应用程序。应用程序的执行流程如下:

(1) 如果显示部件为空则利用建模模板新建一个部件zhichilun.prt; (2) 使用UF函数调用UG的点选择对话框让用户确定一个定位点; (3) 调出斜齿轮用户参数表,交互输入斜齿轮参数;

(4) 在当前部件文件中将已有的斜齿圆柱齿轮模板部件作为组件添加进来,放置位置为前面选择的定位点。

(5) 按对话框输入的用户参数修改斜齿轮的表达式,将工作部件设置为原部件,更新模型。

在VB.NET内部使用winform创建斜齿圆柱齿轮的参数对话框,在此对话框中用户输入要生成的斜齿轮参数,如图3.4所示:

本系统的主程序编制将使用NX新的二次开发构架NXOPEN开发,在NXOPEN中使用代码自动生成JA [34] (即操作录制)可以将交互状态下执行的操作以文件的形式记录下来,并能够进行编辑和重放,并且可以选择用VB、C#,C++和Java等多种语言记录,极大地方便了二次开发。

操作录制是UG/NXOpen中增加的可以录制手工操作命令的工具。录制的一系列NXOpen程序命令。通过这些命令可以重现操作。然而,录制的程序往往是记录我们手工操作的命令流,其中很多信息是固定的操作,不具有灵活性。同时,不是所有的命令都能够被录制。正如UG Help系统所说的:有些命令不能被记录,有些命令只能部分记录。所以,操作录制不能代替二次开发。

26

华 中 科 技 大 学 硕 士 学 位 论 文

图3.4 斜齿圆柱齿轮用户参数表

首先设置操作录制使用VB.NET,在菜单【首选项】里选择【用户界面】。在对话框“用户界面首选项”中的【操作记录】分页中选择【选择操作记录语言】为VB。在菜单工具条中选择【操作记录】,其中有几个常用命令:播放-录制-暂停录制-停止录制-编辑[35]。

根据前述的程序执行流程来录制相关操作,获得操作的命令流,再进行一定的修改就可得到自己的应用程序。选择【录制】,选择保存录制命令程序的目录。之后UG的菜单和工具条上会出现可录制的标示,如果没有的命令是不能被录制的。依次进行下列操作:

新建一个名称为zhichilun的部件文件;添加组件,组件为前面建立的全参数化斜齿轮部件,选择放置点为某一点;将添加的组件设为工作部件,进入表达式修改

27

华 中 科 技 大 学 硕 士 学 位 论 文

用户参数;将zhichilun部件设为工作部件,保存此部件文件。

选择【停止录制】结束本次录制。选择【编辑】进入操作纪录编辑器,可修改刚才所有操作的VB代码。

在主程序的开始,应该声明NXOPEN名称空间Imports NXOpen和Imports System[36],如果程序中使用NXOPEN中封装的UF函数,则还应声明Imports NXOpen.UF。

在main模块中定义四个公共变量,分别取得UG通道和UF通道,再获得当前的工作部件和显示部件,代码如下:

Dim theSession As Session = Session.GetSession() '取得UG通道

Dim theUfSession As NXOpen.UF.UFSession = UFSession.GetUFSession '取得UG通道

Dim workPart As Part = theSession.Parts.Work

Dim displayPart As Part= theSession.Parts.Display

在main(入口函数)函数中首先判断显示部件是否为空,为空则利用建模模板新建一个prt文件,使用commit函数。

Dim nXObject1 As NXObject = fileNew1.Commit()

使用UF函数调用点选择对话框,由用户指定一个点,函数调用代码如下: theUfSession.Ui.PointConstruct(message, response)

显示斜齿轮用户参数表对话框,如表4.1给上图的用户参数一个初始值,在确定按钮单击事件中将所有用户参数文本框的值赋给一个数组edg_len,然后调用主程序中的生成斜齿齿轮的函数CreateModle,并将数组edg_len和点corner作为函数参数传递。使得函数CreateModle[37]根据用户输入的参数建立一个斜齿圆柱齿轮。

在CreateModle函数中,先定义一个变量获得前面建立的参数化斜齿轮模板,代码如下:

basePart1=theSession.Parts.OpenBase(\

and

Settings\\

base_method,

point_tag,

base_pt,

Administrator\\My Documents\\GBT97\\xiechiyuanzhu.prt\, partLoadStatus1)

Dim part1 As Part = CType(basePart1, Part)

再在当前部件文件中将参数化斜齿轮模板作为组件添加进来,放置位置为前面选

28

华 中 科 技 大 学 硕 士 学 位 论 文

择的定位点,并将其设为工作组件,代码如下:

Dim component1 As Assemblies.Component

component1 = workPart.ComponentAssembly.AddComponent(part1, \, \, basePoint1, orientation1, -1, partLoadStatus2)

theSession.Parts.SetWorkComponent(component1, partLoadStatus3)

在斜齿轮部件的表达式中查找用户参数,并将其赋值为对话框指定值,下面以压力角a和模数m为例,代码如下:

Dim expression1 As Expression = CType(workPart.Expressions.FindObject(\), Expression)

Dim unit1 As Unit = CType(workPart.UnitCollection.FindObject(\), Unit) workPart.Expressions.EditWithUnits(expression1, unit1, value(0))

Dim expression2 As Expression = CType(workPart.Expressions.FindObject(\), Expression)

Dim unit2 As Unit = CType(workPart.UnitCollection.FindObject(\), Unit)

workPart.Expressions.EditWithUnits(expression2, unit2, value(1))

更改全部用户参数后需要更新模型,使用DoUpdate函数更新,参数为一个UndoMark[38],如果更新失败将回滚到UndoMark指定的位置,最后删除UndoMark块。

Dim markId1 As Session.UndoMarkId

markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, \Expression Data\)

Dim nErrs2 As Integer

nErrs2 = theSession.UpdateManager.DoUpdate(markId1) theSession.DeleteUndoMark(markId1, \)

29

华 中 科 技 大 学 硕 士 学 位 论 文

4 直齿圆锥齿轮参数化设计子系统的开发

4.1 直齿圆锥齿轮的数学模型

圆锥齿轮机构是用来传递空间两相交轴之间运动和动力的一种齿轮机构,其轮齿分布在截圆锥体上,齿形从大端到小端逐渐变小。由于圆锥齿轮大端和小端参数不同,为计算和测量方便,通常取大端参数为标准值。圆锥齿轮的轮齿有直齿、斜齿和曲齿等多种形式。其中,直齿圆锥齿轮由于其设计、制造和安装均较简便,故应用最为广泛。

1)理论上的轮齿齿形

圆柱齿轮的渐开线是位于一个平面上的,是平面渐开线。直齿锥齿轮适用于两相交轴之间的传动,其轮齿的齿廓曲线是在以两轴交点为顶点的基圆锥上展开的,定位于以锥顶为球心的球面上,故称球面渐开线。两轮的齿廓在球面上啮合是锥齿轮传动的啮合特点。

2)当量圆柱齿轮

由于球面曲线不能展开成平面曲线,这就给圆锥齿轮的设计和制造带来很多困难。为了在工程上应用方便,人们采用一种近似的方法来处理这一问题。为了设计和制造的方便,需要把球面啮合转化为平面啮合,因而引入了背锥概念。背锥与球面相切,并与分度圆锥直角相截,背锥齿形与球面渐开线非常接近,可以把锥齿轮的啮合近似地认为是背锥面上的齿廓啮合,而背锥可以展开成扇形平面,把两扇形齿轮补足为完整的圆柱齿轮后,就可得到齿形与锥齿轮大端实际齿廓相近的一对当量齿轮,其齿数称为锥齿轮的当量齿数Zv[39]。由于当量齿轮是齿形与直齿圆锥齿轮大端齿形十分相近的一个虚拟的直齿圆柱齿轮,所以,引入当量齿轮的概念后,就可以通过当量齿轮的啮合传动来研究圆锥齿轮的啮合传动。

渐开线直齿圆锥齿轮的重要的基本参数有:齿数z、分度圆锥角q、模数m、压力角a、齿顶高系数ha、顶隙系数c、变位系数x、齿轮齿宽b,另外一些结构尺寸和内孔键槽数据也是必不可少的重要参数,如表4.1所示。

30

华 中 科 技 大 学 硕 士 学 位 论 文

4.2 直齿圆锥齿轮的全参化建模

圆锥齿轮的轮齿分布在一个圆锥体上,其齿廓曲线为球面渐开线。在现实加工设计中,由于球面无法展开成平面,致使圆锥齿轮的设计计算产生了很多困难,其设计和制造都是用与球面渐开线非常接近的锥面渐开线来代替球面渐开线。这个锥面所在的圆锥就是圆锥齿轮在大端处的背锥。将背锥展开成扇形齿轮并补足为完整的圆柱齿轮圆,就形成了圆锥齿轮的当量齿轮,当量齿轮的齿数称为当量齿数。当量齿轮的模数与圆锥齿轮大端模数相等。所以直齿圆锥齿轮的大端齿形近似地用当量齿轮(直齿圆柱齿轮)的齿形代替。

表4.1 渐开线直齿圆锥齿轮参数表

名称 代号 计算公式 模数 m 2.5(用户输入) 齿数 z 20(用户输入) 分度圆锥角 q 60(用户输入) 齿顶高系数 ha 1(用户输入) 顶隙系数 c 0.25(用户输入) 压力角 a 20(用户输入) 齿宽 b 20(用户输入) 变位系数 x 0.1(用户输入) 锥距 R R=(m*z/2)/sin(q) 分度圆直径 d d=m*z

齿顶圆直径 da da=m*(z+2*ha+x) 齿根圆直径 df df=m*(z-2*ha-2*c+x) 当量齿轮齿数 zv zv=z/cos(q) 当量齿轮分度圆直径 dv dv=d/cos(q) 当量齿轮基圆直径 dvb dvb=dv*cos(a) 当量齿轮齿顶圆直径 dva dva=dv+m*(2*ha+x) 当量齿轮齿根圆直径 dvf dvf=dv-m*(2*ha+2*c-x) 内孔直径 d4 10(用户输入) 直径 d1 34(用户输入) 直径 d2 22(用户输入) 轴直径 d3 18(用户输入) 键槽宽 b1 4(用户输入) 键槽深 b2 11(用户输入)

31

华 中 科 技 大 学 硕 士 学 位 论 文

通过特征分析,结合UG的建模功能,可知直齿圆锥齿轮建模过程中主要有以下难点需要解决:(1)当量齿轮轮廓线的精确绘制;(2)渐开线轮齿曲面的形成;(3)锥齿轮的最终成型。

从整个设计过程看,锥面渐开线是锥齿轮的主要特征,也是绘制锥齿轮的关键所在,它的完成精度将影响着齿轮建模的准确性。具体的解决过程就是,首先在背锥锥面展开的平面上绘制当量齿轮上的渐开线,然后由当量齿轮上的渐开线所在的展开面通过缠绕在背锥上得到大端锥面渐开线的[40]。

1)绘制当量齿轮轮齿的轮廓线

背锥的底平面直径为锥齿轮大端齿顶圆直径,锥顶半角跟圆锥齿轮分度圆锥角互余。在XC-ZC平面上建立背锥草图,围绕旋转轴旋转360度得到的锥面就是锥齿轮的背锥,如图4.1所示。

图4.1 锥齿轮的背锥 图4.2 当量齿轮齿槽渐开线

当量齿轮的轮廓线是在背锥锥面展开的平面(X-Y)上。假设背锥锥面被沿x轴的母线展开,则锥底圆展开得到的圆弧所在圆的半径就是背锥母线的长度,这个圆是当量齿轮的齿顶圆,展开得到的平面就是当量齿轮的端面。

背锥上齿廓渐开线是按照当量齿轮的参数生成的。因此,由前文渐开线方程,当量齿轮齿形渐开线方程为:

32

华 中 科 技 大 学 硕 士 学 位 论 文

xt=(dvb/2)*cos(qi) +(dvb/2)*qi*u*sin(qi)

yt=(dvb/2)*sin(qi) –(dvb/2)*qi*u*cos(qi) (4-1) zt=b*t

式中:

qi为滚动角,取值范围为0-90度;

u为单位转换值,将角度值转换为弧度值; dvb为当量齿轮基圆直径。

生成的渐开线为如图4.2中的渐开线1,起点在x轴上。再通过矩阵变换得到关于x轴对称的渐开线2和渐开线3,此两条渐开线2和3是当量齿轮一个齿槽的轮廓线,这样后面进行缠绕时才能得到正确的大端端面渐开线。下面的公式为进行矩阵变换后获得的渐开线2和3的参数方程。

xt1=xt*cos(th/2)-yt*sin(th/2)

yt1= xt*sin(th/2)+yt*cos(th/2) (4-2) zt1=b*t

xt2=xt1*cos(-th)+yt1*sin(-th)

yt2=xt1*sin(-th)-yt1*cos(-th) (4-3) zt2=b*t

在UG表达式中输入渐开线方程,使用Law Curve的By Equation方式,以坐标原点为基准点插入渐开线,就绘制出当量齿轮一个齿槽的轮廓线了。

建立如图4.3所示的草图,以当量齿轮齿顶圆直径、齿根圆直径和齿根圆直径减去4为直径值做圆,并将两条渐开线沿切线方向延伸到直径为齿根圆直径减去4的圆上,为下一步操作做准备。大端锥面渐开线是由当量齿轮上的渐开线所在端面通过缠绕在背锥上得到的,利用UG中曲线操作的缠绕功能来缠绕,缠绕面为背锥,缠绕平面为当量齿轮上的渐开线所在的X-Y平面,缠绕曲线为两条延长之后的渐开线,得到如图4.4所示的锥面轮廓线。在UG中可以非常精确地完成缠绕操作,所以设计精度相对得到保证。

33

华 中 科 技 大 学 硕 士 学 位 论 文

图4.3 草图 图4.4 缠绕在背锥上的大端轮廓线

2)锥齿曲面的生成

UG中无法直接生成零件实体时,常用的方法是先做出零件外表面的曲面,然后通过此表面对零件坯胎进行剪切来得到零件实体。这一步生成锥齿面就是此目的。

截取齿顶圆和齿根圆的一部分做成一个线框,并将其缠绕在背锥上。然后连接锥顶和锥面齿顶圆上的三点得到三条引导线后,利用UG的自由曲面特征中三条引导线扫描功能,以背锥上缠绕获得的线框曲线为截面线,扫描出锥形四边面,如图4.5所示。再利用背锥上缠绕获得的线框曲线为边界修剪背锥曲面,线框内部为保留区域,如图4.6所示。将修剪得到的曲面和扫描得到的锥形四边面缝合获得图4.7所示的实体。

使用UG的自由曲面特征中的扫描功能生成两个锥齿渐开线曲面,截面线为缠绕在背锥上的轮廓渐开线,引导线为三条引导线,如图4.5所示。以刚生成的两个渐开线曲面裁剪实体得到一个齿槽实体,如图4.8所示。

34

华 中 科 技 大 学 硕 士 学 位 论 文

图4.5 扫描面 图4.6 裁剪曲面 图4.7 缝合 图4.8 裁剪实体

3)锥齿轮的生成

单个齿槽实体需要和锥齿轮坯体做布尔求差运算来生成具有一个齿槽的零件实体,该零件坯体具有典型的旋转特征,可以绘制草图并旋转完成。

按照用户交互输入的结构尺寸和内孔尺寸,绘制大端和小端草图,如图4.9所示。其安放位置与圆锥齿轮曲面同轴,大端重合。围绕锥齿面中心轴旋转草图,得到如图4.10所示坯体。

图4.9 内部草图 图4.10 齿轮坯体

35

华 中 科 技 大 学 硕 士 学 位 论 文

将锥齿轮坯体和单个齿槽实体做布尔求差运算,生成具有一个齿槽的零件实体,如图4.11所示。使用直接建模中的图样面功能,制作齿槽两个侧面和底面的圆形图样,数量为齿数z,角度为360/z,生成圆锥齿轮所有轮齿,如图4.12所示。最后根据用户输入的键槽数据生成内孔键槽,从而得到完整的直齿圆锥齿轮。

图4.11 一个齿槽的齿轮坯体 图4.12 生成全部轮齿

36

华 中 科 技 大 学 硕 士 学 位 论 文

4.3 子系统应用程序设计

锥齿轮的子系统应用程序与斜齿轮的子系统应用程序类似,只是锥齿轮的用户参数有部分不同。因此锥齿轮的用户参数输入对话框与主程序中部分表达式的更改需要重新编辑,其中锥齿轮的用户参数表如下图4.13所示:

图4.13 直齿圆锥齿轮用户参数表

37

华 中 科 技 大 学 硕 士 学 位 论 文

5 总结及展望

5.1 总结

渐开线齿轮机构是现代机械中应用的非常广泛的一种传动机构。它可以用来传递空间任意两轴间的运动和力,而且传动准确、平稳、机械效率高、使用寿命长和工作可靠,但渐开线齿轮的结构比较复杂,难于造型和加工。为了实现快速、精准的造型,本文使用UG/NXOpen等二次开发工具,以各种渐开线齿轮的数学模型为理论依据,实现了渐开线齿轮的三维参数化造型。本系统的实现保证了渐开线齿轮造型的精确性和快速性,具有一定的实用价值,并为后续工作奠定了一定的基础。

本文通过对齿轮啮合原理进行研究,建立齿轮的数学模型,实现了直齿圆柱齿轮、斜齿圆柱齿轮和锥齿圆柱齿轮的全参数化造型,得出以下成果和结论:

(1)基于平面渐开线的形成原理,建立渐开线数学模型,实现渐开线直齿轮、斜齿轮及直齿锥齿轮的当量圆柱齿轮的齿廓造型。

(2)在建立直齿圆柱齿轮、斜齿圆柱齿轮和锥齿圆柱齿轮的数学模型的基础上,实现了各齿轮的三维参数化造型,为其它类型齿轮的参数化造型提供了有益的参考,具有一定的学术研究和实际应用价值。

(3)UG/NXOpen二次开发模块是UG软件新一代的二次开发工具集,利用该模块可对UG系统进行用户化开发,满足用户进行二次开发的需求。本文深入研究了UG二次开发的各种方法,并熟练运用UG/NXOpen开发工具,为齿轮参数化设计提供技术支持。

5.2 展望

渐开线齿轮三维CAD系统是作者基于实用化和专业化开发的一个专用系统,以提高工程技术人员的齿轮设计效率。但仅靠作者目前所做的这些工作,是远远不够的,仍然需要进一步修正、充实和完善。

(1)齿轮的齿廓曲线的类型很多,在本论文中只实现了各种渐开线齿轮的参数

38

华 中 科 技 大 学 硕 士 学 位 论 文

化造型,为了满足实际生产中多样化的需求,还需要加入圆弧、摆线等齿廓曲线的齿轮参数化造型模块。

(2)在绘制齿廓曲线时,暂没有考虑渐开线曲线和齿根圆之间的过渡曲线。可以使用多种方法来创建过渡曲线,常见的过渡方式有:圆弧过渡、直线和圆弧相结合的过渡方式以及考虑实际加工情况,根据选用刀具和加工方式确定的过渡方式。

39

华 中 科 技 大 学 硕 士 学 位 论 文

致 谢

在本文完成之际,首先向我的导师曹树平教授致以最衷心的感谢!导师渊博的科学知识、深厚的学术造诣、敏锐的洞察力、严谨的治学态度、诲人不倦的工作作风和一丝不苟的敬业精神给我留下了深刻的印象,是我学习的榜样。

感谢学习期间给予我鼓励和帮助的华中科技大学机械学院的各位老师,是他们给我提供了良好的学习条件和实验条件,并得到他们悉心培养和指导。

感谢工作单位的领导和同事们的鼓励、支持和帮助,让在职学习的我能够专心于自己的学业。

最后感谢评阅和出席硕士论文答辩会的各位专家、教授,感谢你们在百忙的工作中给予的指导。

40

华 中 科 技 大 学 硕 士 学 位 论 文

参考文献

[1]

宋晓华,周明安. 基于UG/Open API 的齿轮模块开发. 机械研究与应用,2004(12):111-112 [2]

韩媛. 基于UG二次开发的车用活塞组CAD系统. 哈尔滨:东北林业大学, 2007 [3]

徐雪松,毕凤荣,西洪杰. 基于UG的渐开线斜齿轮参数化建模研究. 机械设计与制造, 2003(6):47-48 [4]

袁蔚,陈拂晓,郭俊卿. 二次开发UG中标准件库的建立. 河南科技大学学报(自然科学版),2005(6):19-22 [5]

吴利霞,王飞. 基于UG二次开发的齿轮库设计. 制造业信息化,2008(9):148-149 [6]

秦建旭,贺敬良. 基于UG的锥齿轮参数化精确建模的探讨. 计算机应用技术,2008(11):29-32 [7]

金建国,包晔,缪永伟. 曲线参数化技术研究与分析. 浙江工业大学学报,2003 (5):580-585 [8] [9]

刘洪丽. 基于UG二次开发的弧齿锥齿轮参数化造型. 锦州:辽宁工学院, 2007 李峰. 基于UG的摩托车ABS_防抱死控制器_参数化设计的研究. 南京:南京理工大学, 2006

[10] 王峰,俞新陆. 产品级三维参数化设计系统的研究与开发. 计算机辅助设计与

图形学学报,2001(11):1012-1018

[11] WE Eder. Design modeling a design science approach. Journal of Engineering

Design,1998(4):353-371

[12] Ventura Rick J,Mignolet Marc P,Kulkarni Harihar T. “Good” parts-“Bad” Parts

discrimination. An ARX modeling approach. Proc SPIE Int Soc Opt Eng,2002(2):1279-1285

[13] Hoffmann C M,Joan-Arroyo R. On user defined features. Computer Aided

41

华 中 科 技 大 学 硕 士 学 位 论 文

Design,1998(5):30

[14] R Ander,R Mendgen. Modeling with constraints Theoretical foundation and

application. Computer Aided Design,1997,3,28

[15] 安会民,刘美莲. 基于参数化特征造型系统的草图尺寸标注的实现. 北京轻工

业学院学报,2000 (3):6-10

[16] 游安弼. 利用Java二次开发UG NX. CAD/CAM与制造业信息化,2006(9):

59-61

[17] 杨建宇,谢刚,周兵. UG 二次开发在蜗轮三维参数化建模中的应用. 计算机

应用技术,2005(4):41-43

[18] 李继豪,崇凯. 关于UG软件二次开发的研究. 机电产品开发与创新,2004(6):

41-43

[19] 王磊,李浙昆,谭毅等. UG/Open API对UG二次开发技术研究. 机电产品开

发与创新,2006 (7):105-206

[20] 宁汝新,徐弘山. 机械制造中的CAD/CAM技术. 北京:北京理工大学出版社,

1991

[21] 刘敏. 圆柱齿轮传动CAD系统设计与开发. 沈阳:东北大学,2003

[22] 黄勇. UG二次开发与数据库应用基础与典型范例. 北京:电子工业出版社,

2008

[23] 董正卫,田立中,付宜利. UG/OPEN API编程基础. 北京:清华大学出版社,

2002

[24] S Singhal and J Sharma. Friction and wear processes in piston rings. Tribology

International,1983,16(1):43-49

[25] 吴家洲,吴波,杨叔子. UG软件的二次开发. 精密制造与自动化,2002(l):29-31 [26] Zhiwei Yu,Xiaolei Xu, Hongxin Ding. Failure analysis of a diesel engine piston

pin. Engineering Failure Analysis,2007,14(1):110-117

[27] 董玉德,谭建荣,赵韩. 基于约束参数化的设计技术研究现状分析. 中国图象

图形学报,2002 (6):533-534

[28] 孟广军,张明,王安敏. UG软件的用户界面开发技术. 制造技术与机床,

2004(5):39-42

42

华 中 科 技 大 学 硕 士 学 位 论 文

[29] H Gao,K Zhao,Y Lu. Development of 3-D Parameterized Design System for

Involute Gear Parts. Materials Science Forum,2004:230-233

[30] F Rao,X Wang,W Zhang,Y Zhong. Automatic generation of a parameterized finite

element model for hypoid gears. The International Conference on Manufacturing Automation,2004:263-270

[31] X Guo,R Li ,C Lin,Y Qin,R Balendra. Development of an Integrated

CAD/CAM system for design and manufacture of spiral bevel and hypoid gears. Seventeenth National Conference on Manufacturing Research,2001:231-236 [32] J Cecil. Computer-Aided Fixture Design-A Review and Future Trends. The

International Journal of Advanced Manufacturing Technology,2001 (11):790-793 [33] Robert Light,David Gossard. Modification of geometric models through

variational geometry. Computer Aided Design,1982(4):209-214

[34] Suzuki H,Ando H,Kimura F. Geometric constraints and reasoning for geometrical

CAD systems. Computers&Graphics,1990 (2):211-224

[35] 汤廷孝,廖文和,黄翔. 产品级参数化建模技术研究. 电气技术与自动化,

2005(5):61-64

[36] 周信,张秀华,冯志友等. 齿轮类零件参数化CAD研究现状分析. 佳木斯大

学学报,2006(2):222-225

[37] 王贤昆. 机械CAD/CAM技术应用与开发. 机械工业出版社,2000 [38] 张策. 机械原理与机械设计. 北京:机械工业出版社,2004

[39] 马颂得. 中国制造业信息化的现状与发展. 信息化建设,2006(2):16-20 [40] 吴宗泽. 机械零件设计手册. 北京:机械工业出版,2004

43