程 杰,夏 鏈,韓 江
(合肥工業(yè)大學(xué)機(jī)械與汽車工程學(xué)院CIMS研究所,合肥 230009)
在現(xiàn)代機(jī)械應(yīng)用中齒輪傳動是一種很廣泛的傳動機(jī)構(gòu),在其工作壽命期間必須具有足夠的、相應(yīng)的工作能力,以保證機(jī)械傳動不致失效,因而強(qiáng)度校核在齒輪設(shè)計中是不可忽缺的。對于斜齒輪的參數(shù)化建模,齒廓曲線及螺旋線的精確創(chuàng)建有一定的難度,有必要對齒輪進(jìn)行程序化建模,并實(shí)現(xiàn)UG/Open與數(shù)據(jù)庫技術(shù)的聯(lián)合開發(fā)。參數(shù)化設(shè)計就是立足于模型易于修改,當(dāng)變化其中的一個參數(shù)時,將自動改變所有與其相關(guān)的尺寸,達(dá)到驅(qū)動幾何圖形的目的[1],從而大大縮短了齒輪的設(shè)計周期。本文有別于圖形交互式的參數(shù)化設(shè)計,不需要任何的草圖繪制和特征操作,只需在可視化窗口中采集相應(yīng)的參數(shù),依托編程設(shè)計即可快速造型。
UG/Open是一系列UG二次開發(fā)工具的總稱,為實(shí)現(xiàn)某種特定的功能,開發(fā)的面向企業(yè)和用戶的專用軟件,它的套件組成為:API、GRIP、MenuSsript和UIStyler[2]。系統(tǒng)通過MenuScript制作的菜單去執(zhí)行UIStyler定制的用戶對話框,通過 UIStyler去調(diào)用UG/Open API和MFC聯(lián)合開發(fā)的對話框,對話框中集成了DBMS建立的數(shù)據(jù)庫[3],斜齒輪的造型主要通過UG/Open Grip程序來實(shí)現(xiàn),但強(qiáng)度校核系統(tǒng)及掃描功能的實(shí)現(xiàn)需調(diào)用API。二次開發(fā)的各模塊無縫集成,發(fā)揮了每個工具的優(yōu)勢,取長補(bǔ)短,系統(tǒng)開發(fā)流程如圖1所示。
圖1 系統(tǒng)設(shè)計流程圖
用戶首先根據(jù)齒輪的工作要求、工作環(huán)境[3]來初選齒輪傳動的各修正系數(shù)及疲勞極限,系統(tǒng)再根據(jù)用戶所選傳動參數(shù)和齒輪參數(shù)計算相應(yīng)的強(qiáng)度校核模塊,強(qiáng)度校核按齒面接觸疲勞強(qiáng)度和齒根彎曲疲勞強(qiáng)度兩項(xiàng)準(zhǔn)則進(jìn)行計算[4],若計算應(yīng)力小于許用應(yīng)力,則齒輪強(qiáng)度符合要求,否則需要幾何設(shè)計和強(qiáng)度校核多次交替進(jìn)行最終定出齒輪的模數(shù)、齒數(shù)等基本參數(shù)。本系統(tǒng)采用統(tǒng)一界面風(fēng)格,輸入各參數(shù)后直接依據(jù)理論公式解析,思路清晰明了,如圖2所示。
圖2 齒輪校核系統(tǒng)設(shè)計界面
基于統(tǒng)一模型的參數(shù)化造型通過編程來實(shí)現(xiàn),根據(jù)斜齒輪計算公式,計算關(guān)鍵點(diǎn)數(shù)據(jù),應(yīng)用Grip中的樣條指令設(shè)計出漸開線和螺旋線,再用實(shí)體建模命令及變換矩陣得到齒輪模型[5]。斜齒輪的設(shè)計參數(shù)以法面參數(shù)為標(biāo)準(zhǔn),標(biāo)準(zhǔn)斜齒輪圓柱齒輪的關(guān)鍵計算公式見表1所列。
表1 斜齒輪主要幾何計算公式及說明
漸開線的方程采用極坐標(biāo)表示為:
在Grip中的關(guān)鍵代碼為:
當(dāng)齒根圓直徑大于基圓直徑時,整個齒廓曲線均為漸開線;當(dāng)齒根圓直徑小于基圓直徑時,基圓把齒廓曲線分成兩部分,在基圓的外部為漸開線,仍由漸開線參數(shù)方程確定,而基圓與齒根圓之間的過渡曲線是將漸開線的切線延伸到齒根圓的一段直線。
漸開線在Grip中的關(guān)鍵代碼為:
斜齒輪螺旋線方程為:
一個完整的齒形,齒廓與齒根線間還有一個過渡圓角,圓角半徑為(αk為齒形角):
由于 Grip程序自身不帶掃描函數(shù)[6],需調(diào)用UG/Open API,程序后期關(guān)鍵代碼為:
基于ODBC開發(fā)的C/S結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng),根據(jù)齒輪的設(shè)計參數(shù),從概念模型設(shè)計階段到邏輯模型設(shè)計階段[5],本文采用Access構(gòu)建斜齒輪數(shù)據(jù)庫,設(shè)計的表如圖3所示,字段名稱的定義方便對所需齒輪參數(shù)進(jìn)行檢索,本系統(tǒng)設(shè)定“齒輪設(shè)計號”為主鍵。
圖3 常用齒輪數(shù)據(jù)庫
上一步構(gòu)建的數(shù)據(jù)庫是獨(dú)立于UG系統(tǒng)的,它是一種底層的數(shù)據(jù)庫,當(dāng)用UG調(diào)用該數(shù)據(jù)庫時,利用UG/Open API和MFC聯(lián)合編程實(shí)現(xiàn),在用戶界面中實(shí)現(xiàn)對后臺數(shù)據(jù)庫的訪問,如圖4所示為建立檢索齒輪數(shù)據(jù)的對話框,當(dāng)齒輪數(shù)據(jù)庫比較龐大時,又需對數(shù)據(jù)庫中某一特定的齒輪設(shè)計時,設(shè)計者只需輸入檢索條件,如齒數(shù)<Z,壓力角=20°時,只要符合條件,即可檢索出,用戶可根據(jù)設(shè)計要求,進(jìn)一步縮小篩選條件,直到滿足設(shè)計要求為止,圖4中中部的“齒輪數(shù)據(jù)庫”組框用來顯示的上一步數(shù)據(jù)庫表。
圖4 齒輪檢索對話框
一個好的數(shù)據(jù)庫系統(tǒng)必須具備一定的開放性,允許用戶添加數(shù)據(jù),也能刪除數(shù)據(jù),“添加齒輪”的對話框中各個屬性值要與Access建立的數(shù)據(jù)庫的字段名稱及順序要一致,與其主鍵即“齒輪設(shè)計號”不能有重復(fù),否則將無法添加進(jìn)數(shù)據(jù)庫,添加(insert)和刪除(delete)都是通過SQL語句來編輯的?;贛FC的對話框都是內(nèi)嵌于UG/Open UIStyler的主界面之下,對話框設(shè)計完成后注冊數(shù)據(jù)源,設(shè)計對話框類的源程序,編寫類的成員函數(shù)[7],建立與數(shù)據(jù)庫的連接,部分代碼如下:
把編寫的菜單腳本文件、UIStyler應(yīng)用程序設(shè)計文件、API和MFC聯(lián)合開發(fā)編譯的dll文件均置于startup文件夾下,根據(jù)用戶設(shè)置的環(huán)境變量,啟動UG時將自動鏈接此文件夾,用戶選擇菜單,即可出現(xiàn)如圖5所示的系統(tǒng)界面。齒輪參數(shù)的確定可以調(diào)用斜齒輪數(shù)據(jù)庫,由用戶進(jìn)行檢索、添加、刪除都可,或者由用戶自己輸入所需的參數(shù),當(dāng)滿足強(qiáng)度設(shè)計要求后點(diǎn)擊“確定”按鈕后,將調(diào)用Grip和API聯(lián)合開發(fā)的參數(shù)化設(shè)計程序。
圖5 系統(tǒng)主界面圖
通過在UG環(huán)境中選擇菜單,先進(jìn)行齒輪強(qiáng)度設(shè)計,得到滿足要求的齒輪參數(shù),再根據(jù)界面向?qū)О褏?shù)載入系統(tǒng),就可以得到斜齒輪的模型(如圖6)。以上基于UG/Open和VC開發(fā)出的斜齒輪設(shè)計系統(tǒng),具有方便、靈活、高效和精確的特點(diǎn)。用這種方法,雖然在用語言編程階段比較復(fù)雜,但程序完成以后,生成此零件族[8]非常方便。
圖6 斜齒輪模型
[1]王世耕,李庭,黃忠全,等.基于UG/Open GRIP的直齒錐齒輪二次開發(fā)研究[J].計算機(jī)應(yīng)用技術(shù),2008(5):42-44.
[2]韓翔,劉義,余永健.UG工程系統(tǒng)應(yīng)用與開發(fā)實(shí)例[M].北京:清華大學(xué)出版社,2008.
[3]平朗,韓江.基于UG/OPEN的蝸桿傳動參數(shù)化系統(tǒng)開發(fā)[J].機(jī)械設(shè)計與制造,2009(11):123-125.
[4]趙韓,朱方方,宋小波,等.基于UG的通用零部件設(shè)計系統(tǒng)[J].機(jī)床與液壓,2007,35(12):60-63.
[5]黃勇,張博林,薛運(yùn)鋒.UG二次開發(fā)與數(shù)據(jù)庫應(yīng)用基礎(chǔ)與典型范例[M].北京:電子工業(yè)出版社,2008.
[6]王慶林.UG/OPEN GRIP實(shí)用編程基礎(chǔ)[M].北京:清華大學(xué)出版社,2002.
[7]董正衛(wèi).UG/OPEN API編程基礎(chǔ)[M].北京:清華大學(xué)出版社,2002.
[8]趙韓,朱可,張炳力,等.基于UG二次開發(fā)的參數(shù)化零件族系統(tǒng)[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2006,29(8):929-932.