📄 柱配筋.bas
字号:
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 + -