⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form2.frm

📁 简单的单跨梁挠度计算
💻 FRM
📖 第 1 页 / 共 2 页
字号:
       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 + -