APP下载

基于SolidWorks软件二次开发的齿轮零件参数化设计*

2018-05-29目登臣孙宝寿黄吉平刘韶华刘忠洋

机械制造 2018年11期
关键词:齿廓渐开线窗体

□ 目登臣□ 孙宝寿□ 黄吉平□ 刘韶华□ 刘忠洋

1.宁波大学 机械工程与力学学院 浙江宁波315211

2.宁波镇海减变速机制造有限公司 浙江宁波315211

随着三维造型技术的快速发展,越来越多的制造型企业运用各种三维造型软件进行产品的前期设计和后期的宣传展示。SolidWorks作为重要的实体建模软件,以其优异的设计性能、易用性和创新性等优点受到广大工程技术人员的青睐。而且,SolidWorks具有良好的兼容性和开放性,技术人员可以使用高级编程语言调用API(Application Program Interface,应用程序编程接口)函数对其进行二次开发,实现某些复杂零件的快速设计,极大地提高了产品设计效率和质量。

渐开线齿轮传动是目前各种机械传动过程中应用最为广泛的一种传动机构。但是,在实际设计工作中渐开线齿轮的精准造型是一大难点,主要在于齿廓渐开线草图的绘制。部分三维造型软件是可以通过繁琐的计算和一系列复杂的命令,利用圆弧或直线拟合渐开线或齿根过渡曲线,但这样就造成齿廓精度较低,不利于后续的齿轮动态仿真及有限元分析。也有工程技术人员使用Visual Basic 6.0或Visual C++开发工具进行过齿轮的参数化设计,但是大部分实现的功能比较单一,对齿根过渡圆角的处理多选用经验公式计算[1-3]。为此,笔者探讨了在Visual Studio 2013集成开发环境下利用C#6.0高级编程语言对SolidWorks进行进程外二次开发,实现了整个齿轮齿廓曲线的精确绘制,从而达到渐开线齿轮类零件的全参数化三维精确造型的目的。

1 SolidWorks二次开发基本原理和方法

1.1 开发原理和API对象模型

SolidWorks具有良好的开放性,提供了开放的数据结构和便捷的二次开发环境,通过COM(Component Object Model,组件对象模型)或OLE(object Linking and Embeding,对象连接与嵌入)技术为开发者提供了强大的二次开发接口,即SolidWorks API。其中包涵了SolidWorks操作的所有功能函数,开发者只需在编程时调用所需的API函数即可开发出企业适用的相关软件,实现SolidWorks功能的拓展。只要支持COM/OLE编程的开发工具语言如VC++、VB.Net、C#等均可用于SolidWorks的二次开发[4]。

用户在对SolidWorks软件进行二次开发时,首先要得到SolidWorks API对象的接口,才能使用接口所提供的方法。所以必须先了解API的对象模型,如图1所示,SolidWorks API是树形层次结构,每一层包含若干对象,每个对象又都有自己的属性和方法。

▲图1 SolidWorks API对象层次结构图

由于SolidWorks提供了几百个API函数,所以开发者不必掌握所有对象的用法,只需在开发过程中先使用宏录制功能把操作过程记录下来,然后确定需要使用哪些方法,再去创建能够连接这些方法的对象。图1中的SolidWorks接口对象是所有SolidWorks API中最高层的对象,它能够直接或间接地访问SolidWorks API中的所有其它子类对象[5]。此参数化设计系统中使用的对象有SolidWorks文件基类、草图点、特征管理、模型视图、草图管理等,利用这些对象中的功能可以完成模型草图的创建、特征的创建以及模型视角的转换等。

1.2 开发思路和方法

笔者采用进程外组件开发方式对SolidWorks 2016进行二次开发,开发的用户程序以*.exe方式独立运行于SolidWorks之外,并驱动SolidWorks完成相应的操作[6]。基本思路是,在开发之前先搭建出系统的整体框架,把整个系统分为界面模块、参数计算模块、齿廓草图绘制和实体造型四个模块进行设计。再对零件模型特征进行分析,确定出最优建模顺序并利用SolidWorks的宏录制功能对建模过程进行记录,从生成的宏程序中找到建模所需的API函数供C#程序调用。开发方法如下。

