示例#1
0
#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()
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
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]
示例#6
0
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
示例#7
0
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)
示例#8
0
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
示例#9
0
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
示例#10
0
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
示例#12
0
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
示例#14
0
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
示例#15
0
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
示例#17
0
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
示例#18
0
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
示例#20
0
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
示例#21
0
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
示例#22
0
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
示例#23
0
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
示例#24
0
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
示例#25
0
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
示例#26
0
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
示例#27
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 = [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