《機(jī)械原理》課件第12章_第1頁(yè)
《機(jī)械原理》課件第12章_第2頁(yè)
《機(jī)械原理》課件第12章_第3頁(yè)
《機(jī)械原理》課件第12章_第4頁(yè)
《機(jī)械原理》課件第12章_第5頁(yè)
已閱讀5頁(yè),還剩330頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第12章計(jì)算機(jī)輔助機(jī)構(gòu)設(shè)計(jì)與分析12.1計(jì)算機(jī)輔助機(jī)構(gòu)設(shè)計(jì)與分析的特點(diǎn)及分類(lèi)12.2平面連桿機(jī)構(gòu)的計(jì)算機(jī)輔助設(shè)計(jì)12.3平面連桿機(jī)構(gòu)的運(yùn)動(dòng)分析和仿真12.4凸輪機(jī)構(gòu)的計(jì)算機(jī)輔助設(shè)計(jì)12.1計(jì)算機(jī)輔助機(jī)構(gòu)設(shè)計(jì)與分析的特點(diǎn)及分類(lèi)機(jī)構(gòu)的設(shè)計(jì)與分析過(guò)程較為復(fù)雜。在前面的章節(jié)中介紹了機(jī)構(gòu)設(shè)計(jì)與分析的圖解法和解析法。用圖解法對(duì)機(jī)構(gòu)進(jìn)行分析,只能分析一個(gè)位置,若要求對(duì)機(jī)構(gòu)多個(gè)位置,如對(duì)應(yīng)原動(dòng)件360個(gè)不同位置進(jìn)行全面的運(yùn)動(dòng)分析,其作圖量非常大。隨著工程上對(duì)機(jī)構(gòu)設(shè)計(jì)和分析的精度要求越來(lái)越高,圖解法作圖精度有時(shí)難以保證。解析法的優(yōu)點(diǎn)是精度高,但計(jì)算工作量大,在早期曾一度限制了它的應(yīng)用。近幾十年來(lái),隨著計(jì)算機(jī)科學(xué)的發(fā)展,機(jī)構(gòu)設(shè)計(jì)與分析的解析法與計(jì)算機(jī)科學(xué)相結(jié)合,形成了一門(mén)新的機(jī)構(gòu)學(xué)分支,這就是機(jī)構(gòu)的計(jì)算機(jī)輔助設(shè)計(jì)與分析。近年來(lái),機(jī)構(gòu)的計(jì)算機(jī)輔助設(shè)計(jì)與分析的研究趨勢(shì)主要有:(1)將機(jī)構(gòu)的設(shè)計(jì)與分析作為計(jì)算機(jī)輔助設(shè)計(jì)與制造(CAD/CAM)的研究基礎(chǔ)。(2)研究包括間隙、構(gòu)件的變形、摩擦與阻力、振動(dòng)等復(fù)雜問(wèn)題的分析與設(shè)計(jì),以及機(jī)構(gòu)的優(yōu)化設(shè)計(jì)等。(3)利用計(jì)算機(jī)的繪圖功能顯示和模擬機(jī)構(gòu)的運(yùn)動(dòng)。(4)為缺乏經(jīng)驗(yàn)的設(shè)計(jì)者開(kāi)發(fā)計(jì)算機(jī)輔助設(shè)計(jì)形式的綜合方法,其中包括專(zhuān)家系統(tǒng)和人工智能方法。(5)快速發(fā)展適用于微型計(jì)算機(jī)機(jī)構(gòu)分析與設(shè)計(jì)的軟件。機(jī)構(gòu)的計(jì)算機(jī)輔助分析與設(shè)計(jì),其主要優(yōu)點(diǎn)是:(1)計(jì)算機(jī)的快速計(jì)算能力提高了分析與設(shè)計(jì)的效率和時(shí)間。(2)計(jì)算機(jī)計(jì)算精度高和優(yōu)化設(shè)計(jì)方法的采用,提高了分析與設(shè)計(jì)的質(zhì)量。(3)機(jī)構(gòu)的計(jì)算機(jī)輔助設(shè)計(jì)與分析作為計(jì)算機(jī)輔助設(shè)計(jì)與制造的一部分,可以直接利用數(shù)據(jù)庫(kù)中的數(shù)據(jù),并可將分析與設(shè)計(jì)的結(jié)果送入數(shù)據(jù)庫(kù),便于集成化的生產(chǎn)和管理。由于具有上述這些優(yōu)點(diǎn),機(jī)構(gòu)的計(jì)算機(jī)輔助設(shè)計(jì)與分析的應(yīng)用已漸成趨勢(shì)。用計(jì)算機(jī)對(duì)機(jī)構(gòu)進(jìn)行設(shè)計(jì)與分析,最終要通過(guò)計(jì)算機(jī)軟件來(lái)完成。由于機(jī)構(gòu)設(shè)計(jì)與分析的內(nèi)容和方法很多,因此編制的程序也不一樣。目前利用計(jì)算機(jī)進(jìn)行分析與設(shè)計(jì)的方法大致可分為三類(lèi):一類(lèi)是針對(duì)具體的機(jī)構(gòu),用解析法推導(dǎo)出所有的計(jì)算公式,然后按公式編制相應(yīng)的程序進(jìn)行計(jì)算,如凸輪機(jī)構(gòu)、連桿機(jī)構(gòu)、間歇運(yùn)動(dòng)機(jī)構(gòu)等一些特殊機(jī)構(gòu)的設(shè)計(jì)與分析就屬于此類(lèi)方法;第二類(lèi)是預(yù)先編制通用子程序,然后對(duì)機(jī)構(gòu)進(jìn)行分析時(shí)再調(diào)用相應(yīng)的子程序進(jìn)行相應(yīng)的計(jì)算,如平面連桿(多桿)機(jī)構(gòu)的運(yùn)動(dòng)和動(dòng)力分析就屬于這類(lèi)方法;第三類(lèi)是利用二維或三維造型軟件進(jìn)行參數(shù)化設(shè)計(jì)與分析,如Pro/E、UG、Adams等軟件。當(dāng)然,這里的分類(lèi)只是為了說(shuō)明方便,并不是絕對(duì)的。12.2平面連桿機(jī)構(gòu)的計(jì)算機(jī)輔助設(shè)計(jì)

