本文结合了VB在计算与数据处理方面的优点与AutoCAD在精确绘图方面的优点,采用Visual Basic6.0驱动AutoCAD 2000实现了齿轮加工的三维动画仿真,有较强的实用性。文中介绍三维参数化建模以及三维动画仿真的实现步骤,具有一定的代表性。
一、引言
齿轮加工动画仿真是齿轮设计中的重要环节,已有数篇关于该课题的文献。郭晓东采用基于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.ActiveDocument.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 Acunion)得到齿条刀具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的精确绘图功能。我们借此方便地实现了齿轮加工的三维动画仿真,这在科研和教学方面有较大的实用性。
4/9/2005
|