本文結(jié)合了VB在計(jì)算與數(shù)據(jù)處理方面的優(yōu)點(diǎn)與AutoCAD在精確繪圖方面的優(yōu)點(diǎn),采用Visual Basic6.0驅(qū)動AutoCAD 2000實(shí)現(xiàn)了齒輪加工的三維動畫仿真,有較強(qiáng)的實(shí)用性。文中介紹三維參數(shù)化建模以及三維動畫仿真的實(shí)現(xiàn)步驟,具有一定的代表性。
一、引言
齒輪加工動畫仿真是齒輪設(shè)計(jì)中的重要環(huán)節(jié),已有數(shù)篇關(guān)于該課題的文獻(xiàn)。郭曉東采用基于AutoCAD環(huán)境的ObjectARX軟件包,用C++語言在AutoCAD環(huán)境下實(shí)現(xiàn)了對錐齒輪切齒過程的仿真;羅慶生在3DSMAX環(huán)境中開發(fā)了齒輪機(jī)構(gòu)工作動畫;馮涓在CAD環(huán)境下,用AutoLisp語言建立了范成法加工齒輪的仿真演示程序。
以上各種方法都有自己的特點(diǎn),本文用VB對AutoCAD進(jìn)行二次開發(fā)來實(shí)現(xiàn)齒輪加工的三維動畫仿真,這是因?yàn)閂B是目前最簡捷的Windows軟件開發(fā)工具兼程序設(shè)計(jì)語言,能對AutoCAD進(jìn)行二次開發(fā),可將AutoCAD當(dāng)成自己程序中的一個圖形窗口對其進(jìn)行打開、繪圖等操作,能十分方便地實(shí)現(xiàn)齒輪加工的動畫仿真。
二、仿真程序流程圖與窗體設(shè)計(jì)
常見的齒輪加工方法有仿形法和范成法,范成法又包括齒輪插刀加工法、齒條插刀和齒輪滾刀加工法等。加工直齒圓柱齒輪的仿真程序流程,如圖1所示。
圖1 仿真程序流程圖
本程序只用一個窗體,用四個文本框接收輸入?yún)?shù):齒數(shù)Z、模數(shù)m、壓力角α和變位系數(shù)x,用4個命令框控制子程序,1個命令框取消運(yùn)行程序。該窗體運(yùn)行結(jié)果如圖2所示。
圖2 仿真窗體
三、 仿真方法
1. 在VB中連接AutoCAD
用VB控制AutoCAD,是通過VB的Object技術(shù)來控制AutoCAD的對象及其方法和屬性的。VB6.0在調(diào)用AutoCAD 2000對象時,首先必須在VB中引用該對象庫,方法是在VB的“Projects/Preferences”菜單中選擇“AutoCADObjectLibrary”。
程序設(shè)計(jì)伊始,需定義一個AutoCAD對象變量GearCAD,通過該變量可以訪問AutoCAD的下級對象,定義方法為:Dim GearCAD As AcadApplication。然后在VB的窗體代碼中添加如下代碼,即可在程序運(yùn)行時啟動AutoCAD:
Private Sub Form-Load() On Error Resume Next Set GearCAD=CreatObject(“AutoCADApplication”) GearCAD.Visible=True(顯示AutoCAD窗體) End Sub 在運(yùn)行時要確保硬盤中已安裝了AutoCAD 2000。
2. 設(shè)置視點(diǎn)和著色方式
三維動畫演示需設(shè)置三維視點(diǎn),用如下語句實(shí)現(xiàn):
GearCAD.ActiveDocument. ActiveViewport.Direction=NewDirection GearCAD.ActiveDocument.ActiveViewport = GearCAD.ActiveDocument.Active Viewport 其中,NewDirection(0 To 2)為雙精度型一維數(shù)組變量,存放視點(diǎn)的三維坐標(biāo)。 用SendCommand方法實(shí)現(xiàn)圖形著色,本程序中使用Gouraud著色方式,可使三維模型表面光滑,富有逼真的質(zhì)感。其代碼如下: GearCAD.ActiveDocument.Send Command“_Shademode”+vbCr+“_G”+vbCr。
3. 齒輪毛坯的生成
在程序中先根據(jù)輸入的參數(shù)計(jì)算出齒輪的齒根圓半徑Rf、齒頂圓半徑Ra、分度圓半徑R、基圓半徑Rb、輪坯厚度Height和軸孔半徑r等。再利用AddCylinder方法分別生成一個以Ra為半徑的一個圓柱體Gear3d和一個以r為半徑的圓柱體Hole,再用布爾減(Boolean acSubtraction)方法生成齒輪中間的軸孔。
4.刀具的生成
以齒條刀具為例,刀具模型形狀和刀具實(shí)體創(chuàng)建完畢時,分別如圖3和圖4所示。
圖3 齒條刀具模型
圖4 仿真輪坯和齒條刀具
具體創(chuàng)建步驟如下:
(1)過0~5點(diǎn),用Addlight weightpolyline方法創(chuàng)建輕便多義線Curve(0); (2)鏡像(Mirror)刀具左部多義線Curve(0),得到右部線段Curve(1); (3)用Addregion方法得到刀具截面面域Tool; (4)用Addextrudedsolid方法將刀具面域拉伸得到三維刀具實(shí)體Tool3d; (5)將單齒刀具實(shí)體Tool3d進(jìn)行單行陣列(Arrayrectangular),得到多個齒Tools;再將多個齒Tools進(jìn)行布爾加運(yùn)算(Boolean Acunion)得到齒條刀具Tool3d; (6)將齒條刀具Tool3d一端平移至與輪坯剛好相遇,準(zhǔn)備切齒。平移尺寸根據(jù)變位系數(shù)x、模數(shù)m等參數(shù)算出。
5. 齒輪加工三維動畫制作
仍以齒條插刀為例,動畫制作主要步驟及代碼如下:
(1)復(fù)制刀具Tool3d得到Tool3dcopy,用輪坯Gear3d與復(fù)制所得刀具Tool3dcopy的布爾減(Boolean acSubtraction),完成刀具對齒輪毛坯的切削;
(2)刀具向前水平移動,每次移動距離(πm/n)mm,n為正整數(shù);刀具沿齒輪毛坯上下移動(用Move方法實(shí)現(xiàn))切制出齒輪厚度方向齒形;
(3)輪坯Gear3d繞自身軸線旋轉(zhuǎn),每次轉(zhuǎn)動[2π/(nz)]弧度。 圖5和圖6分別為齒條插刀和仿形銑齒的動畫仿真情形。
圖5 齒條插刀動畫仿真
圖6 仿形銑齒動畫仿真
四、應(yīng)用實(shí)例
運(yùn)行本程序時,只要輸入齒數(shù)Z等參數(shù),就可以模擬各種齒輪加工過程。例如,改變齒數(shù)Z或變位系數(shù)x可以觀察根切過程及變位齒輪的加工。表1是仿真所得的標(biāo)準(zhǔn)齒輪、發(fā)生了根切的齒輪及正變位齒輪的對比。
五、結(jié)論
通過VB對AutoCAD進(jìn)行二次開發(fā),實(shí)現(xiàn)了VB界面對AutoCAD中對象的控制,既發(fā)揮了VB在科學(xué)計(jì)算、數(shù)據(jù)處理及界面友好和事件驅(qū)動方面的優(yōu)勢,又利用了AutoCAD的精確繪圖功能。我們借此方便地實(shí)現(xiàn)了齒輪加工的三維動畫仿真,這在科研和教學(xué)方面有較大的實(shí)用性。
|