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

📄 柱配筋.bas

📁 钢筋混凝土框架结构设计计算源程序
💻 BAS
📖 第 1 页 / 共 3 页
字号:
Attribute VB_Name = "Module12"
Option Explicit
Public 主筋面积(1000) As Integer
Public 柱端ρ(1000) As Single
Sub 柱恒_活14(gg As Single)  'gg 恒载系数
    Dim ii, i As Integer
    Dim M1 As Single, M2 As Single, M10 As Single, M20 As Single
    Dim N1 As Single, N2 As Single, N10 As Single, N20 As Single
    Dim Q1 As Single, Q2 As Single, Q10 As Single, Q20 As Single
    
    Dim 柱端力 As 杆端内力
    
    Open Fname & "梯形恒载内力" For Random As #1 Len = Len(柱端力)  '计算跨中弯矩
    Open Fname & "均布恒载内力" For Random As #12 Len = Len(柱端力)
    Open Fname & "活荷载A内力" For Random As #3 Len = Len(柱端力)
    Open Fname & "活荷载B内力" For Random As #4 Len = Len(柱端力)
    Open Fname & "柱端力" For Random As #55 Len = Len(柱端力)
    
    
    For i = 1 To 柱总数
        With 柱端力
            Get #1, i, 柱端力
            M1 = .M1 * gg
            M2 = .M2 * gg
            Q1 = .Q1 * gg
            Q2 = .Q2 * gg
            N1 = .N1 * gg
            N2 = .N2 * gg
            
            Get #12, i, 柱端力
            M1 = M1 + .M1 * gg
            M2 = M2 + .M2 * gg
            Q1 = Q1 + .Q1 * gg
            Q2 = Q2 + .Q2 * gg
            N1 = N1 + .N1 * gg
            N2 = N2 + .N2 * gg
            
            Get #3, i, 柱端力
            M10 = M1 + .M1 * 1.4
            M20 = M2 + .M2 * 1.4
            Q10 = Q1 + .Q1 * 1.4
            Q20 = Q2 + .Q2 * 1.4
            N10 = N1 + .N1 * 1.4
            N20 = N2 + .N2 * 1.4
            If Q1 * Q10 > 0 Then Q10 = Q1 + Q10
            If Q2 * Q20 > 0 Then Q20 = Q2 + Q20
            If N1 * .N1 > 0 Then N10 = .N1 + N10
            If N2 * .N2 > 0 Then N20 = .N2 + N20
            If i <= Kuashu + 1 Then M10 = 1.5 * M10 '一,二级抗震框架柱底层_
            If 主筋面积(i) < 柱配筋(M10, N10, M20, N20, i) Then
                主筋面积(i) = 柱配筋(M10, N10, M20, N20, i)
                MN(i, 1) = As_M      '与原来的相比   将柱筋所对应的 M,N 记录下以便强柱弱梁校和用
                MN(i, 2) = As_N
            End If
            
            Get #4, i, 柱端力
            M10 = M1 + .M1 * 1.4
            M20 = M2 + .M2 * 1.4
            Q10 = Q1 + .Q1 * 1.4
            Q20 = Q2 + .Q2 * 1.4
            N10 = N1 + .N1 * 1.4
            N20 = N2 + .N2 * 1.4
            If Q1 * Q10 > 0 Then Q10 = Q1 + Q10
            If Q2 * Q20 > 0 Then Q20 = Q2 + Q20
            If N1 * .N1 > 0 Then N10 = .N1 + N10
            If N2 * .N2 > 0 Then N20 = .N2 + N20
            If i <= Kuashu + 1 Then M10 = 1.5 * M10 '一,二级抗震框架柱底层_
            If 主筋面积(i) < 柱配筋(M10, N10, M20, N20, i) Then
                主筋面积(i) = 柱配筋(M10, N10, M20, N20, i)
                MN(i, 1) = As_M      '与原来的相比   将柱筋所对应的 M,N 记录下以便强柱弱梁校和用
                MN(i, 2) = As_N
            End If
            
            Get #3, i, 柱端力   '满布时
            M10 = M10 + .M1 * 1.4
            M20 = M20 + .M2 * 1.4
            Q10 = Q10 + .Q1 * 1.4
            Q20 = Q20 + .Q2 * 1.4
            N10 = N10 + .N1 * 1.4
            N20 = N20 + .N2 * 1.4
            If 主筋面积(i) < 柱配筋(M10, N10, M20, N20, i) Then
                主筋面积(i) = 柱配筋(M10, N10, M20, N20, i)
                MN(i, 1) = As_M
                MN(i, 2) = As_N
            End If
            
            Get #55, i, 柱端力   '柱端力中的数全为正
            If .Q1 < Abs(Q10) Then .Q1 = Abs(Q10)
            If .Q2 < Abs(Q20) Then .Q2 = Abs(Q20)
            If .N1 < Abs(N10) Then .N1 = Abs(N10)
            If .N2 < Abs(N20) Then .N2 = Abs(N20)
            Put #55, i, 柱端力
        End With
    Next i
    Close #1, #12, #3, #4, #55
