📄 form2.frm
字号:
If lm(i_vm).ud = False Then
vm(i_vm) = -vm(i_vm)
End If
End If
Next
For i_vm = 1 To t_m
vme = vme + vm(i_vm)
Next
Text1.Text = vpe + vq + vme
Text2.Text = dimes.l / 2
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ve = vpe + vq + vme
Text4.Text = ve '显示计算结果
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Sub
Private Sub Form_Load()
i_vp = 1
vpe = 0
vq = 0
i_vm = 1
vme = 0
Ig = dimes.b * dimes.h ^ 3 / 12
ve = 0
x = dimes.l / 2
Text3.Text = x
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If ls.fs = True And rs.fs = True Then '左右都是自由支持时的计算过程
For i_vp = 1 To t_p
If lp(i_vp).xp > dimes.l / 2 Then
vp(i_vp) = lp(i_vp).p * (dimes.l - lp(i_vp).xp) * (dimes.l / 2) * (dimes.l ^ 2 - (dimes.l / 2) ^ 2 - (dimes.l - lp(i_vp).xp) ^ 2) / (6000 * E * Ig * dimes.l)
If lp(i_vp).ud = False Then
vp(i_vp) = -vp(i_vp)
End If
Else
vp(i_vp) = lp(i_vp).p * (dimes.l - lp(i_vp).xp) * (((dimes.l / 2 - lp(i_vp).xp) ^ 3) / (dimes.l - lp(i_vp).xp) + (dimes.l ^ 2 - (dimes.l - lp(i_vp).xp) ^ 2) * (dimes.l / 2) - (dimes.l / 2) ^ 3) / (6000 * E * Ig * dimes.l)
If lp(i_vp).ud = False Then
vp(i_vp) = -vp(i_vp)
End If
End If
Next
For i_vp = 1 To t_p
vpe = vpe + vp(i_vp)
Next
vq = 5 * lq.q * dimes.l ^ 4 / (1000 * E * 384 * Ig)
If lq.ud = False Then
vq = -vq
End If
For i_vm = 1 To t_m
If lm(i_vm).xm > dimes.l / 2 Then
vm(i_vm) = -lm(i_vm).m * (dimes.l / 2) * (dimes.l ^ 2 - 3 * (dimes.l - lm(i_vm).xm) ^ 2 - (dimes.l / 2) ^ 2) / (6000 * E * Ig * dimes.l)
If lm(i_vm).ud = False Then
vm(i_vm) = -vm(i_vm)
End If
Else
vm(i_vm) = -lm(i_vm).m * (-(dimes.l / 2) ^ 3 + 3 * dimes.l * (dimes.l / 2 - lm(i_vm).xm) ^ 2 + (dimes.l ^ 2 - 3 * (dimes.l - lm(i_vm).xm) ^ 2) * (dimes.l / 2)) / (6000 * E * Ig * dimes.l)
If lm(i_vm).ud = False Then
vm(i_vm) = -vm(i_vm)
End If
End If
Next
For i_vm = 1 To t_m
vme = vme + vm(i_vm)
Next
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If ls.gs = True And rs.gs = True Then '两端固定端的计算过程
For i_vp = 1 To t_p
vp(i_vp) = lp(i_vp).p * (dimes.l) ^ 3 / (192000 * E * Ig)
If lp(i_vp).ud = False Then
vp(i_vp) = -vp(i_vp)
End If
Next
For i_vp = 1 To t_p
vpe = vpe + vp(i_vp)
Next
vq = lq.q * dimes.l ^ 4 / (384000 * E * Ig)
If lq.ud = False Then
vq = -vq
End If
For i_vm = 1 To t_m
If lm(i_vm).xm > dimes.l / 2 Then
vm(i_vm) = -lm(i_vm).m * (0.5 * (0.75 - 3 * (dimes.l - lm(i_vm).xm) ^ 2 / dimes.l ^ 2)) / (6000 * E * Ig) - lm(i_vm).m * ((dimes.l - lm(i_vm).xm) ^ 2 - lm(i_vm).xm ^ 2) / (16000 * E * Ig)
If lm(i_vm).ud = False Then
vm(i_vm) = -vm(i_vm)
End If
Else
vm(i_vm) = -lm(i_vm).m * (0.5 * (0.75 - 3 * (dimes.l - lm(i_vm).xm) ^ 2 / dimes.l ^ 2) + 3 * (0.5 - lm(i_vm).xm / dimes.l)) / (6000 * E * Ig) - lm(i_vm).m * ((dimes.l - lm(i_vm).xm) ^ 2 - lm(i_vm).xm ^ 2) / (16000 * E * Ig)
If lm(i_vm).ud = False Then
vm(i_vm) = -vm(i_vm)
End If
End If
Next
For i_vm = 1 To t_m
vme = vme + vm(i_vm)
Next
Text1.Text = vpe + vq + vme
Text2.Text = dimes.l / 2
End If
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If ls.gs = True And rs.fs = True Then '左端固定端右端自由支持的计算过程
For i_vp = 1 To t_p
vp(i_vp) = 7 * lp(i_vp).p * (dimes.l) ^ 3 / (768000 * E * Ig)
If lp(i_vp).ud = False Then
vp(i_vp) = -vp(i_vp)
End If
Next
For i_vp = 1 To t_p
vpe = vpe + vp(i_vp)
Next
vq = lq.q * dimes.l ^ 4 / (192000 * E * Ig)
If lq.ud = False Then
vq = -vq
End If
For i_vm = 1 To t_m
If lm(i_vm).xm > dimes.l / 2 Then
vm(i_vm) = -lm(i_vm).m * (0.5 * (0.75 - 3 * (dimes.l - lm(i_vm).xm) ^ 2 / dimes.l ^ 2)) / (6000 * E * Ig) - lm(i_vm).m * (dimes.l ^ 2 - 3 * (dimes.l - lm(i_vm).xm) ^ 2) / (32000 * E * Ig)
If lm(i_vm).ud = False Then
vm(i_vm) = -vm(i_vm)
End If
Else
vm(i_vm) = -lm(i_vm).m * (0.5 * (0.75 - 3 * (dimes.l - lm(i_vm).xm) ^ 2 / dimes.l ^ 2) + 3 * (0.5 - lm(i_vm).xm / dimes.l)) / (6000 * E * Ig) - lm(i_vm).m * (dimes.l ^ 2 - 3 * (dimes.l - lm(i_vm).xm) ^ 2) / (32000 * E * Ig)
If lm(i_vm).ud = False Then
vm(i_vm) = -vm(i_vm)
End If
End If
Next
For i_vm = 1 To t_m
vme = vme + vm(i_vm)
Next
End If
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If ls.fs = True And rs.gs = True Then '左端自由支持右端固定端的计算过程
For i_vp = 1 To t_p '计算各个集中力引起的挠度
vp(i_vp) = 7 * lp(i_vp).p * (dimes.l) ^ 3 / (768000 * E * Ig)
If lp(i_vp).ud = False Then '若向上则挠度取负
vp(i_vp) = -vp(i_vp)
End If
Next
For i_vp = 1 To t_p
vpe = vpe + vp(i_vp)
Next
vq = lq.q * dimes.l ^ 4 / (192000 * E * Ig) '计算由均布载产生的挠度
If lq.ud = False Then '若向上则挠度取负
vq = -vq
End If
For i_vm = 1 To t_m
If lm(i_vm).xm < dimes.l / 2 Then
vm(i_vm) = -lm(i_vm).m * (0.5 * (0.75 - 3 * lm(i_vm).xm ^ 2 / dimes.l ^ 2)) / (6000 * E * Ig) - lm(i_vm).m * (dimes.l ^ 2 - 3 * lm(i_vm).xm ^ 2) / (32000 * E * Ig)
If lm(i_vm).ud = True Then
vm(i_vm) = -vm(i_vm)
End If
Else
vm(i_vm) = -lm(i_vm).m * (0.5 * (0.75 - 3 * lm(i_vm).xm ^ 2 / dimes.l ^ 2) + 3 * (0.5 - (dimes.l - lm(i_vm).xm) / dimes.l)) / (6000 * E * Ig) - lm(i_vm).m * (dimes.l ^ 2 - 3 * lm(i_vm).xm ^ 2) / (32000 * E * Ig)
If lm(i_vm).ud = True Then
vm(i_vm) = -vm(i_vm)
End If
End If
Next
For i_vm = 1 To t_m
vme = vme + vm(i_vm)
Next
End If
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If ls.gs = True And rs.z = True Then '左端固定端右端自由端的计算过程
For i_vp = 1 To t_p '计算各个集中力引起的挠度
If lp(i_vp).xp > dimes.l / 2 Then
vp(i_vp) = lp(i_vp).p * (dimes.l) ^ 2 * (3 * lp(i_vp).xp - dimes.l) / (6000 * E * Ig)
If lp(i_vp).ud = False Then '若向上则挠度取负
vp(i_vp) = -vp(i_vp)
End If
Else
vp(i_vp) = lp(i_vp).p * lp(i_vp).xp ^ 2 * (1.5 * dimes.l - lp(i_vp).xp) / (6000 * E * Ig)
If lp(i_vp).ud = False Then '若向上则挠度取负
vp(i_vp) = -vp(i_vp)
End If
End If
Next
For i_vp = 1 To t_p '累加各个集中力挠度
vpe = vpe + vp(i_vp)
Next
vq = 7 * lq.q * dimes.l ^ 4 / (96000 * E * Ig)
If lq.ud = False Then
vq = -vq
End If
For i_vm = 1 To t_m
If lm(i_vm).xm > dimes.l / 2 Then
vm(i_vm) = lm(i_vm).m * dimes.l ^ 2 / (2000 * E * Ig)
If lm(i_vm).ud = False Then '若逆时针则挠度取负
vm(i_vm) = -vm(i_vm)
End If
Else
vm(i_vm) = lm(i_vm).m * lm(i_vm).xm * (dimes.l - lm(i_vm).xm) / (2000 * E * Ig)
If lm(i_vm).ud = False Then '若逆时针则挠度取负
vm(i_vm) = -vm(i_vm)
End If
End If
Next
For i_vm = 1 To t_m
vme = vme + vm(i_vm)
Next
End If '左端固定端右端自由端的计算过程的结束
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If ls.z = True And rs.gs = True Then '右端固定端左端自由端的计算过程
For i_vp = 1 To t_p '计算各个集中力引起的挠度
If lp(i_vp).xp < dimes.l / 2 Then
vp(i_vp) = lp(i_vp).p * (dimes.l) ^ 2 * (3 * (dimes.l - lp(i_vp).xp) - dimes.l) / (6000 * E * Ig)
If lp(i_vp).ud = False Then '若向上则挠度取负
vp(i_vp) = -vp(i_vp)
End If
Else
vp(i_vp) = lp(i_vp).p * (dimes.l - lp(i_vp).xp) ^ 2 * (1.5 * dimes.l - (dimes.l - lp(i_vp).xp)) / (6000 * E * Ig)
If lp(i_vp).ud = False Then '若向上则挠度取负
vp(i_vp) = -vp(i_vp)
End If
End If
Next
For i_vp = 1 To t_p '累加各个集中力挠度
vpe = vpe + vp(i_vp)
Next
vq = 7 * lq.q * dimes.l ^ 4 / (96000 * E * Ig) '计算由均布载引起的挠度
If lq.ud = False Then '若方向向上则挠度取负
vq = -vq
End If
For i_vm = 1 To t_m '计算由集中力矩引起的挠度
If lm(i_vm).xm < dimes.l / 2 Then
vm(i_vm) = lm(i_vm).m * dimes.l ^ 2 / (2000 * E * Ig)
If lm(i_vm).ud = True Then '若为顺时针则方向取负
vm(i_vm) = -vm(i_vm)
End If
Else
vm(i_vm) = lm(i_vm).m * (dimes.l - lm(i_vm).xm) * (dimes.l - (dimes.l - lm(i_vm).xm)) / (2000 * E * Ig)
If lm(i_vm).ud = True Then '若为顺时针则方向取负
vm(i_vm) = -vm(i_vm)
End If
End If
Next
For i_vm = 1 To t_m '累加各个集中力矩引起的挠度
vme = vme + vm(i_vm)
Next
End If '右端固定端左端自由端的计算过程的结束
Text1.Text = vpe + vq + vme '在文本中输出最终计算结果
Text2.Text = dimes.l / 2
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Sub
Private Sub Option1_Click()
End Sub
Private Sub Picture1_Paint()
Picture1.DrawWidth = 2
Picture1.Line (1600, 2800)-(6700, 2800), &H0
End Sub
Private Sub Text3_LostFocus()
If Text3.Text = "" Then
Text3.Text = 0
Exit Sub
End If
dotnum = 0
For i = 1 To Len(Text3.Text)
strtemp = Mid(Text3.Text, i, 1)
If strtemp = "." Then
dotnum = dotnum + 1
End If
If (Asc(strtemp) >= Asc(0) And Asc(strtemp) <= Asc(9)) Or (strtemp = "." And dotnum = 1) Then
Else: MsgBox "请输入数值型字符,并且只能有一个小数点", vbOKOnly + vbExclamation + vbDefaultButton1, "警告"
Exit Sub
End If
Next
x = Text3.Text
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -