miueoji 发表于 2013-5-21 12:03:57

SolidWorks中的非圆齿轮实体建模方法研究 1

    本文利用SolidWorks软件开放性体系结构,通过对软件的二次开发实现了非圆齿轮的参数化三维建模。1 非圆齿轮设计及方程
    1.1 非圆齿轮与圆齿轮的不同之处
    机械产品中的圆柱齿轮、圆锥齿轮等圆齿轮,其每个齿形相同且均匀分布在圆周上,齿顶、齿根分别位于齿顶圆周和齿根圆周上。齿轮的计算机辅助设计,可利用软件的镜像、阵列等功能实现。
    非圆齿轮的齿廓形成及设计,与圆齿轮有很多相似之处,如齿数、模数、齿顶高、齿根高等参数设计。但又因为它的节曲线不是圆,因此不同位置的轮齿不尽相同,如图l所示,非圆齿轮的节曲线方程为r=r(θ),其齿顶、齿根、齿廓等部位的计算与圆齿轮有很大的区别。为此在进行非圆齿轮设计是,将每个齿形单元分成齿廓ab、cd,齿顶bc,齿根de四部分,分别计算设计,然后再利用绘图程序绘制齿形图。http://solidworks.e-works.net.cn/NewsImages/129663430511406250.jpg
图1 齿形图
    1.2 轮齿在节曲线上的位置
    节曲线封闭的非圆齿轮,在设计时要保证轮齿在节曲线上的均匀分布。若要设计齿轮的模数为m,齿数z,则节曲线的周长L应恰好是z个齿距,即应满足条件式 http://solidworks.e-works.net.cn/NewsImages/129663430642968750.jpg       一般情况,设计时随意确定的节曲线参数,是很少能恰好满足上式的。为此,设计者必须通过改变节曲线的某些参数,或者改变齿数、模数等进行反复的计算,直到满足上述要求为止。
   1.3 齿顶与齿根曲线方程
    非圆齿轮的齿顶曲线和齿根曲线理论上是节曲线的法向等距线,它们与节曲线之间的法向距离分别是齿顶高ha、齿根高hf,如图2所示。从节曲线沿法线向外侧量取长度ha,得到A点,它就是齿顶曲线上的一点:沿法线向内侧量取长度hf,得到B点,它就是齿根曲线上的一点。齿顶与齿根曲线方程分别为http://solidworks.e-works.net.cn/NewsImages/129663431132812500.jpg http://solidworks.e-works.net.cn/NewsImages/129663431286093750.jpghttp://solidworks.e-works.net.cn/NewsImages/129663431563125000.jpg
图2 轮齿齿顶齿根计算图    1.4 齿廓曲线方程
    圆齿轮的齿廓是基圆的渐开线,每个轮齿形状相同,而非圆齿轮各个轮齿的齿廓不尽相同,其设计和计算相对要比圆齿轮复杂的多。如图3所示,n为齿廓线上的一点,a为n点的法线与节曲线交点。则由矢量方程式ro=r+an求得n的直角坐标方程为http://solidworks.e-works.net.cn/NewsImages/129663431755000000.jpg分页http://solidworks.e-works.net.cn/NewsImages/129663432145468750.jpg图3 轮齿齿廓计算图
