計(jì)算機(jī)輔助設(shè)計(jì)VB設(shè)計(jì)凸輪輪廓曲線機(jī)械原理課程設(shè)計(jì)_第1頁
計(jì)算機(jī)輔助設(shè)計(jì)VB設(shè)計(jì)凸輪輪廓曲線機(jī)械原理課程設(shè)計(jì)_第2頁
計(jì)算機(jī)輔助設(shè)計(jì)VB設(shè)計(jì)凸輪輪廓曲線機(jī)械原理課程設(shè)計(jì)_第3頁
計(jì)算機(jī)輔助設(shè)計(jì)VB設(shè)計(jì)凸輪輪廓曲線機(jī)械原理課程設(shè)計(jì)_第4頁
計(jì)算機(jī)輔助設(shè)計(jì)VB設(shè)計(jì)凸輪輪廓曲線機(jī)械原理課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)題目:計(jì)算機(jī)輔助設(shè)計(jì)基于visual basic6.0設(shè)計(jì)凸輪輪廓曲線 學(xué)生姓名:席翔專 業(yè):機(jī)械工程及其自動(dòng)化班 級(jí):機(jī)械1101班指導(dǎo)教師:劉衍平 2013年 07 月 0 1日計(jì)算機(jī)輔助設(shè)計(jì)vb設(shè)計(jì)凸輪輪廓曲線(本人課程設(shè)計(jì)現(xiàn)整理包括界面和代碼,為其他做相關(guān)設(shè)計(jì)的同學(xué)提供參考)一、前言:凸輪機(jī)構(gòu)是工程中用于實(shí)現(xiàn)機(jī)械化和自動(dòng)化的一種重要驅(qū)動(dòng)和控制機(jī)構(gòu),凸輪機(jī)構(gòu)結(jié)構(gòu)簡單、緊湊,但能在實(shí)現(xiàn)控制功能的同時(shí)傳遞較大的功率。因此,凸輪機(jī)構(gòu)在生產(chǎn)中具有無可替代的優(yōu)越性,尤其在高速度、高精度傳動(dòng)與分度機(jī)構(gòu)及引導(dǎo)機(jī)構(gòu)中,更有突出的優(yōu)點(diǎn)。本文通過凸輪機(jī)構(gòu)運(yùn)動(dòng)參數(shù)理論計(jì)算,建立凸輪機(jī)構(gòu)數(shù)學(xué)

2、模型,利用visual basic 實(shí)現(xiàn)面向?qū)ο蠡木幊?。首先,查找有關(guān)凸輪機(jī)構(gòu)運(yùn)動(dòng)參數(shù)理論計(jì)算的書籍和資料,了解凸輪機(jī)構(gòu)設(shè)計(jì)的方法,建立凸輪機(jī)構(gòu)參數(shù)數(shù)學(xué)模型。然后,在visual basic 6.0 軟件中,對凸輪機(jī)構(gòu)參數(shù)設(shè)計(jì)進(jìn)行編程,通過vb 編程畫出凸輪機(jī)構(gòu)的位移曲線、速度曲線、加速度曲線及凸輪輪廓曲線,并將vb 源程序打包成可執(zhí)行程序。二、背景:凸輪機(jī)構(gòu)是工程中用于實(shí)現(xiàn)機(jī)械化和自動(dòng)化的一種重要驅(qū)動(dòng)和控制機(jī)構(gòu),在輕工、紡織、食品、醫(yī)藥、印刷、標(biāo)準(zhǔn)零件制造、交通運(yùn)輸?shù)阮I(lǐng)域運(yùn)行的工作機(jī)械中獲得廣泛應(yīng)用。為了提高產(chǎn)品的質(zhì)量和生產(chǎn)率,對機(jī)械設(shè)備的性能指標(biāo)提出更高的要求,就凸輪機(jī)構(gòu)而言,必須進(jìn)一步

