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

📄 荷载计算.bas

📁 钢筋混凝土框架结构设计计算源程序
💻 BAS
📖 第 1 页 / 共 2 页
字号:
Attribute VB_Name = "Module4"
Option Explicit
DefInt H-N
DefSng X-Y
Public h1 As Single, h2 As Single
Dim Ne, Nd
Dim sinA As Single, cosA As Single
Dim i, j, K, ii, Kk, L As Single
Dim X1, Y1, x2, y2
Sub 生成荷载Ld(荷载号 As Integer)
    Select Case 荷载号       '梯形恒载
        Case 0
            Call 梯形恒载
            当前荷载 = "梯形恒载"
        Case 1
            Call 均布恒载
            当前荷载 = "均布恒载"
        Case 3
            Call 风荷载
            当前荷载 = "风荷载"
        Case 4
            Call 地震作用
            当前荷载 = "地震作用"
        Case 6
            Call 活荷载("A")
            当前荷载 = "活荷载A"
        Case 7
            Call 活荷载("B")
            当前荷载 = "活荷载B"
        Case 8
            Form4.Show
            Form4.Left = MDIForm1.Width - Form4.Width - 200
            If 击中构件号 = 0 Then 击中构件号 = 柱总数 + 1
            i = 击中构件号
'            For i = 柱总数 + 1 To Ncell
                Call 逐跨活荷载(i)
                当前荷载 = "逐跨活荷载" & Str(i)
'                Call 计算内力
'            Next i
    End Select
    Form1.command.Enabled = True
    图 = "荷载"
    Form1.Picture1.Cls
    Call 杆件图(Form1.Picture1)
    If 图 = "荷载" Then
        Form1.Opt(0).Enabled = True
        Form1.Opt(0).Value = True
        Form1.Opt(1).Enabled = False
        Form1.Opt(2).Enabled = False
        Form1.Opt(3).Enabled = False
    ElseIf 图 = "内力" Then
        Form1.Opt(0).Enabled = False
        Form1.Opt(1).Enabled = True
        Form1.Opt(2).Enabled = True
        Form1.Opt(3).Enabled = True
        command.Caption = "退出"
    End If
End Sub
'弯矩逆时针为正,顺时针为负,剪力轴力x、y正方向为正,负方向为负
Sub 梯形恒载()              '板传给梁的自重及连梁传给柱的力
    Dim 荷载 As 单元荷载, Ne As Integer, L As Single
    Dim Focus As Single             '集中力
    Dim temp As Single
    Dim B, H As Integer
    Open Fname & "梯形恒载" For Random As #10 Len = Len(荷载)
    Erase Ld()
    For i = 1 To Ncell - 柱总数
        Put #10, i, Ld(i)
    Next i
    Ne = 柱总数 + 1     '第一根梁的单元号
    Call 节点力清空
    For i = 1 To Cengshu
        For j = 1 To Kuashu
            Call SetT(Ne, L, sinA, cosA, X1, Y1, x2, y2)
            If i = Cengshu Then
                temp = Val(屋面板附加重量)
            Else
                temp = Val(楼面板附加重量)
            End If
            Ld(Ne).Pq = "T"
            If L > Val(相邻框架间距) / 1000 Then
                Ld(Ne).s = Val(相邻框架间距) / 1000 * Val(钢筋混凝土楼板厚度) / 1000 * 25 + Val(相邻框架间距) / 1000 * temp  '单位KN/m
                Ld(Ne).Po = Val(相邻框架间距) / 2000  '单位米
            Else
                Ld(Ne).s = L * Val(钢筋混凝土楼板厚度) / 1000 * 25 + L * temp  '注意单位KN/m
                Ld(Ne).Po = L / 2
            End If
            Put #10, Ne - 柱总数, Ld(Ne)
            Ne = Ne + 1
        Next j
    Next i
    Close #10
    '将柱的附加重量+联系梁传至结点的竖向集中荷载付给XMY
'    Ne = Cengshu + 1 + 1              '下面为算结点力
    Ne = Kuashu + 1 + 1
    For i = 1 To Cengshu - 1
        For j = 1 To Kuashu + 1
            XYM(Ne, 2) = -Val(CATable(i, j)) - EAI(Ne, 2) * 25 * Ly(i)  '单位为KN
            Ne = Ne + 1
        Next j
    Next i
    For j = 1 To Kuashu + 1
        XYM(Ne, 2) = -Val(CATable(Cengshu, j))  '单位为KN
        Ne = Ne + 1
    Next j
    '考虑板恒载通过连梁传递的集中力
    For i = 柱总数 + 1 To Ncell
        Call SetT(i, L, sinA, cosA, X1, Y1, x2, y2)
        If L > Val(相邻框架间距) / 1000 Then
           Focus = -(Ld(i).s / 2) * Val(相邻框架间距) / 1000 / 2
        Else
           Focus = -(Ld(i).s / 2) * (Val(相邻框架间距) / 1000 - L / 2)
        End If
        XYM(NGN(i, 1), 2) = XYM(NGN(i, 1), 2) + Focus
        XYM(NGN(i, 2), 2) = XYM(NGN(i, 2), 2) + Focus
    Next i