平面連桿機(jī)構(gòu)的計(jì)算機(jī)輔助設(shè)計(jì),一般是采用解析法設(shè)計(jì)的理論和所建立的設(shè)計(jì)公式,利用計(jì)算機(jī)求解,以得到設(shè)計(jì)結(jié)果。現(xiàn)以最常見(jiàn)的平面四桿機(jī)構(gòu)的設(shè)計(jì)為例,介紹機(jī)構(gòu)的計(jì)算機(jī)輔助設(shè)計(jì)的思路、過(guò)程和方法。常見(jiàn)的平面四桿機(jī)構(gòu)的設(shè)計(jì)有三種類(lèi)型:按給定的連桿位置設(shè)計(jì)四桿機(jī)構(gòu)、按兩連架桿對(duì)應(yīng)位置設(shè)計(jì)四桿機(jī)構(gòu)和按給定行程速比系數(shù)設(shè)計(jì)四桿機(jī)構(gòu)。這里介紹按給定行程速比系數(shù)設(shè)計(jì)平面四桿機(jī)構(gòu)的方法。如圖12-1所示的曲柄搖桿機(jī)構(gòu),設(shè)給定行程速比系數(shù)K、搖桿的最大擺角ψ、搖桿的長(zhǎng)度c和許用壓力角[α](或最小傳動(dòng)角),要求綜合該四桿機(jī)構(gòu)。

1.建立數(shù)學(xué)模型首先由(12-1)求出極位夾角θ。由圖解法知,以c和ψ作等腰三角形C1DC2,以C1C2為弦作圓周角為θ的圓,則該圓即為曲柄回轉(zhuǎn)中心A所在的圓η,如圖12-2所示。圖12-1曲柄搖桿機(jī)構(gòu)圖12-2曲柄搖桿機(jī)構(gòu)的幾何關(guān)系該圓的圓心在搖桿最大擺角ψ的等分線(xiàn)上。再由給定的許用壓力角[α],可分幾種情況確定固定鉸鏈A在η圓上的位置,最后求出曲柄、連桿和機(jī)架的長(zhǎng)a、b和d。在△AC1C2中,lC1C2=2csin,lAC1=b-a,lAC2=a+b,應(yīng)用正弦定理得

所以有(12-3)(12-2)可見(jiàn),若能求出∠AC1C2和∠C1C2A,便可求出曲柄和連桿長(zhǎng)a、b,然后在△AC1C2和△AC2D中應(yīng)用余弦定理求出機(jī)架長(zhǎng)d。

1)當(dāng)θ=ψ時(shí)如圖12-2(a)所示,當(dāng)θ=ψ時(shí),兩極限位置連桿和搖桿的夾角δ1和δ2均為AD所對(duì)圓周角,所以δ1=δ2=90°-[α],故在△AC2D中應(yīng)用余弦定理求得機(jī)架長(zhǎng)度為(12-4)

2)當(dāng)θ<ψ時(shí)如圖12-2(b)所示,延長(zhǎng)C1D和C2D,與圓η分別交于E1和E2,因?yàn)棣?所對(duì)應(yīng)的弧小于δ1所對(duì)應(yīng)的弧,所以δ2<δ1。從滿(mǎn)足許用壓力角要求的角度,應(yīng)按δ2=90°-[α]綜合曲柄搖桿機(jī)構(gòu)。則有在△AC2D中應(yīng)用余弦定理求得機(jī)架長(zhǎng)度為(12-5)

3)當(dāng)θ>ψ時(shí)如圖12-2(c)所示,可見(jiàn)δ1<δ2,從滿(mǎn)足許用壓力角要求的角度,應(yīng)按δ1=90°-[α]綜合曲柄搖桿機(jī)構(gòu)。則有在△AC1D中應(yīng)用余弦定理求得機(jī)架長(zhǎng)度為(12-6)用該方法綜合曲柄搖桿機(jī)構(gòu)時(shí),在工作行程角j1范圍內(nèi)的壓力角總是小于許用壓力角[α]。因?yàn)楫?dāng)曲柄與機(jī)架重疊共線(xiàn)時(shí),δ=90°-[α]=δmin,故在空回行程j2角范圍內(nèi),壓力角將稍大于[α],但因空行程受力較小,故壓力角稍大于[α],對(duì)機(jī)構(gòu)性能影響不大。

2.計(jì)算機(jī)輔助機(jī)構(gòu)設(shè)計(jì)隨著計(jì)算機(jī)的發(fā)展,計(jì)算機(jī)語(yǔ)言也從最低級(jí)的機(jī)器語(yǔ)言向高級(jí)語(yǔ)言發(fā)展,如今已是名目繁多,難以勝數(shù)了。對(duì)于初學(xué)者,一般常用的高級(jí)語(yǔ)言有Basic、C、Java、Fortran、Delphi等等,這里以VisualBasic為例,介紹程序設(shè)計(jì)方法。

1)界面設(shè)計(jì)在界面設(shè)計(jì)時(shí),主要是采用人機(jī)對(duì)話(huà)的方式進(jìn)行的,利用VB6.0來(lái)編制設(shè)計(jì)用戶(hù)界面,創(chuàng)建用戶(hù)對(duì)話(huà)框,設(shè)置相應(yīng)的窗體。設(shè)計(jì)用戶(hù)界面時(shí),應(yīng)做到界面直觀、友好、美觀,每一窗體控件布置合理。在機(jī)構(gòu)設(shè)計(jì)中,需要進(jìn)行圖形顯示、打印、存儲(chǔ)等工作,因此界面設(shè)計(jì)中應(yīng)將設(shè)計(jì)數(shù)據(jù)結(jié)果與圖形處理有機(jī)結(jié)合,使界面能提供圖文并茂的設(shè)計(jì)過(guò)程和設(shè)計(jì)結(jié)果,保證人機(jī)交互信息的順暢流動(dòng),使設(shè)計(jì)者操作方便,直觀易學(xué)。如圖12-3所示為曲柄搖桿機(jī)構(gòu)設(shè)計(jì)的主界面。界面中主要有“已知參數(shù)”、“計(jì)算結(jié)果”、“結(jié)構(gòu)模型及動(dòng)態(tài)演示”和“運(yùn)行與刷新”四個(gè)區(qū)域。點(diǎn)擊“結(jié)構(gòu)模型”選項(xiàng)卡,可了解到各變量的含義,輸入機(jī)構(gòu)的已知參數(shù),點(diǎn)擊“運(yùn)行”按鈕,程序?qū)⑦M(jìn)行有關(guān)運(yùn)算,運(yùn)行后在“計(jì)算結(jié)果”控件組中顯示機(jī)構(gòu)設(shè)計(jì)的結(jié)果參數(shù)。點(diǎn)擊“動(dòng)態(tài)演示”選項(xiàng)卡,則可在“Picture”控件中仿真機(jī)構(gòu)運(yùn)動(dòng)情況,如圖12-4所示。圖12-3曲柄搖桿機(jī)構(gòu)設(shè)計(jì)結(jié)構(gòu)模型界面圖12-4曲柄搖桿機(jī)構(gòu)運(yùn)動(dòng)仿真

2)程序設(shè)計(jì)變量定義:

ConstpiAsDouble=3.1415926