3、提高其設(shè)計(jì)水平,在解析法的基礎(chǔ)上開展計(jì)算機(jī)輔助設(shè)計(jì)的研究和推廣應(yīng)用。凸輪機(jī)構(gòu)結(jié)構(gòu)簡單、緊湊,但能在實(shí)現(xiàn)控制功能的同時(shí)傳遞較大的功率。因此,凸輪機(jī)構(gòu)在生產(chǎn)中具有無可替代的優(yōu)越性,尤其在高速度、高精度傳動(dòng)與分度機(jī)構(gòu)及引導(dǎo)機(jī)構(gòu)中,更有突出的優(yōu)點(diǎn)。三、我國情況:近十多年來,我國無論是在凸輪機(jī)構(gòu)的理論和應(yīng)用研究,還是在凸輪機(jī)構(gòu)的產(chǎn)品開發(fā)和制造方面,都已取得了很大的進(jìn)步,就理論研究方面而言,已達(dá)到了世界先進(jìn)水平。在凸輪機(jī)構(gòu)制造方面,與發(fā)達(dá)國家相比,還有一定的差距。究其原因,一方面,我國的機(jī)械制造業(yè)的總體水平不高,缺乏精密的關(guān)鍵設(shè)備, 自主研制和改造的設(shè)備其精度、剛度和可靠性都比較差,在材質(zhì)、熱處理和工藝等

4、方面還存在不少問題;另一方面,從研究單位到企業(yè)在制造方面所投入的財(cái)力和人力遠(yuǎn)遠(yuǎn)不足,也未引起有關(guān)部門的重視。如果這方面再不下大力氣,我國的凸輪機(jī)構(gòu)的研究水平還將長期落后于世界先進(jìn)水平。四、凸輪機(jī)構(gòu)運(yùn)動(dòng)參數(shù):圖2-1 所示為一對心直動(dòng)推桿盤形凸輪機(jī)構(gòu)。圖中,以凸輪的回轉(zhuǎn)軸心o 為圓心,以凸輪的最小半徑0 r 為半徑所作的圓稱為基圓, 0 r 稱為基圓半徑。圖示凸輪的輪廓由ab、bc、cd 及da 四段曲線組成,而且bc、da 兩段為圓弧。凸輪與推桿在點(diǎn)a 接觸時(shí),推桿處于最低位置。當(dāng)凸輪以等角速度 逆時(shí)針轉(zhuǎn)動(dòng)時(shí),推桿在凸輪廓線ab 段的推動(dòng)下,將由最低位置a 被推到最高位置b ,推桿運(yùn)動(dòng)的這一過

5、程稱為推程,而相應(yīng)的凸輪轉(zhuǎn)角0 稱為推程運(yùn)動(dòng)角。凸輪繼續(xù)轉(zhuǎn)動(dòng),推桿與凸輪廓線的bc 段接觸,由于bc 段為以凸輪軸心o 為圓心的圓弧,所以推桿將處于最高位置而靜止不動(dòng),此一過程稱為遠(yuǎn)休,與之相應(yīng)的凸輪轉(zhuǎn)角01 稱為遠(yuǎn)休止角。而后,當(dāng)推桿與凸輪廓線的cd 段接觸時(shí),它又由最高位置回到最低位置,推桿運(yùn)動(dòng)的這一過程稱為回程,相應(yīng)的凸輪轉(zhuǎn)角0 稱為回程運(yùn)動(dòng)角。最后,當(dāng)推桿與凸輪廓線da 段接觸時(shí),由于da 段為以凸輪軸心o 為圓心的圓弧,所以推桿將在最低位置靜止不動(dòng),此一過程稱為近休,相應(yīng)的凸輪轉(zhuǎn)角02 稱為近休止角。凸輪再繼續(xù)轉(zhuǎn)動(dòng)時(shí),推桿又重復(fù)上述過程。推桿在推程或回程中移動(dòng)的距離h 稱為推桿的行程

6、。所謂推桿的運(yùn)動(dòng)規(guī)律,是指推桿在運(yùn)動(dòng)時(shí),其位移s 、速度v 和加速度a 隨時(shí)間t 變化的規(guī)律。五、解析法:用作圖法設(shè)計(jì)凸輪廓線,概念清晰,簡便易行;但誤差大,效率低。對于精度要求較高且結(jié)果復(fù)雜的凸輪廓線,通常采用解析法設(shè)計(jì)。尤其是近年來隨著計(jì)算機(jī)與數(shù)控加工技術(shù)的發(fā)展,解析法在凸輪廓線的設(shè)計(jì)中已得到了廣泛的應(yīng)用。用解析法設(shè)計(jì)凸輪廓線的關(guān)鍵問題是將凸輪廓線表示為數(shù)學(xué)方程,這一過程稱為建立數(shù)學(xué)模型。用解析法設(shè)計(jì)一直動(dòng)滾子從動(dòng)件盤形凸輪機(jī)構(gòu)。已知凸輪以等角速度 逆時(shí)針方向轉(zhuǎn)動(dòng),凸輪基圓半徑r0,滾子半徑r,導(dǎo)向和凸輪軸心間的相對位置及偏距e,從動(dòng)件的運(yùn)動(dòng)規(guī)律s s( )。(1) 理論廓線方程過凸輪的回

7、轉(zhuǎn)中心o 建立直角坐標(biāo)系xoy,如圖2-9 所示,設(shè)推程開始時(shí)從動(dòng)件滾子中心處于b0 點(diǎn),b0 即為凸輪理論廓線的起始點(diǎn)。當(dāng)凸輪逆時(shí)針轉(zhuǎn)過角時(shí),應(yīng)用反轉(zhuǎn)法,假設(shè)凸輪不動(dòng),則從動(dòng)件與導(dǎo)路一起沿 方向反轉(zhuǎn) 角,處于b 位置。設(shè)對應(yīng)此過程滾子中心按已知的運(yùn)動(dòng)規(guī)律產(chǎn)生的位移為s=s。由作圖法可知此時(shí)滾子中心點(diǎn)b 即為凸輪理論廓線上的點(diǎn)。b 點(diǎn)在坐標(biāo)系中的表達(dá)式為:六、vb簡介:visual basic(簡稱vb)是面向?qū)ο罂梢暬某绦蛟O(shè)計(jì)語言,具有良好的交互式界面。它使用起來操作方便、簡單易懂,即使用戶從來沒有接觸過編程,但只要會(huì)使用windows操作系統(tǒng),就可以很快學(xué)會(huì)怎樣使用visual basi

8、c 去開發(fā)一個(gè)簡單但功能完整的windows應(yīng)用程序13-17。傳統(tǒng)的程序設(shè)計(jì)語言設(shè)計(jì)程序時(shí),都是通過編寫程序代碼來設(shè)計(jì)用戶界面,在設(shè)計(jì)過程中看不到界面的實(shí)際效果,只有在運(yùn)行程序時(shí)才能觀察到。如果對界面的效果不滿意,就必須回到程序中重新設(shè)計(jì),這往往需要反復(fù)多次,從而大大降低了編程效率。vb 采用了可視化的程序設(shè)計(jì)方法,利用系統(tǒng)提供的大量可視化控件,可以直接繪制用戶圖形界面,并可直觀、動(dòng)態(tài)地調(diào)整界面,不必再用大量程序代碼來描述界面元素的外觀和位置,從而克服了傳統(tǒng)編輯模式,提高了編程效率。用visual basic 開發(fā)程序,就好比蓋房子,系統(tǒng)提供的可視化控件好比蓋房子用的磚和瓦等原料,通過合理的

9、搭配組合,可以方便地構(gòu)造出所需的應(yīng)用程序。vb 綜合運(yùn)用了basic 語言和可視化設(shè)計(jì)工具,巧妙地將windows 應(yīng)用程序編程的復(fù)雜性封裝起來,既沒有犧牲windows 應(yīng)用程序的特點(diǎn),又提供了編程的簡易性。visual basic 的程序開發(fā)過程基本可分為八個(gè)步驟: 在vb 中創(chuàng)建一個(gè)新的工程; 建立應(yīng)用程序窗體(即用戶界面); 在窗體中繪制所需的控制對象; 設(shè)置窗體和控件的屬性; 為需要響應(yīng)用戶操作的對象編寫事件過程(即編程); 運(yùn)行及調(diào)試應(yīng)用程序; 保存工程; 編譯工程,生生成可執(zhí)行的應(yīng)用程序。七、界面設(shè)計(jì):說到程序當(dāng)然要考慮兩個(gè)方面的因素,第一就是代碼,第二就是界面,我們力求界面友好

