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

📄 梁配筋.bas

📁 钢筋混凝土框架结构设计计算源程序
💻 BAS
📖 第 1 页 / 共 4 页
字号:
       梁跨中As1 = 梁跨中As2 + ξb * (fcm / fy) * B * H0
    End If
    梁跨中主筋 = Str(梁跨中As1) + "|" + Str(梁跨中As2)
End Function
Function 梁端主筋(弯矩M As Single, 单元号 As Integer, 跨中主筋面积 As Integer)
    Dim ξ As Single, αs As Single
    Dim SD1 As Single, SD2 As Single, X As Single
    Dim B As Integer, H As Integer, H0 As Integer
    Dim fy As Single, fcm As Single, fc As Single, M As Single
    Dim 抗震等级 As String
    Dim ρmin As Single
    '拉区钢筋
    Dim 梁端As1 As Integer, 梁端As2 As Integer, 最小As As Integer
    抗震等级 = 求抗震等级()
    ρmin = 求ρmin("支座", 抗震等级)
    B = BH(单元号, 1)
    H = BH(单元号, 2)
    Call 弯曲抗压及轴心抗压强度设计值表(混凝土标号(单元号), fcm, fc)
    Call 钢筋强度设计值表(grade(1), fy)
    SD1 = 35         '保护层厚度  mm
    SD2 = 35         '保护层厚度
    H0 = H - SD1
    M = Abs(弯矩M * 10 ^ 6)  'N*mm
    ξ = 0.35
    αs = ξ * (1 - 0.5 * ξ)
'计算As
    梁端As2 = (M - αs * fcm * B * H0 ^ 2) / (fy * (H0 - SD2))
    If 梁端As2 < 0 Then
        梁端As2 = 0
        X = H0 - Sqr(H0 ^ 2 - 2 * M / (fcm * B))
        梁端As1 = fcm * B * X / fy
    Else
        梁端As1 = 梁端As2 + ξ * (fcm / fy) * B * H0
    End If
    If 梁端As2 < 跨中主筋面积 Then 梁端As2 = 跨中主筋面积
    最小As = 0.003 * B * H0
    If 最小As > 梁端As1 + 梁端As2 Then 梁端As1 = 最小As - 梁端As2
    梁端主筋 = Str(梁端As1) + "|" + Str(梁端As2)
End Function
Function 梁跨中配箍筋(计算V As Single, 单元号 As Integer)
       'N 设计剪力     'N 极限剪力   '构造要求
    Dim Vb As Single, Vu As Single, V As Single
    Dim B As Integer, H As Integer, H0 As Integer, SD As Integer
    Dim fc As Single, fyv As Single, fcm As Single, fy As Single
    Dim γRe As Single   '考虑地震是一种偶然作用,时间短,对承载力作相应的调整。
    Dim Asv As Integer, Asv1 As Integer
    Dim s As Integer, D As Integer
    Dim 钢筋直径D As Variant
    Dim 肢数N As Integer '箍筋肢数
       '配箍率
    Dim ρsv As Single, 计算ρsv As Single, ρsvmin As Single
    Dim i As Integer
    Dim π As Single
    Dim fg As Integer
    Dim 肢数 As String, St As String, temp As String
    
    
    钢筋直径D = Array("Φ8@", "Φ10@")
    B = BH(单元号, 1)
    H = BH(单元号, 2)
    Call 弯曲抗压及轴心抗压强度设计值表(混凝土标号(单元号), fcm, fc)
    Call 钢筋强度设计值表(grade(3), fy)
    fyv = fy
    SD = 35         '保护层厚度
    H0 = H - SD
    ρsvmin = 0.03 * fc / fyv
    
    γRe = 0.85   '斜截面抗剪
    Vb = 计算V   'N
    Vu = (0.8 / γRe) * 0.2 * fc * B * H0
    V = (0.8 / γRe) * (0.07 * fc * B * H0)
    
    If Vu < Vb Then
       fg = 0
       GoTo L
    Else
       fg = 2
    End If
    '抗剪公式   V <= (0.8 / γRe) * (0.07 * fc * b * h0 + 1.5 * fyv * (Asv / s) * h0)
    ρsv = (Vb * (γRe / 0.8) - (0.07 * fc * B * H0)) / ((1.5 * fyv * H0) * B)
    If ρsv < ρsvmin Then
       ρsv = ρsvmin
       temp = "构造 "
    Else
       temp = ""
    End If
    π = 3.1415926
    
    '选筋
    肢数N = 2
    
