孫一平
(貴州職業(yè)技術(shù)學(xué)院,貴州貴陽550023)
?
基于MFC的盤形凸輪機(jī)構(gòu)設(shè)計研究
孫一平
(貴州職業(yè)技術(shù)學(xué)院,貴州貴陽550023)
摘要:為了參數(shù)化設(shè)計凸輪機(jī)構(gòu),實現(xiàn)凸輪機(jī)構(gòu)動畫過程,設(shè)計了一種基于MFC的盤形凸輪機(jī)構(gòu)人機(jī)交互系統(tǒng)。利用消息映射機(jī)制,完成了滾子直動從動件盤形凸輪的設(shè)計和凸輪運動過程的動畫演示。結(jié)果表明:所設(shè)計系統(tǒng)達(dá)到了設(shè)計需求,完成了對凸輪機(jī)構(gòu)的設(shè)計示教。
關(guān)鍵詞:參數(shù)化人機(jī)交互動畫示教
0引言
凸輪廣泛運用于各種機(jī)械設(shè)備、自動裝置,如機(jī)床、紡織機(jī)械和發(fā)動機(jī)配氣機(jī)構(gòu)等。盤形凸輪機(jī)構(gòu)是機(jī)械設(shè)計的重要內(nèi)容,平面凸輪的運動規(guī)律多種多樣,一般可通過三維軟件實體建模,如采用UG、Solidworks等[1],但此建模方法計算廓線參數(shù)表達(dá)式過程復(fù)雜,難以實現(xiàn)凸輪設(shè)計的多樣性。
為解決上述問題,本設(shè)計利用VC++6.0編程環(huán)境下的MFC類庫,采用面向?qū)ο蟮木幊趟枷脒M(jìn)行人機(jī)界面開發(fā),實時根據(jù)對話框參數(shù)定制凸輪廓線,并查看其廓線對應(yīng)的運動規(guī)律。應(yīng)用基于MFC的技術(shù)方法,不但可以采用參數(shù)化設(shè)計盤形凸輪機(jī)構(gòu),同時,可對機(jī)構(gòu)運動過程進(jìn)行動畫演示,彌補(bǔ)了傳統(tǒng)凸輪機(jī)構(gòu)設(shè)計的抽象性,更加形象生動地表達(dá)凸輪機(jī)構(gòu)工作過程,實現(xiàn)設(shè)計過程的直觀性,感觀性和高效化[2]。
1凸輪廓線
1.1坐標(biāo)計算

圖1 凸輪廓線

(1)
式(1)即為理論凸輪廓線的方程式,也稱為理論廓線方程。
對于滾子從動件凸輪機(jī)構(gòu),推桿在B處裝有滾子,以提高推桿的使用壽命。顯然,只要使?jié)L子中心B沿理論廓線曲線上運動,即可保證推桿預(yù)期的運動規(guī)律。此時凸輪的輪廓曲線不是理論廓線,而是處處與滾子相切的另一條曲線,這條曲線稱為凸輪的實際廓線。因為實際廓線與理論廓線在法線方向的距離處處相等,且等于滾子半徑rr,故當(dāng)已知廓線上任一點B(x,y),只要沿理論廓線在該點法線方向取距離為rr,即得實際廓線上相應(yīng)點B′(x′,y′)。由此可見,理論廓線上作一系列滾子圓的包絡(luò)線即為實際廓線。因此實際廓線是理論廓線的等距曲線,該等距曲線有兩條,即內(nèi)等距曲線和外等距曲線。
盤狀槽形凸輪的廓線即為該兩條等距曲線。由高等數(shù)學(xué)知識可求得理論廓線B點處法線n-n的斜率(與切線斜率互為負(fù)倒數(shù))應(yīng)為:
(2)
式(2)中的dx/dy與dy/dx可根據(jù)式(1)求出,代入式(2)后有:
(3)
式(3)中的θ角可在0°~360°變化,其值要根據(jù)分子、分母的正負(fù)號所決定的tanθ所在象限來計算。求出θ角后,可計算B′(x′,y′)的坐標(biāo)值:
(4)
式中“-”號為內(nèi)等距曲線,“+”號為外等距曲線。式(4)即為凸輪的實際廓線方程式。此時實際廓線的基圓半徑r0等于理論廓線的基圓半徑rb與滾子半徑rr之差:r0=rb-rr。
1.2機(jī)構(gòu)動畫
當(dāng)凸輪轉(zhuǎn)動時,凸輪機(jī)構(gòu)的坐標(biāo)點相對于原點的坐標(biāo)值要改變。設(shè)凸輪上一點原來坐標(biāo)為(x,y),當(dāng)凸輪轉(zhuǎn)動θ角以后,其坐標(biāo)變?yōu)?x′,y′)[4],則有以下關(guān)系:

在做機(jī)構(gòu)運動仿真時,讓θ角從0°到360°等量增加,則可以實現(xiàn)一系列凸輪的位置變換,形成連續(xù)的動畫,并得到凸輪運動規(guī)律的位移、速度和加速度曲線。
2運動規(guī)律
凸輪機(jī)構(gòu)是機(jī)械傳動中一種常用的傳動機(jī)構(gòu),一般是由主動件凸輪,從動件推桿和機(jī)架三個構(gòu)件組成。凸輪通常作等速運動,推動推桿按一定的運動規(guī)律運動,推桿的運動規(guī)律是指其位移,速度和加速度三個運動參數(shù)隨時間( 或凸輪轉(zhuǎn)角) 變化規(guī)律[5]。推桿的運動規(guī)律是由凸輪的輪廓曲線決定的,反之,要設(shè)計出凸輪的廓線,必須先確定從動件的運動規(guī)律[6]。
對于推桿直動從動件盤形凸輪機(jī)構(gòu),在一個運動周期內(nèi)一般會經(jīng)歷推程,遠(yuǎn)休止,回程和近休止四個階段,不同的凸輪廓線,推桿的運動規(guī)律不同,正確理解凸輪機(jī)構(gòu)推桿的運動規(guī)律、基圓半徑的大小、偏心距、從動件滾子半徑對凸輪廓線形狀的影響是非常重要的。對常用的四種推桿從動件運動規(guī)律設(shè)計,如表1。

表1 從動件的運動方程式
3人機(jī)界面設(shè)計
VC++中的輔助軟件開發(fā)包MFC是一個建立在Windows API之上的C++類庫(C++ClassLibrary),對話框能簡便地編寫出處理能力強(qiáng)大、操作簡單的人機(jī)交互式平臺,這使得開發(fā)Windows應(yīng)用程序變得簡單而高效[7];它提供復(fù)雜的資源編輯器、窗口程序的界面和基本輸入輸出,可以編輯對話框、菜單、工具欄、圖像和其它許多Windows應(yīng)用程序的組成元素[8]。
基于MFC的盤形凸輪機(jī)構(gòu)人機(jī)交互式平臺包括對話框、菜單欄、和繪圖區(qū)等操作區(qū),其界面如圖2所示。通過對話框欄能進(jìn)行凸輪運動規(guī)律選擇,并設(shè)定凸輪參數(shù),執(zhí)行菜單欄選項能調(diào)出對話框欄,并實現(xiàn)凸輪機(jī)構(gòu)的動畫演示過程。

圖3 流程圖
基于MFC的凸輪機(jī)構(gòu)設(shè)計內(nèi)容主要包括初始化凸輪參數(shù),調(diào)用Ondraw函數(shù)繪制凸輪廓線以及執(zhí)行OnSimuStart()函數(shù)使凸輪實時動作。流程圖如圖3所示。
啟動Tulun.dsw應(yīng)用程序后,從流程圖知:首先配置正確的凸輪各參數(shù),然后運行程序,繪圖區(qū)得到凸輪廓線,執(zhí)行凸輪機(jī)構(gòu)仿真函數(shù)后,凸輪動畫模擬。
根據(jù)盤形凸輪機(jī)構(gòu)的特點在win32環(huán)境下,從VC++6.0開發(fā)工具提供的MFC類庫為基礎(chǔ),結(jié)合C++的類繼承特征,自定義新類實現(xiàn)繪圖功能。對話框的主要作用是標(biāo)定凸輪升程、回程運動規(guī)律;選定凸輪機(jī)構(gòu)參數(shù),包括推程角、回程角、遠(yuǎn)休止角、基圓半徑、行程、偏距、推桿滾子半徑和凸輪轉(zhuǎn)速;對設(shè)計的凸輪參數(shù)作確認(rèn)和撤銷處理。構(gòu)建盤形凸輪機(jī)構(gòu)設(shè)計的對話框關(guān)鍵類如表2所示。