End Sub
Sub 柱恒_风14(gg As Single)  'gg 恒载系数
    Dim ii, i As Integer
    Dim M1 As Single, M2 As Single, M10 As Single, M20 As Single
    Dim N1 As Single, N2 As Single, N10 As Single, N20 As Single
    Dim Q1 As Single, Q2 As Single, Q10 As Single, Q20 As Single
  
    Dim 柱端力 As 杆端内力
    Open Fname & "梯形恒载内力" For Random As #1 Len = Len(柱端力)  '计算跨中弯矩
    Open Fname & "均布恒载内力" For Random As #12 Len = Len(柱端力)
    Open Fname & "风荷载内力" For Random As #3 Len = Len(柱端力)
    Open Fname & "柱端力" For Random As #4 Len = Len(柱端力)
    
    
    For i = 1 To 柱总数
        With 柱端力
            Get #1, i, 柱端力
            M1 = .M1 * gg
            M2 = .M2 * gg
            Q1 = .Q1 * gg
            Q2 = .Q2 * gg
            N1 = .N1 * gg
            N2 = .N2 * gg
            
            Get #12, i, 柱端力
            M1 = M1 + .M1 * gg
            M2 = M2 + .M2 * gg
            Q1 = Q1 + .Q1 * gg
            Q2 = Q2 + .Q2 * gg
            N1 = N1 + .N1 * gg
            N2 = N2 + .N2 * gg
            
            Get #3, i, 柱端力
            M10 = .M1 * 1.4
            M20 = .M2 * 1.4
            Q10 = .Q1 * 1.4
            Q20 = .Q2 * 1.4
            N10 = .N1 * 1.4
            N20 = .N2 * 1.4
            M1 = M1 + M10 * Sgn(M1 * M10) 'Sgn(number) 函数返回一个 Variant (Integer),指出参数的正负号
            M2 = M2 + M20 * Sgn(M2 * M20) '如果 number 为 Sgn 返回
            Q1 = Q1 + Q10 * Sgn(Q1 * Q10) '     大于 0          1
            Q2 = Q2 + Q20 * Sgn(Q2 * Q20) '     等于 0          0
                                          '     小于 0         - 1
            If i <= Kuashu + 1 Then M10 = 1.5 * M10 '一,二级抗震框架柱底层_
            If 主筋面积(i) < 柱配筋(M10, N10, M20, N20, i) Then
                主筋面积(i) = 柱配筋(M10, N10, M20, N20, i)
                MN(i, 1) = As_M      '与原来的相比   将柱筋所对应的 M,N 记录下以便强柱弱梁校和用
                MN(i, 2) = As_N
            End If
            
            Get #4, i, 柱端力   '柱端力中的数全为正
            If .Q1 < Abs(Q10) Then .Q1 = Abs(Q10)
            If .Q2 < Abs(Q20) Then .Q2 = Abs(Q20)
            If .N1 < Abs(N10) Then .N1 = Abs(N10)
            If .N2 < Abs(N20) Then .N2 = Abs(N20)
            Put #4, i, 柱端力
        End With
    Next i
    Close #1, #12, #3, #4