10、,程序清晰客觀。下面是界面部分:(1)首先雙擊運(yùn)行程序出現(xiàn)如下界面:(2)針對查看3-4題目及位移線圖:(3)根據(jù)題中數(shù)據(jù)進(jìn)行參數(shù)設(shè)置:(4)第一步:按比例畫位移線圖、基圓和偏距圓,并標(biāo)明各運(yùn)動(dòng)角:(5)第二步:延長從動(dòng)件,與偏距圓相切,以此為始點(diǎn)在偏距圓上做出各運(yùn)動(dòng)角:(6)第三步:將推程運(yùn)動(dòng)角和回程運(yùn)動(dòng)角分成若干等份,畫等分線與偏距圓交點(diǎn)的切線,與基圓相交:(7)第四步:延長各切線,延長線段長度與位移線圖對應(yīng)等分線段長度相等:(8)第五步:順次光滑連接各點(diǎn),得凸輪理論輪廓曲線:(9)第六步:以理論輪廓線上各點(diǎn)為圓心,以滾子半徑為半徑作圓,所得包絡(luò)線為凸輪實(shí)際輪廓曲線:(10)第七步:可以進(jìn)

11、行動(dòng)畫演示:八、代碼設(shè)計(jì):form1的代碼:option explicitprivate sub command1_click() form2.showend subprivate sub command2_click() form1.hideend subform2的代碼:option explicitprivate sub command1_click() form2.hideend subfrm等分的代碼:private sub command1_click() i等分dt0 = val(frm等分.text1.text) i等分dt2 = val(frm等分.text2.text) u

