哈工大机械设计带传动设计电算大作业vb和c语言程序代码讲义.docx
《哈工大机械设计带传动设计电算大作业vb和c语言程序代码讲义.docx》由会员分享,可在线阅读,更多相关《哈工大机械设计带传动设计电算大作业vb和c语言程序代码讲义.docx(25页珍藏版)》请在冰豆网上搜索。
哈工大机械设计带传动设计电算大作业vb和c语言程序代码讲义
上机电算说明书
课程名称:
机械设计
电算题目:
V带传动设计
院系:
机电控制学院
班级:
1308102班
设计者:
尤开灵
学号:
1130810222
设计时间:
2015.10.17
部分变量说明(所有说明见程序部分变量定义)
ka工作情况系数p输入功率kw
pd工作功率kwi传动比
n1输入小轮转速r/mind1小带轮直径mm
d2大带轮直径mmv皮带速度m/s
jiao输出包容角度°ff0初拉力N
ff1轴间力Nld带的长度mm
z皮带代数根m质量kg
程序运行截图
判断语句:
包括速度判断选择小轮直径,输入数据判断小轮直径
输出结果及其函数界面
程序代码
Dimka1AsDouble'工作情况系数变量
DimkaAsDouble'工作情况系数
DimpAsDouble'输入功率
DimpiAsDouble'pi的定义
DimpdAsDouble'工作功率
DimiAsDouble'传动比
Dimn1AsDouble'输入小轮转速
Dimd1AsDouble'小带轮直径
Dimd2AsDouble'大带轮直径
DimkAsDouble'循环变量
Dima()AsVariant'小轮直径选择序列
Dimb()AsVariant'皮带的长度选择序列
Dimnn()AsVariant'转速的选择序列
Dimmm()AsVariant'包容修正系数列表
DimvAsDouble'皮带速度
DimaaAsDouble'输入中心距离
DimaaaAsDouble'输出实际中心距
DimjiaoAsDouble'输出包容角度
Dimff0AsDouble'初拉力
Dimff1AsDouble'轴间力
DimldAsDouble'带的长度
DimshunxuAsDouble'基本额定功率顺序
Dimshunxu1AsDouble'长度顺序
Dimpnum()AsVariant'基本功率序列
Dimlxishu()AsVariant'c长度系数
Dimp0AsDouble'基本功率
Dimdp0AsDouble'增加功率
DimzAsDouble'皮带数
DimkaaAsDouble'包容修正系数
DimklAsDouble'长度系数
DimkiAsDouble'传动比系数
DimkbAsDouble'弯曲系数
DimmAsDouble'质量
'运行程序
PrivateSubCommand5_Click()'条件输入确定
Callf0
Callf1
Text5.Text=n1&"r/min"
Text4.Text=pd&"kw"
EndSub
PrivateSubCommand2_Click()'小轮直径选择与确定
d1=Val(Text7.Text)
Callf2
Callf3
Callf4
EndSub
PrivateSubCommand3_Click()'中心距离输入
aa=Val(Text16.Text)
Callf5
EndSub
PrivateSubCommand4_Click()'计算
Callf6
Callf7
Callf8
Text6.Text=d1&"mm"
Text9.Text=d2&"mm"
Text10.Text=z&"根"
Text12.Text=aaa&"mm"
Text11.Text=jiao&"度"
Text13.Text=ff0&"N"
Text14.Text=ff1&"N"
EndSub
PrivateSubCommand1_Click()
End
EndSub
PrivateSubf0()'参数赋值函数
pi=3.14159
p=Val(Text1.Text)
i=Val(Text2.Text)
n1=Val(Text3.Text)
a()=Array(20,28,31.5,35.5,40,45,50,56,63,71,75,80,90,100,112,125,140,150,160,180,200,224,250,280,315,355,400,425,450,500,560,600,630,710,800,0)
b()=Array(200,224,250,280,315,355,400,450,500,560,630,710,800,900,1000,1120,1250,1400,1600,1800,2000,2240,2500,2800,3150,3550,4000,4500,5000,0)
nn()=Array(100,200,400,700,800,950,1200,1450,1600,2000,2400,2800,3200,3600,4000,4500,5000,5500,6000,0)
mm()=Array(0.68,0.73,0.78,0.82,0.86,0.89,0.92,0.95,0.98,1,1.05,1.1,1.15,1.2,0)
EndSub
PrivateSubf1()'选择ka1计算pd
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
pd=p*ka
EndSub
PrivateSubf2()'计算带轮直径
d1=Val(Text7.Text)
d2=0
Fork=0To50Step1
Ifa(k)=0Then
ExitFor
EndIf
IfAbs((a(k)/d1-i)/i)<=0.05Then
d2=a(k)
ExitFor
EndIf
Nextk
Ifd2=0Then
MsgBox"小带轮直径和带型选择不合适!
,重新输入直径"
ExitSub
EndIf
EndSub
PrivateSubf3()'判断速度
v=pi*d1*n1/60/1000
Ifv>20Then
MsgBox"小带轮直径过大!
,重新输入直径"
ExitSub
EndIf
Ifv<5Then
MsgBox"小带轮直径过小!
,重新输入直径"
ExitSub
EndIf
EndSub
PrivateSubf4()'估计中心距离
Dimaa0AsDouble
Dimaa1AsDouble
aa0=0.7*(d1+d2)
aa1=2*(d1+d2)
Text15.Text=aa0&"-"&aa1
EndSub
PrivateSubf5()'确定带长和中心距和角度
DimllAsDouble
Dimc1AsDouble
Dimc2AsDouble
IfText8.Text="Y"Thenlxishu=Array(0.81,0.82,0.84,0.87,0.9,0.92,0.96,1,1.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
IfText8.Text="Z"Thenlxishu=Array(0,0,0,0,0,0,0.87,0.89,0.91,0.94,0.96,0.99,1,1.03,1.06,1.08,1.1,1.14,1.16,1.18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
IfText8.Text="A"Thenlxishu=Array(0,0,0,0,0,0,0,0,0,0,0.81,0.83,0.85,0.87,0.89,0.91,0.93,0.96,0.99,1.01,1.03,1.06,1.09,1.11,1.13,1.17,1.19,0,0,0,0,0,0,0,0,0,0,0,0)
IfText8.Text="B"Thenlxishu=Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0.82,0.84,0.86,0.88,0.9,0.92,0.95,0.98,1,1.03,1.05,1.07,1.09,1.13,1.15,1.18,0,0,0,0,0,0,0,0,0,0)
IfText8.Text="C"Thenlxishu=Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.83,0.86,0.88,0.91,0.93,0.95,0.97,0.99,1.02,1.04,1.07,1.09,1.12,1.15,1.18,1.21,1.23,0,0,0,0)
IfText8.Text="D"Thenlxishu=Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.83,0.86,0.89,0.91,0.93,0.96,0.98,1,1.03,1.06,1.08,1.11,1.14,1.17,1.2,1.22)
IfText8.Text="E"Thenlxishu=Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.9,0.92,0.96,0.97,1,1.02,1.05,1.07,1.1,1.12,1.15,1.18)
ll=2*aa+pi/2*(d1+d2)+(d1-d2)^2/(4*aa)
c2=5000
Fork=0To100Step1
c1=Abs(b(k)-ll)
Ifc1c2=c1
ld=b(k)
shunxu1=k
EndIf
Ifb(k)=0Then
ExitFor
EndIf
Nextk
kl=lxishu(shunxu1)
aaa=aa+(ld-ll)/2
jiao=180-((d2-d1)/aaa*57.3)
EndSub
PrivateSubf6()'确定根数
Dimc1AsDouble
Dimc2AsDouble
c2=5000
IfText8.Text="Y"AndText7.Text="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)
IfText8.Text="Y"AndText7.Text="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)
IfText8.Text="Y"AndText7.Text="35.5"Thenpnum=Array(0,0,0,0.04,0.05,0.05,0.06,0.06,0.07,0.08,0.09,0.11,0.12,0.13,0.14,0.16,0.18,0.19,0.2)
IfText8.Text="Y"AndText7.Text="40"Thenpnum=Array(0,0,0,0.04,0.05,0.06,0.07,0.08,0.09,0.11,0.12,0.14,0.15,0.16,0.18,0.19,0.2,0.22,0.24)
IfText8.Text="Z"AndText7.Text="50"Thenpnum=Array(0,0.04,0.06,0.09,0.1,0.12,0.14,0.16,0.17,0.2,0.22,0.26,0.28,0.3,0.32,0.33,0.34,0.33,0.31)
IfText8.Text="Z"AndText7.Text="63"Thenpnum=Array(0,0.05,0.08,0.13,0.15,0.18,0.22,0.25,0.27,0.32,0.37,0.41,0.45,0.47,0.49,0.5,0.5,0.49,0.48)
IfText8.Text="Z"AndText7.Text="71"Thenpnum=Array(0,0.06,0.09,0.17,0.2,0.23,0.27,0.3,0.33,0.39,0.46,0.5,0.54,0.58,0.61,0.62,0.62,0.61,0.58)
IfText8.Text="Z"AndText7.Text="80"Thenpnum=Array(0,0.1,0.14,0.2,0.22,0.26,0.3,0.35,0.39,0.44,0.5,0.56,0.61,0.64,0.67,0.67,0.66,0.64,0)
IfText8.Text="A"AndText7.Text="75"Thenpnum=Array(0,0.15,0.26,0.4,0.45,0.51,0.6,0.68,0.73,0.84,0.92,1,1.04,1.08,1.09,1.07,1.02,0.96,0.8)
IfText8.Text="A"AndText7.Text="90"Thenpnum=Array(0,0.22,0.39,0.61,0.68,0.77,0.93,1.07,1.15,1.34,1.5,1.64,1.73,1.83,1.87,1.88,1.82,0,0)
IfText8.Text="A"AndText7.Text="100"Thenpnum=Array(0,0.26,0.47,0.74,0.83,0.95,1.14,1.32,1.42,1.66,1.87,2.05,2.19,2.28,2.34,2.33,0,0,0)
IfText8.Text="A"AndText7.Text="125"Thenpnum=Array(0,0.37,0.67,1.07,1.19,1.37,1.66,1.92,2.07,2.44,2.74,2.98,3.16,3.26,0,0,0,0,0)
IfText8.Text="B"AndText7.Text="125"Thenpnum=Array(0,0.48,0.84,1.3,1.44,1.64,1.93,2.19,2.33,2.64,2.85,2.96,2.94,2.8,0,0,0,0,0)
IfText8.Text="B"AndText7.Text="140"Thenpnum=Array(0,0.59,1.05,1.64,1.82,2.08,2.47,2.82,3,3.42,3.7,3.85,3.83,0,0,0,0,0,0)
IfText8.Text="B"AndText7.Text="160"Thenpnum=Array(0,0.74,1.32,2.09,2.32,2.66,3