ConstrrAsDouble=pi/180

PublicaAsDouble

PublicbAsDouble

PubliccAsDouble

PublicdAsDouble

PublickAsDouble

PublicthtAsDouble

Publictht1AsDouble

Publictht2AsDouble

PubliceAsDouble運(yùn)行按鈕主程序:

PrivateSubCommand1-Click()

k=Val(Text1.Text)

c=Val(Text2.Text)

tht=Val(Text3.Text)

e=Val(Text4.Text)

IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""Then

BeepMsgBox"請(qǐng)完全輸入數(shù)據(jù)!",48,"提示!"ExitSub

EndIfr=180*(k-1)/(k+1)

Ifr=thtThen

tht1=e-(tht/2)

tht2=180-(e+(tht/2))a=c*Sin(tht/2*rr)/Sin(r*rr)*(Sin(tht2*rr)-Sin(tht1*rr))

b=c*Sin(tht/2*rr)/Sin(r*rr)*(Sin(tht2*rr)+Sin(tht1*rr))

d=Sqr((a+b)^2+c^2-2*c*(a+b)*Sin(e*rr))

ElseIfr<thtThen

tht1=e-(tht/2)

tht2=180-(r+e-(tht/2))

a=(c*Sin(tht/2*rr)/Sin(r*rr)*(Sin(tht2*rr)-Sin(tht1*rr)))

b=(c*Sin(tht/2*rr)/Sin(r*rr)*(Sin(tht2*rr)+Sin(tht1*rr)))

d=Sqr((a+b)^2+c^2-2*c*(a+b)*Sin(e*rr))

ElseIfr>thtThen

tht1=e+(tht/2)-r

tht2=180-(e+(tht/2))

a=(c*Sin(tht/2*rr)/Sin(r*rr)*(Sin(tht2*rr)-Sin(tht1*rr)))

b=(c*Sin(tht/2*rr)/Sin(r*rr)*(Sin(tht2*rr)+Sin(tht1*rr)))

d=Sqr((b-a)^2+c^2-2*c*(b-a)*Sin(e*rr))

EndIf

Text5.Text=a

Text6.Text=b

Text7.Text=c

Text8.Text=d

Text9.Text=Text1.Text

Text10.Text=Text3.Text

Text11.Text=r

Text12.Text=Text4.Text

EndSub刷新按鈕主程序:

PrivateSubCommand2-Click()

Text1.Text=""

Text2.Text=""

Text3.Text=""

Text4.Text=""

Text5.Text=""

Text6.Text=""

Text7.Text=""

Text8.Text=""

Text9.Text=""

Text10.Text=""

Text11.Text=""

Text12.Text=""

EndSub機(jī)構(gòu)運(yùn)動(dòng)仿真程序:

PrivateSubForm-Load()

Line1.Visible=True

Line2.Visible=False

Label24.ForeColor=vbBlack

Label25.ForeColor=vbRed

Picture1.Visible=True

ShockwaveFlash1.Visible=False

ShockwaveFlash1.Movie=(App.Path&"\movice\搖桿機(jī)構(gòu).swf")

EndSub返回按鈕程序:

PrivateSubLabel23-Click()

UnloadMe

Form2.Show

EndSub12.3平面連桿機(jī)構(gòu)的運(yùn)動(dòng)分析和仿真利用計(jì)算機(jī)對(duì)機(jī)構(gòu)進(jìn)行運(yùn)動(dòng)分析時(shí),其步驟一般是:首先利用解析法對(duì)機(jī)構(gòu)進(jìn)行位置分析、速度分析和加速度分析,得到相應(yīng)的數(shù)學(xué)模型;然后根據(jù)數(shù)學(xué)模型設(shè)計(jì)、編制計(jì)算機(jī)求解程序,上機(jī)調(diào)試程序,從而得到分析的數(shù)據(jù)結(jié)果并輸出結(jié)果?,F(xiàn)以最常見(jiàn)的鉸鏈四桿機(jī)構(gòu)為例,介紹機(jī)構(gòu)計(jì)算機(jī)輔助運(yùn)動(dòng)分析的方法。

1.建立數(shù)學(xué)模型如圖12-5所示的鉸鏈四桿機(jī)構(gòu),已知機(jī)構(gòu)各構(gòu)件尺寸L1、L2、L3、L4,原動(dòng)件1的轉(zhuǎn)角為j1,等角速度為ω1。圖12-5曲柄搖桿機(jī)構(gòu)利用解析法進(jìn)行位置分析、速度分析和加速度分析的過(guò)程和方法詳見(jiàn)第3章,這里不再贅述。

2.計(jì)算機(jī)輔助機(jī)構(gòu)運(yùn)動(dòng)分析

1)界面設(shè)計(jì)圖12-6所示為鉸鏈四桿機(jī)構(gòu)運(yùn)動(dòng)分析的界面。界面中有“結(jié)構(gòu)模型”、“數(shù)據(jù)顯示”、“運(yùn)動(dòng)線(xiàn)圖”和“運(yùn)動(dòng)仿真”四個(gè)選項(xiàng)卡。使用者首先在“結(jié)構(gòu)模型”選項(xiàng)卡中了解到各變量的含義,輸入機(jī)構(gòu)的已知參數(shù),選擇曲柄的轉(zhuǎn)向和機(jī)構(gòu)裝配方式等,然后點(diǎn)擊“顯示”按鈕,程序進(jìn)行有關(guān)運(yùn)算,鉸鏈四桿機(jī)構(gòu)的類(lèi)型和機(jī)構(gòu)在某一位置的運(yùn)動(dòng)參數(shù)就會(huì)分別在“系統(tǒng)信息”和“輸出數(shù)據(jù)”控件組中顯示出來(lái)。如圖12-7所示,點(diǎn)擊“數(shù)據(jù)顯示”選項(xiàng)卡,就會(huì)在“Picture”控件中顯示機(jī)構(gòu)在一個(gè)循環(huán)中不同位置時(shí)從動(dòng)件3的位移、速度和加速度數(shù)據(jù)。如圖12-8所示,點(diǎn)擊“運(yùn)動(dòng)線(xiàn)圖”選項(xiàng)卡,則可在“Picture”控件中顯示機(jī)構(gòu)在一個(gè)循環(huán)中不同位置時(shí)從動(dòng)件3的位移、速度和加速度的運(yùn)動(dòng)曲線(xiàn)。如圖12-9所示,點(diǎn)擊“運(yùn)動(dòng)仿真”選項(xiàng)卡和演示控件,則可在“Picture”控件中顯示仿真機(jī)構(gòu)的運(yùn)動(dòng)情況。圖12-6鉸鏈四桿機(jī)構(gòu)運(yùn)動(dòng)分析界面圖12-7機(jī)構(gòu)運(yùn)動(dòng)分析數(shù)據(jù)顯示圖12-8從動(dòng)件運(yùn)動(dòng)線(xiàn)圖圖12-9機(jī)構(gòu)運(yùn)動(dòng)仿真

