張自強(qiáng), 王 麗, 王國君, 王立靖
(1.長春工業(yè)大學(xué)工程訓(xùn)練中心,吉林長春 130012;2.吉林省石油集團(tuán)有限責(zé)任公司供電公司,吉林松原 138000)
隨著機(jī)械設(shè)計(jì)與制造技術(shù)的不斷發(fā)展,凸輪機(jī)構(gòu)作為控制機(jī)構(gòu)在機(jī)械中有著重要的應(yīng)用。另一方面,隨著計(jì)算機(jī)的發(fā)展,凸輪機(jī)構(gòu)的計(jì)算機(jī)輔助設(shè)計(jì)和制造已被熟練地應(yīng)用,不僅提高了設(shè)計(jì)速度和加工質(zhì)量,也為凸輪機(jī)構(gòu)的進(jìn)一步應(yīng)用創(chuàng)造了條件。
文中基于SolidWorks2010三維設(shè)計(jì)軟件平臺(tái),考慮產(chǎn)品總體設(shè)計(jì)需要,研究平面凸輪機(jī)構(gòu)二次開發(fā)技術(shù)。以Visual Basic 6.0為開發(fā)工具設(shè)計(jì)操作界面,通過調(diào)用SolidWorks API接口[1]函數(shù)完成機(jī)構(gòu)各組成元件的參數(shù)化設(shè)計(jì)。該系統(tǒng)開發(fā)的平面凸輪機(jī)構(gòu)CAD系統(tǒng)[2]可以直接對(duì)三維設(shè)計(jì)軟件SolidWorks2010進(jìn)行智能驅(qū)動(dòng),進(jìn)而實(shí)現(xiàn)平面凸輪機(jī)構(gòu)三維模型的整體設(shè)計(jì)。
該平面凸輪機(jī)構(gòu)操作系統(tǒng)可以實(shí)現(xiàn)多種從動(dòng)件類型及從動(dòng)件不同運(yùn)動(dòng)規(guī)律的組合,例如:尖端從動(dòng)件的直動(dòng)和擺動(dòng)、滾子從動(dòng)件的直動(dòng)和擺動(dòng)等。根據(jù)相應(yīng)參數(shù)進(jìn)行計(jì)算,最終自動(dòng)生成凸輪三維模型、凸輪運(yùn)動(dòng)曲線、凸輪輪廓曲線并顯示運(yùn)動(dòng)仿真結(jié)果。
凸輪機(jī)構(gòu)是由凸輪、從動(dòng)件和機(jī)架3部分組成,其結(jié)構(gòu)形式主要取決于凸輪和從動(dòng)件。凸輪機(jī)構(gòu)可以將主動(dòng)件凸輪的等速連續(xù)轉(zhuǎn)動(dòng)變換為從動(dòng)件的往復(fù)直線運(yùn)動(dòng)或繞某定點(diǎn)的擺動(dòng),并依靠凸輪輪廓曲線準(zhǔn)確實(shí)現(xiàn)所要求的運(yùn)動(dòng)規(guī)律。
一對(duì)心直動(dòng)尖頂推桿盤形凸輪機(jī)構(gòu)如圖1所示。
圖中,以凸輪回轉(zhuǎn)中心為圓心,以最小半徑為半徑所作的圓稱為凸輪的基圓。凸輪的輪廓由AB,BC,CD及DA四段曲線組成。凸輪在運(yùn)動(dòng)過程中,經(jīng)過推程、遠(yuǎn)休止、回程、近休止4個(gè)過程。與之相對(duì)應(yīng)的凸輪轉(zhuǎn)角分別稱為推程運(yùn)動(dòng)角、遠(yuǎn)休止角、回程運(yùn)動(dòng)角及近休止角。在運(yùn)動(dòng)過程中,推桿移動(dòng)的距離h為推桿的行程。各參數(shù)符號(hào)見表1。
表1 凸輪各參數(shù)符號(hào)
平面凸輪機(jī)構(gòu)CAD系統(tǒng)主要是以平面凸輪機(jī)構(gòu)的設(shè)計(jì)原理為基礎(chǔ),以三維設(shè)計(jì)軟件Solid-Works2010作為整體系統(tǒng)的開發(fā)平臺(tái),以Visual Basic[3]作為開發(fā)工具,將三者合為一體,實(shí)現(xiàn)平面凸輪機(jī)構(gòu)的整體設(shè)計(jì)。
機(jī)構(gòu)參數(shù)化設(shè)計(jì)[4]是基于機(jī)構(gòu)各組成零件參數(shù)化設(shè)計(jì),通過添加相應(yīng)約束進(jìn)行自動(dòng)裝配。機(jī)構(gòu)參數(shù)化設(shè)計(jì)主要分為以下3種方法:1)基于幾何約束的數(shù)學(xué)方法;2)基于幾何原理的人工智能方法;3)基于特征模型的造型方法。通常,凸輪機(jī)構(gòu)參數(shù)化設(shè)計(jì)需要提供凸輪具體參數(shù),根據(jù)用戶的需求設(shè)計(jì)參數(shù),采用VB編程建立專用的凸輪設(shè)計(jì)計(jì)算模塊。對(duì)零件參數(shù)化設(shè)計(jì)的方式采用設(shè)計(jì)變量與計(jì)算參數(shù)相結(jié)合的方式,即以Solid-Works2010環(huán)境中建立的典型三維結(jié)構(gòu)模型為基礎(chǔ),用設(shè)計(jì)變量作為VB程序與三維模型的聯(lián)系紐帶。綜上所述,建立平面凸輪機(jī)構(gòu)總體方案如圖2所示。
圖2 總體方案結(jié)構(gòu)
平面凸輪機(jī)構(gòu)CAD系統(tǒng)界面設(shè)計(jì)[5]力求簡潔美觀、操作方便。按照該系統(tǒng)要求將其界面劃分為3個(gè)區(qū)域,其操作界面如圖3所示。
圖3 系統(tǒng)界面
凸輪標(biāo)準(zhǔn)模型顯示區(qū)域:該模塊為VB編輯平臺(tái)上圖片顯示框,根據(jù)平面凸輪的從動(dòng)件類型和凸輪的運(yùn)動(dòng)來確定凸輪系統(tǒng)的基本結(jié)構(gòu),并在該模塊中顯示相應(yīng)的模型圖片。
凸輪機(jī)構(gòu)基本參數(shù)輸入?yún)^(qū)域:該區(qū)域包含4個(gè)部分,分別為運(yùn)動(dòng)形式選擇部分、凸輪參數(shù)輸入部分、運(yùn)行參數(shù)輸入部分、參數(shù)輸入校核部分。該模塊在系統(tǒng)操作界面上添加了下拉菜單按鈕、文本框、標(biāo)簽等操作,來實(shí)現(xiàn)凸輪基本參數(shù)的選擇及輸入。
凸輪機(jī)構(gòu)結(jié)果顯示區(qū)域:該模塊采用多頁選擇框的形式來對(duì)運(yùn)算結(jié)果進(jìn)行預(yù)覽,共計(jì)有5個(gè)分頁,分別為結(jié)構(gòu)模型、運(yùn)動(dòng)曲線、輪廓曲線、3D模型和模擬仿真動(dòng)畫。
SolidWorks的API應(yīng)用程序接口[6]是一個(gè)基于ActiveX Automation的編程接口,其中包含數(shù)百個(gè)可從VB,VBA,C,C++或SolidWorks宏文件調(diào)用的函數(shù)。為了提高SolidWorks的使用效率和滿足某些特殊功能,文中主要介紹采用支持ActiveX技術(shù)的編程語言VB對(duì)SolidWorks進(jìn)行二次開發(fā)的基本原理和方法。
SolidWorks支持ActiveX Automation技術(shù),在VB環(huán)境下建立的客戶程序可直接訪問Solid-Works中的對(duì)象。
VB和SolidWorks的接口程序如下:
應(yīng)用平面凸輪機(jī)構(gòu)CAD系統(tǒng)[7]建立凸輪的實(shí)際模型,根據(jù)凸輪機(jī)構(gòu)的反轉(zhuǎn)法原理設(shè)定參數(shù),在系統(tǒng)操作界面上對(duì)凸輪機(jī)構(gòu)的基本參數(shù)進(jìn)行設(shè)定,并將每個(gè)參數(shù)值賦給程序中設(shè)定好的參數(shù)變量。凸輪機(jī)構(gòu)基本參數(shù)見表2。
表2 凸輪機(jī)構(gòu)的基本參數(shù)
平面凸輪機(jī)構(gòu)涉及到數(shù)據(jù)處理問題,必須根據(jù)傳統(tǒng)凸輪的計(jì)算方法、運(yùn)算過程等,將所有的數(shù)據(jù)編寫成VB語言程序。這些數(shù)據(jù)包括設(shè)計(jì)數(shù)據(jù)、表格、線圖以及標(biāo)準(zhǔn)范圍等。其中設(shè)計(jì)數(shù)據(jù)通常是指設(shè)計(jì)時(shí)給定的已知條件和工作參數(shù)。表格、線圖及標(biāo)準(zhǔn)規(guī)范指在進(jìn)行工程設(shè)計(jì)計(jì)算時(shí)需要檢索的有關(guān)圖表和數(shù)據(jù),應(yīng)將它們以恰當(dāng)?shù)姆绞酱嫒胗?jì)算機(jī)。完成參數(shù)的輸入后,根據(jù)設(shè)定好的參數(shù)便可實(shí)現(xiàn)凸輪模型的構(gòu)建。
在VB中繪制凸輪從動(dòng)件運(yùn)動(dòng)曲線[8],利用VB語言中自帶的繪圖功能在VB界面下進(jìn)行繪制,將凸輪運(yùn)動(dòng)曲線的傳統(tǒng)算法用VB語言表達(dá)出來。凸輪運(yùn)動(dòng)曲線分為位移運(yùn)動(dòng)曲線、速度運(yùn)動(dòng)曲線、加速度運(yùn)動(dòng)曲線。在VB中采用描點(diǎn)法繪制,假設(shè)凸輪每轉(zhuǎn)一度視為一點(diǎn),代入以轉(zhuǎn)角為自變量、位移為輸出變量的公式,記錄這一點(diǎn)的數(shù)值,則凸輪旋轉(zhuǎn)一周后輸出一個(gè)含有360個(gè)點(diǎn)數(shù)值的數(shù)組,應(yīng)用VB自帶的繪圖工具并根據(jù)這個(gè)數(shù)組進(jìn)行曲線的繪制。X軸表示轉(zhuǎn)過的角度,Y軸表示位移,進(jìn)行描點(diǎn)繪制曲線,如圖4所示。
凸輪輪廓曲線是應(yīng)用VB繪圖功能在VB界面繪制出凸輪的輪廓線。以滾子直動(dòng)從動(dòng)件凸輪機(jī)構(gòu)為例,根據(jù)從動(dòng)件運(yùn)動(dòng)規(guī)律計(jì)算的凸輪輪廓曲線公式為:
式中:e——偏距;
δ——凸輪轉(zhuǎn)過角度;
由式(1)得出,一組關(guān)于X,Y坐標(biāo)的數(shù)組,根據(jù)該數(shù)組,通過曲線擬合繪制凸輪的輪廓曲線,如圖5所示。
圖4 凸輪運(yùn)動(dòng)曲線圖
圖5 輪廓曲線圖
平面凸輪機(jī)構(gòu)三維模型的建立是應(yīng)用Solid-Works API接口將VB程序數(shù)據(jù)傳輸給Solid-Works三維設(shè)計(jì)軟件中,通過尺寸驅(qū)動(dòng)的方式來實(shí)現(xiàn)三維模型[9]建立。主要有以下6個(gè)步驟:
1)建立VB和SolidWorks通信接口,統(tǒng)一設(shè)置程序和模型的結(jié)構(gòu)尺寸變量;
2)平面凸輪三維模型建立,應(yīng)用SolidWorks三維軟件中宏設(shè)計(jì)功能將凸輪輪廓上對(duì)應(yīng)點(diǎn)的坐標(biāo)導(dǎo)入SolidWorks中,再生成凸輪模型;
3)在SolidWorks中建立凸輪從動(dòng)件、鉸鏈、固定件的模型;
4)對(duì)模型的結(jié)構(gòu)尺寸標(biāo)注進(jìn)行變量命名;
5)傳遞相關(guān)參數(shù)到SolidWorks中重建凸輪從動(dòng)件模型;
6)應(yīng)用edrawings在VB中進(jìn)行模型預(yù)覽。
幾何造型必須滿足模型尺寸完全約束的要求,保證通過參數(shù)驅(qū)動(dòng)模型重建時(shí)的準(zhǔn)確性。初始幾何模型的建立需按照一定的規(guī)則進(jìn)行處理,以符合參數(shù)化設(shè)計(jì)的要求。另外,在造型過程中,SolidWorks系統(tǒng)為標(biāo)注的尺寸設(shè)置了默認(rèn)的尺寸名稱,并且對(duì)于不同的特征尺寸可以重復(fù),但特征名稱不同。
尺寸的主要值分為兩部分,一部分為該尺寸線的名稱,另一部分為尺寸的數(shù)值。尺寸驅(qū)動(dòng)是將設(shè)計(jì)人員輸入的參數(shù)和計(jì)算出的參數(shù)賦給對(duì)應(yīng)的尺寸,進(jìn)而更新模型中的尺寸,如圖6所示。
圖6 滾子擺動(dòng)擺桿
模型的預(yù)覽應(yīng)用SolidWorks的第三方插件——edrawings[10],并將edrawings的部分功能集成到VB界面上。通過edrawings在VB界面即可實(shí)現(xiàn)三維模型的預(yù)覽功能,并且可以使模型平移、局部、縮放、翻轉(zhuǎn)、全屏和復(fù)位等。在VB中引用edrawings類型庫后會(huì)在工具箱中出現(xiàn)一個(gè)edrawings的圖標(biāo),如圖7所示。
圖7 edrawings在工具欄里出現(xiàn)圖標(biāo)
edrawings插入VB界面,如圖8所示。
圖8 VB操作界面
凸輪機(jī)構(gòu)的仿真模擬包括其外形仿真、操作仿真、運(yùn)動(dòng)仿真[11]。文中利用VB技術(shù),對(duì)Solid-Works進(jìn)行二次開發(fā),生成動(dòng)態(tài)鏈接庫,在運(yùn)行SolidWorks時(shí)加載動(dòng)態(tài)鏈接庫,以上的裝配、運(yùn)動(dòng)等操作就會(huì)出現(xiàn)在SolidWorks菜單上。使用系統(tǒng)界面作為操控平臺(tái),生成并保存三維凸輪模型,調(diào)試系統(tǒng)的應(yīng)用程序并運(yùn)行。
在系統(tǒng)中,給凸輪結(jié)構(gòu)加上一定的約束條件,再給凸輪加上動(dòng)力如電機(jī),使其旋轉(zhuǎn),模擬出凸輪機(jī)構(gòu)真實(shí)的運(yùn)動(dòng)情況。仿真模擬[12]操作界面如圖9所示。
圖9 尖端直動(dòng)凸輪仿真模擬操作界面
凸輪機(jī)構(gòu)的輪廓曲線較為復(fù)雜,設(shè)計(jì)與加工均比較困難。文中基于SolidWorks軟件系統(tǒng)對(duì)平面凸輪機(jī)構(gòu)進(jìn)行參數(shù)化設(shè)計(jì),并以Visual Basic 6.0為開發(fā)工具設(shè)計(jì)操作界面,其功能豐富,操作簡單,界面清晰簡潔,實(shí)現(xiàn)了人機(jī)對(duì)話、凸輪機(jī)構(gòu)設(shè)計(jì)自動(dòng)化、三維建模自動(dòng)化,節(jié)省了在傳統(tǒng)凸輪設(shè)計(jì)中手工計(jì)算所需時(shí)間,其提供的精準(zhǔn)輪廓曲線數(shù)據(jù)保證了設(shè)計(jì)質(zhì)量,對(duì)提高凸輪設(shè)計(jì)的效率具有重要意義。
[1] 盛一川.基于SolidWorks的凸輪機(jī)構(gòu)參數(shù)化設(shè)計(jì)二次開發(fā)研究[J].金華職業(yè)技術(shù)學(xué)院學(xué)報(bào),2009,6(3):41-43.
[2] 王霜,殷國富,羅中先,等.平面凸輪機(jī)構(gòu)設(shè)計(jì)CAD系統(tǒng)開發(fā)[J].煤礦機(jī)械,2006,27(6):999-1000.
[3] 肖啟敏,張文信.Visual Basic程序設(shè)計(jì)中數(shù)據(jù)處理方法的研究[J].機(jī)械設(shè)計(jì)與制造,2006,10:36-37.
[4] 徐國權(quán).基于SolidWorks的參數(shù)化設(shè)計(jì)二次開發(fā)研究[J].機(jī)械設(shè)計(jì)與研究,2007(2):36-37.
[5] 王琿,楊慧香,潘英劍,等.斜齒輪插齒刀計(jì)算機(jī)輔助設(shè)計(jì)研究[J].長春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2008,29(2):218-219.
[6] 張華,陳定芳,楊艷芳.Visual Basic為基的Solid-Works二次開發(fā)與應(yīng)用[J].湖北工業(yè)大學(xué)學(xué)報(bào),2010,25(4):37-38.
[7] 徐偉.基于VB的凸輪CAD系統(tǒng)的研究與開發(fā)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2005(2):21-23.
[8] 劉小瑞,吳努.凸輪機(jī)構(gòu)通用運(yùn)動(dòng)曲線方程設(shè)計(jì)[J].機(jī)械設(shè)計(jì),2011,28(8):29-33.
[9] 吳宏良,徐曉明,項(xiàng)春雷.基于SolidWorks三維模型參數(shù)化設(shè)計(jì)技術(shù)的研究[J].科學(xué)技術(shù)與工程,2005,5(19):1337-1338.
[10] 陳光霞.Edrawings在《工程制圖》多媒體課件中的應(yīng)用[J].現(xiàn)代機(jī)械,2010(1):53-75.
[11] 張邦成,韓躍營,王占禮,等.基于遺傳算法的按摩機(jī)器人手臂控制系統(tǒng)[J].長春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2012,33(5):503-507.
[12] 王致堅(jiān).凸輪機(jī)構(gòu)的參數(shù)化設(shè)計(jì)及運(yùn)動(dòng)仿真[J].機(jī)械研究與應(yīng)用,2006,19(5):114-116.