APP下载

基于CATIA二次开发的汽车变速箱齿轮设计

2018-05-28王科银

汽车实用技术 2018年9期
关键词:二次开发变速箱齿轮

王科银

(湖北汽车工业学院汽车工程学院,湖北 十堰 442002)

前言

汽车变速箱中主要应用的齿轮为直齿圆柱齿轮和斜齿圆柱齿轮。一方面无论是直齿轮还是斜齿轮的建模过程都比较复杂,对于很多设计者来说很难掌握齿轮的三维建模方法。另一方面,变速箱中需要用到很多不同齿数、模数、宽度等参数的齿轮,这就要求设计者对不同的齿轮进行建模,造成了大量重复性的劳动,降低了设计效率。因此为了提高变速箱中齿轮的建模效率从而缩短变速箱的设计开发周期,开发变速箱常用齿轮生成程序就有了很重要的使用价值。CATIA V5是法国DASSAULT公司开发的基于Windows操作系统的高端CAD/CAM/CAE软件,它涵盖了产品开发的全过程,提供了完善无缝的集成环境。[1]作为一款成熟的三维软件,CATIA V5为用户提供了二次开发接口和开放式的内部命令集合,用户可以应用不同的开发方式对CATIA V5进行不同程度的开发来满足应用需求。本研究选用CATIA V5做为开发软件,采用VB6.0做为开发工具,实现了汽车变速箱常用齿轮的参数化设计,让用户只需要在交互界面输入参数便可以快速生成三维几何体。

1 CATIA二次开发简介

任何优秀的软甲,其功能也不可能满足所有领域、所有用户的应用习惯和应用需求。为此,CATIA V5为用户提供了二次开发接口和开放式的内部命令集合,给用户的二次开发带来了方便。作为一款强大的工程软件,CATIA V5为用户提供了多种二次开发接口,其中包括开放的基于构件的应用编程接口(CAA)和自动化对象编程(V5 Automation)。[2]

1.1 CAA简介

CAA是组件应用架构(Component Application Architec-ture)的简称。CAA的实现,是通过提供的快速应用研发环境 RADE(Rapid Application Development Environment)和不同的API(Application Programming Interface)接口程序来实现的。CATIA本身是按照组件模型建立起来的,用户可以通过开发自己的 CAA组件,对 DASSAULT SYSTEMES的CATIA V5进行扩展;也可以把用户自己开发的CAA组件结合起来,实现用户自定义应用。CAA可以进行从简单到复杂的二次开发工作,而且和原系统的结合非常紧密。

1.2 V5 Automation简介

Automation技术是建立在 COM 基础之上,由 OLE Automation(Object Linking and Embedding Automation)发展而来的。Automation的核心技术是允许一个应用程序操作另一个应用程序。Automation技术并不是直接获取及处理数据,而是间接地通过暴露的对象和属性,利用对象的方法和属性获取、设置及处理数据。Automation技术包括两个方面:server和client。Automation server是一个实现了IDispatch接口的COM组件,而Automation client是一个通过IDispatch接口与自动化服务器进行通信的COM客户。

CAA和V5 Automation两种二次开发手段各有特点,利用CAA完全可以实现Dassault Systemes应用的深层次开发,但是,由于Dassault Systemes应用本身的复杂性和CAA 所涉及的深层次内容,利用 CAA 进行二次开发必然具有一定的复杂性和难度。相对于CAA来说使用Automation开发较为简单,具有开发周期短、稳定性好等特点。本研究是利用Automation技术对CATIA V5进行二次开发,在VB程序中访问CATIA,实现三维模型的自动创建。

2 设计程序的开发过程

图1 VB对CATIA开发过程

使用VB6.0对CATIA进行二次开发的时候,可以逐句编写程序,这种方式不但费时费力而且容易出现编写错误。为了简化程序的编写过程提高工作效率,往往需要利用CATIA自身提供的宏录制功能来快速的获取VB程序代码。之后把录制完成的脚本文件导入VB中并对其进行适当的修改即可完成程序的编写。因为斜齿圆柱齿轮和直齿圆柱齿轮开发过程类似,只是斜齿轮比直齿轮多了一个螺旋角参数,故本文以直齿圆柱齿轮为例探讨开发过程。用VB对CATIA进行开发的过程如图1所示。

2.1 基于CATIA的齿轮参数化建模及宏录制

直齿圆柱齿轮主要参数如表1和表2所示:

表1 直齿轮基本参数

表2 直齿轮计算所得参数

