peso = ret.calcular_peso_total() print(f"peso = {peso}") ret.ensamblar_sistema() ret.resolver_sistema() f = ret.recuperar_fuerzas() fu = ret.recuperar_factores_de_utilizacion(f) 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": fu, "color_fondo": [1, 1, 1, 0.4] }) barras_a_rediseñar = [3, 4, 5, 9, 10, 11] barras = ret.obtener_barras() for i in barras_a_rediseñar: barras[i].rediseñar(f[i], ret) ret.ensamblar_sistema() ret.resolver_sistema() f1 = ret.recuperar_fuerzas() fu1 = ret.recuperar_factores_de_utilizacion(f)
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]
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() ver_reticulado_3d(ret, opciones_nodos={ "usar_posicion_deformada": True, "factor_amplificacion_deformada": 30., }, opciones_barras={ "color_barras_por_fu": True, "ver_numeros_de_barras": True, "ver_fuerza_en_barras": True }) barras_a_rediseñar = [3, 4, 5, 9, 10, 11] barras = ret.obtener_barras() for i in barras_a_rediseñar: barras[i].rediseñar(f[i]) ret.ensamblar_sistema() ret.resolver_sistema() f1 = ret.recuperar_fuerzas() peso = ret.calcular_peso_total()
from graficar3d import ver_reticulado_3d import itertools from operator import itemgetter from numpy import * ret_D = caso_D() ret_L = caso_L() #Casos optimizados ret_D_muerto = caso_D() ret_D_vivo_muerto = caso_D() ret_D_5_barras = caso_D() factor_a = 30.0 ver_reticulado_3d(ret_D, axis_Equal=True, opciones_barras={"ver_numeros_de_barras": False}, llamar_show=True, zoom=180., deshabilitar_ejes=True) #Peso propio ret_D.ensamblar_sistema() ret_D.resolver_sistema() ret_D_muerto.ensamblar_sistema() ret_D_muerto.resolver_sistema() ret_D_vivo_muerto.ensamblar_sistema() ret_D_vivo_muerto.resolver_sistema() ret_D_5_barras.ensamblar_sistema() ret_D_5_barras.resolver_sistema() f_D = ret_D.recuperar_fuerzas() f_D_muerto = ret_D_muerto.recuperar_fuerzas()
from caso_D import caso_D from caso_L import caso_L from graficar3d import ver_reticulado_3d ret_D = caso_D() ret_L = caso_L() peso = ret_D.calcular_peso_total() print(f"peso = {peso}") ver_reticulado_3d(ret_D, axis_Equal=True, opciones_barras={"ver_numeros_de_barras": False}, llamar_show=True, zoom=180., deshabilitar_ejes=True) #Peso propio ret_D.ensamblar_sistema() ret_D.resolver_sistema() f_D = ret_D.recuperar_fuerzas() #Carga Viva ret_L.ensamblar_sistema() ret_L.resolver_sistema() f_L = ret_L.recuperar_fuerzas() #Combinaciones de carga f_1 = 1.4 * f_D #Combinacion 1 f_2 = 1.2 * f_D + 1.6 * f_L #Combinacion 2
def ver(): ver_reticulado_3d(ret_D, opciones_nodos={ "usar_posicion_deformada": True, "factor_amplificacion_deformada": 60., }, opciones_barras={ "color_barras_por_dato": True, "ver_numeros_de_barras": False, "ver_dato_en_barras": True, "dato": f_1, "color_fondo": [1, 1, 1, 0.4] }, llamar_show=False, zoom=180., deshabilitar_ejes=True) plt.title("Tensiones en caso 1: 1.4 D ") plt.show() ver_reticulado_3d(ret_D, opciones_nodos={ "usar_posicion_deformada": True, "factor_amplificacion_deformada": 60., }, opciones_barras={ "color_barras_por_dato": True, "ver_numeros_de_barras": False, "ver_dato_en_barras": True, "dato": f_2, "color_fondo": [1, 1, 1, 0.4] }, llamar_show=False, zoom=180., deshabilitar_ejes=True) plt.title("Tensiones en caso 1: 1.2 D + 1.6 L") plt.show() ver_reticulado_3d(ret_D, opciones_nodos={ "usar_posicion_deformada": True, "factor_amplificacion_deformada": 60., }, opciones_barras={ "color_barras_por_dato": True, "ver_numeros_de_barras": False, "ver_dato_en_barras": True, "dato": FU_caso1, "color_fondo": [1, 1, 1, 0.4] }, llamar_show=False, zoom=180., deshabilitar_ejes=True) plt.title("FU caso 1: 1.4 D ") plt.show() ver_reticulado_3d(ret_D, opciones_nodos={ "usar_posicion_deformada": True, "factor_amplificacion_deformada": 60., }, opciones_barras={ "color_barras_por_dato": True, "ver_numeros_de_barras": False, "ver_dato_en_barras": True, "dato": FU_caso2, "color_fondo": [1, 1, 1, 0.4] }, llamar_show=False, zoom=180., deshabilitar_ejes=True) plt.title("FU caso 2: 1.2 D + 1.6 L") plt.show()
ret.agregar_fuerza(9, 2, qD_A2) #ver_reticulado_3d(ret, axis_Equal=False) ret.ensamblar_sistema() ret.resolver_sistema() f = ret.recuperar_fuerzas() print(ret) ver_reticulado_3d(ret, opciones_nodos={ "usar_posicion_deformada": True, "factor_amplificacion_deformada": 30., "ver_factor_utilizacion": True }, opciones_barras={ "color_barras_por_fu": True, "ver_numeros_de_barras": True, "ver_fuerza_en_barras": True }, axis_Equal=False) ''' barras_a_rediseñar = [3,4,5, 9, 10, 11] barras = ret.obtener_barras() for i in barras_a_rediseñar: barras[i].rediseñar(f[i]) ''' ''' ret.ensamblar_sistema() ret.resolver_sistema() f1 = ret.recuperar_fuerzas()