(1)首先根据齿轮类零件的类型和建模所需的尺寸参数在开发工具Visual Studio 2013中创建用户界面, 再添加引用SolidWorks.Interop.swcommands、SolidWorks.Interop.sldworks和SolidWorks.Interop.swconst三个类库,声明相关对象变量并建立起外部程序和SolidWorks的连接。

(2)然后根据功能要求调用API函数编写不同模块的执行代码,实现主要结构参数的计算,渐开线齿廓和齿根过渡曲线的生成以及零件的实体建模。

(3)最后调试修改完成之后打包发布即可。图2所示是此系统完成齿轮零件建模过程的流程图,其中的关键性步骤是绘制过渡曲线和渐开线,也是整个系统的核心模块。

▲图2 系统流程图

2 人机交互界面UI的设计

根据上述建模思路分析,可知程序运行过程中需要通过人机交互获取到齿轮的相关参数来实现齿轮类零件的快速建模。用户界面作为人机交互的重要载体,在设计时要做到美观大方、简洁易操作。由于不同类型齿轮零件建模所需参数不同,所以采用嵌套二级子窗体的方式来完成不同类型齿轮的参数输入。图3所示是直齿轮造型参数输入主界面,用来输入齿轮零件主体建模所用的参数值。

▲图3 直齿轮基本参数输入界面

其中对直齿轮和斜齿轮建模提供了实心式、齿轴式、腹板式三种结构类型供用户选择,图4(a)~(c)所示是用户选择下拉框中的不同齿轮结构类型时弹出的输入对应参数的子窗体。

2.1 UI界面设计方法

▲图4 不同结构类型参数输入子窗体

在Visual Studio2013的Visual C#选项下单击新建窗体应用程序,首先创建出一个主窗体并重命名为FrmMain,然后把主窗体分割成左右两栏,左栏放置所需的功能按钮,右栏嵌入对应的齿轮主参数输入界面。对于四种齿轮主参数输入UI界面的设置可根据建模所需的参数在窗体上画出相关的控件,比如Button按钮控件、Label标签控件和TextBox文本框控件,并修改各控件的属性值,其中的模数m、齿数z、压力角α、顶高因数ha*、顶隙因数c*的参数输入框设置成Combox下拉框控件,用户既可以直接从下拉列表中选择参数,也可以在文本框中输入相关参数。

2.2 UI界面控制程序

当用户点击工具栏中的按钮时,齿轮主参数输入界面会嵌入到主窗体的右边容器中,实现此功能的部分代码为:

对于如何在主窗体中调用子窗体,并在子窗体中输入相关参数来完成零件的三维建模,就要用到C#中的委托方法,其原理和方法可见参考文献[7]。

3 齿轮零件三维建模

笔者以斜齿轮轴参数化建模为例说明整个零件的造型过程,主要步骤是:首先拉伸出齿坯模型,根据齿根过渡曲线参数方程和渐开线参数方程绘制出渐开线上的若干坐标点,接着利用样条曲线功能依次连接各坐标点完成单侧齿廓的绘制,然后利用旋转、镜像、修剪等命令完成齿槽草图轮廓的绘制,再插入螺旋线作为扫描轨迹,所有草图绘制完成后调用扫描切除函数生成单个齿槽特征,然后使用圆周阵列命令完成整个齿轮的绘制,最后输入轴段的参数完成整个齿轮轴的设计。

3.1 齿根过渡曲线的生成

齿轮齿根过渡曲线虽然不参与啮合过程,但是它的精准成形是计算齿根弯曲强度的重要依据,也是准确进行齿轮有限元分析的必要前提。

齿根过渡曲线实际是齿条型刀具齿顶圆角的圆在齿啮合传动时相对被切齿廓走过轨迹的包络线,即刀具圆角圆心形成的延伸渐开线的等距曲线[8-10],如图5所示。

▲图5 齿条型刀具加工齿轮的齿廓