表2 對話框關(guān)鍵類
菜單欄的作用是通過凸輪機(jī)構(gòu)運動參數(shù)菜單調(diào)出對話框欄,以及執(zhí)行運動仿真菜單完成凸輪機(jī)構(gòu)動畫演示。為了實現(xiàn)菜單欄調(diào)出對話框和凸輪機(jī)構(gòu)動畫,本設(shè)計利用事件(EVENT)來實現(xiàn)。其中自定義了類CTulun的成員變量和成員函數(shù),它包含由關(guān)鍵字修飾的句柄,用于喚醒同步事件對象。兩個事件通過定義同一個CTulun類對象來訪問上述事件對象。
通過凸輪參數(shù)機(jī)構(gòu)菜單調(diào)出參數(shù)輸入對話框的部分主要程序如下:
void CTulunView::OnInputSize()
{
//定義 CParameterDlg 類的一個對象
CParameterDlg CamDlg;
//初始化盤形凸輪參數(shù)輸入對話框
CamDlg.m_Tui_Rule=2;
CamDlg.m_Hui_Rule=3;
CamDlg.m_Base_Radius=200;
CamDlg.m_Course=150;
CamDlg.m_Setover=80;
CamDlg.m_Hui_Angle=100;
CamDlg.m_Tui_Angle=150;
CamDlg.m_FarRest_Angle=60;
CamDlg.m_Roller_Radius=80;
CamDlg.m_Cam_Velocity=5;
//調(diào)用 OnDraw 函數(shù)按照輸入的參數(shù)繪制凸輪
Invalidate(TRUE);
}
通過運動仿真菜單執(zhí)行凸輪動畫的部分主要程序如下:
void CTulunView::OnSimuStart()
{
SetTimer(1,100,NULL);
}
void CTulunView::OnSimuStop()
{
KillTimer(1);
}
Void CTulunView::OnTimer(UINT nIDEvent)
{
if (sita>360)
sita=sita-360; //當(dāng)凸輪轉(zhuǎn)動角度大于 360 °時,重新從 0 °開始旋轉(zhuǎn)
sita=sita+m_Cam_Velocity;
// 凸輪每次轉(zhuǎn)動角度
Invalidate(TRUE);
// 調(diào)用 OnDraw 函數(shù),強(qiáng)制窗口重繪
CView::OnTimer(nIDEvent);
}
4應(yīng)用實例

圖4 應(yīng)用實例
圖4是一個在MFC下開發(fā)應(yīng)用程序中實現(xiàn)滾子直動推桿盤形凸輪機(jī)構(gòu)設(shè)計的實例,在Visiual C++.net中利用消息映射機(jī)制,實現(xiàn)了人機(jī)界面交互,實時監(jiān)控凸輪機(jī)構(gòu)運動情況。選取凸輪推程運動規(guī)律為余弦加速度,回程運動規(guī)律為正弦加速度,其中推程角為100°,回程角150°,遠(yuǎn)停角60°,基圓半徑200 mm,升程100 mm,偏心距80 mm,凸輪轉(zhuǎn)速5°/s 。
5結(jié)語
本文結(jié)合VC++6.0基于MFC的面向?qū)ο蟮木幊碳夹g(shù),實現(xiàn)了滾子從動件盤形凸輪機(jī)構(gòu)的參數(shù)化設(shè)計,對凸輪工作過程作了動畫演示,實時監(jiān)控滾子推桿的位移、速度和加速度運動規(guī)律。通過此設(shè)計更加直觀解決凸輪機(jī)構(gòu)設(shè)計中有關(guān)的問題,形象生動,讓設(shè)計者和學(xué)習(xí)者可以實際體會到凸輪機(jī)構(gòu)的運動過程與原理。同時,此設(shè)計可以在各大院校的課堂教學(xué)中推廣使用,對機(jī)械原理教學(xué)具有較強(qiáng)的實用性。
參考文獻(xiàn)
[1]李濤.基于SolidWorks的凸輪建模及模擬仿真[J].科技研究,2013(11)7-12.
[2]袁苑,郎朗.基于MFC的單柱液壓機(jī)監(jiān)控系統(tǒng)設(shè)計[J].安徽工程大學(xué)學(xué)報,2014,29(4):45-48.
[3]畢艷.機(jī)械原理[M].北京:清華大學(xué)出版社,2014.
[4]焉利群,高路.機(jī)械設(shè)計基礎(chǔ)[M].北京:化學(xué)工業(yè)出版社,2012.
[5]柏子剛,陳計軍.凸輪機(jī)構(gòu)廓線精確設(shè)計與運動仿真[J].現(xiàn)代機(jī)械,2010(5)15-17.
[6]王烜欽,崔宣.凸輪反求設(shè)計研究[J].中國機(jī)械,2015(3)175-176.
[7]辛勤,郭烈恩,顏穎.基于VC和UG的圓柱分度凸輪參數(shù)化設(shè)計[J].煤礦機(jī)械,2013,34(4)271-273.
[8]劉文生,包宗明.基于VC和Pro/Toolkit凸輪實體模型的參數(shù)化二次開發(fā)[J].制造業(yè)自動化,2010(11)76-78.
中圖分類號:TH112.2
文獻(xiàn)標(biāo)識碼:A
文章編號:1002-6886(2016)03-0042-04
作者簡介:孫一平 (1987-),男,漢,貴州三穗人,碩士 ,研究方向:工藝及其裝備。
收稿日期:2015-05-10
Design of a disc cam mechanism based on MFC
SUN Yiping
Abstract:To realize parameterized design of the cam mechanism and the animation of the process, we designed a human-computer interaction system of the cam mechanism based on MFC. Using the message map facility of MFC, we completed the design of the roller follower disc cam and the animated demonstration of its motion. The results showed that the system could meet the design requirements, and could be used in the teaching of the design of cam mechanism.
Keywords:parameterization; human-computer interaction; animation; teaching