哈工大机械设计电算程序Vb.docx
《哈工大机械设计电算程序Vb.docx》由会员分享,可在线阅读,更多相关《哈工大机械设计电算程序Vb.docx(18页珍藏版)》请在冰豆网上搜索。
哈工大机械设计电算程序Vb
DimaAsDouble
DimtAsString
Dima1AsInteger
Dima2AsInteger
DimklAsDouble
DimkbAsDouble
DimKiAsDouble
DimkaoAsDouble
DimmAsDouble
DimfAsDouble
DimeAsDouble
Dimpnum()AsVariant
Dimnum()AsVariant
DimkkaAsVariant
Dimlld()AsVariant
Dimkkl()AsVariant
DimvmaxAsDouble
PrivateSubCommand1_Click()'计算相关参数
fchu=Round((500*Val(pd)*(2.5-kao)/Val(z)/Val(v)/kao+m*Val(v)^2),2)
fq=Round((2*Val(z)*Val(fchu)*Sin(Val(bao)*3.1416/360)),2)
bmm=(Val(z)-1)*e+2*f
fchu.Text=fchu:
fq.Text=fq:
bmm.Text=bmm
EndSub
PrivateSubCommand2_Click()'确定载荷情况系数
DimKA1AsDouble
IfVal(n)<100Then
CallMsgBox("转速过小!
",48,"警告"):
n.Text="":
n.SetFocus
ElseIfVal(n)>6000Then
CallMsgBox("转速过大!
",48,"警告"):
n.Text="":
n.SetFocus
Else:
zaihe.Enabled=True
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷平稳"AndWorkHour.Text="<10h/天"ThenKA1=1
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷平稳"AndWorkHour.Text="10~16h/天"ThenKA1=1.1
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷平稳"AndWorkHour.Text=">16h/天"ThenKA1=1.2
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷变动小"AndWorkHour.Text="<10h/天"ThenKA1=1.1
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷变动小"AndWorkHour.Text="10~16h/天"ThenKA1=1.2
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷变动小"AndWorkHour.Text=">16h/天"ThenKA1=1.3
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷变动较大"AndWorkHour.Text="<10h/天"ThenKA1=1.2
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷变动较大"AndWorkHour.Text="10~16h/天"ThenKA1=1.3
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷变动较大"AndWorkHour.Text=">16h/天"ThenKA1=1.4
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷变动很大"AndWorkHour.Text="<10h/天"ThenKA1=1.3
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷变动很大"AndWorkHour.Text="10~16h/天"ThenKA1=1.4
Ifdianjileixing.Text="I类"Andzaihe.Text="载荷变动很大"AndWorkHour.Text=">16h/天"ThenKA1=1.5
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷平稳"AndWorkHour.Text="<10h/天"ThenKA1=1.1
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷平稳"AndWorkHour.Text="10~16h/天"ThenKA1=1.2
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷平稳"AndWorkHour.Text=">16h/天"ThenKA1=1.3
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷变动小"AndWorkHour.Text="<10h/天"ThenKA1=1.2
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷变动小"AndWorkHour.Text="10~16h/天"ThenKA1=1.3
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷变动小"AndWorkHour.Text=">16h/天"ThenKA1=1.4
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷变动较大"AndWorkHour.Text="<10h/天"ThenKA1=1.4
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷变动较大"AndWorkHour.Text="10~16h/天"ThenKA1=1.5
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷变动较大"AndWorkHour.Text=">16h/天"ThenKA1=1.6
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷变动很大"AndWorkHour.Text="<10h/天"ThenKA1=1.5
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷变动很大"AndWorkHour.Text="10~16h/天"ThenKA1=1.6
Ifdianjileixing.Text="II类"Andzaihe.Text="载荷变动很大"AndWorkHour.Text=">16h/天"ThenKA1=1.8
IfCheck1.Value=0ThenKA=KA1
IfCheck1.Value=1ThenKA=KA1*1.1
DimppAsDouble
pp=Val(p)*Val(KA)
Ifpp>250Orpp<0.8ThenCallMsgBox("对不起,此设计任务本软件无法实现,计算出的设计功率无对应带型能选择!
",48,"警告"):
Command3.Enabled=False
Ifpp<=250Andpp>=0.8Thenpd=Int(pp*100+0.5)/100:
Command3.Enabled=True
EndIf
p.Text=p
n.Text=n
i.Text=i
KA.Text=KA
EndSub
PrivateSubCommand3_Click()
Dimxx()AsVariant
Dimyy()AsVariant
daixingtu.Show
带型.Enabled=True
daixingtu.tu.FillStyle=0
daixingtu.tu.FillColor=RGB(255,0,0)
daixingtu.tu.Scale(0,7200)-(10000,0)
DimiAsInteger
Fori=1To24
daixingtu.tu.Line(400*i,0)-(400*i,7200),RGB(255,0,255)
Nexti
Fori=1To19
daixingtu.tu.Line(0,400*i)-(10000,400*i),RGB(255,0,255)
Nexti
daixingtu.tu.PSet(100,7100)
daixingtu.tu.Print"n(r/min)"
daixingtu.tu.PSet(800,6400)
daixingtu.tu.Print"Y:
20--40"
daixingtu.tu.Line(0,3150)-(2600,6200),RGB(255,0,0)
daixingtu.tu.Line(2600,6200)-(2750,6800),RGB(255,0,0)
daixingtu.tu.Print"Z:
50--71"
daixingtu.tu.Line(0,2250)-(3200,5900),RGB(255,0,0)
daixingtu.tu.Line(3200,5900)-(3350,6600),RGB(255,0,0)
daixingtu.tu.Print"80--100"
daixingtu.tu.Line(0,800)-(4000,5200),RGB(255,0,0)
daixingtu.tu.Line(4000,5200)-(4150,6200),RGB(255,0,0)
daixingtu.tu.Print"A:
70--100"
daixingtu.tu.Line(400,0)-(4400,4400),RGB(255,0,0)
daixingtu.tu.Line(4400,4400)-(4600,5600),RGB(255,0,0)
daixingtu.tu.Print"112--140"
daixingtu.tu.Line(1450,0)-(5200,4400),RGB(255,0,0)
daixingtu.tu.Print"B:
125--140"
daixingtu.tu.Line(2300,0)-(5600,3800),RGB(255,0,0)
daixingtu.tu.Line(5600,3800)-(5750,4800),RGB(255,0,0)
daixingtu.tu.Print"160--200"
daixingtu.tu.Line(4150,0)-(6800,3200),RGB(255,0,0)
daixingtu.tu.Line(6800,3200)-(6950,4000),RGB(255,0,0)
daixingtu.tu.Print"C:
200--315"
daixingtu.tu.Line(5850,0)-(8600,3200),RGB(255,0,0)
daixingtu.tu.Print"D:
355--400"
daixingtu.tu.Line(7200,0)-(9600,3000),RGB(255,0,0)
daixingtu.tu.PSet(8700,1900)
daixingtu.tu.Print"E:
450--500"
daixingtu.tu.PSet(9400,200)
daixingtu.tu.Print"Pd(kw)"
xx=Array(0.8,1,1.25,1.6,2,2.5,3.15,4,5,6.3,8,10,12.5,16,20,25,31.5,40,50,63,80,100,125,160,200,250)
yy=Array(100,125,160,200,250,315,400,500,630,800,1000,1250,1600,2000,2500,3150,4000,5000,6000)
DimjAsInteger
DimkAsInteger
x=Val(FormV.pd)
Forj=0To25
If(x-xx(j))*(x-xx(j+1))<=0ThenExitFor
Nextj
x=400*(j+(x-xx(j))/(xx(j+1)-xx(j)))
y=Val(FormV.n)
Fork=0To19
If(y-yy(k))*(y-yy(k+1))<=0ThenExitFor
Nextk
y=400*(k+(y-yy(k))/(yy(k+1)-yy(k)))
daixingtu.tu.Circle(Int(x),Int(y)),100,RGB(255,255,0)
EndSub
PrivateSubCommand4_Click()'(计算带速并判断)
DimV1AsDouble
V1=(Val(dd1.Text)*3.1416*Val(n.Text))/60000
IfVal(V1)>Val(vmax)Then
CallMsgBox("你所设计的小带轮带速已超出其型号规定的极限带速,请减小小带轮的直径重新设计!
",16,"错误")
Command5.Enabled=False
v.Text=""
Else
v.Enabled=True
v=Str(Int(V1*100+0.5)/100)
Command5.Enabled=True
EndIf
EndSub
PrivateSubCommand5_Click()'(选取标准大带轮直径)
Dimd2AsDouble
DimjAsInteger
d2=Val(dd1)*Val(i)
Ifd2>800Then
CallMsgBox("大带轮直径过大!
无标准值可选用!
",48,"注意")
Command6.Enabled=False
Else
Forj=0To34
If(d2-num(j))*(d2-num(j+1))<=0ThenExitFor
Nextj
If(d2-num(j))>(num(j+1)-d2)Thend2=num(j+1)
If(d2-num(j))<=(num(j+1)-d2)Thend2=num(j)
dd2=Str(d2)
dd2.Text=dd2
Command6.Enabled=True
EndIf
EndSub
PrivateSubCommand6_Click()'(中心距选择提示)
dd3=Val(dd2)
a1=Int(0.7*(dd3+Val(dd1.Text)))
a2=Int(2*(dd3+Val(dd1.Text)))
fanwei.Caption="范围:
"&a1&"至"&a2
EndSub
PrivateSubCommand7_Click()'(计算选取Ld)
IfVal(a0)a2Then
CallMsgBox("请在规定范围内选择中心距!
",48,"注意"):
Command8.Enabled=False:
a0.Text=""
Else
DimlddAsDouble
DimqAsDouble
ldd=Val(a0)*2+3.1416*(Val(dd2)+Val(dd1.Text))/2+(Val(dd2)-Val(dd1.Text))^2/(4*Val(a0))
Text1.Text=Val(ldd)
Ifldd<200Orldd>16000Then
CallMsgBox("Ld计算值超范围!
",16,"错误")
Command8.Enabled=False
EndIf
DimkAsInteger
Fork=0To38
If(ldd-lld(k))*(ldd-lld(k+1))<=0ThenExitFor
Nextk
If(ldd-lld(k))>(lld(k+1)-ldd)Then
q=lld(k+1)
k=k+1
Else:
q=lld(k)
EndIf
kl=kkl(k)'kl为长度系数
Ifkl=0ThenCallMsgBox("Ld设计过小!
无对应KL!
",16,"错误"):
Command8.Enabled=False
Ifkl=10ThenCallMsgBox("Ld设计过大!
无对应KL!
",16,"错误"):
Command8.Enabled=False
Ifkl>0Andkl<10Then
ld=Int(q*100+0.5)/100
a=Val(a0)+(q-ldd)/2
'a=Int(a*100+0.5)/100
'a=Int(a/5+0.5)*5
aa.Text=a
Command8.Enabled=True
kllll.Text=kl
EndIf
EndIf
EndSub
PrivateSubCommand8_Click()'(计算包角大小)
bao=180-(Val(dd2.Text)-Val(dd1.Text))*57.3/Val(a)
Ifbao<90Orbao>220Then
CallMsgBox("包角计算值超范围!
请从新选定相关参数!
",16,"错误")
bao.Text=""
Command9.Enabled=False
Else
bao=Int(bao*10+0.5)/10
bao.Text=Val(bao)
Command9.Enabled=True
EndIf
EndSub
PrivateSubCommand9_Click()'(计算带速)
Dimi2AsDouble
i2=Val(dd2.Text)/Val(dd1.Text)
i2=Int(i2*100+0.5)/100
Ifi2>=1Andi2<=1.01ThenKi=1
Ifi2>=1.02Andi2<=1.04ThenKi=1.0136
Ifi2>=1.05Andi2<=1.08ThenKi=1.0276
Ifi2>=1.09Andi2<=1.12ThenKi=1.0419
Ifi2>=1.13Andi2<=1.18ThenKi=1.0567
Ifi2>=1.19Andi2<=1.24ThenKi=1.0719
Ifi2>=1.25Andi2<=1.34ThenKi=1.0875
Ifi2>=1.35Andi2<=1.51ThenKi=1.1036
Ifi2>=1.52Andi2<=1.99ThenKi=1.1202
Ifi2>=2ThenKi=1.137'ki为传动比系数
bbao=Val(bao)
DimbaaAsVariant
baa=Array(90,100,110,120,130,140,150,160,170,180,190,200,210,220)
kka=Array(0.68,0.73,0.78,0.82,0.86,0.89,0.92,0.95,0.98,1,1.1,1.15,1.2)
Forj=0To13
If(bbao-baa(j))*(bbao-baa(j+1))<=0ThenExitFor
Nextj
kao=Round(kka(j)+(bbao-baa(j))*(kka(j+1)-kka(j))/10,2)'kao为包角系数
kaaaa.Text=kao
Dimnnum()AsVariant
nnum=Array(100,200,400,700,800,950,1200,1450,1600,2000,2400,2800,3200,3600,4000,4500,5000,5500,6000)
dd1=dd1.Text
Ift="Y"Anddd1="20"Thenpnum=Array(0,0,0,0,0,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.06,0.06,0.07,0.08,0.09,0.1)
Ift="Y"Anddd1="28"Thenpnum=Array(0,0,0,0,0.03,0.04,0.04,0.05,0.05,0.06,0.07,0.08,0.09,0.1,0.11,0.12,0.13,0.14,0.15)
Ift="Y"Anddd1="35.5"Thenpnum=Array(0,0,0