2)運(yùn)動(dòng)分析程序設(shè)計(jì)變量定義程序:

Dimm1AsInteger

DimjduAsInteger

DimBZAsInteger

Dimjw1(0To360),jw2(0To360),jw3(0To360)

Dimjs1(0To360),js2(0To360),js3(0To360)

Dimjj1(0To360),jj2(0To360),jj3(0To360)

DimbzhiAsInteger時(shí)間顯示程序:

PrivateSubclockwise-Click()m=-1EndSub數(shù)據(jù)顯示選項(xiàng)卡程序:

PrivateSubCommand5-Click()ListView1.Visible=FalsePicture2.Visible=FalsePicture3.Visible=FalsePicture1.Visible=TrueCommand5.Caption="數(shù)據(jù)顯示"EndSub數(shù)據(jù)導(dǎo)出程序:

PrivateSubCommand6-Click()

IfCommand6.Caption="導(dǎo)出數(shù)據(jù)"Then

Setexl=NewExcel.Application

exl.Visible=True

exl.SheetsInNewWorkbook=1

Setwbook=exl.Workbooks.Addexl.ActiveSheet.Rows.HorizontalAlignment=xlVAlignCenter'水平居中

exl.ActiveSheet.Rows.VerticalAlignment=xlVAlignCenter'垂直居中

Withexl.ActiveSheet

Cells(1,1).Value="Φ1/(°)"

Cells(1,2).Value="Φ3/(°)"

Cells(1,3).Value="ω3/(rad/s)"

Cells(1,4).Value="α3/(rad/s^2)"

Dimii

Forii=0To360

Cells(ii+2,1).Value=ii

Cells(ii+2,

2).Value=Mid$(Str$(jw3(ii)*180/3.1415926),2,5)

Cells(ii+2,3).Value=Mid$(Str$(js3(ii)),1,5)

Cells(ii+2,4).Value=Mid$(Str$(jj3(ii)),1,5)

Nextii

EndWith

exl.ActiveSheet.PageSetup.Orientation=xlPortrait'xlLandscape

exl.ActiveSheet.PageSetup.PaperSize=xlPaperA4

exl.DisplayAlerts=False

exl.DisplayAlerts=True

Setexl=Nothing

EndIf

IfCommand6.Caption="數(shù)據(jù)顯示"Then

ListView1.Visible=True

Picture1.Visible=False

Picture2.Visible=False

Picture3.Visible=FalseIfCommand1.Caption="運(yùn)行"Then

Beep

Label9.ForeColor=&HFF&

Label9.Caption="請(qǐng)先點(diǎn)擊|運(yùn)行|..."

Else:Command6.Caption="導(dǎo)出數(shù)據(jù)"EndIfEndIfEndSub顯示按鈕程序:

PrivateSubCommand7-Click()

Picture2.Visible=True

ListView1.Visible=False

Picture1.Visible=False

Picture3.Visible=False

Command6.Caption="數(shù)據(jù)顯示"

IfCommand1.Caption="運(yùn)行"Then

Beep

Label9.ForeColor=&HFF&

Label9.Caption="請(qǐng)先點(diǎn)擊|運(yùn)行|..."

EndIf

EndSub演示按鈕程序:

PrivateSubCommand8-Click()

Picture3.Visible=TrueListView1.Visible=False

Picture1.Visible=False

Picture2.Visible=False

Command6.Caption="數(shù)據(jù)顯示"

IfCommand1.Caption="運(yùn)行"Then

Beep

Label9.ForeColor=&HFF&

Label9.Caption="請(qǐng)先點(diǎn)擊|運(yùn)行|..."

EndIfEndSub清除按鈕程序:

PrivateSubCommand9-Click()

Beep

Txt1.Text=""

Txt2.Text=""

Txt3.Text=""

Txt4.Text=""

Txt5.Text=""

Txt6.Text=""

Text1.Text=""

Text2.Text=""

Text3.Text=""

Text4.Text=""

Text5.Text=""

Text6.Text=""

Command6.Caption="數(shù)據(jù)顯示"

ListView1.ListItems.Clear

Picture2.Cls

Picture3.Cls

Picture3.Enabled=True

clockwise.Value=False

unclock.Value=False

Combo1.Text=請(qǐng)選擇

Label9.Caption=“歡迎使用SP平面桿機(jī)構(gòu)分析系統(tǒng)”IfCommand1.Caption="顯示"ThenCommand1.Caption="運(yùn)行"EndIf

IfCommand1.Caption="演示"Then

Command1.Caption="運(yùn)行"

EndIf

IfCommand2.Caption="暫停"Then

Command1.Caption="演示"

EndIf

EndSub

PrivateSubunclock-Click()m=1EndSub參數(shù)計(jì)算子程序:

PrivateSubCommand1-Click()Label1.ForeColor=&H8000000ELabel2.ForeColor=&H8000000ELabel3.ForeColor=&H8000000ELabel4.ForeColor=&H8000000ELabel5.ForeColor=&H8000000ELabel6.ForeColor=&H8000000ELabel7.ForeColor=&H8000000E

Label8.ForeColor=&H8000000ELabel9.ForeColor=&H8000000ELabel9.Caption="數(shù)據(jù)處理中...請(qǐng)稍后..."Diml(4)Dimφ(3),φ1(3),φ2(3)Dimpfpu(2,2),pfpv(2,1),pfpu1(2,2)Dimdpfpu(2,2),dpfpv(2,1)Dimi,j,nAsInteger

Dimj1,j3,jw11AsSinglerj=180/3.1415926bzhi=1l(1)=Val(Txt1.Text)l(2)=Val(Txt2.Text)l(3)=Val(Txt3.Text)l(4)=Val(Txt4.Text)n=Val(Txt5.Text)jw11=Val(Txt6.Text)jdu=jw11

IfTxt1.Text=""OrTxt2.Text=""OrTxt3.Text=""OrTxt4.Text=""Then

Beep

Label1.ForeColor=&HFFFF&

Label2.ForeColor=&HFFFF&

Label3.ForeColor=&HFFFF&

Label4.ForeColor=&HFFFF&

Label9.ForeColor=&HFF&

Label9.Caption="長(zhǎng)度數(shù)據(jù)輸入不完全...請(qǐng)檢查后重試..."

bzhi=0

ExitSub

EndIf

IfTxt5.Text=""OrTxt6.Text=""Then

Beep

Label5.ForeColor=&HFFFF&

Label6.ForeColor=&HFFFF&

Label9.ForeColor=&HFF&

Label9.Caption="曲柄參數(shù)輸入不完全...請(qǐng)檢查后重試..."