End Sub
Sub 柱恒_活风1485(gg As Single)
    Dim ii, i As Integer
    Dim M1 As Single, M2 As Single, M10 As Single, M20 As Single
    Dim N1 As Single, N2 As Single, N10 As Single, N20 As Single
    Dim Q1 As Single, Q2 As Single, Q10 As Single, Q20 As Single
    '  迭加用 以备计算轴压比.
    
    Dim 柱端力 As 杆端内力
    
   
    Open Fname & "梯形恒载内力" For Random As #1 Len = Len(柱端力)  '计算跨中弯矩
    Open Fname & "均布恒载内力" For Random As #12 Len = Len(柱端力)
    Open Fname & "活荷载A内力" For Random As #3 Len = Len(柱端力)
    Open Fname & "活荷载B内力" For Random As #4 Len = Len(柱端力)
    Open Fname & "风荷载内力" For Random As #5 Len = Len(柱端力)
    Open Fname & "柱端力" For Random As #6 Len = Len(柱端力)
    
    
    For i = 1 To 柱总数
        With 柱端力
            Get #1, i, 柱端力
            M1 = .M1 * gg
            M2 = .M2 * gg
            Q1 = .Q1 * gg
            Q2 = .Q2 * gg
            N1 = .N1 * gg
            N2 = .N2 * gg
            
            Get #12, i, 柱端力
            M1 = M1 + .M1 * gg
            M2 = M2 + .M2 * gg
            Q1 = Q1 + .Q1 * gg
            Q2 = Q2 + .Q2 * gg
            N1 = N1 + .N1 * gg
            N2 = N2 + .N2 * gg
            
            Get #3, i, 柱端力
            M10 = M1 + .M1 * 1.19         '1.19=0.85*1.4
            M20 = M2 + .M2 * 1.19
            Q10 = Q1 + .Q1 * 1.19
            Q20 = Q2 + .Q2 * 1.19
            N10 = N1 + .N1 * 1.19
            N20 = N2 + .N2 * 1.19
            If Q1 * Q10 > 0 Then Q10 = Q1 + Q10
            If Q2 * Q20 > 0 Then Q20 = Q2 + Q20
            If N1 * .N1 > 0 Then N10 = .N1 + N10
            If N2 * .N2 > 0 Then N20 = .N2 + N20
            If i <= Kuashu + 1 Then M10 = 1.5 * M10 '一,二级抗震框架柱底层
            M1 = M10: M2 = M20: N1 = N10: N2 = N20
            If 主筋面积(i) < 柱配筋(M10, N10, M20, N20, i) Then
                主筋面积(i) = 柱配筋(M10, N10, M20, N20, i)
                MN(i, 1) = As_M      '与原来的相比,将柱筋所对应的 M,N 记录下以便强柱弱梁校和用
                MN(i, 2) = As_N
            End If
            
            Get #4, i, 柱端力
            M10 = M1 + .M1 * 1.19
            M20 = M2 + .M2 * 1.19
            Q10 = Q1 + .Q1 * 1.19
            Q20 = Q2 + .Q2 * 1.19
            N10 = N1 + .N1 * 1.19
            N20 = N2 + .N2 * 1.19
            If Q1 * Q10 > 0 Then Q10 = Q1 + Q10
            If Q2 * Q20 > 0 Then Q20 = Q2 + Q20
            If N1 * .N1 > 0 Then N10 = .N1 + N10
            If N2 * .N2 > 0 Then N20 = .N2 + N20
            If i <= Kuashu + 1 Then M10 = 1.5 * M10 '一,二级抗震框架柱底层
            M1 = M10: M2 = M20: N1 = N10: N2 = N20
            If 主筋面积(i) < 柱配筋(M10, N10, M20, N20, i) Then
                主筋面积(i) = 柱配筋(M10, N10, M20, N20, i)
                MN(i, 1) = As_M      '与原来的相比,将柱筋所对应的 M,N 记录下以便强柱弱梁校和用
                MN(i, 2) = As_N
            End If
            
            Get #5, i, 柱端力      '风载
            M10 = .M1 * 1.19
            M20 = .M2 * 1.19
            Q10 = .Q1 * 1.19
            Q20 = .Q2 * 1.19
            N10 = .N1 * 1.19
            N20 = .N2 * 1.19
            M1 = M1 + M10 * Sgn(M1 * M10) 'Sgn(number) 函数返回一个 Variant (Integer),指出参数的正负号
            M2 = M2 + M20 * Sgn(M2 * M20) '如果 number 为 Sgn 返回
            Q1 = Q1 + Q10 * Sgn(Q1 * Q10) '     大于 0          1
            Q2 = Q2 + Q20 * Sgn(Q2 * Q20) '     等于 0          0
            If i <= Kuashu + 1 Then M10 = 1.5 * M10 '一,二级抗震框架柱底层
            M1 = M10: M2 = M20: N1 = N10: N2 = N20
            If 主筋面积(i) < 柱配筋(M10, N10, M20, N20, i) Then
                主筋面积(i) = 柱配筋(M10, N10, M20, N20, i)
                MN(i, 1) = As_M      '与原来的相比,将柱筋所对应的 M,N 记录下以便强柱弱梁校和用
                MN(i, 2) = As_N
            End If
            
            Get #6, i, 柱端力   '柱端力中的数全为正
            If .Q1 < Abs(Q10) Then .Q1 = Abs(Q10)
            If .Q2 < Abs(Q20) Then .Q2 = Abs(Q20)
            If .N1 < Abs(N10) Then .N1 = Abs(N10)
            If .N2 < Abs(N20) Then .N2 = Abs(N20)
            Put #6, i, 柱端力
        End With
    Next i
    Close #1, #12, #3, #4, #5, #6
            
