材料力学程序挠度计算程序说明VB编写.docx
- 文档编号:12543056
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:34
- 大小:984.62KB
材料力学程序挠度计算程序说明VB编写.docx
《材料力学程序挠度计算程序说明VB编写.docx》由会员分享,可在线阅读,更多相关《材料力学程序挠度计算程序说明VB编写.docx(34页珍藏版)》请在冰点文库上搜索。
材料力学程序挠度计算程序说明VB编写
该程序由两个窗体组成,即Form1和Command1。
其中,Form1为启动对象,其代码为OptionExplicit
PrivateSubForm_Click()
Form1.Hide
Command1.Show
EndSub
PrivateSubForm_Load()
Me.AutoRedraw=True
EndSub
PrivateSubForm_Paint()
Form_Resize
EndSub
PrivateSubForm_Resize()
Me.PaintPictureMe.Picture,0,0,Me.Width,Me.Height
EndSub
该代码主要实现了去边框和设置大小的作用,设置及启动后如图所示;
Command1为主程序,其代码为
PrivateSubCommand3_Click()
Dimx!
vm!
v!
g!
h!
u1!
u2!
u3!
u4!
u5!
Dimaa(100),bb(100),cc(100),dd(100),vv1(100),vv2(100)AsSingle
Diml,a,e,r,n,mAsSingle
IfCheck1=0Then
Picture1.Cls
EndIf
IfCheck2=0Then
Picture2.Cls
EndIf
Picture4.Cls
Picture3.Cls
l=Text1
a=Val(Combo1.Text)
e=Text3
r=Val(Combo2.Text)
n=Text5
m=Text7
n1=n2=n3=m1=m2=m3=x1=X2=x3=q1=q2=q3=0
If(l>0)And(a=1Ora=2Ora=3)And(e>0)And(r=1Orr=2Orr=3)Then
Picture2.Print"---------------------";vbLf;"长度=";l;"m";vbLf;"支撑类型=";a;vbLf;"截面类型=";r;vbLf;"弹模=";e;"N/m";vbLf;"集中力个数=";n;vbLf;"弯矩个数=";m;vbLf
Else:
Picture4.Print"输入错误!
";vbLf
GoToEnd1
EndIf
If(r=1)Then
r1=InputBox("请输入圆截面直径:
","半径输入")
Ifr1<=0Then
Picture4.Print"输入错误!
";vbLf
GoToEnd1
Else
Picture2.Print"R=";r1;"m";vbLf;
EndIf
I=3.14*r1*r1*r1*r1/64
W=3.14*r1*r1*r1/32
Picture3.Print"计算结果:
";vbLf;
Picture3.Print"梁的惯性矩Iz=";I;"(m*m*m*m)";vbLf;
Picture3.Print"梁的抗弯截面系数W=";W;"(m*m*m)";vbLf;
ElseIf(r=2)Then
r21=InputBox("请输入空心圆截面外径:
","半径输入")
r22=InputBox("请输入空心圆截面内径:
","半径输入")
Ifr21-r22>0Andr21>0Andr22>0Then
Picture2.Print"D=";r21;"m";vbLf;
Picture2.Print"d=";r22;"m";vbLf;
I=3.14*r21*r21*r21*r21*(1-r22*r22*r22*r22/r21/r21/r21/r21)/64
W=3.14*r21*r21*r21*(1-r22*r22*r22*r22/r21/r21/r21/r21)/32
Else
Picture4.Print"输入错误!
";vbLf
GoToEnd1
EndIf
Picture3.Print"计算结果:
";vbLf;
Picture3.Print"梁的惯性矩Iz=";I;"(m*m*m*m)";vbLf;
Picture3.Print"梁的抗弯截面系数W=";W;"(m*m*m)";vbLf;
ElseIf(r=3)Then
r31=InputBox("请输入矩形长b=:
","长度输入")
r32=InputBox("请输入矩形宽h=:
","长度输入")
Ifr31<=0Orr32<=0Then
Picture4.Print"输入错误!
";vbLf
GoToEnd1
Else
Picture2.Print"b=";r31;"m";vbLf;
Picture2.Print"h=";r32;"m";vbLf;
I=r31*r32*r32*r32/12
W=r31*r32*r32/6
EndIf
Picture3.Print"计算结果:
";vbLf;
Picture3.Print"梁的惯性矩Iz=";I;"(m*m*m*m)";vbLf;
Picture3.Print"梁的抗弯截面系数W=";W;"(m*m*m)";vbLf;
EndIf
Ifa=1Then
'载入
aa(0)=0
bb(0)=0
cc(0)=0
dd(0)=0
Forg=1TonStep1
aa(g)=InputBox("请输入第"&g&"个集中力大小:
","集中力输入")
bb(g)=InputBox("请输入第"&g&"个集中力距左端点位置:
","位置输入")
Ifbb(g)-l>0Orbb(g)<0Then
Picture4.Print"输入错误";vbLf
GoToEnd1
EndIf
Picture2.Print"F";g;"=";aa(g);"N";",";
Picture2.Print"X";g;"=";bb(g);"m";vbLf;
Next
Forh=1TomStep1
cc(h)=InputBox("请输入第"&h&"个弯矩大小:
","集中力输入")
dd(h)=InputBox("请输入第"&h&"个弯矩距左端点位置:
","位置输入")
Ifdd(g)-l>0Ordd(g)<0Then
Picture4.Print"输入错误";vbLf
GoToEnd1
EndIf
Picture2.Print"M";h;"=";cc(h);"N*m";","
Picture2.Print"Y";h;"=";dd(h);"m";vbLf;
Next
'载入结束
'计算vm
vm=0
Forx=0TolStep0.001
u3=0
u4=0
Forg=1TonStep1
Ifx-bb(g)<=0Then
u1=-aa(g)*x*x/6/e/I*(3*bb(g)-x)
Else:
u1=-aa(g)*bb(g)*bb(g)/6/e/I*(3*x-bb(g))
EndIf
u3=u3+u1
Next
Forh=1TomStep1
Ifx-dd(h)<=0Then
u2=-cc(h)*x*x/2/e/I
Else:
u2=-cc(h)*dd(h)/e/I*((x-dd(h))+dd(h)/2)
EndIf
u4=u4+u2
Next
u5=u3+u4
IfAbs(u5)-vm>0Then
vm=Abs(u5)
EndIf
Next
Picture3.Print"最大挠度Vm=";vm;"m";
'计算vm结束
'绘图
Ifvm<>0Then
Picture1.Scale(-0.1*l,-2*vm)-(1.1*l,2*vm)
Picture1.Line(0,0)-(l,0)
Picture1.Line(0,-0.5*vm)-(0,0.5*vm)
Forx=0TolStep0.001
u3=0
u4=0
Forg=1TonStep1
Ifx-bb(g)<=0Then
u1=-aa(g)*x*x/6/e/I*(3*bb(g)-x)
Else:
u1=-aa(g)*bb(g)*bb(g)/6/e/I*(3*x-bb(g))
EndIf
u3=u3+u1
Next
Forh=1TomStep1
Ifx-dd(h)<=0Then
u2=-cc(h)*x*x/2/e/I
Else:
u2=-cc(h)*dd(h)/e/I*((x-dd(h))+dd(h)/2)
EndIf
u4=u4+u2
Next
u5=u3+u4
Picture1.PSet(x,u5)
Next
Else
Picture1.Scale(-0.1*l,-2)-(1.1*l,2)
Picture1.Line(0,0)-(l,0)
Picture1.Line(0,-0.5)-(0,0.5)
EndIf
'绘图结束
'''''''''''''''''''''''''''''''''''''''
ElseIfa=2Then
'载入
aa(0)=0
bb(0)=0
cc(0)=0
dd(0)=0
Forg=1TonStep1
aa(g)=InputBox("请输入第"&g&"个集中力大小:
","集中力输入")
bb(g)=InputBox("请输入第"&g&"个集中力距右端点位置:
","位置输入")
Ifbb(g)-l>0Orbb(g)<0Then
Picture4.Print"输入错误";vbLf
GoToEnd1
EndIf
Picture2.Print"F";g;"=";aa(g);"N";",";
Picture2.Print"X";g;"=";bb(g);"m";vbLf;
Next
Forh=1TomStep1
cc(h)=InputBox("请输入第"&h&"个弯矩大小:
","集中力输入")
dd(h)=InputBox("请输入第"&h&"个弯矩距右端点位置:
","位置输入")
Ifdd(g)-l>0Ordd(g)<0Then
Picture4.Print"输入错误";vbLf
GoToEnd1
EndIf
Picture2.Print"M";h;"=";cc(h);"N*m";",";
Picture2.Print"Y";h;"=";dd(h);"m";vbLf;
Next
'载入结束
'计算vm
vm=0
Forx=0TolStep0.001
u3=0
u4=0
Forg=1TonStep1
Ifx<=bb(g)Then
u1=-aa(g)*x*x/6/e/I*(3*bb(g)-x)
Else:
u1=-aa(g)*bb(g)*bb(g)/6/e/I*(3*x-bb(g))
EndIf
u3=u3+u1
Next
Forh=1TomStep1
Ifx<=dd(h)Then
u2=-cc(h)*x*x/2/e/I
Else:
u2=-cc(h)*dd(h)/e/I*((x-dd(h))+dd(h)/2)
EndIf
u4=u4+u2
Next
u5=u3+u4
IfAbs(u5)>vmThen
vm=Abs(u5)
EndIf
Next
Picture3.Print"最大挠度Vm=";vm;"m";
'计算vm结束
'绘图
Ifvm<>0Then
Picture1.Scale(-0.1*l,-2*vm)-(1.1*l,2*vm)
Picture1.Line(0,0)-(l,0)
Picture1.Line(l,-0.5*vm)-(l,0.5*vm)
Forx=0TolStep0.001
u3=0
u4=0
Forg=1TonStep1
Ifx<=bb(g)Then
u1=-aa(g)*x*x/6/e/I*(3*bb(g)-x)
Else:
u1=-aa(g)*bb(g)*bb(g)/6/e/I*(3*x-bb(g))
EndIf
u3=u3+u1
Next
Forh=1TomStep1
Ifx<=dd(h)Then
u2=-cc(h)*x*x/2/e/I
Else:
u2=-cc(h)*dd(h)/e/I*((x-dd(h))+dd(h)/2)
EndIf
u4=u4+u2
Next
u5=u3+u4
Picture1.PSet(l-x,-u5)
Next
Else
Picture1.Scale(-0.1*l,-2)-(1.1*l,2)
Picture1.Line(0,0)-(l,0)
Picture1.Line(0,-0.5)-(0,0.5)
EndIf
'绘图结束
ElseIfa=3Then
'载入
aa(0)=0
bb(0)=0
cc(0)=0
dd(0)=0
Forg=1TonStep1
aa(g)=InputBox("请输入第"&g&"个集中力大小:
","集中力输入")
bb(g)=InputBox("请输入第"&g&"个集中力距左端点位置:
","位置输入")
Ifbb(g)-l>0Orbb(g)<0Then
Picture4.Print"输入错误";vbLf
GoToEnd1
EndIf
Picture2.Print"F";g;"=";aa(g);"N";",";
Picture2.Print"X";g;"=";bb(g);"m";vbLf;
Next
Forh=1TomStep1
cc(h)=InputBox("请输入第"&h&"个弯矩大小:
","集中力输入")
dd(h)=InputBox("请输入第"&h&"个弯矩距左端点位置:
","位置输入")
Ifdd(g)-l>0Ordd(g)<0Then
Picture4.Print"输入错误";vbLf
GoToEnd1
EndIf
Picture2.Print"M";h;"=";cc(h);"N*m";",";
Picture2.Print"Y";h;"=";dd(h);"m";vbLf;
Next
'载入结束
''''''''''''''''''''''''''''''''''''''''
'计算vm
vm=0
Forx=0TolStep0.001
u3=0
u4=0
Forg=1TonStep1
Ifx<=bb(g)Then
u1=-aa(g)*(l-bb(g))*x/6/e/I/l*(l*l-x*x-(l-bb(g))*(l-bb(g)))
Else:
u1=-aa(g)*(l-bb(g))/6/e/I/l*(l/(l-bb(g))*(x-bb(g))*(x-bb(g))*(x-bb(g))+(l*l-(l-bb(g))*(l-bb(g)))*x-x*x*x)
EndIf
u3=u3+u1
Next
Forh=1TomStep1
Ifx<=dd(h)Then
u2=cc(h)*x/6/e/I/l*(l*l-3*(l-dd(h))*(l-dd(h))-x*x)
Else:
u2=cc(h)/6/e/I/l*(-x*x*x+3*l*(x-dd(h))*(x-dd(h))+(l*l-3*(l-dd(h))*(l-dd(h)))*x)
EndIf
u4=u4+u2
Next
u5=u3+u4
IfAbs(u5)>vmThen
vm=Abs(u5)
EndIf
Next
Picture3.Print"最大挠度Vm=";vm;"m";
'计算vm结束
'绘图
Ifvm=0Or(n=0Andm=0)Then
Picture1.Scale(-0.1,-3)-(1.1,3)
Picture1.Line(0,0)-(1,0)
Picture1.Line(0,-0.3)-(0,0.3)
Picture1.Line(1,-0.3)-(1,0.3)
Else
Picture1.Scale(-0.1*l,-3*vm)-(1.1*l,3*vm)
Picture1.Line(0,0)-(l,0)
Picture1.Line(0,-0.1*vm)-(0,0.1*vm)
Picture1.Line(l,-0.1*vm)-(l,0.1*vm)
vm=0
Forx=0TolStep0.001
u3=0
u4=0
Forg=1TonStep1
Ifx<=bb(g)Then
u1=-aa(g)*(l-bb(g))*x/6/e/I/l*(l*l-x*x-(l-bb(g))*(l-bb(g)))
Else:
u1=-aa(g)*(l-bb(g))/6/e/I/l*(l/(l-bb(g))*(x-bb(g))*(x-bb(g))*(x-bb(g))+(l*l-(l-bb(g))*(l-bb(g)))*x-x*x*x)
EndIf
u3=u3+u1
Next
Forh=1TomStep1
Ifx<=dd(h)Then
u2=cc(h)*x/6/e/I/l*(l*l-3*(l-dd(h))*(l-dd(h))-x*x)
Else:
u2=cc(h)/6/e/I/l*(-x*x*x+3*l*(x-dd(h))*(x-dd(h))+(l*l-3*(l-dd(h))*(l-dd(h)))*x)
EndIf
u4=u4+u2
Next
u5=u3+u4
Picture1.PSet(x,u5)
Next
EndIf
'绘图结束
'''''''''''''''''''''''''''''''''''''''''''''
EndIf
End1:
EndSub
PrivateSubCommand4_Click()
Picture2.Cls
EndSub
PrivateSubCommand5_Click()
Picture3.Cls
EndSub
PrivateSubForm_Load()
Dimn1,x1,e,IAsSingle
Picture2.FontSize=12
Picture3.FontSize=10
Picture4.FontSize=12
Text6.FontSize=12
Text6.Text="☆支撑条件:
"&vbCrLf&"左固定端悬臂梁=1"&vbCrLf&"右固定端悬臂梁=2"&vbCrLf&"简支梁=3"&vbCrLf&"☆截面类型:
"&vbCrLf&"圆截面=1"&vbCrLf&"空心圆截面=2"&vbCrLf&"矩形截面=3"&vbCrLf&"☆1120910202,万星杰制作☆"
EndSub
运行如图所示:
在代码中,
l=Text1
a=Val(Combo1.Text)
r=Val(Combo2.Text)
e=Text3
n=Text5
m=Text7
分别对应程序中
代码段
If(l>0)And(a=1Ora=2Ora=3)And(e>0)And(r=1Orr=2Orr=3)Then
Picture2.Print"---------------------";vbLf;"长度=";l;"m";vbLf;"支撑类型=";a;vbLf;"截面类型=";r;vbLf;"弹模=";e;"N/m";vbLf;"集中力个数=";n;vbLf;"弯矩个数=";m;vbLf
Else:
Picture4.Print"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 材料力学 程序 挠度 计算 说明 VB 编写