bzhi=0

ExitSub

EndIf

IfCombo1.Text=""Then

Beep

Label7.ForeColor=&HFFFF&

Label9.ForeColor=&HFF&

Label9.Caption="轉(zhuǎn)向系數(shù)未選擇...請(qǐng)檢查后重試..."

ExitSub

EndIf

Rem確定BCD的方向

IfCombo1.Text="逆時(shí)針"Thenm1=1

IfCombo1.Text="順時(shí)針"Thenm1=0

Ifclockwise.Value=FalseAndunclock.Value=FalseThen

Beep

Label8.ForeColor=&HFFFF&

Label9.ForeColor=&HFF&

Label9.Caption="鉸鏈BCD未選擇...請(qǐng)檢查后重試..."

bzhi=0

ExitSub

EndIf

Rem定義M的值

Ifclockwise.Value=TrueThenm=-1

Ifunclock.Value=TrueThenm=1

Rem判別機(jī)構(gòu)的類(lèi)型

Dimmax,min,sAsSingle

max=l(1)

min=l(1)

Fori=2To4

Ifl(i)>maxThenmax=l(i)

Ifl(i)<minThenmin=l(i)

NextiFori=1To4

s=s+l(i)Nexti

Ifmax>s-maxThenLabel9.ForeColor=&HFF&Label9.Caption="機(jī)構(gòu)無(wú)法裝配...請(qǐng)重新輸入數(shù)據(jù)..."bzhi=0ExitSub

EndIf

s=s-max-min

Dima,DAsInteger

DimmmAsInteger

mm=360

If(max+min)>sThen

Label9.ForeColor=&H8000000E

Label9.Caption="該機(jī)構(gòu)為:雙搖桿機(jī)構(gòu)...^-^..."

BZ=2

Callacmax(l(),a1min,a1max)Ifjw11>a1minAndjw11<a1maxThen

Label9.ForeColor=&HFF&

Label9.Caption="曲柄轉(zhuǎn)角有誤...請(qǐng)重新輸入..."

bzhi=0

Txt6.Text=""

ExitSubElseFori=0Toa1min

Callwwww(i,a1min,rh,l(),m,n,pi,jw2(),jw3(),js2(),js3(),jj2(),jj3())NextiFori=a1maxTo360

Callwwww(i,mm,rh,l(),m,n,pi,jw2(),jw3(),js2(),js3(),jj2(),jj3())Nexti

EndIf

ElseIf(max+min)<=sAndl(2)=minThen

Label9.ForeColor=&H8000000E

Label9.Caption="該機(jī)構(gòu)為:雙搖桿機(jī)構(gòu)...^-^..."

BZ=2

a=(l(1)^2+l(4)^2-(l(2)+l(3)^2)/(2*l(1)*l(4)))

D=((-l(3)^2+l(4)^2+(l(2)+l(1))^2)/(2*(l(1)+l(2))*l(4)))

a1max=Atn(Sqr(1-((l(1)^2+l(4)^2-(l(2)+l(3))^2)/(2*l(1)*l(4)))^2)/((l(1)^2+1(4)^2-(l(2)+l(3))^2)/(2*l(1)*l(4))))*rj

a1min=Atn(Sqr(1-((-l(3)^2+l(4)^2+(l(2)+l(1))^2)/(2*(l(1)+l(2))*l(4)))^2)/((-l(3)^2+l(4)^2+(l(2)+l(1))^2)/(2*(l(1)+l(2))*l(4))))*rjIfa1max<0Thena1max=a1max+180Ifa1min<0Thena1min=a1min+180Ifjw11<a1minOrjw11>a1maxThen

Label9.ForeColor=&HFF&

Label9.Caption="曲柄轉(zhuǎn)角有誤...請(qǐng)重新輸入..."

bzhi=0

Txt6.Text=""

ExitSub

Else

Forj=Int(a1min+1)ToInt(a1max)

Callwwww(j,a1max,rh,l(),m,n,pi,jw2(),jw3(),js2(),js3(),jj2(),jj3())

NextjEndIf

ElseIf(max+min)<=sAndl(4)=minThen

Label9.ForeColor=&H8000000E

Label9.Caption="該機(jī)構(gòu)為:雙曲柄機(jī)構(gòu)...^-^..."

a1max=360:a1min=0

Fori=0To360

Callwwww(i,mm,rh,l(),m,n,pi,jw2(),jw3(),js2(),js3(),jj2(),jj3())

NextiElseIfl(1)=minThen

Label9.ForeColor=&H8000000E

Label9.Caption="該機(jī)構(gòu)為:曲柄搖桿機(jī)構(gòu)...^-^..."

a1max=360:a1min=0

Fori=0To360Callwwww(i,mm,rh,l(),m,n,pi,jw2(),jw3(),js2(),js3(),jj2(),jj3())

NextiElse′搖桿為原動(dòng)件時(shí)

Label9.ForeColor=&H8000000E

Label9.Caption="該機(jī)構(gòu)為:雙搖桿機(jī)構(gòu)...^-^..."

BZ=1

a=((l(1)^2+l(4)^2-(l(2)+l(3))^2)/(2*l(1)*l(4)))

D=(l(1)^2+l(4)^2-(l(2)-l(3))^2)/(2*l(1)*l(4))