End Sub
Sub 柱恒活_地震13(gg As Single)       '(恒+活*0.5)*1.2+地震*1.3
    Dim ii, i As Integer
    Dim M1 As Single, M2 As Single, M10 As Single, M20 As Single
    Dim N1 As Single, N2 As Single, N10 As Single, N20 As Single
    Dim Q1 As Single, Q2 As Single, Q10 As Single, Q20 As Single
    '  迭加用 以备计算轴压比.
    
    Dim 柱端力 As 杆端内力
    
    
    Open Fname & "梯形恒载内力" For Random As #1 Len = Len(柱端力)  '计算跨中弯矩
    Open Fname & "均布恒载内力" For Random As #12 Len = Len(柱端力)
    Open Fname & "活荷载A内力" For Random As #3 Len = Len(柱端力)
    Open Fname & "活荷载B内力" For Random As #4 Len = Len(柱端力)
    Open Fname & "地震作用内力" For Random As #5 Len = Len(柱端力)
    Open Fname & "柱端力" For Random As #6 Len = Len(柱端力)
    
    
    For i = 1 To 柱总数
        With 柱端力
            Get #1, i, 柱端力
            M1 = .M1 * gg
            M2 = .M2 * gg
            Q1 = .Q1 * gg
            Q2 = .Q2 * gg
            N1 = .N1 * gg
            N2 = .N2 * gg
            
            Get #12, i, 柱端力
            M1 = M1 + .M1 * gg
            M2 = M2 + .M2 * gg
            Q1 = Q1 + .Q1 * gg
            Q2 = Q2 + .Q2 * gg
            N1 = N1 + .N1 * gg
            N2 = N2 + .N2 * gg
            
            Get #3, i, 柱端力
            M10 = M1 + .M1 * 0.5
            M20 = M2 + .M2 * 0.5
            Q10 = Q1 + .Q1 * 0.5
            Q20 = Q2 + .Q2 * 0.5
            N10 = N1 + .N1 * 0.5
            N20 = N2 + .N2 * 0.5
            If Q1 * Q10 > 0 Then Q10 = Q1 + Q10
            If Q2 * Q20 > 0 Then Q20 = Q2 + Q20
            If N1 * .N1 > 0 Then N10 = .N1 + N10
            If N2 * .N2 > 0 Then N20 = .N2 + N20
            If i <= Kuashu + 1 Then M10 = 1.5 * M10 '一,二级抗震框架柱底层
            M1 = M10: M2 = M20: N1 = N10: N2 = N20
            If 主筋面积(i) < 柱配筋(M10, N10, M20, N20, i) Then
                主筋面积(i) = 柱配筋(M10, N10, M20, N20, i)
                MN(i, 1) = As_M      '与原来的相比,将柱筋所对应的 M,N 记录下以便强柱弱梁校和用
                MN(i, 2) = As_N
            End If
            
            Get #4, i, 柱端力
            M10 = M1 + .M1 * 0.5
            M20 = M2 + .M2 * 0.5
            Q10 = Q1 + .Q1 * 0.5
            Q20 = Q2 + .Q2 * 0.5
            N10 = N1 + .N1 * 0.5
            N20 = N2 + .N2 * 0.5
            If Q1 * Q10 > 0 Then Q10 = Q1 + Q10
            If Q2 * Q20 > 0 Then Q20 = Q2 + Q20
            If N1 * .N1 > 0 Then N10 = N1 + N10
            If N2 * .N2 > 0 Then N20 = N2 + N20
            If i <= Kuashu + 1 Then M10 = 1.5 * M10 '一,二级抗震框架柱底层
            M1 = M10: M2 = M20: N1 = N10: N2 = N20: N1 = N10: N2 = N20
            If 主筋面积(i) < 柱配筋(M10, N10, M20, N20, i) Then
                主筋面积(i) = 柱配筋(M10, N10, M20, N20, i)
                MN(i, 1) = As_M      '与原来的相比,将柱筋所对应的 M,N 记录下以便强柱弱梁校和用
                MN(i, 2) = As_N
            End If
            
            Get #5, i, 柱端力      '风载
            M10 = .M1 * 1.19
            M20 = .M2 * 1.19
            Q10 = .Q1 * 1.19
            Q20 = .Q2 * 1.19
            N10 = .N1 * 1.19
            N20 = .N2 * 1.19
            M1 = M1 + M10 * Sgn(M1 * M10) 'Sgn(number) 函数返回一个 Variant (Integer),指出参数的正负号
            M2 = M2 + M20 * Sgn(M2 * M20) '如果 number 为 Sgn 返回
            Q1 = Q1 + Q10 * Sgn(Q1 * Q10) '     大于 0          1
            Q2 = Q2 + Q20 * Sgn(Q2 * Q20) '     等于 0          0
            If i <= Kuashu + 1 Then M10 = 1.5 * M10 '一,二级抗震框架柱底层
            M1 = M10: M2 = M20: N1 = N10: N2 = N20
            If 主筋面积(i) < 柱配筋(M10, N10, M20, N20, i) Then
                主筋面积(i) = 柱配筋(M10, N10, M20, N20, i)
                MN(i, 1) = As_M      '与原来的相比,将柱筋所对应的 M,N 记录下以便强柱弱梁校和用
                MN(i, 2) = As_N
            End If

⌨️ 快捷键说明

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