2 非圆齿轮建模程序开发及关键技术
    目前市场上的三维机械CAD软件并没有提供直接生成非圆齿轮的功能,但很多软件为用户提供了开放的二次开发接口,用户可根据自身需要对其进行二次开发,以实现建立机械零件三维模型的目的。本系统采用市场上较为流行的SolidWorks作为二次开发平台,研究非圆齿轮参数化建模的方法。
    SolidWorks软件二次开发是利用支持OLE(对象的连接和嵌入)和COM(组件对象模型)的编程语言作为开发工具,通过调用SolidWorks API(应用程序编程接口)函数,实现与SolidWorks软件相对应的功能。API是一个基于OLE Automation的编程接口,其中包含了许多功能函数,这些函数提供了直接访问三维机械CAD软件的能力,可以被VB、VC等编程语言调用,以实现预期功能。
    2.1 系统开发思路
    本系统通过编写Visual Basic程序来对SolidWorks软件进行二次开发,实现非圆齿轮的参数化三维建模,其基本过程如下:
    (1)在SolidWorks中建立非圆齿轮三维模型
    用SolidWorks创建非圆齿轮三维模型时,应用SolidWorks自带的宏记录功能,把建模的全过程录制成宏文件。对记录所得宏文件,进行编译即可变成能被VB调用的应用程序。找出宏文件中与模型生成有关的关键函数,确定其中的关键常数,将关键常数用变量代替,这样就完成了齿轮三维参数化造型程序。
    (2)应用Visual Basic编制应用程序
    运用VB语言编制应用程序界面,读取界面并录入初始参数,计算出相关参数并输入到齿轮实体生成时形成的宏文件中,编译程序并生成可执行程序供SolidWorks程序调用。运行设计窗口时,点击模块中的“确定”按钮,在SolidWorks环境下进行齿轮三维实体建模,即可得到所需要的齿轮实体。
    (3)完成可执行应用程序后,使用SolidWorks中的“宏”操作命令将应用程序嵌入SolidWorks中,实现二者的接口。
    (4)进行非圆齿轮参数化建模。
    2.2 非圆齿轮参数化三维建模过程
    2.2.1 齿轮的造型
    用VB开发SolidWorks时,一般是利用宏录制命令在SolidWorks环境中录制SolidWorks的相关操作来获得程序头部和应用程序的代码,并将代码经过适当的修改后放到VB中使用。在应用程序的开发过程中,利用SolidWorks内部的宏功能,将非圆齿轮三维实体创建的全过程经宏录制转换成宏文件,然后对宏进行编辑,形成非圆齿轮的三维参数化造型程序。基本步骤如下:创建新零件—新建宏—录制宏—利用样条曲线等建立草图特征—创建拉伸特征—停止宏—编辑宏文件(*.swp)。
    在本例中首先录制一个模数为m=2,齿数为z=40,偏心率为e=0.45的一阶椭圆齿轮实体创建全过程的宏文件。然后编辑该宏文件,把关键常数用变量代替,生成齿轮的三维参数化造型程序。造型过程需要利用非圆齿形的齿廓曲线方程式,计算各点的坐标值并用SolidWorks软件中的样条曲线功能生成一个完整的齿廓形状,如图4所示。http://solidworks.e-works.net.cn/NewsImages/129663433171718750.jpg
图4 齿轮齿廓形状    2.2.2 齿轮参数的定义与计算
    程序中首先定义非圆齿轮的各项参数,并据齿轮计算公式进行计算,得出绘制齿轮所需参数。
    Dim m As single//定义齿轮模数
    Dim z As Integer//定义齿轮齿数
    Dim e As single //定义椭圆齿轮偏心率
    Dim n As Integer//定义椭圆齿轮阶数
    ......
    xg=r*cos(seita)//计算非圆齿轮齿廓点
    yg=r*sin(seita)
    xr=xg+s*cos(alfaN)*cos(q)
    yr=yg+s*cos(alfaN)*sin(q)
    beita=bei(xr,yr)
    ra=A*(1-e*e)/(1-e*cos(N*beita))+M分页l=sqrt(xr*xr+yr*yr)
    ......
    2.2.3 VB程序与SolidWorks接口的实现
    调用VB与SolidWorks的开发接口,建立VB与SolidWorks的联系,部分代码如下:
    Dim swApp As Object
    Dim NewPart As Object
    Set swApp=CreatObject(SldWorks.Application)
    swApp=True
    ......
    完成应用程序后,将应用程序嵌入SolidWorks中。使用SolidWorks中的宏操作命令直接调用编译好的可执行程序,其过程如下:选择菜单“工具/宏操作/录制”-停止录制,以文件名称feiyuanchilun.swp.保存宏文件-选择菜单“工具/宏操作/编辑”,把宏文件论证的内容删掉,并输入下面的程序:
    Sub main()
    MyAppID=shell(“D:\feiyuanchilun.exe",1)
    AppActivate MyApplD
    End Sub
    保存并返回到SolidWorks环境。在SolidWorks中指定宏命令的文件位置,并定制工具栏,将所执行的宏操作按钮添加到指定位置,以后在SolidWorks中单击相应的图标就可以直接执行应用程序了。该文来源于三维论坛
页: [1]
查看完整版本: SolidWorks中的非圆齿轮实体建模方法研究 1