图5的坐标系中,直线nn为刀具齿顶圆角和过渡曲线接触点的公法线,当刀具圆角与齿根过渡曲线刚开始接触时nn垂直于刀具的齿侧直线并与啮合线重合,此时α′等于齿轮与齿条的分度圆压力角α′,当α′等于π/2时,刀具顶部直线与齿根过渡曲线末端接触,并切出齿根圆弧,所以α′的取值范围是α~π/2。齿根过渡曲线在直角坐标系下的参数方程为:

式中:φ为齿轮转角;α′为nn与刀具加工节线之间的夹角,其取值范围为(α,π/2);a为刀具圆角圆心到加工节线之间的距离;b为刀具圆角圆心到齿槽中线之间的距离;rρ为刀具圆角半径;r为分度圆半径;ha*为齿顶高因数;c*为顶隙因数。

3.2 渐开线齿廓的生成

齿轮齿廓部分的形状是由齿数z、模数m、变位因数x、分度圆压力角α、齿顶高因数ha*和顶隙因数c*等主要参数决定的渐开线曲线。由渐开线齿轮的形成原理,可以得到渐开线齿廓的绘制方法,具体方法就是绘制出渐开线齿廓上的若干坐标点,然后利用SolidWorks的API函数—CreateSpline函数依次连接各坐标点即可绘制出齿廓渐开线[11]。

渐开线上各点直角坐标方程表示为:

为了实现渐开线和过渡曲线的平滑连接并简化程序算法,θi的起始角度和过渡曲线α′的起始角度取相同值,即压力角α的值。

3.3 齿廓草图算法程序

通过式(1)~(4)可编程求出过渡曲线和渐开线段上的若干点坐标,然后使用样条曲线命令通过各个坐标点拟合出单侧齿廓[12],再使用镜像命令做出另一侧齿廓曲线,最后做出齿顶圆和齿根圆并裁剪完成,如图6所示。

▲图6 齿轮齿廓草图

由式(1)~(3)可得到过渡曲线的算法程序如下:

由式(4)可得出绘制渐开线上坐标点的主要程序代码如下:

由于编程时SolidWorks中长度是以米为单位、角度是以弧度为单位计算的,所以在程序中进行值类型的运算时要把相关参数进行单位转换。另外,在调用某个命令函数之前要先定义接口对象,才能获取到对应的方法函数,此处进行了省略。

3.4 生成齿轮零件实体

齿廓草图创建三维实体步骤如下:

(1)插入螺旋线,程序代码如下。

(3)圆周阵列齿槽特征,程序代码如下。

生成的斜齿轮轴实体模型如图8所示,直齿轮和内齿轮的生成过程与斜齿轮类似,只需删除插入螺旋线的代码即可。

对于直齿条的生成相对比较简单,只需根据初始输入值计算出齿条齿廓相关尺寸参数,绘制草图即可,部分程序代码如下:

▲图7 齿槽实体

▲图8 斜齿轮轴三维实体

4 结论

以SolidWorks 2016为开发平台、Visual Studio 2013为开发工具,使用C#编程语言调用API函数实现对SolidWorks的二次开发,构建了一套齿轮类零件的参数化建模系统。

(1)系统操作简单,界面友好并且独立运行于SolidWorks之外,整个建模时间只需数秒钟即可完成,避免同一进程内运行引起的卡顿、崩溃现象,提高了工作效率。

(2)通过对齿廓渐开线和齿根过渡曲线的成形原理的分析,得出整个齿廓草图绘制的核心算法,实现了齿轮类零件的快速精确造型,为后续的运动仿真和有限元分析提供了可靠的三维模型。

猜你喜欢

齿廓渐开线窗体
一种新型的昆虫仿生齿廓设计
基于NURBS理论的渐开线齿轮齿面修复
基于Pro/E的渐开线内花键安装盘参数化设计
用修正渐开线投影法螺旋铣球面宏程序的编制
试谈Access 2007数据库在林业档案管理中的应用
谐波传动双圆弧共轭齿廓的优化设计
基于Qt的多窗体快速并行图形绘制方法研究
渐开线齿廓链轮梳齿刀的设计
六圆弧齿廓螺旋齿轮及其啮合特性
WinCE.net下图形用户界面的开发