VC++鉸鏈四桿機構(gòu)運動仿真編程示例-對話框_第1頁
VC++鉸鏈四桿機構(gòu)運動仿真編程示例-對話框_第2頁
VC++鉸鏈四桿機構(gòu)運動仿真編程示例-對話框_第3頁
VC++鉸鏈四桿機構(gòu)運動仿真編程示例-對話框_第4頁
VC++鉸鏈四桿機構(gòu)運動仿真編程示例-對話框_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、(34)VC+較鏈四桿機構(gòu)運動仿真編程示例(基于對話框風格的程序?qū)崿F(xiàn))-較鏈四桿機構(gòu)的運動分析原理如圖1所示較鏈四桿機構(gòu)。已知各桿長1/人,原動件的位置角孫,其角速度少為常數(shù),且以逆時針方向為正。求解程序:首先建立機構(gòu)的位置方程式,求出給定01時的構(gòu)件2、3的位置角0,03。將位置方程分別對時間/求導一次、二次,得速度方程式和加速度方程式,并求得各構(gòu)件的角速度他,令和角加速度乞,。1.位移分析為建立機構(gòu)的位置方程式,首先畫出各構(gòu)件的矢量指向(如圖1所示)。以X軸正向沿逆時針方向畫出各桿的轉(zhuǎn)角他及2,由矢量封閉回路ABCD寫出矢量方程人+4=匚+3將上述矢量方程寫成坐標方程/COS(P+人COS

2、(pr=l4COS&4+/3COS03“(3-1)sin0+人sin0=l4sin04+/3sin(p、上述方程的待求量為仍、冷。由于該方程為0,傷的非線性方程,為方便起見,在圖1中加輔助矢量巫,即/,卩。在封閉矢量回路ABD中厶+/=/4(3-2)(3-3)厶COS01+/COS(P=lqCOS&4人sin0+/sin(p=l4sin04解得:I=J/f+/:_2*4COS(列_&4)/=l2sin-卩3)/jcotsin(0)少3=3smQ一血)(3-6)3.加速度分析將式(3-5)對時間求導,并注意到竽=。等y普2,得一厶血COS-/2CO2COS02_厶6sin02=一&少亍COS03

3、一3sin3一厶cosin(p、-12CO2sin(p2+12s2cos(p2=_&jsin(p、+/3zcos(p、同樣采用坐標旋轉(zhuǎn)法,可求得勺、一hC0COS(003)/三Q1COS(徑一卩3)+厶;l2sing_3)厶:COS(0-)+/26?2一厶;COS(034)(3-8)厶sin(03一卩2)編程步驟1.在項目類型中選擇MFCAppWizaid(exe),項目名取為“FouiEarn在location中指定一個工作路徑用于放置程序文件。2.在程序向?qū)У牡?步選擇建立一個基于對話框的應用程序,點擊Finish結(jié)束向?qū)?。在對話框窗II布局控件。首先選中己有的靜態(tài)文本TODO:在這里設置

4、對話框控件”,delete將其刪除。從右側(cè)控件工具欄中點擊Picture”圖片控件,在對話框空白區(qū)域拖出一個矩形窗II,右鍵點擊控件邊框,彈出屬性對話框,設定其Type屬性為Rectangle,color為white,其余不變。再點擊GroupBox(成組框)控件,在對話框空白區(qū)域拖出一個矩形窗II,將其caption改為“輸入四桿機構(gòu)參數(shù)”,并在其中布置四個靜態(tài)文本控件和四個編輯框控件,分別對應輸入四桿機構(gòu)的四個桿長尺寸。為各個編輯框控件指定控件的ID號:AB桿:IDC_AB;EC桿:IDC_BC:CD桿:IDC_CD;AD桿:IDC.ADoFCClatfffVxzacd岡PicturePr

5、opertiesGeneral|Styles|ExtendedStyles|ID:|DC_DISPLAY9VisibleDisabledIGroupFTabstog廠HelpIDType:Iniayc:Color:在成組框的卜方添加2個按鈕,其caption分別為“開始運動”和“停止運動S其ID分別為LDC_START和LDC_STOP。將已有的確定”按鈕拖至下方,caption改為退出”,并刪除原有的“取消”按鈕。這樣對話框界面就設計好了。后續(xù)可以根據(jù)需要添加其他功能按鈕等。為對話框中的控件添加相應的成員變量:點擊菜單“Vuv-ClassWizardv,點擊MemberVariables標簽

6、項,為對話框中的控件添加對應的成員變量如下圖所示。MessageMapsMemberVariablesAutomationActiveXEventsjClassInfoOK|CancelI四桿機構(gòu)參數(shù)包括:各桿長尺寸ab,be,cd,ad,曲柄位置角、連桿位置角化、搖桿位置角卩3、機架傾角弘。在CFouiBarDlg類中添加成員變量angle1,angle2,angle3,sita4,分別對應為AB、EC、CD、AD四桿的位置角,類型均設置為double。初始化四桿機構(gòu)的參數(shù):在CFourBaiDlg類的OiiInitDialogO函數(shù)中添加初始化代碼:/TODO:Addextramitial

7、izationherem_ab=100;m_bc=250;m_cd=200;m_ad=200;sita4=0;angle1=45;aiigle2=0;aiigle3=0;UpdateData(FALSE);將初始設定的桿長尺寸填入編輯框中顯示在CFouiBaiDlg類中添加成員函數(shù)DrawFombar(),類型為void。將來在這個函數(shù)中實現(xiàn)四桿機構(gòu)的參數(shù)計算及繪圖。AddBesberFunctionPFI3在FourBaiDlg.cpp前面加上科學計算的頭文件,這樣就可以支持三角函數(shù)的計算。存includestdafx.hH存includeFourBaihn存includeHFourBaiD

8、lg.hnincludemath.h在CFouiBarDlg類的函數(shù)DiawFourbar()中添加語句,用來計算并畫四桿機構(gòu)圖形。voidCFourBaiDlg:DrawFourbai()UpdateData(TRUE);獲取對話框的圖片控件的位置大小,并準備在其中繪圖CRectm_rect;GetDlgItem(IDC_DISPLAY)-GetWindowRect(&m_rect);ScreenToClient(&DLect);獲得繪圖設備對彖,并設置繪圖區(qū)域人小,范I制及原點CClientDCdc(this);dc.SetMapMode(MMJSOTROPIC);dc.SetWiiido

9、wExt(CSize(500,500);dc.SetViewpoitExt(m_rect.right,-m_iect.bottom);dc.SetViewpoilOig(ni_iect.right/24n_,rect.bottonV2+50);當參數(shù)改變時重繪窗口RediawWindow(&m_iect);計算運動參數(shù),此部分內(nèi)容與機械原理教材計算方法完全一致。doublepi=3.1415926;/定義圓周率兀doublebx,bv,cx,cy;較鏈E、C點的坐標doubleL.fai,aa,bb;定義中間變量aiiglel=anglel*pi/180;/W角度值轉(zhuǎn)化為弧度值sita4=si

10、ta4*pi/180;計算輔助矢量BD的模與位置角L=sqrt(m_ab*m_ab+m_ad*m_ad-2*m_ab*m_ad*cos(anglel-sita4*pi/180);foi=atan(m_ad*sin(sita4)-m_ab*sin(aiiglel)/(m_ad*cos(sita4)-m_ab*cos(anglel);aa=(m_bc*m_bc-L*L-m_cd*m_cd)/(2*L*m_cd);angle3=acos(aa)+fai;bb=(L*sin(fhi)+m_cd*sin(angle3)/(L*cos(fai)+m_cd*cos(angle3);angle2=atan(b

11、b);if(bb0)iaiigle2=aiigle2+pi;計算B點和C點的坐標bx=m_ab*cos(anglel);by=m_ab*siii(anglel);ex=bx+m_bc*cos(angle2);cy=by+m_bc*siii(angle2);計算完成,卜面設定畫圖需要的參數(shù)CPenNewPenl;聲明畫筆對彖CPen*pOldPen;保存原先畫筆的指針初始化實線、5像素寬的紅色畫筆NewPen1.CieatePen(PS_SOLID,5.RGB(255,0.0);/將畫筆選入設備對彖pOldPen=dc.SelectObject(&NewPenl);畫四桿機構(gòu),分成四個桿和對應的

12、較鏈進行繪制畫AB桿dc.MoveTo(O.O);dc.LineTo(bx.by);畫BC桿dc.MoveTo(bx,by);dc.LineTo(cx.cy);de.Ellipse(bx-10,by-10,bx+10,by+10);/畫轉(zhuǎn)動副B畫CD桿dc.MoveTo(cx,cy);de.LineTo(m_ad,0);dc.Ellipse(cx-lO.cy-10,cx+10,cy+10);畫轉(zhuǎn)動副C畫AD桿dc.MoveTo(O.O);de.LineTo(m_ad,0);dc.Elhpse(-10r1040J0);畫轉(zhuǎn)動副Adc.Ellipse(m_ad-l0rl0jn_ad+10,10);畫轉(zhuǎn)動副D畫機架for(iiiti=l;i360)anglel=angle1-360;/當曲柄轉(zhuǎn)動角度人于360度時,重新從0度開始旋轉(zhuǎn)。anglel=angle1+2;/曲柄每次轉(zhuǎn)動5度DrawFouibaiO;/調(diào)用四桿

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論