a1max=[ZK(]Atn(Sqr(1-((l(1)^2+l(4)^2-(l(2)+l(3))^2)/(2*l(1)*l(4)))^2)/((l(1)^2+l(4)^2-(l(2)+l(3))^2)/(2*l(1)*l(4))))*rja1min=Atn(Sqr(1-D^2)/D)*rjIfa1max<=0Thena1max=a1max+180Ifa1min<0Thena1min=a1min+180Ifjw11<a1minOrjw11>a1maxThen

Label9.ForeColor=&HFF&

Label9.Caption="曲柄轉(zhuǎn)角有誤...請(qǐng)重新輸入..."

bzhi=0

Txt6.Text="“

ExitSub

ElseForj=Int(a1min+1)ToInt(a1max-1)Callwwww(j,a1max,rh,l(),m,n,pi,jw2(),jw3(),js2(),js3(),jj2(),jj3())NextjEndIfEndIf

jdu=jw11

Rem減少數(shù)值的有效位數(shù)由文本框顯示

Text1.Text=Mid$(Str$(jw2(jdu)*rj),2,5)

Text2.Text=Mid$(Str$(jw3(jdu)*rj),2,5)

Text3.Text=Mid$(Str$(js2(jdu)),1,5)

Text4.Text=Mid$(Str$(js3(jdu)),1,5)

Text5.Text=Mid$(Str$(jj2(jdu)),1,5)

Text6.Text=Mid$(Str$(jj3(jdu)),1,5)

Rem由listview顯示運(yùn)算結(jié)果

ListView1.ListItems.ClearFori=0To360

Setitemx=ListView1.ListItems.Add(,,CCur(i))

Withitemx

.SubItems(1)=Mid$(Str$(jw3(i)*rj),2,5)

.SubItems(2)=Mid$(Str$(js3(i)),1,5)

.SubItems(3)=Mid$(Str$(jj3(i)),1,5)

EndWithNextiRem調(diào)用模塊繪制運(yùn)動(dòng)曲線(xiàn)及其靜態(tài)圖

Callddraw3(l(),jw3(),jdu,m,Picture3)Callddraw2(jdu,rh,l(),m,n,jw3(),js3(),jj3(),Picture2)jdu=jw11Command1.Caption="顯示"EndSubPrivateSubCommand2-Click()

Ifbzhi=1ThenIfTxt1.Text[ZK(]=""OrTxt2.Text=""OrTxt3.Text=""OrTxt4.Text=""OrTxt5.Text=""OrTxt6.Text=""OrCombo1.Text=""ThenLabel9.ForeColor=&HFF&Label9.Caption="數(shù)據(jù)輸入不完全...請(qǐng)檢查后重試..."ElseIfii<0Orii>360ThenLabel9.ForeColor=&HFF&Label9.Caption="轉(zhuǎn)角超出范圍(0-360)...請(qǐng)檢查后重試..."

ElseIfclockwise.Value=FalseAndunclock.Value=FalseThenLabel9.ForeColor=&HFF&Label9.Caption="鉸鏈ABCD順序未選定...請(qǐng)檢查后重試..."

ElseIfCommand2.Caption="演示"ThenTimer1.Enabled=True

IfBZ=2ThenPicture3.Cls

Label9.Caption="Sorry該機(jī)構(gòu)無(wú)法演示完全,請(qǐng)重新輸入數(shù)據(jù):("EndIf

Command2.Caption="暫停"Else

Timer1.Enabled=False

Command2.Caption="演示"EndIfElseBeepLabel9.ForeColor=&HFF&Label9.Caption="請(qǐng)先點(diǎn)擊|運(yùn)行|..."ExitSub

EndIf

EndSubPrivateSubCommand3-Click()

Fori=0To360

jw3(i)=0

js3(i)=0

jj3(i)=0

Nexti

UnloadMe

FX0.ShowEndSubPrivateSubCommand4-Click()about.ShowEndSubPrivateSubForm-Load()Framemax.Visible=FalseTimer1.Interval=10Combo1.AddItem"順時(shí)針"Combo1.AddItem"逆時(shí)針"Timer1.Enabled=FalseCombohelp.AddItem"系統(tǒng)信息"Combohelp.AddItem"數(shù)據(jù)輸入"Combohelp.AddItem"數(shù)據(jù)顯示"Combohelp.AddItem"導(dǎo)出數(shù)據(jù)"Combohelp.AddItem"運(yùn)動(dòng)線(xiàn)圖"Combohelp.AddItem"運(yùn)動(dòng)仿真"EndSub幫助系統(tǒng)程序:PrivateSubCommandhelp-Click()IfCombohelp.Text="請(qǐng)選擇幫助項(xiàng)"ThenLabelhelp.Caption="請(qǐng)選擇幫助項(xiàng)"EndIfIfCombohelp.Text="系統(tǒng)信息"ThenLabelhelp.Caption="系統(tǒng)信息主要包括系統(tǒng)提示,如系統(tǒng)數(shù)據(jù)輸入不完全,機(jī)構(gòu)類(lèi)型等"EndIf

IfCombohelp.Text="數(shù)據(jù)輸入"Then

Labelhelp.Caption="輸入的數(shù)據(jù)必須正確、完全,如果輸入不完全,系統(tǒng)信息會(huì)提示具體數(shù)據(jù)輸入,其中轉(zhuǎn)角在0-360之間"

EndIf

IfCombohelp.Text="數(shù)據(jù)顯示"Then

Labelhelp.Caption="在系統(tǒng)運(yùn)行的條件下,點(diǎn)擊′數(shù)據(jù)顯示′按鈕就可以顯示所有數(shù)據(jù),此時(shí)′數(shù)據(jù)顯示′按鈕變成數(shù)據(jù)′導(dǎo)出數(shù)據(jù)′"

EndIf

IfCombohelp.Text="導(dǎo)出數(shù)據(jù)"Then

Labelhelp.Caption="在系統(tǒng)運(yùn)行的條件下,點(diǎn)擊′導(dǎo)出數(shù)據(jù)′按鈕就可以把所有數(shù)據(jù)導(dǎo)出到EXCEL里進(jìn)行編輯,處理"

EndIf

IfCombohelp.Text="運(yùn)動(dòng)線(xiàn)圖"Then

Labelhelp.Caption="在系統(tǒng)運(yùn)行的條件下,點(diǎn)擊′運(yùn)動(dòng)線(xiàn)圖′按鈕,然后點(diǎn)擊′顯示′"

EndIf

IfCombohelp.Text="運(yùn)動(dòng)仿真"Then

Labelhelp.Caption=“在系統(tǒng)運(yùn)行的條件下,點(diǎn)擊′運(yùn)動(dòng)仿真′按鈕,然后點(diǎn)擊′顯示′,則顯示靜態(tài)結(jié)構(gòu),然后點(diǎn)擊′演示′可以實(shí)現(xiàn)運(yùn)動(dòng)仿真,點(diǎn)擊′暫?!浒粹o停止運(yùn)動(dòng)仿真"

EndIf

EndSub繪制運(yùn)動(dòng)線(xiàn)圖主程序:

PrivateSubPicture3-Click()

Framemax.Visible=True

EndSubPrivateSubPicturemax-Click()Framemax.Visible=FalseEndSubPrivateSubTimer1-Timer()Diml(4)l(1)=Val(Txt1.Text):l(2)=Val(Txt2.Text)l(3)=Val(Txt3.Text):l(4)=Val(Txt4.Text)IfBZ=1Then

Ifm1=1Thenjdu=jdu+1

Ifm1=0Thenjdu=jdu-1Callacmax(l(),a1min,a1max)

Ifjdu>=Int(a1max)Thenjdu=Int(a1max)m1=0ElseIfjdu<=Int(a1min)+1Thenjdu=Int(a1min)+1m1=1EndIfCallddraw3(l(),jw3(),jdu,m,Picture3)Callddrawmax(l(),jw3(),jdu,m,Picturemax)

ElseIfBZ=0ThenIfCombo1.Text="逆時(shí)針"Thenjdu=(jdu+1)Mod360Callddraw3(l(),jw3(),jdu,m,Picture3)Callddrawmax(l(),jw3(),jdu,m,Picturemax)

ElseDoWhile(jdu=0)jdu=360Loopjdu=jdu-1Callddraw3(l(),jw3(),jdu,m,Picture3)Callddrawmax(l(),jw3(),jdu,m,Picturemax)EndIfElseIfm1=1ThenDoWhile(jdu=360)jdu=0Loopjdu=jdu+1Callddraw3(l(),jw3(),jdu,m,Picture3)Callddrawmax(l(),jw3(),jdu,m,Picturemax)Ifjdu=Int(a1min+1)Thenm1=0EndIfEndIfIfm1=0ThenDoWhile(jdu=0)jdu=360Loopjdu=jdu-1Callddraw3(l(),jw3(),jdu,m,Picture3)Callddrawmax(l(),jw3(),jdu,m,Picturemax)Ifjdu=Int(a1max)Thenm1=1Callddraw3(l(),jw3(),jdu,m,Picture3)Callddrawmax(l(),jw3(),jdu,m,Picturemax)EndIfEndIfEndIfEndSubPrivateSubTimer2-Timer()Label10.Caption=NowEndSubPrivateSubX-Click()FX0.ShowUnloadMeEndSubRem子程序設(shè)計(jì)Rem計(jì)算主動(dòng)件的最大及其最小角PublicSubacmax(l(),amin,amax)Dima,B,C,sDimaa3,ai3,i1DimiAsSingleFori=0To360i1=i*180/3.1415926a=2*l(1)*l(3)*Sin(i1)B=2*l(3)*(l(1)*Cos(i1)-l(4))C=l(2)^2-l(1)^2-l(3)^2-l(4)^2+2*l(1)*l(4)*Cos(i1)s=a^2+B^2-C^2Ifs<=0Thenai3=i-1:ExitForNextiFori=360To0Step-1i1=i*180/3.1415926a=2*l(1)*l(3)*Sin(i1)B=2*l(3)*(l(1)*Cos(i1)-l(4))C=l(2)^2-l(1)^2-l(3)^2-l(4)^2+2*l(1)*l(4)*Cos(i1)s=a^2+B^2-C^2Ifs<=0Thenaa3=i+1:ExitForNextiamin=ai3amax=aa3EndSubRem計(jì)算從動(dòng)件參數(shù)子程序PublicSubwwww(ii,max,rh,l(),m,n,pi,jw2(),jw3(),js2(),js3(),jj2(),jj3())Dima,B,C,D,E,FAsSingleDimatn3,atn2AsSingleDimat1,at2,dat1,dat2,ddat1,ddat2AsSingleDimjw1(0To360)Dimjs1(0To360)Dimjj1(-360To360)Dimφ(3),φ1(3),φ2(3)Dimpfpu(2,2),pfpv(2,1),pfpu1(2,2)Dimdpfpu(2,2),dpfpv(2,1)Dimj1Dimi,jAsIntegerpi=3.1415926rh=pi/180Ifii>maxThenExitSubjw1(ii)=ii*rh:j1=jw1(ii)a=2*l(1)*l(3)*Sin(j1)B=2*l(3)*(l(1)*Cos(j1)-l(4))C=l(2)^2-l(1)^2-l(3)^2-l(4)^2+2*l(1)*l(4)*Cos(j1)D=2*l(1)*l(2)*Sin(j1)E=2*l(2)*(l(1)*Cos(j1)-l(4))F=l(1)^2+l(2)^2-l(3)^2+l(4)^2-2*l(1)*l(4)*Cos(j1)atn2=Atn((D+m*(Sqr(D^2+E^2-F^2)))/(E-F))atn3=Atn((a+m*(Sqr(a^2+B^2-C^2)))/(B-C))Ifatn2<0Then

atn2=atn2+piEndIfIfatn3<0Then

atn3=atn3+piEndIfjw2(ii)=2*atn2jw3(ii)=2*atn3Dimci(1To3),si(1To3)AsSingleDimsAsSingleDimc4(2,2)AsSingleDimc1(2,1)AsSingle(1)=jw1(ii)(2)=jw2(ii)(3)=jw3(ii)Fori=1To3

ci(i)=l(i)*Cos(φ(i)):si(i)=l(i)*Sin(φ(i))Nextipfpu(1,1)=-si(2):pfpu(1,2)=si(3)pfpu(2,1)=ci(2):pfpu(2,2)=-ci(3)pfpv(1,1)=-si(1):pfpv(2,1)=ci(1)s=pfpu(1,1)*pfpu(2,2)-pfpu(1,2)*pfpu(2,1)c4(1,1)=pfpu(2,2):c4(1,2)=-pfpu(1,2)c4(2,1)=-pfpu(2,1):c4(2,2)=pfpu(1,1)Fori=1To2

Forj=1To2

pfpu1(i,j)=1/s*c4(i,j)Nextj

pfpu1(1,1)=1/s*c4(1,1):pfpu1(1,2)=1/s*c4(1,2)

pfpu1(2,1)=1/s*c4(2,1):pfpu1(2,2)=1/s*c4(2,2)Nexti

Fori=1To2

c1(i,1)=0Nexti

Fori=1To2

Forj=1To2

c1(i,1)=c1(i,1)+(-pfpu1(i,j))*pfpv(j,1)

NextjNexti

Fori=1To2

1(i+1)=0Nexti

1(1)=pi*n/30

Fori=1To2φ1(i+1)=φ1(i+1)+c1(i,1)*φ1(1)js2(ii)=φ1(2):js3(ii)=φ1(3)

NextiDimc2(2,1),c3(2,1)AsSingledpfpu(1,1)=-φ1(2)*ci(2)dpfpu(1,2)=φ1(3)*ci(3)dpfpu(2,1)=-φ1(2)*si(2)dpfpu(2,2)=φ1(3)*si(3)dpfpv(1,1)=-φ1(1)*ci(1)dpfpv(2,1)=-φ1(1)*si(1)Fori=1To2

c1(i,1)=0:c2(i,1)=0NextiFori=1To2

Forj=1To2c1(i,1)=c1(i,1)+dpfpu(i,j)*φ1(j+1)

Nextjc2(i,1)=c2(i,1)+dpfpv(i,1)*φ1(1)NextiFori=1To2

c3(i,1)=c1(i,1)+c2(i,1)NextiFori=1To2

2(i+1)=0NextiFori=1To2

Forj=1To2

φ2(i+1)=φ2(i+1)+(-pfpu1(i,j))*c3(j,1)

jj2(ii)=φ2(2):jj3(ii)=φ2(3)

NextjNextiEndSubRem繪制從動(dòng)件運(yùn)動(dòng)線(xiàn)圖子程序PublicSubddraw2(ii,rh,l(),m,n,jw3(),js3(),jj3(),Picture2)

Rem建立加速度坐標(biāo)系

Picture2.Cls

Picture2.DrawWidth=2

Picture2.Scale(-29,32)-(44,-25)

Picture2.Line(-28,0)-(43,0)

Picture2.Line(0,28)-(0,-22),vbBlue

Picture2.CurrentX=42:Picture2.CurrentY=3:Picture2.Print"φ"

Picture2.CurrentX=2:Picture2.CurrentY=30:Picture2.Print"a(rad/s^2)"

Picture2.Line(40,1)-(43,0)

Picture2.Line(40,-1)-(43,0)

Picture2.Line(-1,25)-(0,28),vbBlue

Picture2.Line(1,25)-(0,28),vbBlueFori=0To40Step40/6

Picture2.Line(i,1)-(i,0)

Picture2.CurrentX=i-4:CurrentY=-2:Picture2.Print360*i/40Nexti

Picture2.CurrentX=-16:Picture2.CurrentY=-22

Picture2.Print"綠線(xiàn)-位移紅線(xiàn)-速度藍(lán)線(xiàn)-加速度"Rem建立速度坐標(biāo)系

Picture2.Line(-13,28)-(-13,-22),vbRedPicture2.CurrentX=-13:Picture2.CurrentY=30:Picture2.Print"v(rad/s)"Picture2.Line(-12,25)-(-13,28),vbRedPicture2.Line(-14,25)-(-13,28),vbRed

Rem建立位移坐標(biāo)系

Picture2.Line(-26,28)-(-26,-22),vbGreenPicture2.CurrentX=-26:Picture2.CurrentY=30:Picture2.Print"s(rad)"Picture2.Line(-25,25)-(-26,28),vbGreenPicture2.Line(-27,25)-(-26,28),vbGreenFori=-20To20Step5Picture2.Line(1,i)-(0,i),vbBluePicture2.Line(-12,i)-(-13,i),vbRedPicture2.Line(-25,i)-(-26,i),vbGreenNextiDimrx,rms,rmv,rmarx=40/360Dimms,ma,mvDimjw2(0To360),js2(0To360),jj2(0To360)Forii=0To360IfAbs(jw3(ii))>Abs(ms)Then

ms=Abs(jw3(ii))EndIfIfAbs(js3(ii))>Abs(mv)Then

mv=Abs(js3(ii))EndIfIfAbs(jj3(ii))>Abs(ma)Then

ma=Abs(jj3(ii))EndIfNextiirms=20/ms:rmv=20/mv:rma=20/maRem繪圖Forii=1To359Picture2.Line(ii*rx,jw3(ii)*rms)-((ii+1)*rx,jw3(ii+1)*rms),vbGreenPicture2.Line(ii*rx,js3(ii)*rmv)-((ii+1)*rx,js3(ii+1)*rmv),vbRedPicture2.Line(ii*rx,jj3(ii)*rma)-((ii+1)*rx,jj3(ii+1)*rma),vbBlueNextiiFori=5To20Step5Picture2.CurrentX=0.5:Picture2.CurrentY=i+1Picture2.PrintCCur((((ma*i/20)*100)\1)/100)Picture2.CurrentX=-12.5:Picture2.CurrentY=i+1

Picture2.PrintCCur((((mv*i/20)*100)\1)/100)Picture2.CurrentX=-25.5:Picture2.CurrentY=i+1Picture2.PrintCCur((((ms*i/20)*100)\1)/100)NextiFori=-5To-20Step-5Picture2.CurrentX=0.5:Picture2.CurrentY=i+2Picture2.PrintCCur((((ma*i/20)*100)\1)/100)Picture2.CurrentX=-12.5:Picture2.CurrentY=i+2Picture2.PrintCCur((((mv*i/20)*100)\1)/100)Picture2.CurrentX=-25.5:Picture2.CurrentY=i+2Picture2.PrintCCur((((ms*i/20)*100)\1)/100)NextiEndSubRem繪制機(jī)構(gòu)靜態(tài)動(dòng)態(tài)圖子程序PublicSubddraw3(l(),jw3(),ii,m,Picture3)Dima1,a3AsSingleDimx1,y1,x3,y3AsSingleDimrrAsSingleDimrh1AsSinglerh1=3.1415926/180Callmax(l(),lmax)rr=40/(lmax*1.2)Rem建立坐標(biāo)系

Picture3.ClsPicture3.DrawWidth=2Picture3.Scale(-23,29)-(50,-28)Picture3.Line(0,0)-(46,0)Picture3.Line(0,28)-(0,0)Picture3.CurrentX=46:Picture3.CurrentY=2:Picture2.Print"X"Picture3.CurrentX=3:Picture3.CurrentY=28:Picture2.Print"Y"Picture3.Line(43,1)-(46,0)Picture3.Line(43,-1)-(46,0)Picture3.Line(-1,25)-(0,28)Picture3.Line(1,25)-(0,28)Picture3.CurrentX=0:Picture3.CurrentY=0Picture3.Line-(-2,-3)Picture3.Line-(5,-3)Picture3.Line(2,-3)-(0,0)Fori=-3To5Step3[HJ]

Picture3.CurrentX=i:Picture3.CurrentY=-3:Picture3.Line-(i+3,-4)NextiPicture3.CurrentX=l(4)*rr:Picture3.CurrentY=0Picture3.Line-(-2+l(4)*rr,-3)Picture3.Line-(l(4)*rr+5,-3)Picture3.Line(2+l(4)*rr,-3)-(l(4)*rr,0)Fori=l(4)*rr-3To5+l(4)*rrStep3

Picture3.CurrentX=i:Picture3.CurrentY=-3:Picture3.Line-(i+3,-4)NextiRem建立模型

Picture3.DrawWidth=4a1=ii*rh1:a3=jw3(ii)x1=l(1)*rr*Cos(a1):y1=l(1)*rr*Sin(a1)x3=l(4)*rr+l(3)*rr*Cos(a3):y3=l(3)*rr*Sin(a3)Picture3.Line(0,0)-(x1,y1),vbBluePicture3.Line(x1,y1)-(x3,y3),vbRedPicture3.Line(x3,y3)-(l(4)*rr,0),vbGreenPicture3.FillStyle=0Picture3.FillColor=vbYellowPicture3.Circle(l(4)*rr,0),0.5,vbYellowPicture3.Circle(0,0),0.5,vbYellowPicture3.Circle(x1,y1),0.5,vbYellowPicture3.Circle(x3,y3),0.5,vbYellowPicture3.CurrentX=16:Picture3.CurrentY=-5:Picture3.Print"點(diǎn)擊放大"EndSubRem計(jì)算最長(zhǎng)桿長(zhǎng)

PublicSubmax(l(),lmax)lmax=l(1)

Fori=2To4

Ifl(i)>lmaxThenlma

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論