k:
    For i = 0 To 1
       D = Val(Mid(钢筋直径D(i), 2))
       Asv1 = π * D ^ 2 / 4
       Asv = 肢数N * Asv1
       s = Asv / (ρsv * B)         'ρsv = Asv / (S * b)
       s = Int(s / 10) * 10         '将S调整为整数。
       If s >= 50 Then GoTo L
       If i = 1 And D = 10 And 肢数N = 4 Then GoTo L
       If i = 1 And D = 10 Then 肢数N = 4: GoTo k
    Next i
L:
    If fg = 0 Then
       梁跨中配箍筋 = "加大截面尺寸"
     Else
       If 肢数N = 2 Then 肢数 = "双肢"
       If 肢数N = 4 Then 肢数 = "四肢"
       梁跨中配箍筋 = temp + 肢数 + 钢筋直径D(i) + Mid(Str(s), 2)
    End If
End Function

Function 梁端斜截面配箍(计算V As Single, 单元号 As Integer)
           '设计剪力     '极限剪力   '构造要求
    Dim Vb As Single, Vu As Single, V As Single
    Dim B As Integer, H As Integer, H0 As Integer, as1 As Integer
    Dim fc As Single, fyv As Single, fcm As Single, fy As Single
    Dim γRe As Single    '考虑地震是一种偶然作用,时间短,对承载力作相应的调整。
    Dim Asv As Integer, Asv1 As Integer, temp As Single
    Dim s As Integer, D As Integer, SD As Integer
    Dim 钢筋直径D As Variant
    Dim Dmax As Integer '纵筋最大直径.
    Dim 肢数N As Integer '钢筋肢数
       '配箍率
    Dim ρsv As Single, 计算ρsv As Single, ρsvmin As Single
    Dim Smax As Integer       '箍筋最大间距
    Dim i As Integer
    Dim π As Single
    Dim fg As Integer
    Dim 肢数 As String, St As String, Str1 As String
    钢筋直径D = Array("Φ8@", "Φ10@")
    
    B = BH(单元号, 1)
    H = BH(单元号, 2)
    Call 弯曲抗压及轴心抗压强度设计值表(混凝土标号(单元号), fcm, fc)
    Call 钢筋强度设计值表(grade(3), fy)
    fyv = fy
    SD = 35         '保护层厚度
    H0 = H - SD
    ρsvmin = 0.03 * fc / fyv
    γRe = 0.85   '斜截面抗剪
    Vb = 计算V   'N
    Vu = (0.8 / γRe) * 0.2 * fc * B * H0
    V = (0.8 / γRe) * (0.07 * fc * B * H0)
    temp = 0.07 * fc * B * H0
    Call 梁中箍筋最大间距(temp, Vb, Smax, 单元号)
    If Vu < Vb Then
        fg = 0
        GoTo L
    ElseIf V >= Vb Then
        fg = 1
        GoTo L
    Else
        fg = 2
    End If
    '抗剪公式   V <= (0.8 / γRe) * (0.07 * fc * b * h0 + 1.5 * fyv * (Asv / s) * h0)
    ρsv = (Vb * (γRe / 0.8) - (0.07 * fc * B * H0)) / ((1.5 * fyv * H0) * B)
    π = 3.1415926
    '选筋
    肢数N = 2
k:
    For i = 0 To 1
       D = Val(Mid(钢筋直径D(i), 2))
       Asv1 = π * D ^ 2 / 4
       Asv = 肢数N * Asv1
       s = Asv / (ρsv * B)        'ρsv = Asv / (S * b)
       s = Int(s / 10) * 10    '将S调整为整数。
       If s >= 50 Then GoTo L
       If i = 1 And D = 10 And 肢数N = 4 Then GoTo L
       If i = 1 And D = 10 Then 肢数N = 4: GoTo k
    Next i
L:
    If fg = 0 Then
       梁端斜截面配箍 = "加大截面尺寸"
    ElseIf fg = 1 Then
       梁端斜截面配箍 = "构造 " + "双肢" + 钢筋直径D(0) + Mid(Str(Smax), 2)
    Else
       If 肢数N = 2 Then 肢数 = "双肢"
       If 肢数N = 4 Then 肢数 = "四肢"
       If s >= Smax Then s = Smax
       If 肢数N = 2 And s = Smax And i = 0 Then
          Str1 = "构造 "
       Else
          Str1 = ""
       End If
       梁端斜截面配箍 = Str1 + 肢数 + 钢筋直径D(i) + Mid(Str(s), 2)    '+ "  " + Str(Asv / (b * S))
    End If
End Function
Function 选配筋组合(计算As As Integer)
    Dim 配筋组合面积 As Single, k As Integer
    Dim i As Integer, j As Integer, ii As Integer
    Dim 可选配筋组合表 As Variant
    Dim temp As String, 实配钢筋面积 As Integer
    Dim N1 As Integer, N2 As Integer
    '第一次调用时需要排序配筋组合
    If 是否排序过 = 0 Then
        可选配筋组合表 = Array("2Φ10", "4Φ10", "4Φ12", "2Φ12", "2Φ14", "2Φ16", _
            "2Φ18", "2Φ20", "2Φ22", "2Φ25", "2Φ16+1Φ12", "2Φ20+1Φ16", _
            "2Φ25+1Φ20", "2Φ25+Φ16", "3Φ14", "3Φ16", "3Φ18", "3Φ20", _
            "3Φ22", "2Φ25+1Φ22", "3Φ25", "4Φ25", "4Φ20", "4Φ28", "end")
        '取出组合
        ii = 0
        For i = 1 To 100
            配筋组合(i) = 可选配筋组合表(i - 1)
            If 配筋组合(i) = "end" Then Exit For
            ii = ii + 1
        Next i
        '计算面积
        ii = i - 1
        For i = 1 To ii
            配筋组合面积 = 0
            temp = 配筋组合(i)
            Do
                N1 = InStr(temp, "Φ")
                N2 = InStr(temp, "+")
                配筋组合面积 = 配筋组合面积 + Val(temp) * (Val(Mid$(temp, N1 + 1)) / 2) ^ 2 * 3.1416
                If N2 > 0 Then
                    temp = Mid$(temp, N2 + 1)
                Else
                    钢筋面积(i) = 配筋组合面积
                    Exit Do
                End If
            Loop
        Next i
        '气泡排序法,结果为从小到大排列。
        For i = 1 To ii - 1
            For j = ii - 1 To i Step -1
                If 钢筋面积(j) > 钢筋面积(j + 1) Then
                     k = 钢筋面积(j + 1)
                     钢筋面积(j + 1) = 钢筋面积(j)
                     钢筋面积(j) = k
                     temp = 配筋组合(j + 1)
                     配筋组合(j + 1) = 配筋组合(j)
                     配筋组合(j) = temp
                End If
            Next j
        Next i
        是否排序过 = 1
    End If
    '通过比擂台选筋
    For i = 1 To 100
        If 计算As <= 钢筋面积(i) Then
            选配筋组合 = 配筋组合(i)
            实配钢筋面积 = 钢筋面积(i)
            Exit For
        End If
    Next i
选配筋组合 = 选配筋组合 + "=" + Mid(Str(实配钢筋面积), 2)

End Function

'必须先计算梁跨中的剪力再计算梁端剪力,因为本过程改变了原来的"梁不利"中
' 经过荷载组合保留的剪力,是用梁端剪力覆盖了他们.
Sub 计算一级抗震梁_Vb()
    Dim i As Integer, j As Integer, flag As Integer, ii As Integer
    Dim 荷载 As 单元荷载
    Dim 梁端力 As 杆端内力
    Dim qq As Single, qt As Single, a As Single
    Dim Vgb As Single   '简支梁产生的剪力
      '左端剪力       右端剪力        左端最大          右端最大
    Dim VbL As Single, VbR As Single, VbmaxL As Single, VbmaxR As Single
    Dim Lch As Single, Rch As Single
    Dim L As Single   '梁跨
    Dim Ln As Single   '梁净跨
    Dim 拉筋As1 As Integer, 压筋As2 As Integer
      '梁左端M        梁右端M
    Dim LM As Single, RM As Single
    Dim γRe As Single, 系数 As Single
  
    Open Fname & "梯形恒载" For Random As #11 Len = Len(荷载)
    Open Fname & "均布恒载" For Random As #12 Len = Len(荷载)
    Open Fname & "活荷载A" For Random As #13 Len = Len(荷载)
    Open Fname & "活荷载B" For Random As #14 Len = Len(荷载)
    Open Fname & "跨中剪力" For Random As #17 Len = Len(梁端力)
    Open Fname & "梁不利" For Random As 20 Len = Len(梁端力)
 
    flag = 是否加3列
    γRe = 0.75
    系数 = 1.05 / γRe
    
    ii = 柱总数 + 1
 
    For i = ii To Ncell
        j = i - 柱总数
    '计算简支梁产生的剪力
        Get #11, j, 荷载     '梯形恒载
        qq = 荷载.s
        Get #12, j, 荷载     '均布恒载
        qt = 荷载.s
        a = 荷载.Po
        Get #13, j, 荷载     '活载A
        qt = 荷载.s + qt
        Get #14, j, 荷载     '活载B

⌨️ 快捷键说明

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