王科銀
(湖北汽車工業(yè)學(xué)院汽車工程學(xué)院,湖北 十堰 442002)
汽車變速箱中主要應(yīng)用的齒輪為直齒圓柱齒輪和斜齒圓柱齒輪。一方面無論是直齒輪還是斜齒輪的建模過程都比較復(fù)雜,對(duì)于很多設(shè)計(jì)者來說很難掌握齒輪的三維建模方法。另一方面,變速箱中需要用到很多不同齒數(shù)、模數(shù)、寬度等參數(shù)的齒輪,這就要求設(shè)計(jì)者對(duì)不同的齒輪進(jìn)行建模,造成了大量重復(fù)性的勞動(dòng),降低了設(shè)計(jì)效率。因此為了提高變速箱中齒輪的建模效率從而縮短變速箱的設(shè)計(jì)開發(fā)周期,開發(fā)變速箱常用齒輪生成程序就有了很重要的使用價(jià)值。CATIA V5是法國(guó)DASSAULT公司開發(fā)的基于Windows操作系統(tǒng)的高端CAD/CAM/CAE軟件,它涵蓋了產(chǎn)品開發(fā)的全過程,提供了完善無縫的集成環(huán)境。[1]作為一款成熟的三維軟件,CATIA V5為用戶提供了二次開發(fā)接口和開放式的內(nèi)部命令集合,用戶可以應(yīng)用不同的開發(fā)方式對(duì)CATIA V5進(jìn)行不同程度的開發(fā)來滿足應(yīng)用需求。本研究選用CATIA V5做為開發(fā)軟件,采用VB6.0做為開發(fā)工具,實(shí)現(xiàn)了汽車變速箱常用齒輪的參數(shù)化設(shè)計(jì),讓用戶只需要在交互界面輸入?yún)?shù)便可以快速生成三維幾何體。
任何優(yōu)秀的軟甲,其功能也不可能滿足所有領(lǐng)域、所有用戶的應(yīng)用習(xí)慣和應(yīng)用需求。為此,CATIA V5為用戶提供了二次開發(fā)接口和開放式的內(nèi)部命令集合,給用戶的二次開發(fā)帶來了方便。作為一款強(qiáng)大的工程軟件,CATIA V5為用戶提供了多種二次開發(fā)接口,其中包括開放的基于構(gòu)件的應(yīng)用編程接口(CAA)和自動(dòng)化對(duì)象編程(V5 Automation)。[2]
CAA是組件應(yīng)用架構(gòu)(Component Application Architec-ture)的簡(jiǎn)稱。CAA的實(shí)現(xiàn),是通過提供的快速應(yīng)用研發(fā)環(huán)境 RADE(Rapid Application Development Environment)和不同的API(Application Programming Interface)接口程序來實(shí)現(xiàn)的。CATIA本身是按照組件模型建立起來的,用戶可以通過開發(fā)自己的 CAA組件,對(duì) DASSAULT SYSTEMES的CATIA V5進(jìn)行擴(kuò)展;也可以把用戶自己開發(fā)的CAA組件結(jié)合起來,實(shí)現(xiàn)用戶自定義應(yīng)用。CAA可以進(jìn)行從簡(jiǎn)單到復(fù)雜的二次開發(fā)工作,而且和原系統(tǒng)的結(jié)合非常緊密。
Automation技術(shù)是建立在 COM 基礎(chǔ)之上,由 OLE Automation(Object Linking and Embedding Automation)發(fā)展而來的。Automation的核心技術(shù)是允許一個(gè)應(yīng)用程序操作另一個(gè)應(yīng)用程序。Automation技術(shù)并不是直接獲取及處理數(shù)據(jù),而是間接地通過暴露的對(duì)象和屬性,利用對(duì)象的方法和屬性獲取、設(shè)置及處理數(shù)據(jù)。Automation技術(shù)包括兩個(gè)方面:server和client。Automation server是一個(gè)實(shí)現(xiàn)了IDispatch接口的COM組件,而Automation client是一個(gè)通過IDispatch接口與自動(dòng)化服務(wù)器進(jìn)行通信的COM客戶。
CAA和V5 Automation兩種二次開發(fā)手段各有特點(diǎn),利用CAA完全可以實(shí)現(xiàn)Dassault Systemes應(yīng)用的深層次開發(fā),但是,由于Dassault Systemes應(yīng)用本身的復(fù)雜性和CAA 所涉及的深層次內(nèi)容,利用 CAA 進(jìn)行二次開發(fā)必然具有一定的復(fù)雜性和難度。相對(duì)于CAA來說使用Automation開發(fā)較為簡(jiǎn)單,具有開發(fā)周期短、穩(wěn)定性好等特點(diǎn)。本研究是利用Automation技術(shù)對(duì)CATIA V5進(jìn)行二次開發(fā),在VB程序中訪問CATIA,實(shí)現(xiàn)三維模型的自動(dòng)創(chuàng)建。
圖1 VB對(duì)CATIA開發(fā)過程
使用VB6.0對(duì)CATIA進(jìn)行二次開發(fā)的時(shí)候,可以逐句編寫程序,這種方式不但費(fèi)時(shí)費(fèi)力而且容易出現(xiàn)編寫錯(cuò)誤。為了簡(jiǎn)化程序的編寫過程提高工作效率,往往需要利用CATIA自身提供的宏錄制功能來快速的獲取VB程序代碼。之后把錄制完成的腳本文件導(dǎo)入VB中并對(duì)其進(jìn)行適當(dāng)?shù)男薷募纯赏瓿沙绦虻木帉?。因?yàn)樾饼X圓柱齒輪和直齒圓柱齒輪開發(fā)過程類似,只是斜齒輪比直齒輪多了一個(gè)螺旋角參數(shù),故本文以直齒圓柱齒輪為例探討開發(fā)過程。用VB對(duì)CATIA進(jìn)行開發(fā)的過程如圖1所示。
直齒圓柱齒輪主要參數(shù)如表1和表2所示:
表1 直齒輪基本參數(shù)
表2 直齒輪計(jì)算所得參數(shù)
表1中的參數(shù)為直齒輪的基本參數(shù),也就是在齒輪設(shè)計(jì)過程中設(shè)計(jì)所得參數(shù),表2中的參數(shù)為直齒輪計(jì)算參數(shù),該部分參數(shù)是根據(jù)表2中的參數(shù)計(jì)算得來的。齒輪的整個(gè)建模過程基于參數(shù)化建模理念,在創(chuàng)建模型的特征之前,要在CATIA中輸入齒輪的參數(shù)。在輸入基本參數(shù)時(shí)要給每個(gè)參數(shù)賦初值,在輸入計(jì)算所得參數(shù)時(shí),只需輸入公式便可根據(jù)基本參數(shù)自動(dòng)計(jì)算出參數(shù)的具體數(shù)值。參數(shù)輸入完成之后便是運(yùn)用尺寸驅(qū)動(dòng)法對(duì)齒輪進(jìn)行特征建模。需要注意的是在CATIA新建零件之前要啟動(dòng)宏錄制功能,以獲得整個(gè)齒輪建模過程的宏文件。建模結(jié)束,直接在CATIA中運(yùn)行所錄制的宏,如果所錄制的宏能正確運(yùn)行,并生成正確的三維模型,則所錄制的宏能夠用于接下來的參數(shù)提取操作,如果所錄制的宏在運(yùn)行過程中出現(xiàn)錯(cuò)誤,必須打開所錄制的宏對(duì)提示運(yùn)行出錯(cuò)的語句進(jìn)行修改,直到能夠正確運(yùn)行為止。在宏的運(yùn)行過程中有時(shí)可能是建模方法的原因,導(dǎo)致所錄制的宏不能正確運(yùn)行,這時(shí)就需要改進(jìn)建模方法,重新錄制宏。
對(duì)于直齒圓柱齒輪,需要提取的參數(shù)是表3中齒輪的所有基本參數(shù)。在保證零件的拓?fù)浣Y(jié)構(gòu)不變的情況下,直齒圓柱齒輪都是由這些基本參數(shù)直接或間接驅(qū)動(dòng)的,所以需要提取出這些基本參數(shù),為后續(xù)的程序編寫奠定基礎(chǔ)。例如,所錄制的宏中,對(duì)于齒輪模數(shù)的定義語句是:
Set parameters1 = part1.Parameters
Set Length1 = parameters1.CreateDimension("", "LENGT H", 0#)
Length1.Rename "m"
Length1.Value = 2.5
語句Length1.Value = 2.5是對(duì)模數(shù)賦初值2.5的語句,這就需要用可視化界面中定義模數(shù)的變量替換 2.5賦值給語句Length1.Value來達(dá)到尺寸驅(qū)動(dòng)的目的。其他變量的提取在此不一一贅述。
在VB6.0中在編寫程序之前,首先要定制可視化界面。友好的人機(jī)交互界面,可以讓用戶更簡(jiǎn)單、更快捷的操作軟件。圖2為軟件登陸界面,該界面是一個(gè)MDI窗體,窗體中顯示的是程序的名稱和版本信息,并且在窗體上添加了彈出式菜單欄。為了保護(hù)軟件的版權(quán),添加了登陸菜單,使用軟件之前要求用戶輸入登陸密碼方可使用?!皠?chuàng)建齒輪”菜單下面設(shè)置了“直齒輪創(chuàng)建”和“斜齒輪創(chuàng)建”兩個(gè)子菜單,直齒輪和斜齒輪參數(shù)輸入界面分別如圖2和圖3所示。對(duì)于模數(shù) m、壓力角α、齒頂高系數(shù)hax、頂隙系數(shù)cx四個(gè)參數(shù)用ComboBox實(shí)現(xiàn)參數(shù)的選擇,用戶可以選擇《齒輪設(shè)計(jì)手冊(cè)》中的規(guī)定數(shù)值,其他參數(shù)則用TextBox供用戶手動(dòng)輸入數(shù)值。
圖2 程序登陸界面
圖3 直齒輪參數(shù)輸入界面
圖4 斜齒輪參數(shù)輸入界面
人機(jī)交互界面定制完成之后,就是程序語句的編寫,程序語句的正確編寫是實(shí)現(xiàn)軟件功能的關(guān)鍵。編寫的程序能夠通過用戶輸入的參數(shù),進(jìn)行數(shù)據(jù)傳遞,從而在CATIA運(yùn)行環(huán)境中生成三維模型。
程序編寫完成之后要進(jìn)行調(diào)試,直到程序能夠正確運(yùn)行并且能夠生成正確的三維模型。最后把工程文件生成EXE可執(zhí)行文件,該文件就可以在其他裝有CATIA軟件的計(jì)算機(jī)上獨(dú)立運(yùn)行。
登陸“變速箱齒輪生成程序”進(jìn)入直齒輪創(chuàng)建界面,在界面中輸入圖5所示參數(shù),點(diǎn)擊“創(chuàng)建齒輪”按鈕,程序便可自動(dòng)打開CATIA軟件并且在CATIA運(yùn)行環(huán)境中生成如圖如圖6所示的齒輪三維模型。查看三維模型的各個(gè)參數(shù),和在交互界面輸入的參數(shù)一致。對(duì)于斜齒輪創(chuàng)建同樣可以得到精確的三維模型。
圖5 直齒輪參數(shù)輸入
圖6 直齒輪三維模型
本研究通過VB6.0編程,開發(fā)了友好的可視化界面,調(diào)用CATIA API函數(shù)驅(qū)動(dòng)CATIA,完成了汽車變速箱中漸開線直齒圓柱齒輪和斜齒圓柱齒輪的參數(shù)化建模。把兩種類型的齒輪參數(shù)輸入界面集于同一系統(tǒng),使用戶在變速箱齒輪設(shè)計(jì)時(shí)只需要通過下拉菜單選擇所要設(shè)計(jì)的齒輪類型便可彈出齒輪的參數(shù)輸入界面,由此把繁雜的齒輪建模過程變成簡(jiǎn)單的參數(shù)輸入,同樣可以得到精確的三維模型。
參考文獻(xiàn)
[1] 李學(xué)志,李若宋,方戈亮.CATIA 實(shí)用教程[M].北京:清華大學(xué)出版社,2014.
[2] 胡挺,吳立軍.CATIA 二次開發(fā)技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2004.
[3] 羅朝勝.Visual Basic 6.0程序設(shè)計(jì)教程[M].北京:人民郵電出版社.2005.
[4] 成大先.機(jī)械設(shè)計(jì)手冊(cè)[M].北京:化學(xué)工業(yè)出版社,2004.
[5] 郭越.基于 CATIA 的漸開線齒輪參數(shù)化精確建模及應(yīng)用[J].延邊大學(xué)農(nóng)學(xué)學(xué)報(bào),2008,30(2):145-147.