齿轮加工的三维动画仿真

  一、引言

  齿轮加工动画仿真是齿轮设计中的重要环节,已有数篇关于该课题的文献。郭晓东采用基于AutoCAD环境的ObjectARX软件包,用C++语言在AutoCAD环境下实现了对锥齿轮切齿过程的仿真;罗庆生在3DSMAX环境中开发了齿轮机构工作动画;冯涓在CAD环境下,用AutoLisp语言建立了范成法加工齿轮的仿真演示程序。

  以上各种方法都有自己的特点,本文用VB对AutoCAD进行二次开发来实现齿轮加工的三维动画仿真,这是因为VB是目前最简捷的Windows软件开发工具兼程序设计语言,能对AutoCAD进行二次开发,可将AutoCAD当成自己程序中的一个图形窗口对其进行打开、绘图等操作,能十分方便地实现齿轮加工的动画仿真。

  二、仿真程序流程图与窗体设计

  常见的齿轮加工方法有仿形法和范成法,范成法又包括齿轮插刀加工法、齿条插刀和齿轮滚刀加工法等。加工直齿圆柱齿轮的仿真程序流程,如图1所示。

图1 仿真程序流程图

  本程序只用一个窗体,用四个文本框接收输入参数:齿数Z、模数m、压力角α和变位系数x,用4个命令框控制子程序,1个命令框取消运行程序。该窗体运行结果如图2所示。

图2 仿真窗体 

  三、 仿真方法

  1. 在VB中连接AutoCAD

  用VB控制AutoCAD,是通过VB的Object技术来控制AutoCAD的对象及其方法和属性的。VB6.0在调用AutoCAD 2000对象时,首先必须在VB中引用该对象库,方法是在VB的“Projects/Preferences”菜单中选择“AutoCADObjectLibrary”。

  程序设计伊始,需定义一个AutoCAD对象变量GearCAD,通过该变量可以访问AutoCAD的下级对象,定义方法为:Dim GearCAD As AcadApplication。然后在VB的窗体代码中添加如下代码,即可在程序运行时启动AutoCAD:

  Private Sub Form-Load()

  On Error Resume Next

  Set GearCAD=CreatObject(“AutoCADApplication”)

  GearCAD.Visible=True(显示AutoCAD窗体)

  End Sub

  在运行时要确保硬盘中已安装了AutoCAD 2000。

  2. 设置视点和着色方式

  三维动画演示需设置三维视点,用如下语句实现:

  GearCAD.Activedocument. ActiveViewport.Direction=NewDirection

 GearCAD.Activedocument.ActiveViewport = GearCAD.Active

document.Active Viewport

  其中,NewDirection(0 To 2)为双精度型一维数组变量,存放视点的三维坐标。

  用SendCommand方法实现图形着色,本程序中使用Gouraud着色方式,可使三维模型表面光滑,富有逼真的质感。其代码如下:

  GearCAD.Activedocument.Send Command“_Shademode”+vbCr+“_G”+vbCr。

  3. 齿轮毛坯的生成

  在程序中先根据输入的参数计算出齿轮的齿根圆半径Rf、齿顶圆半径Ra、分度圆半径R、基圆半径Rb、轮坯厚度Height和轴孔半径r等。再利用AddCylinder方法分别生成一个以Ra为半径的一个圆柱体Gear3d和一个以r为半径的圆柱体Hole,再用布尔减(Boolean acSubtraction)方法生成齿轮中间的轴孔。

  4.刀具的生成

  以齿条刀具为例,刀具模型形状和刀具实体创建完毕时,分别如图3和图4所示。

图3 齿条刀具模型

图4 仿真轮坯和齿条刀具

  具体创建步骤如下:

  (1)过0~5点,用Addlight weightpolyline方法创建轻便多义线Curve(0);

  (2)镜像(Mirror)刀具左部多义线Curve(0),得到右部线段Curve(1);

  (3)用Addregion方法得到刀具截面面域Tool;

  (4)用Addextrudedsolid方法将刀具面域拉伸得到三维刀具实体Tool3d;

  (5)将单齿刀具实体Tool3d进行单行阵列(Arrayrectangular),得到多个齿Tools;再将多个齿Tools进行布尔加运算(Boolean Acunio)得到齿条刀具Tool3d;

  (6)将齿条刀具Tool3d一端平移至与轮坯刚好相遇,准备切齿。平移尺寸根据变位系数x、模数m等参数算出。

  5. 齿轮加工三维动画制作

  仍以齿条插刀为例,动画制作主要步骤及代码如下:

  (1)复制刀具Tool3d得到Tool3dcopy,用轮坯Gear3d与复制所得刀具Tool3dcopy的布尔减(Boolean acSubtraction),完成刀具对齿轮毛坯的切削;

  (2)刀具向前水平移动,每次移动距离(πm/n)mm,n为正整数;刀具沿齿轮毛坯上下移动(用Move方法实现)切制出齿轮厚度方向齿形;

  (3)轮坯Gear3d绕自身轴线旋转,每次转动[2π/(nz)]弧度。

  图5和图6分别为齿条插刀和仿形铣齿的动画仿真情形。

图5 齿条插刀动画仿真

图6 仿形铣齿动画仿真

  四、应用实例

  运行本程序时,只要输入齿数Z等参数,就可以模拟各种齿轮加工过程。例如,改变齿数Z或变位系数x可以观察根切过程及变位齿轮的加工。表1是仿真所得的标准齿轮、发生了根切的齿轮及正变位齿轮的对比。

  五、结论

  通过VB对AutoCAD进行二次开发,实现了VB界面对AutoCAD中对象的控制,既发挥了VB在科学计算、数据处理及界面友好和事件驱动方面的优势,又利用了AutoCAD的精确绘图功能。我们借此方便地实现了齿轮加工的三维动画仿真,这在科研和教学方面有较大的实用性。

作者:西部车床,如若转载,请注明出处:https://www.lathe.cc/2022/05/7693.html