12、nload meend subfrm對心設(shè)計(jì)的代碼:option explicitprivate sub cmdfifth_click() dim i as integer text1.text = 5.以理論輪廓線上各點(diǎn)為圓心,以滾子半徑為半徑作圓,所得包絡(luò)線為凸輪實(shí)際輪廓曲線。 mainfrm.picture1.drawwidth = 1 for i = 0 to 360 step 10 mainfrm.picture1.circle (pointxy(i, 1), pointxy(i, 2), r1, &hffffc0 next mainfrm.picture1.drawwidth =

13、3 mainfrm.picture1.pset (factpxy(0, 1), factpxy(0, 2) for i = 1 to 360 step 1 if i = 0 then mainfrm.picture1.line -(factpxy(i, 1), factpxy(i, 2), &h80ff& nextend subprivate sub cmdsixth_click() unload meend subprivate sub command_click() mainfrm.init1 text1.text = 1.按比例畫位移線圖和基圓,并標(biāo)明各運(yùn)動(dòng)角。 first0_step

14、first_step end subprivate sub command2_click() dim i as integer text1.text = 2.將推程運(yùn)動(dòng)角和回程運(yùn)動(dòng)角分成若干等份。 if i等分dt0 0 then for i = 1 to i等分dt0 unload mainfrm.lin等分dt0(i) unload mainfrm.lin基圓dt0(i) unload mainfrm.lin凸輪dt0(i) next end if if i等分dt2 0 then for i = 1 to i等分dt2 unload mainfrm.lin等分dt2(i) unload

15、mainfrm.lin基圓dt2(i) unload mainfrm.lin凸輪dt2(i) next end if frm等分.show vbmodal if i等分dt0 * i等分dt2 = 0 then exit sub second_stepend subprivate sub command3_click() text1.text = 3.延長基圓上各等分線,延長線段長度與位移線圖對應(yīng)等分線段長度相等。 third_stepend subprivate sub command4_click() if r1 = 0 then text1.text = 4.順次光滑連接各點(diǎn),得凸輪輪廓

16、。 mainfrm.picture1.drawwidth = 3 else text1.text = 4.順次光滑連接各點(diǎn),得凸輪理論輪廓曲線。 mainfrm.picture1.drawwidth = 1 end if forth_stepend subpublic sub first0_step() dim i as integer mainfrm.picture1.cls 畫回轉(zhuǎn)中心 x0 = 230: y0 = 300 mainfrm.picture1.circle (x0, y0), 10, &hffff& 畫坐標(biāo)軸 mainfrm.linx.y1 = pointxy(0, 2):

17、mainfrm.linx.y2 = pointxy(0, 2) mainfrm.liny.y1 = pointxy(0, 2): mainfrm.liny.y2 = pointxy(0, 2) + 200 o(1) = linx.x1: o(2) = linx.y1 mainfrm.label0.top = o(2) - 10 mainfrm.lab_t.top = o(2) + 30 畫基圓 mainfrm.picture1.drawwidth = 1 mainfrm.picture1.circle (x0, y0), r0, &hff& 位移線圖 mainfrm.picture1.draw

18、width = 3 for i = 1 to 360 if i = 1 then mainfrm.picture1.pset (o(1), o(2), &hff& mainfrm.picture1.line -(xy(i, 1), xy(i, 2), &hff& next mainfrm.line1.visible = true: mainfrm.line2.visible = true mainfrm.label1.visible = true mainfrm.lineh1.visible = true mainfrm.lab_h.visible = true mainfrm.lineh2.

19、visible = true mainfrm.line3.visible = true mainfrm.line4.visible = true mainfrm.label3.visible = true mainfrm.line5.visible = true mainfrm.label4.visible = true 畫偏距圓 mainfrm.picture1.drawwidth = 1 mainfrm.picture1.circle (x0, y0), e, &hff&end subpublic sub first_step() mainfrm.picture1.line (x0, y0

20、)-(pointxy(0, 1), pointxy(0, 2), &hffff00 mainfrm.picture1.line (x0, y0)-(pointxy(0, 1), pointxy(0, 2), &hff00ff mainfrm.picture1.line (x0, y0)-(pointxy(0 + 1, 1), pointxy(0 + 1, 2), &hff00ff mainfrm.picture1.line (x0, y0)-(pointxy(0 + 1 + 2, 1), pointxy(0 + 1 + 2, 2), &hff00ffend subpublic sub seco

21、nd_step() dim j as integer dim i as integer for i = 1 to i等分dt0 load mainfrm.lin等分dt0(i) load mainfrm.lin基圓dt0(i) load mainfrm.lin凸輪dt0(i) next for i = 1 to i等分dt2 load mainfrm.lin等分dt2(i) load mainfrm.lin基圓dt2(i) load mainfrm.lin凸輪dt2(i) next j = 0 / i等分dt0 for i = 1 to i等分dt0 mainfrm.lin等分dt0(i).x

22、1 = xy(i * j, 1) mainfrm.lin等分dt0(i).x2 = xy(i * j, 1) mainfrm.lin等分dt0(i).y1 = xy(i * j, 2) mainfrm.lin等分dt0(i).y2 = mainfrm.linx.y1 mainfrm.lin等分dt0(i).visible = true mainfrm.lin基圓dt0(i).x1 = 基圓xy(i * j, 1) mainfrm.lin基圓dt0(i).x2 = 偏距圓xy(i * j, 1) mainfrm.lin基圓dt0(i).y1 = 基圓xy(i * j, 2) mainfrm.li

23、n基圓dt0(i).y2 = 偏距圓xy(i * j, 2) mainfrm.lin基圓dt0(i).visible = true mainfrm.lin凸輪dt0(i).x1 = pointxy(i * j, 1) mainfrm.lin凸輪dt0(i).x2 = 基圓xy(i * j, 1) mainfrm.lin凸輪dt0(i).y1 = pointxy(i * j, 2) mainfrm.lin凸輪dt0(i).y2 = 基圓xy(i * j, 2) lin凸輪dt0(i).visible = true next i j = 2 / i等分dt2 for i = 1 to i等分dt2

24、 mainfrm.lin等分dt2(i).x1 = xy(0 + 1 + (i - 1) * j, 1) mainfrm.lin等分dt2(i).x2 = xy(0 + 1 + (i - 1) * j, 1) mainfrm.lin等分dt2(i).y1 = xy(0 + 1 + (i - 1) * j, 2) mainfrm.lin等分dt2(i).y2 = mainfrm.linx.y1 mainfrm.lin等分dt2(i).visible = true mainfrm.lin基圓dt2(i).x1 = 基圓xy(0 + 1 + (i - 1) * j, 1) mainfrm.lin基圓

25、dt2(i).x2 = 偏距圓xy(0 + 1 + (i - 1) * j, 1) mainfrm.lin基圓dt2(i).y1 = 基圓xy(0 + 1 + (i - 1) * j, 2) mainfrm.lin基圓dt2(i).y2 = 偏距圓xy(0 + 1 + (i - 1) * j, 2) mainfrm.lin基圓dt2(i).visible = true mainfrm.lin凸輪dt2(i).x1 = pointxy(0 + 1 + (i - 1) * j, 1) mainfrm.lin凸輪dt2(i).x2 = 基圓xy(0 + 1 + (i - 1) * j, 1) mai

26、nfrm.lin凸輪dt2(i).y1 = pointxy(0 + 1 + (i - 1) * j, 2) mainfrm.lin凸輪dt2(i).y2 = 基圓xy(0 + 1 + (i - 1) * j, 2) lin凸輪dt2(i).visible = true next i end subpublic sub third_step() mainfrm.timer2.enabled = trueend subpublic sub forth_step() mainfrm.timer2.enabled = false me.enabled = false mainfrm.cmd設(shè)置.ena

27、bled = false mainfrm.cmdreset.enabled = false mainfrm.cmd繼續(xù).enabled = false mainfrm.cmd設(shè)計(jì).enabled = false mainfrm.timer3.enabled = trueend subfrm偏置設(shè)計(jì)的代碼:option explicitprivate sub cmdsixth_click() dim i as integer text1.text = 6.以理論輪廓線上各點(diǎn)為圓心,以滾子半徑為半徑作圓,所得包絡(luò)線為凸輪實(shí)際輪廓曲線。 mainfrm.picture1.drawwidth = 1

28、for i = 0 to 360 step 10 mainfrm.picture1.circle (pointxy(i, 1), pointxy(i, 2), r1, &hffffc0 next mainfrm.picture1.drawwidth = 3 mainfrm.picture1.pset (factpxy(0, 1), factpxy(0, 2) for i = 1 to 360 step 1 mainfrm.picture1.line -(factpxy(i, 1), factpxy(i, 2), &h80ff& nextend subprivate sub command_cl

29、ick() text1.text = 1.按比例畫位移線圖、基圓和偏距圓,并標(biāo)明各運(yùn)動(dòng)角。 first0_step end subprivate sub command1_click() text1.text = 2.延長從動(dòng)件,與偏距圓相切,以此為始點(diǎn)在偏距圓上作出各運(yùn)動(dòng)角。 first_stepend subprivate sub command2_click() dim i as integer text1.text = 3.將推程運(yùn)動(dòng)角和回程運(yùn)動(dòng)角分成若干等份,畫等分線與偏距圓交點(diǎn)的切線,與基圓相交。 if i等分dt0 0 then for i = 1 to i等分dt0 unloa

30、d mainfrm.lin等分dt0(i) unload mainfrm.lin基圓dt0(i) unload mainfrm.lin凸輪dt0(i) next end if if i等分dt2 0 then for i = 1 to i等分dt2 unload mainfrm.lin等分dt2(i) unload mainfrm.lin基圓dt2(i) unload mainfrm.lin凸輪dt2(i) next end if frm等分.show vbmodal if i等分dt0 * i等分dt2 = 0 then exit sub second_stepend subprivate

31、sub command3_click() text1.text = 4.延長各切線,延長線段長度與位移線圖對應(yīng)等分線段長度相等。 third_stepend subprivate sub command4_click() if r1 = 0 then text1.text = 5.順次光滑連接各點(diǎn),得凸輪輪廓。 mainfrm.picture1.drawwidth = 3 else text1.text = 5.順次光滑連接各點(diǎn),得凸輪理論輪廓曲線。 mainfrm.picture1.drawwidth = 1 end if forth_stepend subpublic sub first0

32、_step() dim i as integer mainfrm.picture1.cls 畫回轉(zhuǎn)中心 mainfrm.picture1.drawwidth = 1 x0 = 230: y0 = 300 mainfrm.picture1.circle (x0, y0), 10, &hffff& 畫坐標(biāo)軸 mainfrm.linx.y1 = pointxy(0, 2): mainfrm.linx.y2 = pointxy(0, 2) mainfrm.liny.y1 = pointxy(0, 2): mainfrm.liny.y2 = pointxy(0, 2) + 200 o(1) = linx

33、.x1: o(2) = linx.y1 mainfrm.label0.top = o(2) - 10 mainfrm.lab_t.top = o(2) + 30 畫基圓 mainfrm.picture1.drawwidth = 1 mainfrm.picture1.circle (x0, y0), r0, &hff& 位移線圖 mainfrm.picture1.drawwidth = 3 for i = 1 to 360 if i = 1 then mainfrm.picture1.pset (o(1), o(2), &hff& mainfrm.picture1.line -(xy(i, 1)

34、, xy(i, 2), &hff& next mainfrm.line1.visible = true: mainfrm.line2.visible = true mainfrm.label1.visible = true mainfrm.lineh1.visible = true mainfrm.lab_h.visible = true mainfrm.lineh2.visible = true mainfrm.line3.visible = true mainfrm.line4.visible = true mainfrm.label3.visible = true mainfrm.lin

35、e5.visible = true mainfrm.label4.visible = true 畫偏距圓 mainfrm.picture1.drawwidth = 1 mainfrm.picture1.circle (x0, y0), e, &hff&end subpublic sub first_step() mainfrm.picture1.drawwidth = 2 mainfrm.picture1.line (pointxy(0, 1), pointxy(0, 2)-(偏距圓xy(0, 1), 偏距圓xy(0, 2), &hffff00 mainfrm.picture1.drawwid

36、th = 1 mainfrm.picture1.line (x0, y0)-(偏距圓xy(0, 1), 偏距圓xy(0, 2), &hffff00 mainfrm.picture1.line (x0, y0)-(偏距圓xy(0, 1), 偏距圓xy(0, 2), &hffff00 mainfrm.picture1.line (x0, y0)-(偏距圓xy(0 + 1, 1), 偏距圓xy(0 + 1, 2), &hffff00 mainfrm.picture1.line (x0, y0)-(偏距圓xy(0 + 1 + 2, 1), 偏距圓xy(0 + 1 + 2, 2), &hffff00 e

37、nd subpublic sub second_step() dim j as integer dim i as integer for i = 1 to i等分dt0 load mainfrm.lin等分dt0(i) load mainfrm.lin基圓dt0(i) load mainfrm.lin凸輪dt0(i) next for i = 1 to i等分dt2 load mainfrm.lin等分dt2(i) load mainfrm.lin基圓dt2(i) load mainfrm.lin凸輪dt2(i) next j = 0 / i等分dt0 for i = 1 to i等分dt0

38、mainfrm.lin等分dt0(i).x1 = xy(i * j, 1) mainfrm.lin等分dt0(i).x2 = xy(i * j, 1) mainfrm.lin等分dt0(i).y1 = xy(i * j, 2) mainfrm.lin等分dt0(i).y2 = mainfrm.linx.y1 mainfrm.lin等分dt0(i).visible = true mainfrm.picture1.line (x0, y0)-(偏距圓xy(i * j, 1), 偏距圓xy(i * j, 2), &hffffff mainfrm.lin基圓dt0(i).x1 = 基圓xy(i * j

39、, 1) mainfrm.lin基圓dt0(i).x2 = 偏距圓xy(i * j, 1) mainfrm.lin基圓dt0(i).y1 = 基圓xy(i * j, 2) mainfrm.lin基圓dt0(i).y2 = 偏距圓xy(i * j, 2) mainfrm.lin基圓dt0(i).visible = true mainfrm.lin凸輪dt0(i).x1 = pointxy(i * j, 1) mainfrm.lin凸輪dt0(i).x2 = 基圓xy(i * j, 1) mainfrm.lin凸輪dt0(i).y1 = pointxy(i * j, 2) mainfrm.lin凸

40、輪dt0(i).y2 = 基圓xy(i * j, 2) lin凸輪dt0(i).visible = true next i j = 2 / i等分dt2 for i = 1 to i等分dt2 mainfrm.lin等分dt2(i).x1 = xy(0 + 1 + (i - 1) * j, 1) mainfrm.lin等分dt2(i).x2 = xy(0 + 1 + (i - 1) * j, 1) mainfrm.lin等分dt2(i).y1 = xy(0 + 1 + (i - 1) * j, 2) mainfrm.lin等分dt2(i).y2 = mainfrm.linx.y1 mainfr

41、m.lin等分dt2(i).visible = true mainfrm.picture1.line (x0, y0)-(偏距圓xy(0 + 1 + (i - 1) * j, 1), _ 偏距圓xy(0 + 1 + (i - 1) * j, 2), &hffffff mainfrm.lin基圓dt2(i).x1 = 基圓xy(0 + 1 + (i - 1) * j, 1) mainfrm.lin基圓dt2(i).x2 = 偏距圓xy(0 + 1 + (i - 1) * j, 1) mainfrm.lin基圓dt2(i).y1 = 基圓xy(0 + 1 + (i - 1) * j, 2) mai

42、nfrm.lin基圓dt2(i).y2 = 偏距圓xy(0 + 1 + (i - 1) * j, 2) mainfrm.lin基圓dt2(i).visible = true mainfrm.lin凸輪dt2(i).x1 = pointxy(0 + 1 + (i - 1) * j, 1) mainfrm.lin凸輪dt2(i).x2 = 基圓xy(0 + 1 + (i - 1) * j, 1) mainfrm.lin凸輪dt2(i).y1 = pointxy(0 + 1 + (i - 1) * j, 2) mainfrm.lin凸輪dt2(i).y2 = 基圓xy(0 + 1 + (i - 1)

43、 * j, 2) lin凸輪dt2(i).visible = true next i mainfrm.picture1.line (偏距圓xy(0 + 1 + 2, 1), 偏距圓xy(0 + 1 + 2, 2) _ -(基圓xy(0 + 1 + 2, 1), 基圓xy(0 + 1 + 2, 2), &hffffffend subpublic sub third_step() mainfrm.timer2.enabled = trueend subpublic sub forth_step() mainfrm.timer2.enabled = false me.enabled = false

44、mainfrm.cmd設(shè)置.enabled = false mainfrm.cmdreset.enabled = false mainfrm.cmd繼續(xù).enabled = false mainfrm.cmd設(shè)計(jì).enabled = false mainfrm.timer3.enabled = trueend subfrm設(shè)置的代碼:option explicitprivate sub cmdclose_click() unload meend subprivate sub cmd確定_click() r0 = txt_r0 h = txt_h 0 = txt_0 1 = txt_1 2 =

45、txt_2 3 = txt_3 r1 = txt_r1 e = txt_e if 0 + 1 + 2 + 3 360 then msgbox 給定的四個(gè)運(yùn)動(dòng)角之和應(yīng)為360度 txt_3 = 360 - 0 - 1 - 2 txt_3.setfocus end if call mainfrm.init1 end subprivate sub form_load() txt_r0 = r0 txt_h = h txt_0 = 0 txt_1 = 1 txt_2 = 2 txt_3 = 3 txt_r1 = r1 txt_e = eend subfrm凸輪設(shè)計(jì)的代碼:option explicit

46、dim ii as integerdim jj as integerdim as singlepublic sub cmdreset_click() call init1end subprivate sub cmd繼續(xù)_click() dim i as integer if = 0 then line1.visible = false line2.visible = false line3.visible = false line4.visible = false line5.visible = false lineh1.visible = false lineh2.visible = fal

47、se label1.visible = false label2.visible = false label3.visible = false label4.visible = false lab_h.visible = false if i等分dt0 0 then for i = 1 to i等分dt0 lin凸輪dt0(i).visible = false lin基圓dt0(i).visible = false lin等分dt0(i).visible = false next end if if i等分dt2 0 then for i = 1 to i等分dt2 lin凸輪dt2(i).v

48、isible = false lin基圓dt2(i).visible = false lin等分dt2(i).visible = false next end if end if cmd繼續(xù).caption = 暫停 if timer1.enabled then cmd繼續(xù).caption = 繼續(xù) timer1.enabled = not timer1.enabledend subprivate sub cmd設(shè)計(jì)_click() dim i as integer cls call init1 if i等分dt0 0 then for i = 1 to i等分dt0 lin凸輪dt0(i).

49、visible = false lin基圓dt0(i).visible = false lin等分dt0(i).visible = false next end if if i等分dt2 0 then for i = 1 to i等分dt2 lin凸輪dt2(i).visible = false lin基圓dt2(i).visible = false lin等分dt2(i).visible = false next end if if e = 0 then if r1 = 0 then frm對心設(shè)計(jì).cmdfifth.enabled = false frm對心設(shè)計(jì).show else if r1 = 0 then frm偏置設(shè)計(jì).cm

溫馨提示

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

評(píng)論

0/150

提交評(píng)論