表1中的参数为直齿轮的基本参数,也就是在齿轮设计过程中设计所得参数,表2中的参数为直齿轮计算参数,该部分参数是根据表2中的参数计算得来的。齿轮的整个建模过程基于参数化建模理念,在创建模型的特征之前,要在CATIA中输入齿轮的参数。在输入基本参数时要给每个参数赋初值,在输入计算所得参数时,只需输入公式便可根据基本参数自动计算出参数的具体数值。参数输入完成之后便是运用尺寸驱动法对齿轮进行特征建模。需要注意的是在CATIA新建零件之前要启动宏录制功能,以获得整个齿轮建模过程的宏文件。建模结束,直接在CATIA中运行所录制的宏,如果所录制的宏能正确运行,并生成正确的三维模型,则所录制的宏能够用于接下来的参数提取操作,如果所录制的宏在运行过程中出现错误,必须打开所录制的宏对提示运行出错的语句进行修改,直到能够正确运行为止。在宏的运行过程中有时可能是建模方法的原因,导致所录制的宏不能正确运行,这时就需要改进建模方法,重新录制宏。

2.2 齿轮参数提取

对于直齿圆柱齿轮,需要提取的参数是表3中齿轮的所有基本参数。在保证零件的拓扑结构不变的情况下,直齿圆柱齿轮都是由这些基本参数直接或间接驱动的,所以需要提取出这些基本参数,为后续的程序编写奠定基础。例如,所录制的宏中,对于齿轮模数的定义语句是:

Set parameters1 = part1.Parameters

Set Length1 = parameters1.CreateDimension("", "LENGT H", 0#)

Length1.Rename "m"

Length1.Value = 2.5

语句Length1.Value = 2.5是对模数赋初值2.5的语句,这就需要用可视化界面中定义模数的变量替换 2.5赋值给语句Length1.Value来达到尺寸驱动的目的。其他变量的提取在此不一一赘述。

2.3 VB6.0可视化界面定制及程序编写

在VB6.0中在编写程序之前,首先要定制可视化界面。友好的人机交互界面,可以让用户更简单、更快捷的操作软件。图2为软件登陆界面,该界面是一个MDI窗体,窗体中显示的是程序的名称和版本信息,并且在窗体上添加了弹出式菜单栏。为了保护软件的版权,添加了登陆菜单,使用软件之前要求用户输入登陆密码方可使用。“创建齿轮”菜单下面设置了“直齿轮创建”和“斜齿轮创建”两个子菜单,直齿轮和斜齿轮参数输入界面分别如图2和图3所示。对于模数 m、压力角α、齿顶高系数hax、顶隙系数cx四个参数用ComboBox实现参数的选择,用户可以选择《齿轮设计手册》中的规定数值,其他参数则用TextBox供用户手动输入数值。

图2 程序登陆界面

图3 直齿轮参数输入界面

图4 斜齿轮参数输入界面

人机交互界面定制完成之后,就是程序语句的编写,程序语句的正确编写是实现软件功能的关键。编写的程序能够通过用户输入的参数,进行数据传递,从而在CATIA运行环境中生成三维模型。

程序编写完成之后要进行调试,直到程序能够正确运行并且能够生成正确的三维模型。最后把工程文件生成EXE可执行文件,该文件就可以在其他装有CATIA软件的计算机上独立运行。

3 应用实例

登陆“变速箱齿轮生成程序”进入直齿轮创建界面,在界面中输入图5所示参数,点击“创建齿轮”按钮,程序便可自动打开CATIA软件并且在CATIA运行环境中生成如图如图6所示的齿轮三维模型。查看三维模型的各个参数,和在交互界面输入的参数一致。对于斜齿轮创建同样可以得到精确的三维模型。

图5 直齿轮参数输入

图6 直齿轮三维模型

4 结语

本研究通过VB6.0编程,开发了友好的可视化界面,调用CATIA API函数驱动CATIA,完成了汽车变速箱中渐开线直齿圆柱齿轮和斜齿圆柱齿轮的参数化建模。把两种类型的齿轮参数输入界面集于同一系统,使用户在变速箱齿轮设计时只需要通过下拉菜单选择所要设计的齿轮类型便可弹出齿轮的参数输入界面,由此把繁杂的齿轮建模过程变成简单的参数输入,同样可以得到精确的三维模型。

参考文献

[1] 李学志,李若宋,方戈亮.CATIA 实用教程[M].北京:清华大学出版社,2014.

[2] 胡挺,吴立军.CATIA 二次开发技术基础[M].北京:电子工业出版社,2004.

[3] 罗朝胜.Visual Basic 6.0程序设计教程[M].北京:人民邮电出版社.2005.

[4] 成大先.机械设计手册[M].北京:化学工业出版社,2004.

[5] 郭越.基于 CATIA 的渐开线齿轮参数化精确建模及应用[J].延边大学农学学报,2008,30(2):145-147.

猜你喜欢

二次开发变速箱齿轮
AutoCAD 与PDMS 二次开发在三维复杂形体设计建模上的应用
基于新型发动机的自动变速箱开发策略
关于齿轮的有趣问答
例谈对高中数学教材中习题的二次开发
你找到齿轮了吗?
异性齿轮大赏
浅谈CAD软件二次开发的方法及工具
骑车上班日
带你走近一个你不知道的自动变速箱
例谈课本习题的“二次开发”