Пример #1
0
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]
Пример #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()
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]
                  })
Пример #3
0
#Inicializar modelo
ret = Reticulado()

#Nodos
ret.agregar_nodo(0, 0)
ret.agregar_nodo(L, 0)
ret.agregar_nodo(2 * L, 0)
ret.agregar_nodo(L / 2, sqrt(3) / L)
ret.agregar_nodo(3 * L / 2, sqrt(3) / L)

#Barras
props = [20 * cm, 4 * mm, 200 * GPa, 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, -100 * KN)

ret.ensamblar_sistema()
ret.resolver_sistema()
ret.recuperar_fuerzas()

print(ret)