-
Notifications
You must be signed in to change notification settings - Fork 0
/
ABNT_NBR_7188.py
94 lines (74 loc) · 2.52 KB
/
ABNT_NBR_7188.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
'''5 Ações em pontes e viadutos'''
'''
5.1 Cargas móveis
Q = P*CIV*CNF*CIA
q = p*CIV*CNF*CIA
P = 75 kN
p = 5 kN/m²
Para obras de estradas vicinais municipais:
P = 40 kN
p = 4 kN/m²
'''
def get_Q(P: float, CIV: float, CNF: float, CIA: float) -> float:
return P * CIV * CNF * CIA
def get_q(p: float, CIV: float, CNF: float, CIA: float) -> float:
return p * CIV * CNF * CIA
P = 75
p = 5
'''
5.1.1 Cargas nos passeios
Nos passeios para pedestres das pontes e viadutos, adotar carga uniformemente distribuída
de 3 kN/m² na posição mais desfavorável concomitante com a carga móvel rodoviária, para verificações
e dimensionamentos dos diversos elementos estruturais, assim como para verificações globais.
'''
q_passeio = 3
'''
5.1.2 Coeficientes de ponderação de cargas verticais
'''
def CIV(vao_pilares: float) -> float:
'''
Coeficiente de impacto vertical
'''
if vao_pilares < 10:
return 1.35
elif vao_pilares >= 10 and vao_pilares <= 200:
return 1 + 1.06 * (20 / (vao_pilares + 50))
else:
raise Exception(f'Estrutura com vão maior que 200m não é definido na norma.')
def CNF(numero_de_faixas: int) -> float:
'''
Coeficiente de número de faixas
'''
cnf = 1 - 0.05 * (numero_de_faixas - 2)
if cnf > 0.9:
return cnf
else:
return 0.9
def CIA(tipo_estrutura: str) -> float:
'''
Coeficiente de impacto adicional
Valores permitidos para tipo_estrutura ['concreto', 'mista', 'aco']
'''
if tipo_estrutura == 'concreto' or tipo_estrutura == 'mista':
return 1.25
elif tipo_estrutura == 'aco':
return 1.15
else:
raise Exception('O tipo da estrutura definido em norma é apenas concreto,mista ou aço.')
if __name__ == '__main__':
print(f'### ABNT NBR 7188 ###')
print(f'P: {P} kN')
print(f'p: {p} kN')
print(f'Carga no passeio: {q_passeio} kN')
print(f'#####################')
fator_de_impacto = CIA('concreto') * CNF(2) * CIV(20)
print(f'Fator de impacto calculado: {fator_de_impacto:.3f}')
fator_de_impacto = CIA('concreto') * CNF(2) * CIV(25.23)
print(f'Fator de impacto calculado trabalho final: {fator_de_impacto:.3f}')
fator_de_impacto = CIA('concreto') * CNF(2) * CIV(25)
print(f'Fator de impacto calculado TCC: {fator_de_impacto:.3f}')
cia = CIA('concreto')
cnf = CNF(4)
civ = CIV(39)
fator_de_impacto = cia * cnf * civ
print(f'Fator de impacto calculado Trabalho Extra: {fator_de_impacto:.3f}, CIA={cia} CNF={cnf} CIV={civ:.3f}')