End Sub
Sub 均布恒载()          '即梁的自重+楼面框架梁附加重量
    Dim 荷载 As 单元荷载
    Open Fname & "均布恒载" For Random As #10 Len = Len(荷载)
    Call 节点力清空
    Erase Ld()
    For i = 1 To Ncell - 柱总数
        Put #10, i, Ld(i)
    Next i
    Ne = 柱总数 + 1                    '第一根梁的单元号
    For i = 1 To Cengshu
        For j = 1 To Kuashu
            Call SetT(Ne, L, sinA, cosA, X1, Y1, x2, y2)
            Ld(Ne).Pq = "q"
            If i < Cengshu Then
                Ld(Ne).s = EAI(Ne, 2) * 25 + Val(楼面梁附加重量) + Val(BATable(i, j))    '注意单位是 kN/m
            Else:
                Ld(Ne).s = EAI(Ne, 2) * 25 + Val(屋面梁附加重量) + Val(BATable(i, j))    '注意单位是 kN/m
            End If
            Ld(Ne).Po = L
            Put #10, Ne - 柱总数, Ld(Ne)
            Ne = Ne + 1
        Next j
    Next i
    Close #10
End Sub
Sub 风荷载() '原理参多高层18-22页
    Dim 荷载 As 单元荷载, Ne As Integer
    Dim h1 As Single, h2 As Single
    Dim μz As Single, μz1 As Single, μz2 As Single  '风压高度变化系数
    Dim Wo As Single, B As Single
    Dim βz As Single   'Z高度处的风振系数
    Dim A As Single     '迎风面积
    Dim μs As Single   '体型系数
    Dim Y(1 To 20) As Single
    Dim Luchu As Single
    μs = 1.3 '体型系数,矩形平面查高层表2-2
    Wo = Val(基本风压)  '基本风压 kN/m2
    βz = 1     'Z高度处的风振系数,因为高度小于三十米
    B = Val(相邻框架间距) / 1000     '相邻框架间距(柱距)
    Luchu = Ly(1) - Val(女儿墙墙高) / 1000
    Call 节点力清空
    Open Fname & "风荷载" For Random As #10 Len = Len(荷载)
    Erase Ld()
    For i = 1 To Ncell - 柱总数
        Put #10, i, Ld(i)
    Next i
    For K = 1 To Cengshu
        Ne = K * (Kuashu + 1) + 1
        Y(K) = XY(Ne, 2)    '每层顶点高度
        Call 定限(Y(K), h1, h2, μz1, μz2) '用插值法求风压高度变化系数
        If μz1 = μz2 Then
            μz = 1
        Else:
            μz = μz1 + (μz2 - μz1) / (h2 - h1) * (Cengshu - h1)
        End If
        If K = 1 Then
            XYM(Ne, 1) = Wo * βz * μs * Luchu * B * (Ly(1) - Luchu / 2) / Ly(1)
            XYM(Ne, 1) = XYM(K, 1) + Wo * βz * μs * (0.5 * Ly(2)) * B
        Else
            If K = Cengshu Then
                A = (0.5 * Ly(K)) * B + Val(女儿墙墙高) / 1000 * B '各层的迎风面积
            Else:
                A = (Ly(K) + Ly(K + 1)) * 0.5 * B
            End If
            XYM(Ne, 1) = Wo * βz * μs * A
        End If
    Next K
    Close #10
End Sub
Sub 地震作用() '原理参多高层26页“底部剪力反应谱法”
    Dim 荷载 As 单元荷载
    Dim Hi(20) As Single          '第i层离地面的高度
    Dim Ne As Integer             '单元号
    Dim αl As Single             '相应于结构基本周期Tl的地震影响系数α值
    Dim αmax As Single           '水平地震影响系数最大值
    Dim Tl As Single              '结构基本自振周期
    Dim Tg As Single              '特征周期值
    Dim G(1 To 20)                '结构各层重力荷载
    Dim F(1 To 20)                '各楼层除作用的等效地震力
    Dim Ge As Single              '计算地震作用时的总重力荷载
    Dim Colume As Single          '一层柱重
    Dim fek As Single             '结构总水平地震作用标准值
    Dim δn As Single             '顶点附加作用系数
    Dim ∑GiHi As Single
    Dim 结构总长 As Single
'    Tl = 0.22 + 0.035 * Cengtot / (Kuatot ^ (1 / 3))      '经验公式
    Tl = 0.25 + 0.53 / 1000 * Cengtot ^ 2 / Kuatot ^ (1 / 3)
    Call 水平地震影响系数最大值表(Val(抗震设防烈度), 地震类型, αmax)
    Call 特征周期值表(设计地震分组, 建筑场地类别, Tg)
    Call 节点力清空
    αl = ((Tg / Tl) ^ 0.9) * αmax

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -