#Nodos ret.agregar_nodo(0,0) ret.agregar_nodo(L,0) ret.agregar_nodo(2*L,0) ret.agregar_nodo(L/2,sqrt(3)/2*L) ret.agregar_nodo(3*L/2,sqrt(3)/2*L) #Barras A = (1.1*cm)**2 r = sqrt(A/3.141593) props = [r, r, 200*GPa, 0*7600*kg/m**3, 420*MPa] ret.agregar_barra(Barra(0, 1, *props)) ret.agregar_barra(Barra(1, 2, *props)) ret.agregar_barra(Barra(3, 4, *props)) ret.agregar_barra(Barra(0, 3, *props)) ret.agregar_barra(Barra(3, 1, *props)) ret.agregar_barra(Barra(1, 4, *props)) ret.agregar_barra(Barra(4, 2, *props)) ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(2, 1, 0) ret.agregar_fuerza(4, 1, -F) ret.ensamblar_sistema() ret.resolver_sistema()
def caso_D(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg*m/s**2 cm = 0.01*m mm = 0.001*m KN = 1000*N kgf = 9.80665*N Pa = N / m**2 KPa = 1000*Pa MPa = 1000*KPa GPa = 1000*MPa #Parametros L = 5.0 *m B = 2.0 *m H = 3.5 *m q = 400*kgf/m**2 F = q*L*B F = F/4 #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0 , 0 , 0 ) #0 ret.agregar_nodo(L , 0 , 0 ) #1 ret.agregar_nodo(2*L , 0 , 0 ) #2 ret.agregar_nodo(3*L , 0 , 0 ) #3 ret.agregar_nodo(L/2 , B/2 , H ) #4 ret.agregar_nodo(3*L/2 , B/2 , H ) #5 ret.agregar_nodo(5*L/2 , B/2 , H ) #6 ret.agregar_nodo(0 , B , 0 ) #7 ret.agregar_nodo(L , B , 0 ) #8 ret.agregar_nodo(2*L , B , 0 ) #9 ret.agregar_nodo(3*L , B , 0 ) #10 #Barras R = 8 * cm t = 5 * mm props = [R, t, 200*GPa, 7600*kg/m**3, 420*MPa] # ------------------------------------ # BARRAS LONGITUDINALES INFERIORES ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(2, 3, *props)) # 2 ret.agregar_barra(Barra(7, 8, *props)) # 3 ret.agregar_barra(Barra(8, 9, *props)) # 4 ret.agregar_barra(Barra(9, 10, *props)) # 5 # BARRAS TRANSVERSALES INFERIORES ret.agregar_barra(Barra(0, 7, *props)) # 6 ret.agregar_barra(Barra(1, 8, *props)) # 7 ret.agregar_barra(Barra(2, 9, *props)) # 8 ret.agregar_barra(Barra(3, 10, *props)) # 9 # BARRAS DIAGONALES CRUZADAS INFERIORES ret.agregar_barra(Barra(0, 8, *props)) # 10 ret.agregar_barra(Barra(7, 1, *props)) # 11 ret.agregar_barra(Barra(8, 2, *props)) # 12 ret.agregar_barra(Barra(1, 9, *props)) # 13 ret.agregar_barra(Barra(9, 3, *props)) # 14 ret.agregar_barra(Barra(2, 10, *props)) # 15 # BARRAS DIAGONALES SUPERIORES ret.agregar_barra(Barra(0, 4, *props)) # 16 ret.agregar_barra(Barra(1, 4, *props)) # 17 ret.agregar_barra(Barra(7, 4, *props)) # 18 ret.agregar_barra(Barra(8, 4, *props)) # 19 ret.agregar_barra(Barra(1, 5, *props)) # 20 ret.agregar_barra(Barra(2, 5, *props)) # 21 ret.agregar_barra(Barra(8, 5, *props)) # 22 ret.agregar_barra(Barra(9, 5, *props)) # 23 ret.agregar_barra(Barra(2, 6, *props)) # 24 ret.agregar_barra(Barra(3, 6, *props)) # 25 ret.agregar_barra(Barra(9, 6, *props)) # 26 ret.agregar_barra(Barra(10, 6, *props)) # 27 # BARRAS LONGITUDINALES SUPERIORES ret.agregar_barra(Barra(4, 5, *props)) # 28 ret.agregar_barra(Barra(5, 6, *props)) # 29 # ------------------------------------ # RESTRICCIONES EN LOS NODOS # Nodos 0 y 7 fijos ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(7, 0, 0) ret.agregar_restriccion(7, 1, 0) ret.agregar_restriccion(7, 2, 0) # Nodos 3 y 10 fijos en y,z ret.agregar_restriccion(3, 1, 0) ret.agregar_restriccion(3, 2, 0) ret.agregar_restriccion(10, 1, 0) ret.agregar_restriccion(10, 2, 0) return ret
def caso_L(R, t): # Unidades base m = 1. kg = 1. s = 1. g = 9.81 * m / s**2 #Unidades derivadas N = kg * m / s**2 cm = m / 100 mm = m / 1000 KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros L = 5.0 * m H = 3.5 * m B = 2.0 * m ql = ((400 * kg) / (m**2)) F = (ql * L * B * g) / 4. #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0, 0, 0) # 0 ret.agregar_nodo(L, 0, 0) # 1 ret.agregar_nodo(2 * L, 0, 0) # 2 ret.agregar_nodo(3 * L, 0, 0) # 3 ret.agregar_nodo(L / 2, B / 2, H) # 4 ret.agregar_nodo(3 * L / 2, B / 2, H) # 5 ret.agregar_nodo(5 * L / 2, B / 2, H) # 6 ret.agregar_nodo(0, B, 0) # 7 ret.agregar_nodo(L, B, 0) # 8 ret.agregar_nodo(2 * L, B, 0) # 9 ret.agregar_nodo(3 * L, B, 0) # 10 #Barras props = [R, t, 200 * GPa, 7600 * kg / m**3, 420 * MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(2, 3, *props)) # 2 ret.agregar_barra(Barra(4, 5, *props)) # 3 ret.agregar_barra(Barra(5, 6, *props)) # 4 ret.agregar_barra(Barra(7, 8, *props)) # 5 ret.agregar_barra(Barra(8, 9, *props)) # 6 ret.agregar_barra(Barra(9, 10, *props)) # 7 ret.agregar_barra(Barra(0, 7, *props)) # 8 ret.agregar_barra(Barra(1, 8, *props)) # 9 ret.agregar_barra(Barra(2, 9, *props)) # 10 ret.agregar_barra(Barra(3, 10, *props)) # 11 ret.agregar_barra(Barra(0, 8, *props)) # 12 ret.agregar_barra(Barra(7, 1, *props)) # 13 ret.agregar_barra(Barra(1, 9, *props)) # 14 ret.agregar_barra(Barra(8, 2, *props)) # 15 ret.agregar_barra(Barra(2, 10, *props)) # 16 ret.agregar_barra(Barra(9, 3, *props)) # 17 ret.agregar_barra(Barra(0, 4, *props)) # 18 ret.agregar_barra(Barra(7, 4, *props)) # 19 ret.agregar_barra(Barra(4, 8, *props)) # 20 ret.agregar_barra(Barra(4, 1, *props)) # 21 ret.agregar_barra(Barra(8, 5, *props)) # 22 ret.agregar_barra(Barra(1, 5, *props)) # 23 ret.agregar_barra(Barra(5, 9, *props)) # 24 ret.agregar_barra(Barra(5, 2, *props)) # 25 ret.agregar_barra(Barra(2, 6, *props)) # 26 ret.agregar_barra(Barra(9, 6, *props)) # 27 ret.agregar_barra(Barra(6, 10, *props)) # 28 ret.agregar_barra(Barra(6, 3, *props)) # 29 ret.agregar_restriccion(0, 0, 0) #0 ret.agregar_restriccion(0, 1, 0) #0 ret.agregar_restriccion(0, 2, 0) #0 ret.agregar_restriccion(7, 0, 0) #7 ret.agregar_restriccion(7, 1, 0) #7 ret.agregar_restriccion(7, 2, 0) #7 ret.agregar_restriccion(3, 1, 0) #3 ret.agregar_restriccion(3, 2, 0) #3 ret.agregar_restriccion(10, 1, 0) #10 ret.agregar_restriccion(10, 2, 0) #10 ret.agregar_fuerza(0, 2, -F) ret.agregar_fuerza(1, 2, -F) ret.agregar_fuerza(2, 2, -F) ret.agregar_fuerza(3, 2, -F) ret.agregar_fuerza(7, 2, -F) ret.agregar_fuerza(8, 2, -F) ret.agregar_fuerza(9, 2, -F) ret.agregar_fuerza(10, 2, -F) return ret
def caso_L(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros L = 5.0 * m B = 2.0 * m H = 3.5 * m # q = 400 * kg / m**2 #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0, 0, 0) #NODO 0 ret.agregar_nodo(L, 0, 0) #NODO 1 ret.agregar_nodo(2 * L, 0, 0) #NODO 2 ret.agregar_nodo(3 * L, 0, 0) #NODO 3 ret.agregar_nodo(L / 2, B / 2, H) #NODO 4 ret.agregar_nodo(3 * L / 2, B / 2, H) #NODO 5 ret.agregar_nodo(5 * L / 2, B / 2, H) #NODO 6 ret.agregar_nodo(0, B, 0) #NODO 7 ret.agregar_nodo(L, B, 0) #NODO 8 ret.agregar_nodo(2 * L, B, 0) #NODO 9 ret.agregar_nodo(3 * L, B, 0) #NODO 10 # Barras props = [8 * cm, 5 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(2, 3, *props)) # 2 ret.agregar_barra(Barra(4, 5, *props)) # 3 ret.agregar_barra(Barra(5, 6, *props)) # 4 ret.agregar_barra(Barra(7, 8, *props)) # 5 ret.agregar_barra(Barra(8, 9, *props)) # 6 ret.agregar_barra(Barra(9, 10, *props)) # 7 ret.agregar_barra(Barra(0, 8, *props)) # 8 ret.agregar_barra(Barra(1, 7, *props)) # 9 ret.agregar_barra(Barra(1, 9, *props)) # 10 ret.agregar_barra(Barra(2, 8, *props)) # 11 ret.agregar_barra(Barra(2, 10, *props)) # 12 ret.agregar_barra(Barra(3, 9, *props)) # 13 ret.agregar_barra(Barra(0, 4, *props)) # 14 ret.agregar_barra(Barra(1, 4, *props)) # 15 ret.agregar_barra(Barra(7, 4, *props)) # 16 ret.agregar_barra(Barra(8, 4, *props)) # 17 ret.agregar_barra(Barra(1, 5, *props)) # 18 ret.agregar_barra(Barra(2, 5, *props)) # 19 ret.agregar_barra(Barra(8, 5, *props)) # 20 ret.agregar_barra(Barra(9, 5, *props)) # 21 ret.agregar_barra(Barra(2, 6, *props)) # 22 ret.agregar_barra(Barra(3, 6, *props)) # 23 ret.agregar_barra(Barra(9, 6, *props)) # 24 ret.agregar_barra(Barra(10, 6, *props)) # 25 ret.agregar_barra(Barra(0, 7, *props)) # 26 ret.agregar_barra(Barra(1, 8, *props)) # 27 ret.agregar_barra(Barra(2, 9, *props)) # 28 ret.agregar_barra(Barra(3, 10, *props)) # 29 ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(7, 0, 0) ret.agregar_restriccion(7, 1, 0) ret.agregar_restriccion(7, 2, 0) ret.agregar_restriccion(3, 1, 0) ret.agregar_restriccion(3, 2, 0) ret.agregar_restriccion(10, 1, 0) ret.agregar_restriccion(10, 2, 0) return ret
def fun(H, graficar=False): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros L = 5.0 * m F = 100 * KN B = 2.0 * m #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0, 0, 0) ret.agregar_nodo(L, 0, 0) ret.agregar_nodo(2 * L, 0, 0) ret.agregar_nodo(L / 2, B / 2, H) ret.agregar_nodo(3 * L / 2, B / 2, H) ret.agregar_nodo(0, B, 0) ret.agregar_nodo(L, B, 0) ret.agregar_nodo(2 * L, B, 0) #Barras A = (1.1 * cm)**2 r = sqrt(A / 3.141593) props = [r, r, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props2 = [r, r, 200 * GPa, 7600 * kg / m**3, 420 * MPa] # props2 = [0.6*r, 0.6*r, 200*GPa, 7600*kg/m**3, 420*MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(3, 4, *props)) # 2 ret.agregar_barra(Barra(0, 3, *props2)) # 3 ret.agregar_barra(Barra(3, 1, *props2)) # 4 ret.agregar_barra(Barra(1, 4, *props2)) # 5 ret.agregar_barra(Barra(4, 2, *props)) # 6 ret.agregar_barra(Barra(5, 6, *props)) # 7 ret.agregar_barra(Barra(6, 7, *props)) # 8 ret.agregar_barra(Barra(5, 3, *props2)) # 9 ret.agregar_barra(Barra(3, 6, *props2)) # 10 ret.agregar_barra(Barra(6, 4, *props2)) # 11 ret.agregar_barra(Barra(4, 7, *props)) # 12 ret.agregar_barra(Barra(0, 5, *props)) # 13 ret.agregar_barra(Barra(1, 6, *props)) # 14 ret.agregar_barra(Barra(2, 7, *props)) # 15 ret.agregar_barra(Barra(0, 6, *props)) # 16 ret.agregar_barra(Barra(6, 2, *props)) # 17 ret.agregar_barra(Barra(5, 1, *props)) # 18 ret.agregar_barra(Barra(1, 7, *props)) # 19 # ver_reticulado_3d(ret) ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(2, 2, 0) ret.agregar_restriccion(5, 2, 0) ret.agregar_restriccion(7, 2, 0) ret.agregar_restriccion(5, 0, 0) ret.agregar_fuerza(4, 2, -F) peso = ret.calcular_peso_total() print(f"peso = {peso}") ret.ensamblar_sistema() ret.resolver_sistema() f = ret.recuperar_fuerzas() if graficar: ver_reticulado_3d(ret, opciones_nodos={ "usar_posicion_deformada": True, "factor_amplificacion_deformada": 30., }, opciones_barras={ "color_barras_por_dato": True, "ver_numeros_de_barras": False, "ver_dato_en_barras": True, "dato": f, "color_fondo": [1, 1, 1, 0.4] }, llamar_show=False) return f[2]
def caso_D(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros L = 5.0 * m F = 100 * KN B = 2.0 * m h = 3.5 * m #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0, 0, 0) #0 ret.agregar_nodo(L, 0, 0) #1 ret.agregar_nodo(2 * L, 0, 0) #2 ret.agregar_nodo(3 * L, 0, 0) #3 ret.agregar_nodo(L / 2, B / 2, h) #4 ret.agregar_nodo(3 * L / 2, B / 2, h) #5 ret.agregar_nodo(5 * L / 2, B / 2, h) #6 ret.agregar_nodo(0, B, 0) #7 ret.agregar_nodo(L, B, 0) #8 ret.agregar_nodo(2 * L, B, 0) #9 ret.agregar_nodo(3 * L, B, 0) #10 #Barras R = 8 * cm t = 5 * mm #, R, t, E, ρ, σy props = [R, t, 200 * GPa, 7600 * kg / m**3, 420 * MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(2, 3, *props)) # 2 ret.agregar_barra(Barra(3, 10, *props)) # 3 ret.agregar_barra(Barra(9, 10, *props)) # 4 ret.agregar_barra(Barra(8, 9, *props)) # 5 ret.agregar_barra(Barra(7, 8, *props)) # 6 ret.agregar_barra(Barra(0, 7, *props)) # 7 ret.agregar_barra(Barra(1, 7, *props)) # 8 ret.agregar_barra(Barra(0, 8, *props)) # 9 ret.agregar_barra(Barra(1, 8, *props)) # 10 ret.agregar_barra(Barra(2, 8, *props)) # 11 ret.agregar_barra(Barra(1, 9, *props)) # 12 ret.agregar_barra(Barra(2, 9, *props)) # 13 ret.agregar_barra(Barra(3, 9, *props)) # 14 ret.agregar_barra(Barra(2, 10, *props)) # 15 ret.agregar_barra(Barra(4, 7, *props)) # 16 ret.agregar_barra(Barra(0, 4, *props)) # 17 ret.agregar_barra(Barra(4, 8, *props)) # 18 ret.agregar_barra(Barra(1, 4, *props)) # 19 ret.agregar_barra(Barra(5, 8, *props)) # 20 ret.agregar_barra(Barra(1, 5, *props)) # 21 ret.agregar_barra(Barra(5, 9, *props)) # 22 ret.agregar_barra(Barra(2, 5, *props)) # 23 ret.agregar_barra(Barra(6, 9, *props)) # 24 ret.agregar_barra(Barra(2, 6, *props)) # 25 ret.agregar_barra(Barra(6, 10, *props)) # 26 ret.agregar_barra(Barra(3, 6, *props)) # 27 ret.agregar_barra(Barra(4, 5, *props)) # 28 ret.agregar_barra(Barra(5, 6, *props)) # 29 #ver_reticulado_3d(ret) ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(7, 0, 0) ret.agregar_restriccion(7, 1, 0) ret.agregar_restriccion(7, 2, 0) ret.agregar_restriccion(3, 1, 0) ret.agregar_restriccion(3, 2, 0) ret.agregar_restriccion(10, 1, 0) ret.agregar_restriccion(10, 2, 0) # Carga muerta peso = ret.calcular_peso_total() qD = ((peso) / (90 * m**2)) qD_A1 = -qD * (7.5 * m**2) qD_A2 = -qD * (15 * m**2) ret.agregar_fuerza(0, 2, qD_A1) ret.agregar_fuerza(3, 2, qD_A1) ret.agregar_fuerza(7, 2, qD_A1) ret.agregar_fuerza(10, 2, qD_A1) ret.agregar_fuerza(1, 2, qD_A2) ret.agregar_fuerza(2, 2, qD_A2) ret.agregar_fuerza(8, 2, qD_A2) ret.agregar_fuerza(9, 2, qD_A2) return ret
kg = 1.0 GPa = 1e+9 MPa = 1e+6 KN = 1e3 m = 1.0 #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0,0) ret.agregar_nodo(1,0) ret.agregar_nodo(1,1) print(ret) #Barras b1 = Barra(0, 1, 20*cm, 4*mm, 200*GPa, 7600*kg/m**3, 420*MPa) b2 = Barra(1, 2, 20*cm, 4*mm, 200*GPa, 7600*kg/m**3, 420*MPa) b3 = Barra(0, 2, 20*cm, 4*mm, 200*GPa, 7600*kg/m**3, 420*MPa) ret.agregar_barra(b1) ret.agregar_barra(b2) ret.agregar_barra(b3) peso_total = ret.calcular_peso_total() print(f"peso_total = {peso_total}") ver_reticulado_2d(ret)
def caso_L(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa # Parametros L = 5.0 * m H = 3.5 * m B = 2.0 * m q = 400 * 9.80665 * N / (m * m) # Areas Tributarias A0 = 1 * 2.5 * m * m A1 = 2 * 2.5 * m * m A2 = 2 * 2.5 * m * m A3 = 1 * 2.5 * m * m A7 = 1 * 2.5 * m * m A8 = 2 * 2.5 * m * m A9 = 2 * 2.5 * m * m A10 = 1 * 2.5 * m * m #Inicializar modelo ret = Reticulado() # Nodos ret.agregar_nodo(0, 0, 0) ret.agregar_nodo(L, 0, 0) ret.agregar_nodo(2 * L, 0, 0) ret.agregar_nodo(3 * L, 0, 0) ret.agregar_nodo(L / 2, B / 2, H) ret.agregar_nodo(3 * L / 2, B / 2, H) ret.agregar_nodo(5 * L / 2, B / 2, H) ret.agregar_nodo(0, B, 0) ret.agregar_nodo(L, B, 0) ret.agregar_nodo(2 * L, B, 0) ret.agregar_nodo(3 * L, B, 0) # Barras props = [8 * cm, 5 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] ret.agregar_barra(Barra(0, 1, *props)) # Hor 1 ret.agregar_barra(Barra(1, 2, *props)) ret.agregar_barra(Barra(2, 3, *props)) ret.agregar_barra(Barra(0, 8, *props)) # Diag 1 ret.agregar_barra(Barra(1, 9, *props)) ret.agregar_barra(Barra(2, 10, *props)) ret.agregar_barra(Barra(0, 4, *props)) # diag vertical 1.1 ret.agregar_barra(Barra(1, 5, *props)) ret.agregar_barra(Barra(2, 6, *props)) ret.agregar_barra(Barra(1, 4, *props)) # diag vertical 1.2 ret.agregar_barra(Barra(2, 5, *props)) ret.agregar_barra(Barra(3, 6, *props)) ret.agregar_barra(Barra(0, 7, *props)) # Lateral ret.agregar_barra(Barra(1, 8, *props)) ret.agregar_barra(Barra(2, 9, *props)) ret.agregar_barra(Barra(3, 10, *props)) ret.agregar_barra(Barra(1, 7, *props)) # Hor 2 ret.agregar_barra(Barra(2, 8, *props)) ret.agregar_barra(Barra(3, 9, *props)) ret.agregar_barra(Barra(7, 8, *props)) # Diag 2 ret.agregar_barra(Barra(8, 9, *props)) ret.agregar_barra(Barra(9, 10, *props)) ret.agregar_barra(Barra(4, 7, *props)) # diag vertical 2.1 ret.agregar_barra(Barra(5, 8, *props)) ret.agregar_barra(Barra(6, 9, *props)) ret.agregar_barra(Barra(4, 8, *props)) # diag vertical 2.2 ret.agregar_barra(Barra(5, 9, *props)) ret.agregar_barra(Barra(6, 10, *props)) ret.agregar_barra(Barra(4, 5, *props)) # Hor arriba ret.agregar_barra(Barra(5, 6, *props)) ret.agregar_restriccion(0, 0, 0) # Nodo 0 FIjo ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(7, 0, 0) # Nodo 7 FIjo ret.agregar_restriccion(7, 1, 0) ret.agregar_restriccion(7, 2, 0) ret.agregar_restriccion(3, 1, 0) # Nodo 3 deslizable en x ret.agregar_restriccion(3, 2, 0) ret.agregar_restriccion(10, 1, 0) # Nodo 10 deslizable en x ret.agregar_restriccion(10, 2, 0) peso1 = ret.calcular_peso_total() ret.agregar_fuerza(0, 2, -q * A0) ret.agregar_fuerza(1, 2, -q * A1) ret.agregar_fuerza(2, 2, -q * A2) ret.agregar_fuerza(3, 2, -q * A3) ret.agregar_fuerza(7, 2, -q * A7) ret.agregar_fuerza(8, 2, -q * A8) ret.agregar_fuerza(9, 2, -q * A9) ret.agregar_fuerza(10, 2, -q * A10) return ret
def caso_D(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa posibles_apoyos = loadtxt("coordenadas_apoyos.txt") importantes = [] for i in range(7, 29): importantes.append(list(posibles_apoyos[i])) x = [] z = [] for i in importantes: x.append(i[0]) z.append(i[1]) dist_x = [] for i in range(len(x) - 1): d = np.abs(x[i] - x[i + 1]) dist_x.append(d) nodos_x = [] for i in range(len(dist_x)): d = dist_x[i] if d > 6: cant = d / 6 dec, ent = math.modf(cant) for i in range(int(ent)): nodos_x.append(6.0) L = d - ent * 6 nodos_x.append(L) else: nodos_x.append(d) # Con BARRAS DE 6 m c/u i = 10 * m delta = 6 * m h = 5.0 ret = Reticulado() for j in range(37): ret.agregar_nodo(i + delta * j, 0, 100.0) ret.agregar_nodo(i + delta * j, 2, 100.0) ret.agregar_nodo(230.0, 0, 100.0) ret.agregar_nodo(230.0, 2, 100.0) nodos = np.arange(0, ret.Nnodos, 1) par = [] impar = [] for n in nodos: if n % 2 == 0: par.append(n) else: impar.append(n) # especie de arco for a in range(19): if a == 0: h = 115.0 else: h = 115.0 + a * 0.5 ret.agregar_nodo(a + delta * a, 1, h) for a in range(19, 37): h = 124 - (a - 19) * 0.5 if h <= 230: ret.agregar_nodo(a + delta * a, 1, h) ''' fig = plt.figure() fig.set_size_inches([12, 10], forward=True) ax = fig.add_subplot(111, projection='3d') graficar_nodos(ret, fig, opciones={}) plt.show() ''' #, R, t, E, ρ, σy R = 20 * cm t = 200 * mm props1 = [R, t, 200 * GPa, 7500 * kg / m**3, 420 * MPa] props2 = [R * 2, t * 3, 200 * GPa, 7500 * kg / m**3, 420 * MPa] for i in range(int(38 / 2)): a = par[2 * i] b = impar[2 * i + 1] ret.agregar_barra(Barra(a, b, *props2)) for i in range(int(38 / 2)): a = par[2 * i + 1] b = impar[2 * i] ret.agregar_barra(Barra(a, b, *props2)) for i in range(0, 75): ret.agregar_barra(Barra(i, i + 1, *props2)) for i in range(0, 36): p = i * 2 + 1 ret.agregar_barra(Barra(p, p + 2, *props2)) for i in range(0, 36): p = 2 * i ret.agregar_barra(Barra(p, p + 2, *props2)) arc = np.arange(76, 113, 1) for i in range(len(arc)): n1 = 2 * i n2 = 2 * i + 1 ret.agregar_barra(Barra(n1, arc[i], *props1)) ret.agregar_barra(Barra(arc[i], n2, *props1)) #restricciones ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(1, 0, 0) ret.agregar_restriccion(1, 1, 0) ret.agregar_restriccion(1, 2, 0) ret.agregar_restriccion(38, 0, 0) ret.agregar_restriccion(38, 1, 0) ret.agregar_restriccion(38, 2, 0) ret.agregar_restriccion(39, 0, 0) ret.agregar_restriccion(39, 1, 0) ret.agregar_restriccion(39, 2, 0) ret.agregar_restriccion(74, 0, 0) ret.agregar_restriccion(74, 1, 0) ret.agregar_restriccion(74, 2, 0) ret.agregar_restriccion(75, 0, 0) ret.agregar_restriccion(75, 1, 0) ret.agregar_restriccion(75, 2, 0) for i in arc: ret.agregar_restriccion(i, 0, 0) ret.agregar_restriccion(i, 1, 0) ret.agregar_restriccion(i, 2, 0) # Carga muerta # nodos 0 y 1 peso = ret.calcular_peso_total() qD = ((peso) / (230 * m**2)) qD_A1 = -qD * (3 * m**2) ret.agregar_fuerza(0, 2, qD_A1) ret.agregar_fuerza(1, 2, qD_A1) # nodos 2 al 71 qD_A2 = -qD * (6 * m**2) for i in range(2, 72): ret.agregar_fuerza(i, 2, qD_A2) # nodos 72 y 73 qD_A3 = -qD * (5 * m**2) ret.agregar_fuerza(72, 2, qD_A3) ret.agregar_fuerza(73, 2, qD_A3) #nodos 74 y 75 qD_A4 = -qD * (2 * m**2) ret.agregar_fuerza(74, 2, qD_A4) ret.agregar_fuerza(75, 2, qD_A4) return ret
def caso_D(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Inicializar modelo ret = Reticulado() #Nodos #Apoyos #West ret.agregar_nodo(10, 0, 100) #0 ret.agregar_nodo(10, 20, 100) #1 #Este ret.agregar_nodo(225, 0, 100) #2 ret.agregar_nodo(225, 20, 100) #3 for i in range(4): # 0 - 4 ret.agregar_restriccion(i, 0, 0) ret.agregar_restriccion(i, 1, 0) ret.agregar_restriccion(i, 2, 0) #Roadway props_road = [8 * cm, 0.5 * cm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] for i in range(35): # 5 - 74 ret.agregar_nodo(10. + 215. * (i + 1) / 36., 0, 100) #5 + i ret.agregar_nodo(10. + 215. * (i + 1) / 36., 20, 100) #6 + i #Soporte #Cuadrático props_cuadratico = [ 8 * cm, 0.5 * cm, 200 * GPa, 7600 * kg / m**3, 420 * MPa ] a = 16. / 9245. b = -752. / 1849. c = 195700. / 1849. - 5. for i in range(36): # 74 - 109 x = 10. + 215. * (i + 0.5) / 36. ret.agregar_nodo(x, 10, a * x**2 + b * x + c) #82 + i ret.agregar_barra( Barra(0, 4, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(1, 5, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(4, 6, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(5, 7, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(6, 8, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(7, 9, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(8, 10, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(9, 11, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(10, 12, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(11, 13, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(12, 14, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(13, 15, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(14, 16, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(15, 17, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(16, 18, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(17, 19, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(18, 20, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(19, 21, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(20, 22, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(21, 23, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(22, 24, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(23, 25, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(24, 26, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(25, 27, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(26, 28, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(27, 29, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(28, 30, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(29, 31, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(30, 32, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(31, 33, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(32, 34, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(33, 35, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(34, 36, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(35, 37, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(36, 38, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(37, 39, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(38, 40, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(39, 41, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(40, 42, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(41, 43, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(42, 44, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(43, 45, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(44, 46, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(45, 47, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(46, 48, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(47, 49, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(48, 50, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(49, 51, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(50, 52, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(51, 53, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(52, 54, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(53, 55, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(54, 56, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(55, 57, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(56, 58, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(57, 59, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(58, 60, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(59, 61, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(60, 62, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(61, 63, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(62, 64, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(63, 65, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(64, 66, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(65, 67, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(66, 68, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(67, 69, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(68, 70, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(69, 71, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(70, 72, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(71, 73, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(1, 4, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(0, 5, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(6, 5, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(4, 7, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(8, 7, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(6, 9, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(10, 9, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(8, 11, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(12, 11, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(10, 13, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(14, 13, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(12, 15, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(16, 15, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(14, 17, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(18, 17, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(16, 19, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(20, 19, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(18, 21, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(22, 21, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(20, 23, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(24, 23, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(22, 25, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(26, 25, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(24, 27, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(28, 27, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(26, 29, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(30, 29, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(28, 31, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(32, 31, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(30, 33, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(34, 33, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(32, 35, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(36, 35, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(34, 37, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(38, 37, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(36, 39, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(40, 39, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(38, 41, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(42, 41, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(40, 43, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(44, 43, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(42, 45, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(46, 45, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(44, 47, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(48, 47, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(46, 49, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(50, 49, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(48, 51, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(52, 51, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(50, 53, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(54, 53, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(52, 55, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(56, 55, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(54, 57, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(58, 57, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(56, 59, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(60, 59, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(58, 61, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(62, 61, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(60, 63, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(64, 63, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(62, 65, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(66, 65, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(64, 67, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(68, 67, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(66, 69, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(70, 69, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(68, 71, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(72, 71, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(70, 73, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(2, 73, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(3, 72, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(72, 2, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(73, 3, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(74, 75, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(75, 76, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(76, 77, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(77, 78, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(78, 79, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(79, 80, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(80, 81, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(81, 82, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(82, 83, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(83, 84, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(84, 85, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(85, 86, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(86, 87, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(87, 88, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(88, 89, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(89, 90, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(90, 91, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(91, 92, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(92, 93, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(93, 94, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(94, 95, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(95, 96, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(96, 97, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(97, 98, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(98, 99, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(99, 100, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(100, 101, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(101, 102, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(102, 103, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(103, 104, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(104, 105, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(105, 106, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(106, 107, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(107, 108, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(108, 109, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(0, 74, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(1, 74, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(74, 4, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(74, 5, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(75, 4, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(75, 5, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(75, 6, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(75, 7, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(76, 6, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(76, 7, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(76, 8, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(76, 9, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(77, 8, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(77, 9, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(77, 10, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(77, 11, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(78, 10, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(78, 11, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(78, 12, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(78, 13, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(79, 12, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(79, 13, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(79, 14, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(79, 15, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(80, 14, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(80, 15, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(80, 16, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(80, 17, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(81, 16, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(81, 17, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(81, 18, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(81, 19, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(82, 18, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(82, 19, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(82, 20, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(82, 21, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(83, 20, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(83, 21, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(83, 22, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(83, 23, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(84, 22, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(84, 23, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(84, 24, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(84, 25, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(85, 24, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(85, 25, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(85, 26, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(85, 27, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(86, 26, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(86, 27, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(86, 28, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(86, 29, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(87, 28, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(87, 29, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(87, 30, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(87, 31, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(88, 30, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(88, 31, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(88, 32, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(88, 33, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(89, 32, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(89, 33, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(89, 34, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(89, 35, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(90, 34, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(90, 35, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(90, 36, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(90, 37, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(91, 36, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(91, 37, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(91, 38, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(91, 39, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(92, 38, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(92, 39, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(92, 40, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(92, 41, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(93, 40, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(93, 41, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(93, 42, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(93, 43, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(94, 42, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(94, 43, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(94, 44, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(94, 45, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(95, 44, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(95, 45, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(95, 46, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(95, 47, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(96, 46, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(96, 47, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(96, 48, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(96, 49, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(97, 48, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(97, 49, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(97, 50, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(97, 51, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(98, 50, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(98, 51, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(98, 52, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(98, 53, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(99, 52, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(99, 53, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(99, 54, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(99, 55, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(100, 54, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(100, 55, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(100, 56, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(100, 57, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(101, 56, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(101, 57, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(101, 58, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(101, 59, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(102, 58, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(102, 59, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(102, 60, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(102, 61, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(103, 60, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(103, 61, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(103, 62, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(103, 63, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(104, 62, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(104, 63, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(104, 64, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(104, 65, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(105, 64, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(105, 65, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(105, 66, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(105, 67, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(106, 66, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(106, 67, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(106, 68, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(106, 69, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(107, 68, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(107, 69, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(107, 70, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(107, 71, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(108, 70, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(108, 71, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(108, 72, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(108, 73, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(109, 72, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(109, 73, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(109, 2, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) ret.agregar_barra( Barra(109, 3, 0.479, 0.001, 200 * GPa, 7600 * kg / m**3, 420 * MPa)) return ret
def caso_D(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros L = 5.0 * m B = 2.0 * m H = 3 * m #Inicializar modelo ret = Reticulado() #------------------------------------------------------------------------------------------------------------------------ # NODOS #------------------------------------------------------------------------------------------------------------------------ # -------- NODOS PLANTA INFERIOR Nodos_corrida_1_tablero = 45 for i in range(Nodos_corrida_1_tablero + 1): ret.agregar_nodo(L * (1 + i), 0, 100 * m) Nodos_corrida_2_tablero = 91 - 46 for i in range(Nodos_corrida_2_tablero + 1): ret.agregar_nodo(L * (1 + i), B, 100 * m) # -------- NODOS PLANTA SUPERIOR Nodos_corrida_3_tablero = 135 - 92 for i in range(Nodos_corrida_3_tablero + 1): ret.agregar_nodo(L * (i + 2), 0, 100 * m + H) Nodos_corrida_4_tablero = 179 - 136 for i in range(Nodos_corrida_4_tablero + 1): ret.agregar_nodo(L * (i + 2), B, 100 * m + H) # -------- NODOS COLUMNA 1 (BASE EN NODO GLOBAL 10) # CARA 1 ret.agregar_nodo(22 * m, 0, 83 * m) # 180 ret.agregar_nodo(22 * m, 0, 93 * m) # 181 ret.agregar_nodo(21 * m, 0, 96.5 * m) # 182 ret.agregar_nodo(23.5 * m, 0, 96.5 * m) # 183 # CARA 2 ret.agregar_nodo(22 * m, B, 83 * m) # 184 ret.agregar_nodo(22 * m, B, 93 * m) # 185 ret.agregar_nodo(21 * m, B, 96.5 * m) # 186 ret.agregar_nodo(23.5 * m, B, 96.5 * m) # 187 # # -------- NODOS COLUMNA 2 (BASE EN NODO GLOBAL 14) # CARA 1 ret.agregar_nodo(65 * m, 0, 47 * m) # 188 CENTRAL ret.agregar_nodo(65 * m, 0, 90 * m) # 189 CENTRAL ret.agregar_nodo((55 + 2.5) * m, 0, (90 + 7.5) * m) # 190 ret.agregar_nodo((55 + 5) * m, 0, (90 + 5) * m) # 191 ret.agregar_nodo((55 + 7.5) * m, 0, (90 + 2.5) * m) # 192 ret.agregar_nodo((65 + 2.5) * m, 0, (90 + 2.5) * m) # 193 ret.agregar_nodo((65 + 5) * m, 0, (90 + 5) * m) # 194 ret.agregar_nodo((65 + 7.5) * m, 0, (90 + 7.5) * m) # 195 #CARA 2 ret.agregar_nodo(65 * m, B, 47 * m) # 196 CENTRAL ret.agregar_nodo(65 * m, B, 90 * m) # 197 CENTRAL ret.agregar_nodo((55 + 2.5) * m, B, (90 + 7.5) * m) # 198 ret.agregar_nodo((55 + 5) * m, B, (90 + 5) * m) # 199 ret.agregar_nodo((55 + 7.5) * m, B, (90 + 2.5) * m) # 200 ret.agregar_nodo((65 + 2.5) * m, B, (90 + 2.5) * m) # 201 ret.agregar_nodo((65 + 5) * m, B, (90 + 5) * m) # 202 ret.agregar_nodo((65 + 7.5) * m, B, (90 + 7.5) * m) # 203 # # -------- NODOS COLUMNA 3 (BASE EN NODO GLOBAL 17) # CARA 1 ret.agregar_nodo(105 * m, 0, 65 * m) # 204 CENTRAL ret.agregar_nodo(105 * m, 0, 90 * m) # 205 CENTRAL ret.agregar_nodo((95 + 2.5) * m, 0, (90 + 7.5) * m) # 206 ret.agregar_nodo((95 + 5) * m, 0, (90 + 5) * m) # 207 ret.agregar_nodo((95 + 7.5) * m, 0, (90 + 2.5) * m) # 208 ret.agregar_nodo((105 + 2.5) * m, 0, (90 + 2.5) * m) # 209 ret.agregar_nodo((105 + 5) * m, 0, (90 + 5) * m) # 210 ret.agregar_nodo((105 + 7.5) * m, 0, (90 + 7.5) * m) # 211 #CARA 2 ret.agregar_nodo(105 * m, B, 65 * m) # 212 CENTRAL ret.agregar_nodo(105 * m, B, 90 * m) # 213 CENTRAL ret.agregar_nodo((95 + 2.5) * m, B, (90 + 7.5) * m) # 214 ret.agregar_nodo((95 + 5) * m, B, (90 + 5) * m) # 215 ret.agregar_nodo((95 + 7.5) * m, B, (90 + 2.5) * m) # 216 ret.agregar_nodo((105 + 2.5) * m, B, (90 + 2.5) * m) # 217 ret.agregar_nodo((105 + 5) * m, B, (90 + 5) * m) # 218 ret.agregar_nodo((105 + 7.5) * m, B, (90 + 7.5) * m) # 219 # # -------- NODOS COLUMNA 4 (BASE EN NODO GLOBAL 20) # CARA 1 ret.agregar_nodo(135 * m, 0, 66 * m) # 220 CENTRAL ret.agregar_nodo(135 * m, 0, 90 * m) # 221 CENTRAL ret.agregar_nodo((125 + 2.5) * m, 0, (90 + 7.5) * m) # 222 ret.agregar_nodo((125 + 5) * m, 0, (90 + 5) * m) # 223 ret.agregar_nodo((125 + 7.5) * m, 0, (90 + 2.5) * m) # 224 ret.agregar_nodo((135 + 2.5) * m, 0, (90 + 2.5) * m) # 225 ret.agregar_nodo((135 + 5) * m, 0, (90 + 5) * m) # 226 ret.agregar_nodo((135 + 7.5) * m, 0, (90 + 7.5) * m) # 227 # CARA 2 ret.agregar_nodo(135 * m, B, 66 * m) # 228 CENTRAL ret.agregar_nodo(135 * m, B, 90 * m) # 229 CENTRAL ret.agregar_nodo((125 + 2.5) * m, B, (90 + 7.5) * m) # 230 ret.agregar_nodo((125 + 5) * m, B, (90 + 5) * m) # 231 ret.agregar_nodo((125 + 7.5) * m, B, (90 + 2.5) * m) # 232 ret.agregar_nodo((135 + 2.5) * m, B, (90 + 2.5) * m) # 233 ret.agregar_nodo((135 + 5) * m, B, (90 + 5) * m) # 234 ret.agregar_nodo((135 + 7.5) * m, B, (90 + 7.5) * m) # 235 # # -------- NODOS COLUMNA 5 (BASE EN NODO GLOBAL 24) ret.agregar_nodo(172 * m, 0, 79 * m) # 236 CENTRAL ret.agregar_nodo(172 * m, 0, 90 * m) # 237 CENTRAL ret.agregar_nodo(171 * m, 0, 95 * m) # 238 ret.agregar_nodo(173.5 * m, 0, 95 * m) # 239 ret.agregar_nodo(172 * m, B, 79 * m) # 240 CENTRAL ret.agregar_nodo(172 * m, B, 90 * m) # 241 CENTRAL ret.agregar_nodo(171 * m, B, 95 * m) # 242 ret.agregar_nodo(173.5 * m, B, 95 * m) # 243 # # -------- NODOS COLUMNA 6 (BASE EN NODO GLOBAL 24) ret.agregar_nodo(198 * m, 0, 93 * m) # 244 ret.agregar_nodo(198 * m, B, 93 * m) # 245 #------------------------------------------------------------------------------------------------------------------------ # BARRAS #------------------------------------------------------------------------------------------------------------------------ # PROPIEDADES A = (1.1 * cm)**2 r = sqrt(A / 3.141593) props_C = [8 * cm, 1.76 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props_C_BIG = [16 * cm, 3.5 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props_C_BIG2 = [30 * cm, 3.57 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props_C_BIG5 = [14 * cm, 1.5 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props_C_BIG4 = [26 * cm, 1.4 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props_elevacion_cruzadas = [ 8 * cm, 2 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa ] props_elevacion_longitudinales = [ 5.5 * cm, 2 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa ] props_elevacion_verticales = [ 5.3 * cm, 1 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa ] props_tablero_inferior_cruzadas = [ 8 * cm, 3 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa ] props_tablero_superiores_cruzadas = [ 6.9 * cm, 3 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa ] props_tablero_inferior_horizontales = [ 8 * cm, 1 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa ] props_tablero_superiores_horizontales = [ 5.5 * cm, 1 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa ] # ALA 1 - BARRAS ELEVACION CRUZADAS # CARA 1 Nodos_tablero = 42 for i in range(Nodos_tablero + 1): if i % 2 == 0: ret.agregar_barra(Barra(i, i + 92, *props_elevacion_cruzadas)) for i in range(Nodos_tablero + 1): if i % 2 == 0: ret.agregar_barra(Barra(i + 2, i + 92, *props_elevacion_cruzadas)) ret.agregar_barra(Barra(45, 135, *props_elevacion_cruzadas)) # ALA 2 - BARRAS ELEVACION CRUZADAS # CARA 2 Nodos_tablero = 42 for i in range(Nodos_tablero + 1): if i % 2 == 0: ret.agregar_barra(Barra(i + 46, i + 136, *props_elevacion_cruzadas)) for i in range(Nodos_tablero + 1): if i % 2 == 0: ret.agregar_barra(Barra(i + 48, i + 136, *props_elevacion_cruzadas)) ret.agregar_barra(Barra(91, 179, *props_elevacion_cruzadas)) #BARRAS LONGITUDINALES INFERIORES for i in range(45): # print (i,i+1) ret.agregar_barra(Barra(i, i + 1, *props_elevacion_longitudinales)) for i in range(45): # print (i+46,i+1+46) ret.agregar_barra( Barra(i + 46, i + 1 + 46, *props_elevacion_longitudinales)) #BARRAS LONGITUDINALES SUPERIORES for i in range(43): # print (i+92,i+93) ret.agregar_barra( Barra(i + 92, i + 93, *props_elevacion_longitudinales)) for i in range(43): # print (i+136,i+137) ret.agregar_barra( Barra(i + 136, i + 137, *props_elevacion_longitudinales)) #BARRAS ELEVACION VERTICALES for i in range(44): # print (i+1,i+92) ret.agregar_barra(Barra(i + 1, i + 1 + 91, *props_elevacion_verticales)) for i in range(44): # print (i+46, i+1+135) ret.agregar_barra( Barra(i + 47, i + 1 + 135, *props_elevacion_verticales)) # Barras planta inferior nodos_planta_inferior = 45 for j in range(nodos_planta_inferior + 1): #Barras horizontales # print (j, j + 46) ret.agregar_barra( Barra(j, j + 46, *props_tablero_inferior_horizontales)) for j in range(nodos_planta_inferior): #Barras cruzadas # print (j, j + 47) ret.agregar_barra(Barra(j, j + 47, *props_tablero_inferior_cruzadas)) print(" ") for j in range(nodos_planta_inferior): #Barras cruzadas # print (j + 1 , j + 46 ) ret.agregar_barra( Barra(j + 1, j + 46, *props_tablero_inferior_cruzadas)) #Barras planta superior nodos_planta_superior = 135 - 91 for j in range(nodos_planta_superior): #Barras horizontales # print (j + 92 , j + 92 + 44) ret.agregar_barra( Barra(j + 92, j + 92 + 44, *props_tablero_superiores_horizontales)) for j in range(nodos_planta_superior - 1): #Barras cruzadas # print (j+ 93 , j + 136) ret.agregar_barra( Barra(j + 93, j + 136, *props_tablero_superiores_cruzadas)) for j in range(nodos_planta_superior - 1): #Barras cruzadas # print (j+ 92 , j + 137) ret.agregar_barra( Barra(j + 92, j + 137, *props_tablero_superiores_cruzadas)) # -------- BARRAS COLUMNA 1 (BASE EN NODO GLOBAL 10) ret.agregar_barra(Barra(180, 181, *props_C_BIG)) # CENTRAL ret.agregar_barra(Barra(181, 182, *props_C)) ret.agregar_barra(Barra(181, 183, *props_C)) ret.agregar_barra(Barra(182, 183, *props_C)) ret.agregar_barra(Barra(3, 182, *props_C)) ret.agregar_barra(Barra(4, 183, *props_C)) ret.agregar_barra(Barra(3, 183, *props_C)) ret.agregar_barra(Barra(4, 182, *props_C)) ret.agregar_barra(Barra(180 + 4, 181 + 4, *props_C_BIG)) # CENTRAL ret.agregar_barra(Barra(181 + 4, 182 + 4, *props_C)) ret.agregar_barra(Barra(181 + 4, 183 + 4, *props_C)) ret.agregar_barra(Barra(182 + 4, 183 + 4, *props_C)) ret.agregar_barra(Barra(3 + 46, 182 + 4, *props_C)) ret.agregar_barra(Barra(4 + 46, 183 + 4, *props_C)) ret.agregar_barra(Barra(3 + 46, 183 + 4, *props_C)) ret.agregar_barra(Barra(4 + 46, 182 + 4, *props_C)) # -------- BARRAS COLUMNA 2 (BASE EN NODO GLOBAL 14) ret.agregar_barra(Barra(188, 189, *props_C_BIG2)) # CENTRAL INFERIOR ret.agregar_barra(Barra(12, 189, *props_C_BIG2)) # CENTRAL SUPERIOR ret.agregar_barra(Barra(10, 190, *props_C)) ret.agregar_barra(Barra(190, 191, *props_C)) ret.agregar_barra(Barra(191, 192, *props_C)) ret.agregar_barra(Barra(189, 192, *props_C)) ret.agregar_barra(Barra(189, 193, *props_C)) ret.agregar_barra(Barra(193, 194, *props_C)) ret.agregar_barra(Barra(194, 195, *props_C)) ret.agregar_barra(Barra(14, 195, *props_C)) ret.agregar_barra(Barra(11, 191, *props_C)) ret.agregar_barra(Barra(13, 194, *props_C)) ret.agregar_barra(Barra(11, 190, *props_C)) ret.agregar_barra(Barra(13, 195, *props_C)) ret.agregar_barra(Barra(12, 192, *props_C)) ret.agregar_barra(Barra(12, 193, *props_C)) ret.agregar_barra(Barra(11, 192, *props_C)) ret.agregar_barra(Barra(13, 193, *props_C)) ret.agregar_barra(Barra(188 + 8, 189 + 8, *props_C_BIG2)) # CENTRAL INFERIOR ret.agregar_barra(Barra(12 + 46, 189 + 8, *props_C_BIG2)) # CENTRAL SUPERIOR ret.agregar_barra(Barra(10 + 46, 190 + 8, *props_C)) ret.agregar_barra(Barra(190 + 8, 191 + 8, *props_C)) ret.agregar_barra(Barra(191 + 8, 192 + 8, *props_C)) ret.agregar_barra(Barra(189 + 8, 192 + 8, *props_C)) ret.agregar_barra(Barra(189 + 8, 193 + 8, *props_C)) ret.agregar_barra(Barra(193 + 8, 194 + 8, *props_C)) ret.agregar_barra(Barra(194 + 8, 195 + 8, *props_C)) ret.agregar_barra(Barra(14 + 46, 195 + 8, *props_C)) ret.agregar_barra(Barra(11 + 46, 191 + 8, *props_C)) ret.agregar_barra(Barra(13 + 46, 194 + 8, *props_C)) ret.agregar_barra(Barra(11 + 46, 190 + 8, *props_C)) ret.agregar_barra(Barra(13 + 46, 195 + 8, *props_C)) ret.agregar_barra(Barra(12 + 46, 192 + 8, *props_C)) ret.agregar_barra(Barra(12 + 46, 193 + 8, *props_C)) ret.agregar_barra(Barra(11 + 46, 192 + 8, *props_C)) ret.agregar_barra(Barra(13 + 46, 193 + 8, *props_C)) # -------- BARRAS COLUMNA 3 (BASE EN NODO GLOBAL 17) ret.agregar_barra(Barra(188 + 16, 189 + 16, *props_C_BIG4)) # CENTRAL INFERIOR ret.agregar_barra(Barra(12 + 8, 189 + 16, *props_C_BIG4)) # CENTRAL SUPERIOR ret.agregar_barra(Barra(10 + 8, 190 + 16, *props_C)) ret.agregar_barra(Barra(190 + 16, 191 + 16, *props_C)) ret.agregar_barra(Barra(191 + 16, 192 + 16, *props_C)) ret.agregar_barra(Barra(189 + 16, 192 + 16, *props_C)) ret.agregar_barra(Barra(189 + 16, 193 + 16, *props_C)) ret.agregar_barra(Barra(193 + 16, 194 + 16, *props_C)) ret.agregar_barra(Barra(194 + 16, 195 + 16, *props_C)) ret.agregar_barra(Barra(14 + 8, 195 + 16, *props_C)) ret.agregar_barra(Barra(11 + 8, 191 + 16, *props_C)) ret.agregar_barra(Barra(13 + 8, 194 + 16, *props_C)) ret.agregar_barra(Barra(11 + 8, 190 + 16, *props_C)) ret.agregar_barra(Barra(13 + 8, 195 + 16, *props_C)) ret.agregar_barra(Barra(12 + 8, 192 + 16, *props_C)) ret.agregar_barra(Barra(12 + 8, 193 + 16, *props_C)) ret.agregar_barra(Barra(11 + 8, 192 + 16, *props_C)) ret.agregar_barra(Barra(13 + 8, 193 + 16, *props_C)) ret.agregar_barra(Barra(188 + 16 + 8, 189 + 16 + 8, *props_C_BIG4)) # CENTRAL INFERIOR ret.agregar_barra(Barra(12 + 8 + 46, 189 + 16 + 8, *props_C_BIG4)) # CENTRAL SUPERIOR ret.agregar_barra(Barra(10 + 8 + 46, 190 + 16 + 8, *props_C)) ret.agregar_barra(Barra(190 + 16 + 8, 191 + 16 + 8, *props_C)) ret.agregar_barra(Barra(191 + 16 + 8, 192 + 16 + 8, *props_C)) ret.agregar_barra(Barra(189 + 16 + 8, 192 + 16 + 8, *props_C)) ret.agregar_barra(Barra(189 + 16 + 8, 193 + 16 + 8, *props_C)) ret.agregar_barra(Barra(193 + 16 + 8, 194 + 16 + 8, *props_C)) ret.agregar_barra(Barra(194 + 16 + 8, 195 + 16 + 8, *props_C)) ret.agregar_barra(Barra(14 + 8 + 46, 195 + 16 + 8, *props_C)) ret.agregar_barra(Barra(11 + 8 + 46, 191 + 16 + 8, *props_C)) ret.agregar_barra(Barra(13 + 8 + 46, 194 + 16 + 8, *props_C)) ret.agregar_barra(Barra(11 + 8 + 46, 190 + 16 + 8, *props_C)) ret.agregar_barra(Barra(13 + 8 + 46, 195 + 16 + 8, *props_C)) ret.agregar_barra(Barra(12 + 8 + 46, 192 + 16 + 8, *props_C)) ret.agregar_barra(Barra(12 + 8 + 46, 193 + 16 + 8, *props_C)) ret.agregar_barra(Barra(11 + 8 + 46, 192 + 16 + 8, *props_C)) ret.agregar_barra(Barra(13 + 8 + 46, 193 + 16 + 8, *props_C)) # -------- BARRAS COLUMNA 4 (BASE EN NODO GLOBAL 20) #CARA 1 ret.agregar_barra(Barra(188 + 16 + 16, 189 + 16 + 16, *props_C_BIG4)) # CENTRAL INFERIOR ret.agregar_barra(Barra(12 + 8 + 6, 189 + 16 + 16, *props_C_BIG4)) # CENTRAL SUPERIOR ret.agregar_barra(Barra(10 + 8 + 6, 190 + 16 + 16, *props_C)) ret.agregar_barra(Barra(190 + 16 + 16, 191 + 16 + 16, *props_C)) ret.agregar_barra(Barra(191 + 16 + 16, 192 + 16 + 16, *props_C)) ret.agregar_barra(Barra(189 + 16 + 16, 192 + 16 + 16, *props_C)) ret.agregar_barra(Barra(189 + 16 + 16, 193 + 16 + 16, *props_C)) ret.agregar_barra(Barra(193 + 16 + 16, 194 + 16 + 16, *props_C)) ret.agregar_barra(Barra(194 + 16 + 16, 195 + 16 + 16, *props_C)) ret.agregar_barra(Barra(14 + 8 + 6, 195 + 16 + 16, *props_C)) ret.agregar_barra(Barra(11 + 8 + 6, 191 + 16 + 16, *props_C)) ret.agregar_barra(Barra(13 + 8 + 6, 194 + 16 + 16, *props_C)) ret.agregar_barra(Barra(11 + 8 + 6, 190 + 16 + 16, *props_C)) ret.agregar_barra(Barra(13 + 8 + 6, 195 + 16 + 16, *props_C)) ret.agregar_barra(Barra(12 + 8 + 6, 192 + 16 + 16, *props_C)) ret.agregar_barra(Barra(12 + 8 + 6, 193 + 16 + 16, *props_C)) ret.agregar_barra(Barra(11 + 8 + 6, 192 + 16 + 16, *props_C)) ret.agregar_barra(Barra(13 + 8 + 6, 193 + 16 + 16, *props_C)) #CARA 2 ret.agregar_barra( Barra(188 + 16 + 16 + 8, 189 + 16 + 16 + 8, *props_C_BIG4)) # CENTRAL INFERIOR ret.agregar_barra(Barra(12 + 8 + 6 + 46, 189 + 16 + 16 + 8, *props_C_BIG4)) # CENTRAL SUPERIOR ret.agregar_barra(Barra(10 + 8 + 6 + 46, 190 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(190 + 16 + 16 + 8, 191 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(191 + 16 + 16 + 8, 192 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(189 + 16 + 16 + 8, 192 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(189 + 16 + 16 + 8, 193 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(193 + 16 + 16 + 8, 194 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(194 + 16 + 16 + 8, 195 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(14 + 8 + 6 + 46, 195 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(11 + 8 + 6 + 46, 191 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(13 + 8 + 6 + 46, 194 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(11 + 8 + 6 + 46, 190 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(13 + 8 + 6 + 46, 195 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(12 + 8 + 6 + 46, 192 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(12 + 8 + 6 + 46, 193 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(11 + 8 + 6 + 46, 192 + 16 + 16 + 8, *props_C)) ret.agregar_barra(Barra(13 + 8 + 6 + 46, 193 + 16 + 16 + 8, *props_C)) # -------- BARRAS COLUMNA 5 (BASE EN NODO GLOBAL 24) #CARA 1 ret.agregar_barra(Barra(236, 237, *props_C_BIG5)) #CENTRAL ret.agregar_barra(Barra(237, 238, *props_C)) ret.agregar_barra(Barra(237, 239, *props_C)) ret.agregar_barra(Barra(238, 239, *props_C)) ret.agregar_barra(Barra(33, 238, *props_C)) ret.agregar_barra(Barra(33, 239, *props_C)) ret.agregar_barra(Barra(34, 238, *props_C)) ret.agregar_barra(Barra(34, 239, *props_C)) #CARA 2 ret.agregar_barra(Barra(236 + 4, 237 + 4, *props_C_BIG5)) #CENTRAL ret.agregar_barra(Barra(237 + 4, 238 + 4, *props_C)) ret.agregar_barra(Barra(237 + 4, 239 + 4, *props_C)) ret.agregar_barra(Barra(238 + 4, 239 + 4, *props_C)) ret.agregar_barra(Barra(33 + 46, 238 + 4, *props_C)) ret.agregar_barra(Barra(33 + 46, 239 + 4, *props_C)) ret.agregar_barra(Barra(34 + 46, 238 + 4, *props_C)) ret.agregar_barra(Barra(34 + 46, 239 + 4, *props_C)) # -------- BARRAS COLUMNA 6 (BASE EN NODO GLOBAL 26) ret.agregar_barra(Barra(38, 244, *props_C)) ret.agregar_barra(Barra(39, 244, *props_C)) ret.agregar_barra(Barra(38 + 46, 245, *props_C)) ret.agregar_barra(Barra(39 + 46, 245, *props_C)) #------------------------------------------------------------------------------------------------------------------------ # RESTRICCIONES #------------------------------------------------------------------------------------------------------------------------ # ------- APOYOS DEL TABLERO ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(1, 0, 0) ret.agregar_restriccion(1, 1, 0) ret.agregar_restriccion(1, 2, 0) ret.agregar_restriccion(44, 0, 0) ret.agregar_restriccion(44, 1, 0) ret.agregar_restriccion(44, 2, 0) ret.agregar_restriccion(45, 0, 0) ret.agregar_restriccion(45, 1, 0) ret.agregar_restriccion(45, 2, 0) ret.agregar_restriccion(46, 0, 0) ret.agregar_restriccion(46, 1, 0) ret.agregar_restriccion(46, 2, 0) ret.agregar_restriccion(47, 0, 0) ret.agregar_restriccion(47, 1, 0) ret.agregar_restriccion(47, 2, 0) ret.agregar_restriccion(90, 0, 0) ret.agregar_restriccion(90, 1, 0) ret.agregar_restriccion(90, 2, 0) ret.agregar_restriccion(91, 0, 0) ret.agregar_restriccion(91, 1, 0) ret.agregar_restriccion(91, 2, 0) # ------- APOYOS COLUMNAS # --- COLUMNA 1 ret.agregar_restriccion(180, 0, 0) ret.agregar_restriccion(180, 1, 0) ret.agregar_restriccion(180, 2, 0) ret.agregar_restriccion(180 + 4, 0, 0) ret.agregar_restriccion(180 + 4, 1, 0) ret.agregar_restriccion(180 + 4, 2, 0) for i in range(181, 188): ret.agregar_restriccion(i, 1, 0) # --- COLUMNA 2 ret.agregar_restriccion(188, 0, 0) ret.agregar_restriccion(188, 1, 0) ret.agregar_restriccion(188, 2, 0) ret.agregar_restriccion(188 + 8, 0, 0) ret.agregar_restriccion(188 + 8, 1, 0) ret.agregar_restriccion(188 + 8, 2, 0) for i in range(189, 204): ret.agregar_restriccion(i, 1, 0) # --- COLUMNA 3 ret.agregar_restriccion(204, 0, 0) ret.agregar_restriccion(204, 1, 0) ret.agregar_restriccion(204, 2, 0) ret.agregar_restriccion(204 + 8, 0, 0) ret.agregar_restriccion(204 + 8, 1, 0) ret.agregar_restriccion(204 + 8, 2, 0) for i in range(204, 220): ret.agregar_restriccion(i, 1, 0) # --- COLUMNA 4 ret.agregar_restriccion(220, 0, 0) ret.agregar_restriccion(220, 1, 0) ret.agregar_restriccion(220, 2, 0) ret.agregar_restriccion(220 + 8, 0, 0) ret.agregar_restriccion(220 + 8, 1, 0) ret.agregar_restriccion(220 + 8, 2, 0) for i in range(220, 236): ret.agregar_restriccion(i, 1, 0) # --- COLUMNA 5 ret.agregar_restriccion(236, 0, 0) ret.agregar_restriccion(236, 1, 0) ret.agregar_restriccion(236, 2, 0) ret.agregar_restriccion(236 + 4, 0, 0) ret.agregar_restriccion(236 + 4, 1, 0) ret.agregar_restriccion(236 + 4, 2, 0) for i in range(236, 244): ret.agregar_restriccion(i, 1, 0) # --- COLUMNA 6 ret.agregar_restriccion(244, 0, 0) ret.agregar_restriccion(244, 1, 0) ret.agregar_restriccion(244, 2, 0) ret.agregar_restriccion(245, 0, 0) ret.agregar_restriccion(245, 1, 0) ret.agregar_restriccion(245, 2, 0) return ret
def caso_L(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros L = 5.0 * m B = 2.0 * m H = 5.0 * m Z = 100.0 * m O = 10.0 * m #Origen A_X = 115.0 * m A_Z = 70.0 * m A_X2 = 29.0 * m #11 A_Z2 = 66.0 * m A_X3 = 184.0 * m #35 A_Z3 = 86.0 * m #Carga q = 400 * 9.8 * kg / m**2 F1 = q * L * B / 4 F2 = q * L * B / 2 #Inicializar modelo ret = Reticulado() #Nodos x = 43 #Nodos Tablero @5m for i in range(x + 1): #47 ret.agregar_nodo(O + i * L, 0, Z) #Nodos en y = 2 @5m for i in range(x + 1): #47 ret.agregar_nodo(O + i * L, B, Z) #Nodos arriba for i in range(x): #46 ret.agregar_nodo(O + (2 * i + 1) * L / 2, B / 2, Z + H) #Nodos de apoyo ret.agregar_nodo(A_X, 0, A_Z) #140 ret.agregar_nodo(A_X, B, A_Z) ret.agregar_nodo(A_X2, 0, A_Z2) #140 ret.agregar_nodo(A_X2, B, A_Z2) ret.agregar_nodo(A_X3, 0, A_Z3) #140 ret.agregar_nodo(A_X3, B, A_Z3) #Barras R = 4.0 * cm t = 2.0 * mm R_t = [[0.18, 0.009], [0.18, 0.009], [0.2, 0.011], [0.2, 0.011], [0.22, 0.011], [0.22, 0.011], [0.23, 0.012], [0.23, 0.012], [0.23, 0.012], [0.23, 0.012], [0.23, 0.012], [0.23, 0.012], [0.22, 0.011], [0.22, 0.011], [0.2, 0.011], [0.2, 0.011], [0.18, 0.009], [0.18, 0.009], [0.15, 0.008], [0.15, 0.008], [0.09, 0.005], [0.09, 0.005], [0.14, 0.008], [0.14, 0.008], [0.1, 0.006], [0.1, 0.006], [0.08, 0.004], [0.08, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.1, 0.005], [0.1, 0.005], [0.13, 0.007], [0.13, 0.007], [0.17, 0.009], [0.17, 0.009], [0.16, 0.009], [0.16, 0.009], [0.1, 0.006], [0.1, 0.006], [0.07, 0.004], [0.07, 0.004], [0.12, 0.006], [0.12, 0.006], [0.15, 0.008], [0.15, 0.008], [0.16, 0.009], [0.16, 0.009], [0.17, 0.009], [0.17, 0.009], [0.17, 0.009], [0.17, 0.009], [0.16, 0.009], [0.16, 0.009], [0.15, 0.008], [0.15, 0.008], [0.12, 0.006], [0.12, 0.006], [0.07, 0.004], [0.07, 0.004], [0.1, 0.006], [0.1, 0.006], [0.16, 0.009], [0.16, 0.009], [0.17, 0.009], [0.17, 0.009], [0.13, 0.007], [0.13, 0.007], [0.1, 0.005], [0.1, 0.005], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.09, 0.005], [0.09, 0.005], [0.08, 0.004], [0.08, 0.004], [0.07, 0.004], [0.07, 0.004], [0.19, 0.01], [0.26, 0.013], [0.28, 0.015], [0.3, 0.015], [0.3, 0.016], [0.29, 0.015], [0.26, 0.013], [0.2, 0.01], [0.08, 0.004], [0.2, 0.011], [0.31, 0.016], [0.24, 0.012], [0.18, 0.009], [0.1, 0.005], [0.05, 0.003], [0.07, 0.004], [0.08, 0.004], [0.15, 0.008], [0.22, 0.011], [0.28, 0.015], [0.36, 0.018], [0.26, 0.013], [0.14, 0.007], [0.16, 0.008], [0.24, 0.012], [0.28, 0.014], [0.3, 0.015], [0.31, 0.016], [0.3, 0.015], [0.28, 0.014], [0.24, 0.012], [0.16, 0.008], [0.13, 0.007], [0.26, 0.013], [0.36, 0.018], [0.28, 0.014], [0.2, 0.01], [0.11, 0.006], [0.1, 0.005], [0.14, 0.008], [0.15, 0.008], [0.13, 0.007], [0.12, 0.007], [0.12, 0.007], [0.11, 0.006], [0.11, 0.006], [0.09, 0.005], [0.09, 0.005], [0.08, 0.004], [0.08, 0.004], [0.05, 0.003], [0.05, 0.003], [0.06, 0.003], [0.06, 0.003], [0.08, 0.004], [0.08, 0.004], [0.1, 0.005], [0.1, 0.005], [0.12, 0.006], [0.12, 0.006], [0.14, 0.007], [0.14, 0.007], [0.14, 0.008], [0.14, 0.008], [0.13, 0.007], [0.13, 0.007], [0.11, 0.006], [0.11, 0.006], [0.1, 0.005], [0.1, 0.005], [0.08, 0.004], [0.08, 0.004], [0.06, 0.003], [0.06, 0.003], [0.06, 0.003], [0.06, 0.003], [0.08, 0.004], [0.08, 0.004], [0.1, 0.005], [0.1, 0.005], [0.12, 0.006], [0.12, 0.006], [0.13, 0.007], [0.13, 0.007], [0.16, 0.008], [0.16, 0.008], [0.14, 0.008], [0.14, 0.008], [0.13, 0.007], [0.13, 0.007], [0.12, 0.006], [0.12, 0.006], [0.1, 0.005], [0.1, 0.005], [0.08, 0.004], [0.08, 0.004], [0.07, 0.004], [0.07, 0.004], [0.06, 0.003], [0.06, 0.003], [0.07, 0.004], [0.07, 0.004], [0.1, 0.005], [0.1, 0.005], [0.11, 0.006], [0.11, 0.006], [0.13, 0.007], [0.13, 0.007], [0.14, 0.007], [0.14, 0.007], [0.15, 0.008], [0.15, 0.008], [0.14, 0.007], [0.14, 0.007], [0.13, 0.007], [0.13, 0.007], [0.12, 0.006], [0.12, 0.006], [0.1, 0.005], [0.1, 0.005], [0.08, 0.004], [0.08, 0.004], [0.06, 0.003], [0.06, 0.003], [0.06, 0.003], [0.06, 0.003], [0.08, 0.004], [0.08, 0.004], [0.12, 0.006], [0.12, 0.006], [0.11, 0.006], [0.11, 0.006], [0.09, 0.005], [0.09, 0.005], [0.06, 0.003], [0.06, 0.003], [0.05, 0.003], [0.05, 0.003], [0.08, 0.004], [0.08, 0.004], [0.09, 0.005], [0.09, 0.005], [0.11, 0.006], [0.11, 0.006], [0.12, 0.007], [0.12, 0.007], [0.14, 0.007], [0.14, 0.007], [0.15, 0.008], [0.15, 0.008], [0.12, 0.006], [0.12, 0.006], [0.11, 0.006], [0.11, 0.006], [0.09, 0.005], [0.09, 0.005], [0.06, 0.003], [0.06, 0.003], [0.04, 0.002], [0.04, 0.002], [0.08, 0.004], [0.08, 0.004], [0.09, 0.005], [0.09, 0.005], [0.1, 0.006], [0.1, 0.006], [0.12, 0.007], [0.12, 0.007], [0.14, 0.007], [0.14, 0.007], [0.15, 0.008], [0.15, 0.008], [0.14, 0.007], [0.14, 0.007], [0.13, 0.007], [0.13, 0.007], [0.11, 0.006], [0.11, 0.006], [0.1, 0.005], [0.1, 0.005], [0.07, 0.004], [0.07, 0.004], [0.06, 0.003], [0.06, 0.003], [0.07, 0.004], [0.07, 0.004], [0.08, 0.004], [0.08, 0.004], [0.1, 0.005], [0.1, 0.005], [0.12, 0.006], [0.12, 0.006], [0.13, 0.007], [0.13, 0.007], [0.14, 0.008], [0.14, 0.008], [0.16, 0.008], [0.16, 0.008], [0.14, 0.007], [0.14, 0.007], [0.12, 0.006], [0.12, 0.006], [0.11, 0.006], [0.11, 0.006], [0.09, 0.005], [0.09, 0.005], [0.07, 0.004], [0.07, 0.004], [0.06, 0.003], [0.06, 0.003], [0.07, 0.004], [0.07, 0.004], [0.09, 0.005], [0.09, 0.005], [0.04, 0.002], [0.15, 0.008], [0.16, 0.009], [0.18, 0.009], [0.18, 0.009], [0.18, 0.009], [0.18, 0.009], [0.16, 0.009], [0.15, 0.008], [0.13, 0.007], [0.1, 0.005], [0.12, 0.006], [0.1, 0.005], [0.07, 0.004], [0.04, 0.002], [0.04, 0.002], [0.04, 0.002], [0.03, 0.002], [0.06, 0.003], [0.09, 0.005], [0.12, 0.006], [0.16, 0.009], [0.1, 0.005], [0.05, 0.003], [0.08, 0.004], [0.1, 0.006], [0.12, 0.006], [0.13, 0.007], [0.14, 0.007], [0.13, 0.007], [0.12, 0.006], [0.1, 0.006], [0.08, 0.004], [0.05, 0.003], [0.1, 0.005], [0.16, 0.009], [0.12, 0.006], [0.08, 0.004], [0.04, 0.002], [0.04, 0.003], [0.06, 0.004], [0.06, 0.004], [0.06, 0.003], [0.04, 0.002], [0.16, 0.009], [0.16, 0.009], [0.18, 0.009], [0.18, 0.009], [0.2, 0.01], [0.2, 0.01], [0.2, 0.01], [0.2, 0.01], [0.2, 0.011], [0.2, 0.011], [0.2, 0.011], [0.2, 0.011], [0.2, 0.01], [0.2, 0.01], [0.18, 0.009], [0.18, 0.009], [0.16, 0.009], [0.16, 0.009], [0.13, 0.007], [0.13, 0.007], [0.08, 0.005], [0.08, 0.005], [0.13, 0.007], [0.13, 0.007], [0.1, 0.005], [0.1, 0.005], [0.08, 0.004], [0.08, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.1, 0.005], [0.1, 0.005], [0.12, 0.006], [0.12, 0.006], [0.15, 0.008], [0.15, 0.008], [0.14, 0.008], [0.14, 0.008], [0.1, 0.005], [0.1, 0.005], [0.07, 0.004], [0.07, 0.004], [0.1, 0.006], [0.1, 0.006], [0.13, 0.007], [0.13, 0.007], [0.14, 0.008], [0.14, 0.008], [0.15, 0.008], [0.15, 0.008], [0.15, 0.008], [0.15, 0.008], [0.14, 0.008], [0.14, 0.008], [0.13, 0.007], [0.13, 0.007], [0.1, 0.006], [0.1, 0.006], [0.07, 0.004], [0.07, 0.004], [0.1, 0.005], [0.1, 0.005], [0.14, 0.008], [0.14, 0.008], [0.15, 0.008], [0.15, 0.008], [0.12, 0.006], [0.12, 0.006], [0.09, 0.005], [0.09, 0.005], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.07, 0.004], [0.35, 0.018], [0.35, 0.018], [0.49, 0.025], [0.49, 0.025], [0.24, 0.012], [0.24, 0.012]] props = [200 * GPa, 7600 * kg / m**3, 420 * MPa] barra_n = 0 #Laterales e = 5 m for i in range(x): ret.agregar_barra( Barra(i, i + 1, R_t[barra_n][0], R_t[barra_n][1], *props)) barra_n += 1 ret.agregar_barra( Barra(x + i + 1, x + i + 2, R_t[barra_n][0], R_t[barra_n][1], *props)) barra_n += 1 #Superiores for i in range(2 * x + 2, 2 * x + 2 + x - 1): ret.agregar_barra( Barra(i, i + 1, R_t[barra_n][0], R_t[barra_n][1], *props)) barra_n += 1 #Piramides for i in range(x): ret.agregar_barra( Barra(i, 2 * x + 2 + i, R_t[barra_n][0], R_t[barra_n][1], *props)) barra_n += 1 ret.agregar_barra( Barra(x + 1 + i, 2 * x + 2 + i, R_t[barra_n][0], R_t[barra_n][1], *props)) barra_n += 1 for i in range(2 * x + 2, 2 * x + 2 + x): ret.agregar_barra( Barra(i, i - x, R_t[barra_n][0], R_t[barra_n][1], *props)) barra_n += 1 ret.agregar_barra( Barra(i, i - 2 * x - 1, R_t[barra_n][0], R_t[barra_n][1], *props)) barra_n += 1 #Union Laterales for i in range(x + 1): ret.agregar_barra( Barra(i, x + 1 + i, R_t[barra_n][0], R_t[barra_n][1], *props)) barra_n += 1 #X for i in range(x): ret.agregar_barra( Barra(i, x + i + 2, R_t[barra_n][0], R_t[barra_n][1], *props)) barra_n += 1 ret.agregar_barra( Barra(x + i + 1, i + 1, R_t[barra_n][0], R_t[barra_n][1], *props)) barra_n += 1 #Apoyo ret.agregar_barra(Barra(131, 21, R_t[barra_n][0], R_t[barra_n][1], *props)) ret.agregar_barra(Barra(132, 65, R_t[barra_n][0], R_t[barra_n][1], *props)) ret.agregar_barra(Barra(133, 11, R_t[barra_n][0], R_t[barra_n][1], *props)) ret.agregar_barra(Barra(134, 55, R_t[barra_n][0], R_t[barra_n][1], *props)) ret.agregar_barra(Barra(135, 35, R_t[barra_n][0], R_t[barra_n][1], *props)) ret.agregar_barra(Barra(136, 79, R_t[barra_n][0], R_t[barra_n][1], *props)) #Nodo 0 y 4 fijos ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(x + 1, 0, 0) ret.agregar_restriccion(x + 1, 1, 0) ret.agregar_restriccion(x + 1, 2, 0) # Nodos 3 y 7 libres en X ret.agregar_restriccion(x, 1, 0) ret.agregar_restriccion(x, 2, 0) ret.agregar_restriccion(2 * x + 1, 1, 0) ret.agregar_restriccion(2 * x + 1, 2, 0) ret.agregar_restriccion(131, 0, 0) ret.agregar_restriccion(131, 1, 0) ret.agregar_restriccion(131, 2, 0) ret.agregar_restriccion(132, 0, 0) ret.agregar_restriccion(132, 1, 0) ret.agregar_restriccion(132, 2, 0) ret.agregar_restriccion(133, 0, 0) ret.agregar_restriccion(133, 1, 0) ret.agregar_restriccion(133, 2, 0) ret.agregar_restriccion(134, 0, 0) ret.agregar_restriccion(134, 1, 0) ret.agregar_restriccion(134, 2, 0) ret.agregar_restriccion(135, 0, 0) ret.agregar_restriccion(135, 1, 0) ret.agregar_restriccion(135, 2, 0) ret.agregar_restriccion(136, 0, 0) ret.agregar_restriccion(136, 1, 0) ret.agregar_restriccion(136, 2, 0) #Fuerzas en nodos for i in range((x + 1) * 2): if i == 0 or i == x or i == x + 1 or i == 2 * x + 1: ret.agregar_fuerza(i, 2, -F1) else: ret.agregar_fuerza(i, 2, -F2) return ret
def caso_D(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg*m/s**2 cm = 0.01*m mm = 0.001*m KN = 1000*N Pa = N / m**2 KPa = 1000*Pa MPa = 1000*KPa GPa = 1000*MPa # #Parametros # L = 5.0 *m # F = 100*KN # B = 2.0 *m # #Parametros cargas vivas # Q=400*(kg/(m**2)) # g=9.8*(m/(s**2)) # A0=7.5*(m**2) # A1=15*(m**2) #Inicializar modelo ret = Reticulado() nodos=37 factor=6 altura2=sqrt(25-(2.5**2)) altura2=20. altura_pilares=20. """ Nodos calle """ # import math siguiente_1=0.5 for i in range (nodos): if i != nodos//2 and i!= nodos//2+1: ret.agregar_nodo(10+i*factor-floor(siguiente_1),0,100) # nodos 0-36 else: ret.agregar_nodo(10+i*factor-siguiente_1,0,100) siguiente_1+=0.5 siguiente_2=0.5 for l in range(nodos): if l != nodos//2 and l!= nodos//2+1: ret.agregar_nodo(10+l*factor-floor(siguiente_2),2,100) # nodos 37-73 # print(f'CC nodo {l+37}:{10+l*factor-floor(siguiente_2)}') else: ret.agregar_nodo(10+l*factor-siguiente_2,2,100) # print(f'DD nodo {l+37}:{10+l*factor-siguiente_2}') siguiente_2+=0.5 """ Nodos """ ret.agregar_nodo(22.0,1,107.5025) ret.agregar_nodo(34.0,0,106.6626) ret.agregar_nodo(34.0,1,113.8474) ret.agregar_nodo(46.0,0,112.2212) ret.agregar_nodo(46.0,1,119.1587) ret.agregar_nodo(58.0,0,116.7813) ret.agregar_nodo(58.0,1,123.5269) ret.agregar_nodo(70.0,0,120.4193) ret.agregar_nodo(70.0,1,127.0186) ret.agregar_nodo(82.0,0,123.1911) ret.agregar_nodo(82.0,1,129.6824) ret.agregar_nodo(94.0,0,125.1358) ret.agregar_nodo(94.0,1,131.5533) ret.agregar_nodo(106.0,0,126.2798) ret.agregar_nodo(106.0,1,132.6546) ret.agregar_nodo(117.5,0,126.6385) ret.agregar_nodo(117.5,1,133.0) ret.agregar_nodo(129.0,0,126.2798) ret.agregar_nodo(129.0,1,132.6546) ret.agregar_nodo(141.0,0,125.1358) ret.agregar_nodo(141.0,1,131.5533) ret.agregar_nodo(153.0,0,123.1911) ret.agregar_nodo(153.0,1,129.6824) ret.agregar_nodo(165.0,0,120.4193) ret.agregar_nodo(165.0,1,127.0186) ret.agregar_nodo(177.0,0,116.7813) ret.agregar_nodo(177.0,1,123.5269) ret.agregar_nodo(189.0,0,112.2212) ret.agregar_nodo(189.0,1,119.1587) ret.agregar_nodo(201.0,0,106.6626) ret.agregar_nodo(201.0,1,113.8474) # ret.agregar_nodo(213.0,0,100.0) ret.agregar_nodo(213.0,1,107.5025) ret.agregar_nodo(34.0,2,106.6626) ret.agregar_nodo(46.0,2,112.2212) ret.agregar_nodo(58.0,2,116.7813) ret.agregar_nodo(70.0,2,120.4193) ret.agregar_nodo(82.0,2,123.1911) ret.agregar_nodo(94.0,2,125.1358) ret.agregar_nodo(106.0,2,126.2798) ret.agregar_nodo(117.5,2,126.6385) ret.agregar_nodo(129.0,2,126.2798) ret.agregar_nodo(141.0,2,125.1358) ret.agregar_nodo(153.0,2,123.1911) ret.agregar_nodo(165.0,2,120.4193) ret.agregar_nodo(177.0,2,116.7813) ret.agregar_nodo(189.0,2,112.2212) ret.agregar_nodo(201.0,2,106.6626) # ret.agregar_nodo(213.0,2,100.0) """ Barras calle """ r = 10.0*cm t = 20.0*mm """ REVISAR EN PROPS R,R DEBERIA SER R,T """ # Horizontales for k1 in range (nodos-1): if k1 == 34 or k1 == 35 or k1 == 0 or k1 == 1: props = [9.5*cm, 5*cm, 200*GPa, 7600*kg/m**3, 420*MPa] else: props = [4.2*cm, 4*cm, 200*GPa, 7600*kg/m**3, 420*MPa] ret.agregar_barra(Barra(k1, k1+1, *props)) # 1 for k2 in range (nodos,2*nodos-1): if k2 == 37 or k2 == 38 or k2 == 71 or k2 == 72: props = [13.5*cm, 8.5*cm, 200*GPa, 7600*kg/m**3, 420*MPa] else: props = [8*cm, 5.5*cm, 200*GPa, 7600*kg/m**3, 420*MPa] ret.agregar_barra(Barra(k2, k2+1, *props)) # 1 props = [5.5*cm, 4*cm, 200*GPa, 7600*kg/m**3, 420*MPa] # Verticales for k4 in range (1, nodos-3): ret.agregar_barra(Barra(k4+1, k4+nodos+1, *props)) props = [5*cm, 0.6*cm, 200*GPa, 7600*kg/m**3, 420*MPa] # Diagonales for i in range (18): ret.agregar_barra(Barra(i, i+38, *props)) ret.agregar_barra(Barra(i+55,i+19 , *props)) props = [17.5*cm, 8*cm, 200*GPa, 7600*kg/m**3, 420*MPa] # arco1 parte en 75 for i in range(16): if i ==0: ret.agregar_barra(Barra(i+2, i+75, *props)) elif i==15: ret.agregar_barra(Barra(103, 34, *props)) else: ret.agregar_barra(Barra((i-1)*2+75, i*2+75, *props)) # arco2 parte en 74 props = [23.5*cm, 14.5*cm, 200*GPa, 7600*kg/m**3, 420*MPa] for i in range(17): if i ==0: # ret.agregar_barra(Barra(i+2, i+74, *props)) a=2 elif i==16: ret.agregar_barra(Barra(104, 105, *props)) else: ret.agregar_barra(Barra((i-1)*2+74, i*2+74, *props)) # # arco3 props = [18.5*cm, 5.5*cm, 200*GPa, 7600*kg/m**3, 420*MPa] # arco3 parte en 107 for i in range(16): if i ==0: ret.agregar_barra(Barra(i+39, i+106, *props)) elif i==15: ret.agregar_barra(Barra(120, 71, *props)) else: ret.agregar_barra(Barra(i+106-1, i+106, *props)) # Horizontales arco1 y arco3 props = [11.5*cm, 5.5*cm, 200*GPa, 7600*kg/m**3, 420*MPa] for i in range (15): ret.agregar_barra(Barra(i*2+75, i+106, *props)) # diagonales tablero de arco props = [11.5*cm, 5.5*cm, 200*GPa, 7600*kg/m**3, 420*MPa] for i in range(8): if i ==0: ret.agregar_barra(Barra(i+39, i+75, *props)) else: ret.agregar_barra(Barra(i+105, i*2+75, *props)) for i in range(8): if i ==0: ret.agregar_barra(Barra(i+89, i+114, *props)) elif i==7: ret.agregar_barra(Barra(103, 71, *props)) else: ret.agregar_barra(Barra(i*2+89, i+114, *props)) props = [18.2*cm, 7.6*cm, 200*GPa, 7600*kg/m**3, 420*MPa] # triangulo arco for i in range(17): if i ==0: ret.agregar_barra(Barra(i+2, i+74, *props)) ret.agregar_barra(Barra(i+39, i+74, *props)) elif i==16: ret.agregar_barra(Barra(105, 34, *props)) ret.agregar_barra(Barra(105, 71, *props)) else: ret.agregar_barra(Barra(i*2+73, i*2+74, *props)) ret.agregar_barra(Barra(i+105, i*2+74, *props)) props = [21.5*cm, 10*cm, 200*GPa, 7600*kg/m**3, 420*MPa] props1 = [21.5*cm, 11*cm, 200*GPa, 7600*kg/m**3, 420*MPa] ret.agregar_barra(Barra(0, 74, *props)) ret.agregar_barra(Barra(1, 74, *props)) ret.agregar_barra(Barra(37, 74, *props1)) ret.agregar_barra(Barra(38, 74, *props)) ret.agregar_barra(Barra(35, 105, *props)) ret.agregar_barra(Barra(36, 105, *props)) ret.agregar_barra(Barra(72, 105, *props)) ret.agregar_barra(Barra(73, 105, *props1)) props = [17.9*cm, 8*cm, 200*GPa, 7600*kg/m**3, 420*MPa] # Diagonales arco for i in range(8): if i ==0: ret.agregar_barra(Barra(i+74, i+75, *props)) ret.agregar_barra(Barra(i+74, i+106, *props)) else: ret.agregar_barra(Barra(i*2+74, i*2+75, *props)) ret.agregar_barra(Barra(i*2+74, i+106, *props)) for i in range(8): if i ==0: ret.agregar_barra(Barra(i+89, i+92, *props)) ret.agregar_barra(Barra(i+113, i+92, *props)) elif i==7: ret.agregar_barra(Barra(103, 105, *props)) ret.agregar_barra(Barra(120, 105, *props)) else: ret.agregar_barra(Barra(i*2+89, i*2+92, *props)) ret.agregar_barra(Barra(i+113, i*2+92, *props)) props = [18*cm, 170*mm, 200*GPa, 7600*kg/m**3, 420*MPa] props_m = [17.9*cm, 170*mm, 200*GPa, 7600*kg/m**3, 420*MPa] # Cables lado 1 for i in range (15): if i==0: ret.agregar_barra(Barra(i*2+75, i*3+3, *props)) ret.agregar_barra(Barra(i*2+75, i*3+4, *props_m)) ret.agregar_barra(Barra(i*2+75, i*3+5, *props)) else: ret.agregar_barra(Barra(i*2+75, i*2+3, *props)) ret.agregar_barra(Barra(i*2+75, i*2+4, *props_m)) ret.agregar_barra(Barra(i*2+75, i*2+5, *props)) # Cables lado 2 for i in range (15): if i==0: ret.agregar_barra(Barra(i+106, i*3+3+37, *props)) ret.agregar_barra(Barra(i+106, i*3+4+37, *props_m)) ret.agregar_barra(Barra(i+106, i*3+5+37, *props)) else: ret.agregar_barra(Barra(i+106, i*2+3+37, *props)) ret.agregar_barra(Barra(i+106, i*2+4+37, *props_m)) ret.agregar_barra(Barra(i+106, i*2+5+37, *props)) # nodo 0 ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) # nodo 36 ret.agregar_restriccion(36, 0, 0) ret.agregar_restriccion(36, 1, 0) ret.agregar_restriccion(36, 2, 0) # nodo 37 ret.agregar_restriccion(37, 0, 0) ret.agregar_restriccion(37, 1, 0) ret.agregar_restriccion(37, 2, 0) # nodo 73 ret.agregar_restriccion(73, 0, 0) ret.agregar_restriccion(73, 1, 0) ret.agregar_restriccion(73, 2, 0) return ret
def caso_D(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg*m/s**2 cm = 0.01*m mm = 0.1*cm Pa = N / m**2 KPa = 1000*Pa MPa = 1000*KPa GPa = 1000*MPa #Parametros L = 5.0 *m B = 2.0 *m H = 3.5*m #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0 , 0 , 0 ) #0 ret.agregar_nodo(L , 0 , 0 ) #1 ret.agregar_nodo(2*L , 0 , 0 ) #2 ret.agregar_nodo(3*L , 0 , 0 ) #3 ret.agregar_nodo(L/2 , B/2 , H) #4 ret.agregar_nodo(3*L/2 , B/2 , H) #5 ret.agregar_nodo(5*L/2 , B/2 , H) #6 ret.agregar_nodo(0 , B , 0 ) #7 ret.agregar_nodo(L , B , 0 ) #8 ret.agregar_nodo(2*L , B , 0 ) #9 ret.agregar_nodo(3*L , B , 0 ) #10 #Barras r = 8*cm A = 3.141592*(r)**2 t = 5*mm props = [r, t, 200*GPa, 7600*kg/m**3, 420*MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(0, 4, *props)) # 1 ret.agregar_barra(Barra(0, 7, *props)) # 2 ret.agregar_barra(Barra(0, 8, *props)) # 3 ret.agregar_barra(Barra(1, 2, *props)) # 4 ret.agregar_barra(Barra(1, 4, *props)) # 5 ret.agregar_barra(Barra(1, 5, *props)) # 6 ret.agregar_barra(Barra(1, 7, *props)) # 7 ret.agregar_barra(Barra(1, 8, *props)) # 8 ret.agregar_barra(Barra(1, 9, *props)) # 9 ret.agregar_barra(Barra(2, 3, *props)) # 10 ret.agregar_barra(Barra(2, 5, *props)) # 11 ret.agregar_barra(Barra(2, 6, *props)) # 12 ret.agregar_barra(Barra(2, 8, *props)) # 13 ret.agregar_barra(Barra(2, 9, *props)) # 14 ret.agregar_barra(Barra(2, 10, *props)) # 15 ret.agregar_barra(Barra(3, 6, *props)) # 16 ret.agregar_barra(Barra(3, 9, *props)) # 17 ret.agregar_barra(Barra(3, 10, *props)) # 18 ret.agregar_barra(Barra(4, 5, *props)) # 19 ret.agregar_barra(Barra(4, 7, *props)) # 20 ret.agregar_barra(Barra(4, 8, *props)) # 21 ret.agregar_barra(Barra(5, 6, *props)) # 22 ret.agregar_barra(Barra(5, 8, *props)) # 23 ret.agregar_barra(Barra(5, 9, *props)) # 24 ret.agregar_barra(Barra(6, 9, *props)) # 25 ret.agregar_barra(Barra(6, 10, *props)) # 26 ret.agregar_barra(Barra(7, 8, *props)) # 27 ret.agregar_barra(Barra(8, 9, *props)) # 28 ret.agregar_barra(Barra(9, 10, *props)) # 29 ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(7, 0, 0) ret.agregar_restriccion(7, 1, 0) ret.agregar_restriccion(7, 2, 0) ret.agregar_restriccion(3, 1, 0) ret.agregar_restriccion(10, 1, 0) ret.agregar_restriccion(3, 2, 0) ret.agregar_restriccion(10, 2, 0) return ret
def caso_D(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N kgf = 9.80665 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros L = 5.0 * m B = 2.0 * m H = 3.5 * m q = 400 * kgf / m**2 F = q * L * B F = F / 4 #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0, 0, 0) #0 ret.agregar_nodo(L, 0, 0) #1 ret.agregar_nodo(2 * L, 0, 0) #2 ret.agregar_nodo(3 * L, 0, 0) #3 ret.agregar_nodo(L / 2, B / 2, H) #4 ret.agregar_nodo(3 * L / 2, B / 2, H) #5 ret.agregar_nodo(5 * L / 2, B / 2, H) #6 ret.agregar_nodo(0, B, 0) #7 ret.agregar_nodo(L, B, 0) #8 ret.agregar_nodo(2 * L, B, 0) #9 ret.agregar_nodo(3 * L, B, 0) #10 #Barras R = 8 * cm t = 5 * mm props = [R, t, 200 * GPa, 7600 * kg / m**3, 420 * MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(2, 3, *props)) # 2 ret.agregar_barra(Barra(7, 8, *props)) # 3 ret.agregar_barra(Barra(8, 9, *props)) # 4 ret.agregar_barra(Barra(9, 10, *props)) # 5 ret.agregar_barra(Barra(0, 7, *props)) # 6 ret.agregar_barra(Barra(1, 8, *props)) # 7 ret.agregar_barra(Barra(2, 9, *props)) # 8 ret.agregar_barra(Barra(3, 10, *props)) # 9 ret.agregar_barra(Barra(0, 8, *props)) # 10 ret.agregar_barra(Barra(7, 1, *props)) # 11 ret.agregar_barra(Barra(8, 2, *props)) # 12 ret.agregar_barra(Barra(1, 9, *props)) # 13 ret.agregar_barra(Barra(9, 3, *props)) # 14 ret.agregar_barra(Barra(2, 10, *props)) # 15 ret.agregar_barra(Barra(0, 4, *props)) # 16 ret.agregar_barra(Barra(1, 4, *props)) # 17 ret.agregar_barra(Barra(7, 4, *props)) # 18 ret.agregar_barra(Barra(8, 4, *props)) # 19 ret.agregar_barra(Barra(1, 5, *props)) # 20 ret.agregar_barra(Barra(2, 5, *props)) # 21 ret.agregar_barra(Barra(8, 5, *props)) # 22 ret.agregar_barra(Barra(9, 5, *props)) # 23 ret.agregar_barra(Barra(2, 6, *props)) # 24 ret.agregar_barra(Barra(3, 6, *props)) # 25 ret.agregar_barra(Barra(9, 6, *props)) # 26 ret.agregar_barra(Barra(10, 6, *props)) # 27 ret.agregar_barra(Barra(4, 5, *props)) # 28 ret.agregar_barra(Barra(5, 6, *props)) # 29 #Nodo 0 y 7 fijos ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(7, 0, 0) ret.agregar_restriccion(7, 1, 0) ret.agregar_restriccion(7, 2, 0) # Nodos 3 y 10 libres en X ret.agregar_restriccion(3, 1, 0) ret.agregar_restriccion(3, 2, 0) ret.agregar_restriccion(10, 1, 0) ret.agregar_restriccion(10, 2, 0) return ret
def caso_L(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg*m/s**2 cm = 0.01*m mm = 0.001*m kgf = 9.80665*N KN = 1000*N Pa = N / m**2 KPa = 1000*Pa MPa = 1000*KPa GPa = 1000*MPa #Parametros L = 5.0 * m B = 2.0 * m H = 3.5 * m q = 400*kgf/m**2 F = q*L*B F = F/4 #Inicializar modelo ret = Reticulado() #Nodos tablero ret.agregar_nodo(0.0,0,100) # Nodo 0 (punto 7) ret.agregar_nodo(0.0,B,100) # Nodo 1 ret.agregar_nodo(5.0,0,100) # Nodo 2 ret.agregar_nodo(5.0,B,100) # Nodo 3 ret.agregar_nodo(10.0,0,100) # Nodo 4 ret.agregar_nodo(10.0,B,100) # Nodo 5 ret.agregar_nodo(15.0,0,100) # Nodo 6 ret.agregar_nodo(15.0,B,100) # Nodo 7 ret.agregar_nodo(20.0,0,100) # Nodo 8 ret.agregar_nodo(20.0,B,100) # Nodo 9 ret.agregar_nodo(25.0,0,100) # Nodo 10 ret.agregar_nodo(25.0,B,100) # Nodo 11 ret.agregar_nodo(30.0,0,100) # Nodo 12 ret.agregar_nodo(30.0,B,100) # Nodo 13 ret.agregar_nodo(35.0,0,100) # Nodo 14 ret.agregar_nodo(35.0,B,100) # Nodo 15 ret.agregar_nodo(40.0,0,100) # Nodo 16 ret.agregar_nodo(40.0,B,100) # Nodo 17 ret.agregar_nodo(45.0,0,100) # Nodo 18 ret.agregar_nodo(45.0,B,100) # Nodo 19 ret.agregar_nodo(50.0,0,100) # Nodo 20 ret.agregar_nodo(50.0,B,100) # Nodo 21 ret.agregar_nodo(55.0,0,100) # Nodo 22 ret.agregar_nodo(55.0,B,100) # Nodo 23 ret.agregar_nodo(60.0,0,100) # Nodo 24 ret.agregar_nodo(60.0,B,100) # Nodo 25 ret.agregar_nodo(65.0,0,100) # Nodo 26 ret.agregar_nodo(65.0,B,100) # Nodo 27 ret.agregar_nodo(70.0,0,100) # Nodo 28 ret.agregar_nodo(70.0,B,100) # Nodo 29 ret.agregar_nodo(75.0,0,100) # Nodo 30 ret.agregar_nodo(75.0,B,100) # Nodo 31 ret.agregar_nodo(80.0,0,100) # Nodo 32 ret.agregar_nodo(80.0,B,100) # Nodo 33 ret.agregar_nodo(85.0,0,100) # Nodo 34 ret.agregar_nodo(85.0,B,100) # Nodo 35 ret.agregar_nodo(90.0,0,100) # Nodo 36 ret.agregar_nodo(90.0,B,100) # Nodo 37 ret.agregar_nodo(95.0,0,100) # Nodo 38 ret.agregar_nodo(95.0,B,100) # Nodo 39 ret.agregar_nodo(100.0,0,100) # Nodo 40 ret.agregar_nodo(100.0,B,100) # Nodo 41 ret.agregar_nodo(105.0,0,100) # Nodo 42 ret.agregar_nodo(105.0,B,100) # Nodo 43 ret.agregar_nodo(110.0,0,100) # Nodo 44 ret.agregar_nodo(110.0,B,100) # Nodo 45 ret.agregar_nodo(115.0,0,100) # Nodo 46 ret.agregar_nodo(115.0,B,100) # Nodo 47 ret.agregar_nodo(120.0,0,100) # Nodo 48 ret.agregar_nodo(120.0,B,100) # Nodo 49 ret.agregar_nodo(125.0,0,100) # Nodo 50 ret.agregar_nodo(125.0,B,100) # Nodo 51 ret.agregar_nodo(130.0,0,100) # Nodo 52 ret.agregar_nodo(130.0,B,100) # Nodo 53 ret.agregar_nodo(135.0,0,100) # Nodo 54 ret.agregar_nodo(135.0,B,100) # Nodo 55 ret.agregar_nodo(140.0,0,100) # Nodo 56 ret.agregar_nodo(140.0,B,100) # Nodo 57 ret.agregar_nodo(145.0,0,100) # Nodo 58 ret.agregar_nodo(145.0,B,100) # Nodo 59 ret.agregar_nodo(150.0,0,100) # Nodo 60 ret.agregar_nodo(150.0,B,100) # Nodo 61 ret.agregar_nodo(155.0,0,100) # Nodo 62 ret.agregar_nodo(155.0,B,100) # Nodo 63 ret.agregar_nodo(160.0,0,100) # Nodo 64 ret.agregar_nodo(160.0,B,100) # Nodo 65 ret.agregar_nodo(165.0,0,100) # Nodo 66 ret.agregar_nodo(165.0,B,100) # Nodo 67 ret.agregar_nodo(170.0,0,100) # Nodo 68 ret.agregar_nodo(170.0,B,100) # Nodo 69 ret.agregar_nodo(175.0,0,100) # Nodo 70 ret.agregar_nodo(175.0,B,100) # Nodo 71 ret.agregar_nodo(180.0,0,100) # Nodo 72 ret.agregar_nodo(180.0,B,100) # Nodo 73 ret.agregar_nodo(185.0,0,100) # Nodo 74 ret.agregar_nodo(185.0,B,100) # Nodo 75 ret.agregar_nodo(190.0,0,100) # Nodo 76 ret.agregar_nodo(190.0,B,100) # Nodo 77 ret.agregar_nodo(195.0,0,100) # Nodo 78 ret.agregar_nodo(195.0,B,100) # Nodo 79 ret.agregar_nodo(200.0,0,100) # Nodo 80 ret.agregar_nodo(200.0,B,100) # Nodo 81 ret.agregar_nodo(205.0,0,100) # Nodo 82 ret.agregar_nodo(205.0,B,100) # Nodo 83 ret.agregar_nodo(210.0,0,100) # Nodo 84 ret.agregar_nodo(210.0,B,100) # Nodo 85 ret.agregar_nodo(215.0,0,100) # Nodo 86 ret.agregar_nodo(215.0,B,100) # Nodo 87 (punto 28) # Nodos Estructura j = np.arange(5.0,215,5) for i in j: ret.agregar_nodo(i, 0, 105) ret.agregar_nodo(i, B,105) ret.agregar_nodo(105, 1, 105)#172 ret.agregar_nodo(110, 1, 105)#173 # Barras props = [2*cm, 1*mm, 200*GPa, 7600*kg/m**3, 420*MPa] # Barras Tablero ret.agregar_barra(Barra(0, 2, *props)) ret.agregar_barra(Barra(1, 3, *props)) ret.agregar_barra(Barra(2, 4, *props)) ret.agregar_barra(Barra(3, 5, *props)) ret.agregar_barra(Barra(4, 6, *props)) ret.agregar_barra(Barra(5, 7, *props)) ret.agregar_barra(Barra(6, 8, *props)) ret.agregar_barra(Barra(7, 9, *props)) ret.agregar_barra(Barra(8, 10, *props)) ret.agregar_barra(Barra(9, 11, *props)) ret.agregar_barra(Barra(10, 12, *props)) ret.agregar_barra(Barra(11, 13, *props)) ret.agregar_barra(Barra(12, 14, *props)) ret.agregar_barra(Barra(13, 15, *props)) ret.agregar_barra(Barra(14, 16, *props)) ret.agregar_barra(Barra(15, 17, *props)) ret.agregar_barra(Barra(16, 18, *props)) ret.agregar_barra(Barra(17, 19, *props)) ret.agregar_barra(Barra(18, 20, *props)) ret.agregar_barra(Barra(19, 21, *props)) ret.agregar_barra(Barra(20, 22, *props)) ret.agregar_barra(Barra(21, 23, *props)) ret.agregar_barra(Barra(22, 24, *props)) ret.agregar_barra(Barra(23, 25, *props)) ret.agregar_barra(Barra(24, 26, *props)) ret.agregar_barra(Barra(25, 27, *props)) ret.agregar_barra(Barra(26, 28, *props)) ret.agregar_barra(Barra(27, 29, *props)) ret.agregar_barra(Barra(28, 30, *props)) ret.agregar_barra(Barra(29, 31, *props)) ret.agregar_barra(Barra(30, 32, *props)) ret.agregar_barra(Barra(31, 33, *props)) ret.agregar_barra(Barra(32, 34, *props)) ret.agregar_barra(Barra(33, 35, *props)) ret.agregar_barra(Barra(34, 36, *props)) ret.agregar_barra(Barra(35, 37, *props)) ret.agregar_barra(Barra(36, 38, *props)) ret.agregar_barra(Barra(37, 39, *props)) ret.agregar_barra(Barra(38, 40, *props)) ret.agregar_barra(Barra(39, 41, *props)) ret.agregar_barra(Barra(40, 42, *props)) ret.agregar_barra(Barra(41, 43, *props)) ret.agregar_barra(Barra(42, 44, *props)) ret.agregar_barra(Barra(43, 45, *props)) ret.agregar_barra(Barra(44, 46, *props)) ret.agregar_barra(Barra(45, 47, *props)) ret.agregar_barra(Barra(46, 48, *props)) ret.agregar_barra(Barra(47, 49, *props)) ret.agregar_barra(Barra(48, 50, *props)) ret.agregar_barra(Barra(49, 51, *props)) ret.agregar_barra(Barra(50, 52, *props)) ret.agregar_barra(Barra(51, 53, *props)) ret.agregar_barra(Barra(52, 54, *props)) ret.agregar_barra(Barra(53, 55, *props)) ret.agregar_barra(Barra(54, 56, *props)) ret.agregar_barra(Barra(55, 57, *props)) ret.agregar_barra(Barra(56, 58, *props)) ret.agregar_barra(Barra(57, 59, *props)) ret.agregar_barra(Barra(58, 60, *props)) ret.agregar_barra(Barra(59, 61, *props)) ret.agregar_barra(Barra(60, 62, *props)) ret.agregar_barra(Barra(61, 63, *props)) ret.agregar_barra(Barra(62, 64, *props)) ret.agregar_barra(Barra(63, 65, *props)) ret.agregar_barra(Barra(64, 66, *props)) ret.agregar_barra(Barra(65, 67, *props)) ret.agregar_barra(Barra(66, 68, *props)) ret.agregar_barra(Barra(67, 69, *props)) ret.agregar_barra(Barra(68, 70, *props)) ret.agregar_barra(Barra(69, 71, *props)) ret.agregar_barra(Barra(70, 72, *props)) ret.agregar_barra(Barra(71, 73, *props)) ret.agregar_barra(Barra(72, 74, *props)) ret.agregar_barra(Barra(73, 75, *props)) ret.agregar_barra(Barra(74, 76, *props)) ret.agregar_barra(Barra(75, 77, *props)) ret.agregar_barra(Barra(76, 78, *props)) ret.agregar_barra(Barra(77, 79, *props)) ret.agregar_barra(Barra(78, 80, *props)) ret.agregar_barra(Barra(79, 81, *props)) ret.agregar_barra(Barra(80, 82, *props)) ret.agregar_barra(Barra(81, 83, *props)) ret.agregar_barra(Barra(82, 84, *props)) ret.agregar_barra(Barra(83, 85, *props)) ret.agregar_barra(Barra(84, 86, *props)) ret.agregar_barra(Barra(85, 87, *props)) ret.agregar_barra(Barra(0, 1, *props)) ret.agregar_barra(Barra(2, 3, *props)) ret.agregar_barra(Barra(4, 5, *props)) ret.agregar_barra(Barra(6, 7, *props)) ret.agregar_barra(Barra(8, 9, *props)) ret.agregar_barra(Barra(10, 11, *props)) ret.agregar_barra(Barra(12, 13, *props)) ret.agregar_barra(Barra(14, 15, *props)) ret.agregar_barra(Barra(16, 17, *props)) ret.agregar_barra(Barra(18, 19, *props)) ret.agregar_barra(Barra(20, 21, *props)) ret.agregar_barra(Barra(22, 23, *props)) ret.agregar_barra(Barra(24, 25, *props)) ret.agregar_barra(Barra(26, 27, *props)) ret.agregar_barra(Barra(28, 29, *props)) ret.agregar_barra(Barra(30, 31, *props)) ret.agregar_barra(Barra(32, 33, *props)) ret.agregar_barra(Barra(34, 35, *props)) ret.agregar_barra(Barra(36, 37, *props)) ret.agregar_barra(Barra(38, 39, *props)) ret.agregar_barra(Barra(40, 41, *props)) ret.agregar_barra(Barra(42, 43, *props)) ret.agregar_barra(Barra(44, 45, *props)) ret.agregar_barra(Barra(46, 47, *props)) ret.agregar_barra(Barra(48, 49, *props)) ret.agregar_barra(Barra(50, 51, *props)) ret.agregar_barra(Barra(52, 53, *props)) ret.agregar_barra(Barra(54, 55, *props)) ret.agregar_barra(Barra(56, 57, *props)) ret.agregar_barra(Barra(58, 59, *props)) ret.agregar_barra(Barra(60, 61, *props)) ret.agregar_barra(Barra(62, 63, *props)) ret.agregar_barra(Barra(64, 65, *props)) ret.agregar_barra(Barra(66, 67, *props)) ret.agregar_barra(Barra(68, 69, *props)) ret.agregar_barra(Barra(70, 71, *props)) ret.agregar_barra(Barra(72, 73, *props)) ret.agregar_barra(Barra(74, 75, *props)) ret.agregar_barra(Barra(76, 77, *props)) ret.agregar_barra(Barra(78, 79, *props)) ret.agregar_barra(Barra(80, 81, *props)) ret.agregar_barra(Barra(82, 83, *props)) ret.agregar_barra(Barra(84, 85, *props)) ret.agregar_barra(Barra(86, 87, *props)) ret.agregar_barra(Barra(0, 3, *props)) ret.agregar_barra(Barra(1, 2, *props)) ret.agregar_barra(Barra(2, 5, *props)) ret.agregar_barra(Barra(3, 4, *props)) ret.agregar_barra(Barra(4, 7, *props)) ret.agregar_barra(Barra(5, 6, *props)) ret.agregar_barra(Barra(6, 9, *props)) ret.agregar_barra(Barra(7, 8, *props)) ret.agregar_barra(Barra(8, 11, *props)) ret.agregar_barra(Barra(9, 10, *props)) ret.agregar_barra(Barra(10, 13, *props)) ret.agregar_barra(Barra(11, 12, *props)) ret.agregar_barra(Barra(12, 15, *props)) ret.agregar_barra(Barra(13, 14, *props)) ret.agregar_barra(Barra(14, 17, *props)) ret.agregar_barra(Barra(15, 16, *props)) ret.agregar_barra(Barra(16, 19, *props)) ret.agregar_barra(Barra(17, 18, *props)) ret.agregar_barra(Barra(18, 21, *props)) ret.agregar_barra(Barra(19, 20, *props)) ret.agregar_barra(Barra(20, 23, *props)) ret.agregar_barra(Barra(21, 22, *props)) ret.agregar_barra(Barra(22, 25, *props)) ret.agregar_barra(Barra(23, 24, *props)) ret.agregar_barra(Barra(24, 27, *props)) ret.agregar_barra(Barra(25, 26, *props)) ret.agregar_barra(Barra(26, 29, *props)) ret.agregar_barra(Barra(27, 28, *props)) ret.agregar_barra(Barra(28, 31, *props)) ret.agregar_barra(Barra(29, 30, *props)) ret.agregar_barra(Barra(30, 33, *props)) ret.agregar_barra(Barra(31, 32, *props)) ret.agregar_barra(Barra(32, 35, *props)) ret.agregar_barra(Barra(33, 34, *props)) ret.agregar_barra(Barra(34, 37, *props)) ret.agregar_barra(Barra(35, 36, *props)) ret.agregar_barra(Barra(36, 39, *props)) ret.agregar_barra(Barra(37, 38, *props)) ret.agregar_barra(Barra(38, 41, *props)) ret.agregar_barra(Barra(39, 40, *props)) ret.agregar_barra(Barra(40, 43, *props)) ret.agregar_barra(Barra(41, 42, *props)) ret.agregar_barra(Barra(42, 45, *props)) ret.agregar_barra(Barra(43, 44, *props)) ret.agregar_barra(Barra(44, 47, *props)) ret.agregar_barra(Barra(45, 46, *props)) ret.agregar_barra(Barra(46, 49, *props)) ret.agregar_barra(Barra(47, 48, *props)) ret.agregar_barra(Barra(48, 51, *props)) ret.agregar_barra(Barra(49, 50, *props)) ret.agregar_barra(Barra(50, 53, *props)) ret.agregar_barra(Barra(51, 52, *props)) ret.agregar_barra(Barra(52, 55, *props)) ret.agregar_barra(Barra(53, 54, *props)) ret.agregar_barra(Barra(54, 57, *props)) ret.agregar_barra(Barra(55, 56, *props)) ret.agregar_barra(Barra(56, 59, *props)) ret.agregar_barra(Barra(57, 58, *props)) ret.agregar_barra(Barra(58, 61, *props)) ret.agregar_barra(Barra(59, 60, *props)) ret.agregar_barra(Barra(60, 63, *props)) ret.agregar_barra(Barra(61, 62, *props)) ret.agregar_barra(Barra(62, 65, *props)) ret.agregar_barra(Barra(63, 64, *props)) ret.agregar_barra(Barra(64, 67, *props)) ret.agregar_barra(Barra(65, 66, *props)) ret.agregar_barra(Barra(66, 69, *props)) ret.agregar_barra(Barra(67, 68, *props)) ret.agregar_barra(Barra(68, 71, *props)) ret.agregar_barra(Barra(69, 70, *props)) ret.agregar_barra(Barra(70, 73, *props)) ret.agregar_barra(Barra(71, 72, *props)) ret.agregar_barra(Barra(72, 75, *props)) ret.agregar_barra(Barra(73, 74, *props)) ret.agregar_barra(Barra(74, 77, *props)) ret.agregar_barra(Barra(75, 76, *props)) ret.agregar_barra(Barra(76, 79, *props)) ret.agregar_barra(Barra(77, 78, *props)) ret.agregar_barra(Barra(78, 81, *props)) ret.agregar_barra(Barra(79, 80, *props)) ret.agregar_barra(Barra(80, 83, *props)) ret.agregar_barra(Barra(81, 82, *props)) ret.agregar_barra(Barra(82, 85, *props)) ret.agregar_barra(Barra(83, 84, *props)) ret.agregar_barra(Barra(84, 87, *props)) ret.agregar_barra(Barra(85, 86, *props)) # Barras Estructura general #barras longitudinales estructura arco for i in range(88,170): ret.agregar_barra(Barra(i, i+2, *props)) for i in range(0,84): ret.agregar_barra(Barra(i, i+88, *props)) j = np.arange(88, 130, 2) for i in j: ret.agregar_barra(Barra(i, i+1, *props)) for i in np.arange(134,171,2): ret.agregar_barra(Barra(i, i+1, *props)) ret.agregar_barra(Barra(86,170,*props)) ret.agregar_barra(Barra(87,171,*props)) ret.agregar_barra(Barra(130, 172, *props)) ret.agregar_barra(Barra(131, 172, *props)) ret.agregar_barra(Barra(132, 173, *props)) ret.agregar_barra(Barra(133, 173, *props)) for i in range(4,42): ret.agregar_barra(Barra(i,i+84, *props)) for i in range(43,85): ret.agregar_barra(Barra(i, i+82, *props)) ret.agregar_restriccion(0, 0 ,0) ret.agregar_restriccion(0, 1 ,0) ret.agregar_restriccion(0, 2 ,0) ret.agregar_restriccion(1, 0 ,0) ret.agregar_restriccion(1, 1 ,0) ret.agregar_restriccion(1, 2 ,0) ret.agregar_restriccion(86, 0 ,0) ret.agregar_restriccion(86, 1 ,0) ret.agregar_restriccion(86, 2 ,0) ret.agregar_restriccion(87, 0 ,0) ret.agregar_restriccion(87, 1 ,0) ret.agregar_restriccion(87, 2 ,0) ret.agregar_restriccion(84, 0 ,0) ret.agregar_restriccion(84, 1 ,0) ret.agregar_restriccion(84, 2 ,0) ret.agregar_restriccion(85, 0 ,0) ret.agregar_restriccion(85, 1 ,0) ret.agregar_restriccion(85, 2 ,0) ret.agregar_restriccion(2, 0 ,0) ret.agregar_restriccion(2, 1 ,0) ret.agregar_restriccion(2, 2 ,0) ret.agregar_restriccion(3, 0 ,0) ret.agregar_restriccion(3, 1 ,0) ret.agregar_restriccion(3, 2 ,0) for i in range(88,174): ret.agregar_restriccion(i, 0 ,0) ret.agregar_restriccion(i, 1 ,0) ret.agregar_restriccion(i, 2 ,0) for i in range(2,86): ret.agregar_fuerza(i,2,-2*F) ret.agregar_fuerza(0,2,-F) ret.agregar_fuerza(1,2,-F) ret.agregar_fuerza(86,2,-F) ret.agregar_fuerza(87,2,-F) return ret
def caso_L(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #parámetros A = 10.0 * m**2 q = 400 * kg / m**2 #Inicializar modelo ret = Reticulado() #Nodos #nodos 0-5 (6 nodos en total) for i in range(10, 15, 2): ret.agregar_nodo(puntos[i], 0, puntos[i + 1]) ret.agregar_nodo(puntos[i], 2, puntos[i + 1]) #nodos barras tablero 6-89 (86 nodos en total) for i in range(15, 221, 5): ret.agregar_nodo(i, 0, 100) ret.agregar_nodo(i, 2, 100) #nodos 90-95 (6 nodos en total) for i in range(56, 62, 2): ret.agregar_nodo(puntos[i], 0, puntos[i + 1]) ret.agregar_nodo(puntos[i], 2, puntos[i + 1]) #nodos 96 x 142 for i in np.arange(2.5, 235, 5): ret.agregar_nodo(i, 1, 102.88) #Barras props = [8 * cm, 5 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props2 = [12 * cm, 15 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props3 = [13 * cm, 15 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] for i in range(0, 94): ret.agregar_barra(Barra(i, i + 2, *props2)) #eje x for i in range(0, 95, 2): ret.agregar_barra(Barra(i, i + 1, *props3)) #eje y for i in range(96, 142): ret.agregar_barra(Barra(i, i + 1, *props)) j = 0 #union triangular for i in range(96, 143): ret.agregar_barra(Barra(i, j, *props)) ret.agregar_barra(Barra(i, j + 1, *props)) ret.agregar_barra(Barra(i, j + 2, *props)) ret.agregar_barra(Barra(i, j + 3, *props)) j += 2 #Restricciones ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(1, 0, 0) ret.agregar_restriccion(1, 1, 0) ret.agregar_restriccion(94, 1, 0) ret.agregar_restriccion(95, 1, 0) #Fuerzas for i in range(0, 96): ret.agregar_fuerza(i, 2, q * A) return ret
def caso_D(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.1 * cm Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros L = 6.0 * m B = 2.0 * m H = 100 * m #Inicializar modelo ret = Reticulado() #Nodos y Barras altura_punta = 105 * m ############# NODOS PUENTE ################### ret.agregar_nodo(10, 0, H) #0 ret.agregar_nodo(10, B, H) #1 ret.agregar_nodo(14, 0, H) #2 primeros nodos para las barras de 4 m ret.agregar_nodo(14, B, H) #3 primeros nodos para las barras de 4 m ret.agregar_nodo(12, B / 2, altura_punta) #4 nodo punta contador_distancia_laterales = 14 contador_distancia_punta = 14 + L / 2 for i in range(36): contador_distancia_laterales += L ret.agregar_nodo(contador_distancia_laterales, 0, H) #5 ret.agregar_nodo(contador_distancia_laterales, B, H) #6 ret.agregar_nodo(contador_distancia_punta, B / 2, altura_punta) #7 nodo punta contador_distancia_punta += L ret.agregar_nodo(contador_distancia_laterales + 4, 0, H) #113 ultimos nodos para las barras de 4 m ret.agregar_nodo(contador_distancia_laterales + 4, B, H) #114 ultimos nodos para las barras de 4 m ret.agregar_nodo(contador_distancia_laterales + 2, B / 2, altura_punta) #115 nodo punta ############# BARRAS PUENTE ################### #Barras r = 8 * cm r2 = 10 * cm r3 = 10 * cm r4 = 20 * cm A = 3.141592 * (r)**2 t = 8 * mm t2 = 2 * mm t3 = 8 * mm t4 = 2 * cm props = [r, t, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props2 = [r2, t2, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props3 = [r3, t3, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props4 = [r4, t4, 200 * GPa, 7600 * kg / m**3, 420 * MPa] ret.agregar_barra(Barra(0, 1, *props)) ret.agregar_barra(Barra(0, 2, *props)) ret.agregar_barra(Barra(0, 3, *props)) ret.agregar_barra(Barra(0, 4, *props2)) ret.agregar_barra(Barra(1, 2, *props)) ret.agregar_barra(Barra(1, 3, *props)) ret.agregar_barra(Barra(1, 4, *props2)) ret.agregar_barra(Barra(2, 3, *props)) ret.agregar_barra(Barra(2, 4, *props2)) ret.agregar_barra(Barra(3, 4, *props2)) for n in range(37): num = 3 * n + 2 ret.agregar_barra(Barra(num, num + 3, *props)) ret.agregar_barra(Barra(num, num + 4, *props)) ret.agregar_barra(Barra(num, num + 5, *props2)) ret.agregar_barra(Barra(num + 1, num + 3, *props)) ret.agregar_barra(Barra(num + 1, num + 4, *props)) ret.agregar_barra(Barra(num + 1, num + 5, *props2)) ret.agregar_barra(Barra(num + 3, num + 4, *props)) ret.agregar_barra(Barra(num + 3, num + 5, *props2)) ret.agregar_barra(Barra(num + 4, num + 5, *props2)) ret.agregar_barra(Barra(num + 2, num + 5, *props3)) ret.agregar_barra(Barra(110, 113, *props)) ret.agregar_barra(Barra(110, 114, *props)) ret.agregar_barra(Barra(110, 115, *props2)) ret.agregar_barra(Barra(111, 113, *props)) ret.agregar_barra(Barra(111, 114, *props)) ret.agregar_barra(Barra(111, 115, *props2)) ret.agregar_barra(Barra(113, 114, *props)) ret.agregar_barra(Barra(113, 115, *props2)) ret.agregar_barra(Barra(114, 115, *props2)) ############# RESTRICCIONES PUENTE ################### ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(1, 0, 0) ret.agregar_restriccion(1, 1, 0) ret.agregar_restriccion(1, 2, 0) ret.agregar_restriccion(113, 0, 0) ret.agregar_restriccion(113, 1, 0) ret.agregar_restriccion(113, 2, 0) ret.agregar_restriccion(114, 0, 0) ret.agregar_restriccion(114, 1, 0) ret.agregar_restriccion(114, 2, 0) ############### NODOS PILAR 1 ############## B = 2.0 * m ret.agregar_nodo(44.0, 0, 53.0) #116 ret.agregar_nodo(44.0, B, 53.0) #117 ############### BARRAS PILAR 1 ############## ret.agregar_barra(Barra(116, 17, *props4)) ret.agregar_barra(Barra(116, 18, *props4)) ret.agregar_barra(Barra(117, 17, *props4)) ret.agregar_barra(Barra(117, 18, *props4)) ############### RESTRICCIONES PILAR 1 ############## ret.agregar_restriccion(116, 0, 0) ret.agregar_restriccion(116, 1, 0) ret.agregar_restriccion(116, 2, 0) ret.agregar_restriccion(117, 0, 0) ret.agregar_restriccion(117, 1, 0) ret.agregar_restriccion(117, 2, 0) ############### NODOS PILAR 2 ############## B = 2.0 * m ret.agregar_nodo(80.0, 0, 47.0) #118 ret.agregar_nodo(80.0, B, 47.0) #119 ############### BARRAS PILAR 2 ############## ret.agregar_barra(Barra(118, 35, *props4)) ret.agregar_barra(Barra(118, 36, *props4)) ret.agregar_barra(Barra(119, 35, *props4)) ret.agregar_barra(Barra(119, 36, *props4)) ############### RESTRICCIONES PILAR 2 ############## ret.agregar_restriccion(118, 0, 0) ret.agregar_restriccion(118, 1, 0) ret.agregar_restriccion(118, 2, 0) ret.agregar_restriccion(119, 0, 0) ret.agregar_restriccion(119, 1, 0) ret.agregar_restriccion(119, 2, 0) ############### NODOS PILAR 3 ############## B = 2.0 * m ret.agregar_nodo(164, 0, 64) #120 ret.agregar_nodo(164, B, 64) #121 ############### BARRAS PILAR 3 ############## ret.agregar_barra(Barra(120, 77, *props4)) ret.agregar_barra(Barra(120, 78, *props4)) ret.agregar_barra(Barra(121, 77, *props4)) ret.agregar_barra(Barra(121, 78, *props4)) ############### RESTRICCIONES PILAR 3 ############## ret.agregar_restriccion(120, 0, 0) ret.agregar_restriccion(120, 1, 0) ret.agregar_restriccion(120, 2, 0) ret.agregar_restriccion(121, 0, 0) ret.agregar_restriccion(121, 1, 0) ret.agregar_restriccion(121, 2, 0) return ret
#Nodos ret.agregar_nodo(0, 0, 0) ret.agregar_nodo(L, 0, 0) ret.agregar_nodo(2 * L, 0, 0) ret.agregar_nodo(L / 2, B / 2, sqrt(3) / 2 * L) ret.agregar_nodo(3 * L / 2, B / 2, sqrt(3) / 2 * L) ret.agregar_nodo(0, B, 0) ret.agregar_nodo(L, B, 0) ret.agregar_nodo(2 * L, B, 0) #Barras props = [8 * cm, 5 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(3, 4, *props)) # 2 ret.agregar_barra(Barra(0, 3, *props)) # 3 ret.agregar_barra(Barra(3, 1, *props)) # 4 ret.agregar_barra(Barra(1, 4, *props)) # 5 ret.agregar_barra(Barra(4, 2, *props)) # 6 ret.agregar_barra(Barra(5, 6, *props)) # 7 ret.agregar_barra(Barra(6, 7, *props)) # 8 ret.agregar_barra(Barra(5, 3, *props)) # 9 ret.agregar_barra(Barra(3, 6, *props)) # 10 ret.agregar_barra(Barra(6, 4, *props)) # 11 ret.agregar_barra(Barra(4, 7, *props)) # 12 ret.agregar_barra(Barra(0, 5, *props)) # 13 ret.agregar_barra(Barra(1, 6, *props)) # 14 ret.agregar_barra(Barra(2, 7, *props)) # 15
def caso_L(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg*m/s**2 cm = 0.01*m mm = 0.001*m KN = 1000*N Pa = N / m**2 KPa = 1000*Pa MPa = 1000*KPa GPa = 1000*MPa #Parametros L1 = 5.0 *m L2 = 2 * m # F = 100*KN qL = ((400*kg)/(m**2)) #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0 , 0 , 0 ) ret.agregar_nodo(L1 , 0 , 0 ) ret.agregar_nodo(2*L1 , 0 , 0 ) ret.agregar_nodo(3*L1 , 0 , 0 ) ret.agregar_nodo(L1/2 , L2/2 , 3.5 ) ret.agregar_nodo(L1 + L1/2 , L2/2 , 3.5) ret.agregar_nodo(2*L1 + L1/2 , L2/2 , 3.5 ) ret.agregar_nodo(0 , L2 , 0) ret.agregar_nodo(L1 , L2 , 0) ret.agregar_nodo(2*L1 , L2 , 0 ) ret.agregar_nodo(3*L1 , L2 , 0 ) #Barras props = [8*cm, 5*mm, 200*GPa, 0*7600*kg/m**3, 420*MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(2, 3, *props)) # 2 ret.agregar_barra(Barra(3, 10, *props)) # 3 ret.agregar_barra(Barra(9, 10, *props)) # 4 ret.agregar_barra(Barra(8, 9, *props)) # 5 ret.agregar_barra(Barra(7, 8, *props)) # 6 ret.agregar_barra(Barra(0, 7, *props)) # 7 ret.agregar_barra(Barra(1, 7, *props)) # 8 ret.agregar_barra(Barra(0, 8, *props)) # 9 ret.agregar_barra(Barra(1, 8, *props)) # 10 ret.agregar_barra(Barra(2, 8, *props)) # 11 ret.agregar_barra(Barra(1, 9, *props)) # 12 ret.agregar_barra(Barra(2, 9, *props)) # 13 ret.agregar_barra(Barra(3, 9, *props)) # 14 ret.agregar_barra(Barra(2, 10, *props)) # 15 ret.agregar_barra(Barra(4, 7, *props)) # 16 ret.agregar_barra(Barra(0, 4, *props)) # 17 ret.agregar_barra(Barra(4, 8, *props)) # 18 ret.agregar_barra(Barra(1, 4, *props)) # 19 ret.agregar_barra(Barra(5, 8, *props)) # 20 ret.agregar_barra(Barra(1, 5, *props)) # 21 ret.agregar_barra(Barra(5, 9, *props)) # 22 ret.agregar_barra(Barra(2, 5, *props)) # 23 ret.agregar_barra(Barra(6, 9, *props)) # 24 ret.agregar_barra(Barra(2, 6, *props)) # 25 ret.agregar_barra(Barra(6, 10, *props)) # 26 ret.agregar_barra(Barra(3, 6, *props)) # 27 ret.agregar_barra(Barra(4, 5, *props)) # 28 ret.agregar_barra(Barra(5, 6, *props)) # 29 ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(7, 0, 0) ret.agregar_restriccion(7, 1, 0) ret.agregar_restriccion(7, 2, 0) ret.agregar_restriccion(3, 1, 0) ret.agregar_restriccion(3, 2, 0) ret.agregar_restriccion(10, 1, 0) ret.agregar_restriccion(10, 2, 0) qL1 = -qL*(7.5*m**2)* 9.8 qL2 = -qL*(15*m**2)* 9.8 ret.agregar_fuerza(0, 2, qL1) ret.agregar_fuerza(3, 2, qL1) ret.agregar_fuerza(7, 2, qL1) ret.agregar_fuerza(10, 2, qL1) ret.agregar_fuerza(1, 2, qL2) ret.agregar_fuerza(2, 2, qL2) ret.agregar_fuerza(8, 2, qL2) ret.agregar_fuerza(9, 2, qL2) return ret
def caso_L(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros L = 5.0 * m F1 = 9.8 * KN F2 = 19.6 * KN B = 2.0 * m H = 3.5 * m #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0, 0, 0) #0 ret.agregar_nodo(L, 0, 0) #1 ret.agregar_nodo(2 * L, 0, 0) #2 ret.agregar_nodo(3 * L, 0, 0) #3 ret.agregar_nodo(L / 2, B / 2, H) #4 ret.agregar_nodo(3 * L / 2, B / 2, H) #5 ret.agregar_nodo(5 * L / 2, B / 2, H) #6 ret.agregar_nodo(0, B, 0) #7 ret.agregar_nodo(L, B, 0) #8 ret.agregar_nodo(2 * L, B, 0) #9 ret.agregar_nodo(3 * L, B, 0) #10 #Barras r = 8 * cm A = 3.141592 * (r)**2 t = 5 * mm props = [r, t, 200 * GPa, 0 * kg / m**3, 420 * MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(0, 4, *props)) ret.agregar_barra(Barra(0, 7, *props)) ret.agregar_barra(Barra(0, 8, *props)) ret.agregar_barra(Barra(1, 2, *props)) ret.agregar_barra(Barra(1, 4, *props)) ret.agregar_barra(Barra(1, 5, *props)) ret.agregar_barra(Barra(1, 7, *props)) ret.agregar_barra(Barra(1, 8, *props)) ret.agregar_barra(Barra(1, 9, *props)) ret.agregar_barra(Barra(2, 3, *props)) ret.agregar_barra(Barra(2, 5, *props)) ret.agregar_barra(Barra(2, 6, *props)) ret.agregar_barra(Barra(2, 8, *props)) ret.agregar_barra(Barra(2, 9, *props)) ret.agregar_barra(Barra(2, 10, *props)) ret.agregar_barra(Barra(3, 6, *props)) ret.agregar_barra(Barra(3, 9, *props)) ret.agregar_barra(Barra(3, 10, *props)) ret.agregar_barra(Barra(4, 5, *props)) ret.agregar_barra(Barra(4, 7, *props)) ret.agregar_barra(Barra(4, 8, *props)) ret.agregar_barra(Barra(5, 6, *props)) ret.agregar_barra(Barra(5, 8, *props)) ret.agregar_barra(Barra(5, 9, *props)) ret.agregar_barra(Barra(6, 9, *props)) ret.agregar_barra(Barra(6, 10, *props)) ret.agregar_barra(Barra(7, 8, *props)) ret.agregar_barra(Barra(8, 9, *props)) ret.agregar_barra(Barra(9, 10, *props)) ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(7, 0, 0) ret.agregar_restriccion(7, 1, 0) ret.agregar_restriccion(7, 2, 0) ret.agregar_restriccion(3, 1, 0) ret.agregar_restriccion(10, 1, 0) ret.agregar_restriccion(3, 2, 0) ret.agregar_restriccion(10, 2, 0) ret.agregar_fuerza(0, 2, -F1) ret.agregar_fuerza(3, 2, -F1) ret.agregar_fuerza(7, 2, -F1) ret.agregar_fuerza(10, 2, -F1) ret.agregar_fuerza(1, 2, -F2) ret.agregar_fuerza(2, 2, -F2) ret.agregar_fuerza(8, 2, -F2) ret.agregar_fuerza(9, 2, -F2) return ret
def caso_D(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros L = 5.0 * m F = 100 * KN B = 2.0 * m #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0, 0, 0) ret.agregar_nodo(L, 0, 0) ret.agregar_nodo(2 * L, 0, 0) ret.agregar_nodo(L / 2, B / 2, sqrt(3) / 2 * L) ret.agregar_nodo(3 * L / 2, B / 2, sqrt(3) / 2 * L) ret.agregar_nodo(0, B, 0) ret.agregar_nodo(L, B, 0) ret.agregar_nodo(2 * L, B, 0) #Barras A = (1.1 * cm)**2 r = sqrt(A / 3.141593) props = [r, r, 200 * GPa, 7600 * kg / m**3, 420 * MPa] # props2 = [0.6*r, 0.6*r, 200*GPa, 7600*kg/m**3, 420*MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(3, 4, *props)) # 2 ret.agregar_barra(Barra(0, 3, *props)) # 3 ret.agregar_barra(Barra(3, 1, *props)) # 4 ret.agregar_barra(Barra(1, 4, *props)) # 5 ret.agregar_barra(Barra(4, 2, *props)) # 6 ret.agregar_barra(Barra(5, 6, *props)) # 7 ret.agregar_barra(Barra(6, 7, *props)) # 8 ret.agregar_barra(Barra(5, 3, *props)) # 9 ret.agregar_barra(Barra(3, 6, *props)) # 10 ret.agregar_barra(Barra(6, 4, *props)) # 11 ret.agregar_barra(Barra(4, 7, *props)) # 12 ret.agregar_barra(Barra(0, 5, *props)) # 13 ret.agregar_barra(Barra(1, 6, *props)) # 14 ret.agregar_barra(Barra(2, 7, *props)) # 15 ret.agregar_barra(Barra(0, 6, *props)) # 16 ret.agregar_barra(Barra(6, 2, *props)) # 17 ret.agregar_barra(Barra(5, 1, *props)) # 18 ret.agregar_barra(Barra(1, 7, *props)) # 19 # ver_reticulado_3d(ret) ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(2, 2, 0) ret.agregar_restriccion(5, 2, 0) ret.agregar_restriccion(7, 2, 0) ret.agregar_restriccion(5, 0, 0) return ret
def caso_L(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N kgf = 9.80665 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros L = 5.0 * m B = 2.0 * m H = 3.5 * m q = 400 * kgf / m**2 F = q * L * B F = F / 4 #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0, 0, 0) #0 ret.agregar_nodo(L, 0, 0) #1 ret.agregar_nodo(2 * L, 0, 0) #2 ret.agregar_nodo(3 * L, 0, 0) #3 ret.agregar_nodo(L / 2, B / 2, H) #4 ret.agregar_nodo(3 * L / 2, B / 2, H) #5 ret.agregar_nodo(5 * L / 2, B / 2, H) #6 ret.agregar_nodo(0, B, 0) #7 ret.agregar_nodo(L, B, 0) #8 ret.agregar_nodo(2 * L, B, 0) #9 ret.agregar_nodo(3 * L, B, 0) #10 #Barras R = 8 * cm t = 5 * mm props = [R, t, 200 * GPa, 0 * kg / m**3, 420 * MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(2, 3, *props)) # 2 ret.agregar_barra(Barra(3, 10, *props)) # 3 ret.agregar_barra(Barra(10, 9, *props)) # 4 ret.agregar_barra(Barra(9, 8, *props)) # 5 ret.agregar_barra(Barra(8, 7, *props)) # 6 ret.agregar_barra(Barra(7, 0, *props)) # 7 ret.agregar_barra(Barra(8, 1, *props)) # 8 ret.agregar_barra(Barra(9, 2, *props)) # 9 ret.agregar_barra(Barra(7, 4, *props)) # 10 ret.agregar_barra(Barra(0, 4, *props)) # 11 ret.agregar_barra(Barra(1, 4, *props)) # 12 ret.agregar_barra(Barra(8, 4, *props)) # 13 ret.agregar_barra(Barra(1, 5, *props)) # 14 ret.agregar_barra(Barra(2, 5, *props)) # 15 ret.agregar_barra(Barra(9, 5, *props)) # 16 ret.agregar_barra(Barra(8, 5, *props)) # 17 ret.agregar_barra(Barra(2, 6, *props)) # 18 ret.agregar_barra(Barra(3, 6, *props)) # 19 ret.agregar_barra(Barra(10, 6, *props)) # 20 ret.agregar_barra(Barra(9, 6, *props)) # 21 ret.agregar_barra(Barra(0, 8, *props)) # 2 ret.agregar_barra(Barra(1, 7, *props)) # 23 ret.agregar_barra(Barra(1, 9, *props)) # 24 ret.agregar_barra(Barra(2, 8, *props)) # 25 ret.agregar_barra(Barra(2, 10, *props)) # 26 ret.agregar_barra(Barra(3, 9, *props)) # 27 ret.agregar_barra(Barra(4, 5, *props)) # 28 ret.agregar_barra(Barra(5, 6, *props)) # 29 # Restricciones: Parte izquierda del reticulado es fija, y parte derecha es deslizante # Nodos 3 y 10 no desplazamiento en y,z....x libre ret.agregar_restriccion(10, 1, 0) ret.agregar_restriccion(10, 2, 0) ret.agregar_restriccion(3, 1, 0) ret.agregar_restriccion(3, 2, 0) #Nodo 7 y 0 son fijos ret.agregar_restriccion(7, 0, 0) ret.agregar_restriccion(7, 1, 0) ret.agregar_restriccion(7, 2, 0) ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_fuerza(0, 2, -F) ret.agregar_fuerza(1, 2, -2 * F) ret.agregar_fuerza(2, 2, -2 * F) ret.agregar_fuerza(3, 2, -F) ret.agregar_fuerza(7, 2, -F) ret.agregar_fuerza(8, 2, -2 * F) ret.agregar_fuerza(9, 2, -2 * F) ret.agregar_fuerza(10, 2, -F) return ret
def caso_L(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg*m/s**2 cm = 0.01*m mm = 0.001*m KN = 1000*N KGF = 9.8067*N Pa = N / m**2 KPa = 1000*Pa MPa = 1000*KPa GPa = 1000*MPa #Parametros L = 5.0 * m F = 100 * KN B = 2.0 * m H = 3.5 * m q = 400 * kg / m**2 #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0 , 0 , 0 ) #NODO 0 ret.agregar_nodo(L , 0 , 0 ) #NODO 1 ret.agregar_nodo(2*L , 0 , 0 ) #NODO 2 ret.agregar_nodo(3*L , 0 , 0 ) #NODO 3 ret.agregar_nodo(L/2 , B/2 , H ) #NODO 4 ret.agregar_nodo(3*L/2 , B/2 , H ) #NODO 5 ret.agregar_nodo(5*L/2 , B/2 , H ) #NODO 6 ret.agregar_nodo(0 , B , 0 ) #NODO 7 ret.agregar_nodo(L , B , 0 ) #NODO 8 ret.agregar_nodo(2*L , B , 0 ) #NODO 9 ret.agregar_nodo(3*L , B , 0 ) #NODO 10 #Barras # A = (1.1*cm)**2 # r = sqrt(A/3.141593) R = 8*cm t = 5*mm " R t E ρ σy" props = [R, t, 200*GPa, 0*7600*kg/m**3, 420*MPa] # ------------------------------------ # BARRAS LONGITUDINALES INFERIORES ret.agregar_barra(Barra(0, 1, *props)) # BARRA 0 ret.agregar_barra(Barra(1, 2, *props)) # BARRA 1 ret.agregar_barra(Barra(2, 3, *props)) # BARRA 2 ret.agregar_barra(Barra(7, 8, *props)) # BARRA 3 ret.agregar_barra(Barra(8, 9, *props)) # BARRA 4 ret.agregar_barra(Barra(9, 10, *props)) # BARRA 5 # BARRAS TRANSVERSALES INFERIORES ret.agregar_barra(Barra(0, 7, *props)) # BARRA 6 ret.agregar_barra(Barra(1, 8, *props)) # BARRA 7 ret.agregar_barra(Barra(2, 9, *props)) # BARRA 8 ret.agregar_barra(Barra(3, 10, *props)) # BARRA 9 # BARRAS DIAGONALES CRUZADAS INFERIORES ret.agregar_barra(Barra(1, 7, *props)) # BARRA 10 ret.agregar_barra(Barra(2, 8, *props)) # BARRA 11 ret.agregar_barra(Barra(3, 9, *props)) # BARRA 12 ret.agregar_barra(Barra(0, 8, *props)) # BARRA 13 ret.agregar_barra(Barra(1, 9, *props)) # BARRA 14 ret.agregar_barra(Barra(2, 10, *props)) # BARRA 15 # BARRAS DIAGONALES SUPERIORES ret.agregar_barra(Barra(4, 7, *props)) # BARRA 16 ret.agregar_barra(Barra(5, 8, *props)) # BARRA 17 ret.agregar_barra(Barra(6, 9, *props)) # BARRA 18 ret.agregar_barra(Barra(0, 4, *props)) # BARRA 19 ret.agregar_barra(Barra(1, 5, *props)) # BARRA 20 ret.agregar_barra(Barra(2, 6, *props)) # BARRA 21 ret.agregar_barra(Barra(4, 8, *props)) # BARRA 22 ret.agregar_barra(Barra(5, 9, *props)) # BARRA 23 ret.agregar_barra(Barra(6, 10, *props)) # BARRA 24 ret.agregar_barra(Barra(1, 4, *props)) # BARRA 25 ret.agregar_barra(Barra(2, 5, *props)) # BARRA 26 ret.agregar_barra(Barra(3, 6, *props)) # BARRA 27 # BARRAS LONGITUDINALES SUPERIORES ret.agregar_barra(Barra(4, 5, *props)) # BARRA 28 ret.agregar_barra(Barra(5, 6, *props)) # BARRA 29 # ------------------------------------ # RESTRICCIONES EN LOS NODOS ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(7, 0, 0) ret.agregar_restriccion(7, 1, 0) ret.agregar_restriccion(7, 2, 0) ret.agregar_restriccion(3, 1, 0) ret.agregar_restriccion(3, 2, 0) ret.agregar_restriccion(10, 1, 0) ret.agregar_restriccion(10, 2, 0) # ------------------------------------ # FUERZAS F_int = L*B/2*q*KGF F_ext = L/2*B/2*q*KGF ret.agregar_fuerza(0, 2, -F_ext) ret.agregar_fuerza(1, 2, -F_int) ret.agregar_fuerza(2, 2, -F_int) ret.agregar_fuerza(3, 2, -F_ext) ret.agregar_fuerza(7, 2, -F_ext) ret.agregar_fuerza(8, 2, -F_int) ret.agregar_fuerza(9, 2, -F_int) ret.agregar_fuerza(10, 2, -F_ext) return ret
def caso_L(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa #Parametros # L = 5.0 *m # F = 100*KN # B = 2.0 *m #Parametros cargas vivas Q = 400 * (kg / (m**2)) g = 9.81 * (m / (s**2)) A0 = 2.5 * (m**2) A1 = 5 * (m**2) #Inicializar modelo ret = Reticulado() #Nodos ret.agregar_nodo(0, 0, 0) #0 ret.agregar_nodo(5, 0, 0) #1 ret.agregar_nodo(10, 0, 0) #2 ret.agregar_nodo(15, 0, 0) #3 ret.agregar_nodo(2.5, 1, 3.5) #4 ret.agregar_nodo(7.5, 1, 3.5) #5 ret.agregar_nodo(12.5, 1, 3.5) #6 ret.agregar_nodo(0, 2, 0) #7 ret.agregar_nodo(5, 2, 0) #8 ret.agregar_nodo(10, 2, 0) #9 ret.agregar_nodo(15, 2, 0) #10 #Barras """ PREGUNTAR, PARECIERA SER QUE ES UNA BARRA CUADRADA """ # A = (8*cm)**2 # r = sqrt(A/3.141593) r = 8 * cm t = 5 * mm """ REVISAR EN PROPS R,R DEBERIA SER R,T """ props = [r, t, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa] ret.agregar_barra(Barra(0, 1, *props)) # 1 ret.agregar_barra(Barra(1, 2, *props)) # 2 ret.agregar_barra(Barra(2, 3, *props)) # 3 ret.agregar_barra(Barra(3, 10, *props)) # 4 ret.agregar_barra(Barra(9, 10, *props)) # 5 ret.agregar_barra(Barra(8, 9, *props)) # 6 ret.agregar_barra(Barra(7, 8, *props)) # 7 ret.agregar_barra(Barra(0, 7, *props)) # 8 ret.agregar_barra(Barra(1, 7, *props)) # 9 ret.agregar_barra(Barra(0, 8, *props)) # 10 ret.agregar_barra(Barra(1, 8, *props)) # 11 ret.agregar_barra(Barra(2, 8, *props)) # 12 ret.agregar_barra(Barra(1, 9, *props)) # 13 ret.agregar_barra(Barra(2, 9, *props)) # 14 ret.agregar_barra(Barra(3, 9, *props)) # 15 ret.agregar_barra(Barra(2, 10, *props)) # 16 ret.agregar_barra(Barra(4, 7, *props)) # 17 ret.agregar_barra(Barra(0, 4, *props)) # 18 ret.agregar_barra(Barra(4, 8, *props)) # 19 ret.agregar_barra(Barra(1, 4, *props)) # 20 ret.agregar_barra(Barra(5, 8, *props)) # 21 ret.agregar_barra(Barra(1, 5, *props)) # 22 ret.agregar_barra(Barra(5, 9, *props)) # 23 ret.agregar_barra(Barra(2, 5, *props)) # 24 ret.agregar_barra(Barra(6, 9, *props)) # 25 ret.agregar_barra(Barra(2, 6, *props)) # 26 ret.agregar_barra(Barra(6, 10, *props)) # 27 ret.agregar_barra(Barra(3, 6, *props)) # 28 ret.agregar_barra(Barra(4, 5, *props)) # 29 ret.agregar_barra(Barra(5, 6, *props)) # 30 # nodo 1 ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) # nodo 7 ret.agregar_restriccion(7, 0, 0) ret.agregar_restriccion(7, 1, 0) ret.agregar_restriccion(7, 2, 0) # nodo 3 ret.agregar_restriccion(3, 1, 0) ret.agregar_restriccion(3, 2, 0) # nodo 10 ret.agregar_restriccion(10, 1, 0) ret.agregar_restriccion(10, 2, 0) # Carga viva en nodos ret.agregar_fuerza(0, 2, -Q * A0 * g) ret.agregar_fuerza(7, 2, -Q * A0 * g) ret.agregar_fuerza(3, 2, -Q * A0 * g) ret.agregar_fuerza(10, 2, -Q * A0 * g) ret.agregar_fuerza(1, 2, -Q * A1 * g) ret.agregar_fuerza(2, 2, -Q * A1 * g) ret.agregar_fuerza(8, 2, -Q * A1 * g) ret.agregar_fuerza(9, 2, -Q * A1 * g) return ret
ret.agregar_nodo(L / 2, B / 2, h) #4 ret.agregar_nodo(3 * L / 2, B / 2, h) #5 ret.agregar_nodo(5 * L / 2, B / 2, h) #6 ret.agregar_nodo(0, B, 0) #7 ret.agregar_nodo(L, B, 0) #8 ret.agregar_nodo(2 * L, B, 0) #9 ret.agregar_nodo(3 * L, B, 0) #10 #Barras R = 8 * cm t = 5 * mm #, R, t, E, ρ, σy props = [R, t, 200 * GPa, 7850 * kg / m**3, 360 * MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(2, 3, *props)) # 2 ret.agregar_barra(Barra(3, 10, *props)) # 3 ret.agregar_barra(Barra(9, 10, *props)) # 4 ret.agregar_barra(Barra(8, 9, *props)) # 5 ret.agregar_barra(Barra(7, 8, *props)) # 6 ret.agregar_barra(Barra(0, 7, *props)) # 7 ret.agregar_barra(Barra(1, 7, *props)) # 8 ret.agregar_barra(Barra(0, 8, *props)) # 9 ret.agregar_barra(Barra(1, 8, *props)) # 10 ret.agregar_barra(Barra(2, 8, *props)) # 11 ret.agregar_barra(Barra(1, 9, *props)) # 12 ret.agregar_barra(Barra(2, 9, *props)) # 13 ret.agregar_barra(Barra(3, 9, *props)) # 14 ret.agregar_barra(Barra(2, 10, *props)) # 15
ret.agregar_nodo(L / 2, B / 2, sqrt(3) / 2 * L) ret.agregar_nodo(3 * L / 2, B / 2, sqrt(3) / 2 * L) ret.agregar_nodo(0, B, 0) ret.agregar_nodo(L, B, 0) ret.agregar_nodo(2 * L, B, 0) #Barras A = (1.1 * cm)**2 r = sqrt(A / 3.141593) props = [r, r, 200 * GPa, 7600 * kg / m**3, 420 * MPa] props2 = [r, r, 200 * GPa, 7600 * kg / m**3, 420 * MPa] # props2 = [0.6*r, 0.6*r, 200*GPa, 7600*kg/m**3, 420*MPa] ret.agregar_barra(Barra(0, 1, *props)) # 0 ret.agregar_barra(Barra(1, 2, *props)) # 1 ret.agregar_barra(Barra(3, 4, *props)) # 2 ret.agregar_barra(Barra(0, 3, *props2)) # 3 ret.agregar_barra(Barra(3, 1, *props2)) # 4 ret.agregar_barra(Barra(1, 4, *props2)) # 5 ret.agregar_barra(Barra(4, 2, *props)) # 6 ret.agregar_barra(Barra(5, 6, *props)) # 7 ret.agregar_barra(Barra(6, 7, *props)) # 8 ret.agregar_barra(Barra(5, 3, *props2)) # 9 ret.agregar_barra(Barra(3, 6, *props2)) # 10 ret.agregar_barra(Barra(6, 4, *props2)) # 11 ret.agregar_barra(Barra(4, 7, *props)) # 12 ret.agregar_barra(Barra(0, 5, *props)) # 13 ret.agregar_barra(Barra(1, 6, *props)) # 14 ret.agregar_barra(Barra(2, 7, *props)) # 15
def caso_L(): # Unidades base m = 1. kg = 1. s = 1. #Unidades derivadas N = kg * m / s**2 cm = 0.01 * m mm = 0.001 * m KN = 1000 * N Pa = N / m**2 KPa = 1000 * Pa MPa = 1000 * KPa GPa = 1000 * MPa KGF = 9.8067 * N #Parametros L = 5.0 * m B = 2.0 * m H = 3.5 * m q = 400 * 9.8 * kg / m**2 Fext = q * (L / 2) * (B / 2) Fint = q * L * B / 2 A = L * B #Inicializar modelo ret = Reticulado() #Nodos for a in range(45): ret.agregar_nodo(10 + a * L, 2, 100) for a in range(45): ret.agregar_nodo(10 + a * L, 0, 100) for a in range(44): ret.agregar_nodo(10 + (L / 2) + a * L, 1, 100 + H) # Barras props = [10 * cm, 45 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa] props2 = [20 * cm, 90 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa] props3 = [9.5 * cm, 45 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa] for a in range(44): #Barras abajo en y = 2 ret.agregar_barra(Barra(a, a + 1, *props)) for a in range(45, 89): #Barras abajo en y = 0 ret.agregar_barra(Barra(a, a + 1, *props)) for a in range(90, 133): #Barras superiores ret.agregar_barra(Barra(a, a + 1, *props2)) # Barras Diagonales for a in range(44): ret.agregar_barra(Barra(a, a + 90, *props)) for a in range(45, 89): ret.agregar_barra(Barra(a, a + 45, *props)) for a in range(44): ret.agregar_barra(Barra(a + 1, a + 90, *props)) for a in range(46, 90): ret.agregar_barra(Barra(a, a + 44, *props)) for a in range(45): ret.agregar_barra(Barra(a + 1, a + 46, *props)) ret.agregar_barra(Barra(0, 45, *props)) ret.agregar_barra(Barra(0, 45, *props)) #Barras Diagonales de abajo for a in range(44): ret.agregar_barra(Barra(a, a + 46, *props3)) for a in range(44): ret.agregar_barra(Barra(a + 1, a + 45, *props3)) ret.agregar_restriccion(0, 0, 0) ret.agregar_restriccion(0, 1, 0) ret.agregar_restriccion(0, 2, 0) ret.agregar_restriccion(45, 0, 0) ret.agregar_restriccion(45, 1, 0) ret.agregar_restriccion(45, 2, 0) ret.agregar_restriccion(43, 1, 0) ret.agregar_restriccion(43, 2, 0) ret.agregar_restriccion(88, 1, 0) ret.agregar_restriccion(88, 2, 0) ret.agregar_fuerza(89, 2, -Fext) ret.agregar_fuerza(44, 2, -Fext) ret.agregar_fuerza(0, 2, -Fext) ret.agregar_fuerza(45, 2, -Fext) for a in range(44): ret.agregar_fuerza(a + 1, 2, -Fint) for a in range(44, 88): ret.agregar_fuerza(a + 1, 2, -Fint) return ret