コード例 #1
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 viva
qL_A1 = -qL * (7.5 * m**2)
qL_A2 = -qL * (15 * m**2)

ret.agregar_fuerza(0, 2, qL_A1)
ret.agregar_fuerza(3, 2, qL_A1)
ret.agregar_fuerza(7, 2, qL_A1)
ret.agregar_fuerza(10, 2, qL_A1)

ret.agregar_fuerza(1, 2, qL_A2)
ret.agregar_fuerza(2, 2, qL_A2)
ret.agregar_fuerza(8, 2, qL_A2)
ret.agregar_fuerza(9, 2, qL_A2)

# 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)
コード例 #2
0
#Inicializar modelo
ret = Reticulado()

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

#Barras
props = [20 * cm, 4 * mm, 200 * GPa, 7600 * kg / m**3, 420 * MPa]
ret.agregar_barra(Barra(0, 1, *props))
ret.agregar_barra(Barra(1, 2, *props))
ret.agregar_barra(Barra(3, 4, *props))
ret.agregar_barra(Barra(0, 3, *props))
ret.agregar_barra(Barra(3, 1, *props))
ret.agregar_barra(Barra(1, 4, *props))
ret.agregar_barra(Barra(4, 2, *props))

ret.agregar_restriccion(0, 0, 0)
ret.agregar_restriccion(0, 1, 0)
ret.agregar_restriccion(2, 1, 0)

ret.agregar_fuerza(4, 1, -100 * KN)

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

print(ret)
コード例 #3
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
コード例 #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
    # 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
コード例 #5
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
コード例 #6
0
ファイル: caso_D.py プロジェクト: alejandrobelloc/P2-E4-MCIOC
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
ファイル: caso_L.py プロジェクト: miurrutia2/MCOC2020-P2
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
コード例 #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
    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
コード例 #9
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 = 6.0  *m
    B = 2.0 *m
    H = 100*m
    F1=7.84*KN
    F2=19.9*KN
    F3=23.52*KN

    #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)
    
    ret.agregar_fuerza(0, 2, -F1)
    ret.agregar_fuerza(1, 2, -F1)
    ret.agregar_fuerza(2, 2, -F2)
    ret.agregar_fuerza(3, 2, -F2)
    ret.agregar_fuerza(114, 2, -F1)
    ret.agregar_fuerza(113, 2, -F1)
    ret.agregar_fuerza(111, 2, -F2)
    ret.agregar_fuerza(110, 2, -F2)
    
    for n in range(35):
        nodo=3*n+5
        ret.agregar_fuerza(nodo, 2, -F3)
        ret.agregar_fuerza(nodo+1, 2, -F3)
    
    return ret
コード例 #10
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
コード例 #11
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
コード例 #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
コード例 #13
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 * 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, 0 * 7600 * kg / m**3, 420 * MPa]

    props_C_BIG = [
        16 * cm, 3.5 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa
    ]

    props_C_BIG2 = [
        30 * cm, 3.57 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa
    ]

    props_C_BIG5 = [
        14 * cm, 1.5 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa
    ]

    props_C_BIG4 = [
        26 * cm, 1.4 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa
    ]

    props_elevacion_cruzadas = [
        8 * cm, 2 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa
    ]

    props_elevacion_longitudinales = [
        5.5 * cm, 2 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa
    ]

    props_elevacion_verticales = [
        5.3 * cm, 1 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa
    ]

    props_tablero_inferior_cruzadas = [
        8 * cm, 3 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa
    ]
    props_tablero_superiores_cruzadas = [
        6.9 * cm, 3 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa
    ]

    props_tablero_inferior_horizontales = [
        8 * cm, 1 * mm, 200 * GPa, 0 * 7600 * kg / m**3, 420 * MPa
    ]
    props_tablero_superiores_horizontales = [
        5.5 * cm, 1 * mm, 200 * GPa, 0 * 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)

    q = 400 * kg / m**2
    KGF = 9.8067 * N
    F_int = L * B / 2 * q * KGF
    F_ext = L / 2 * B / 2 * q * KGF

    nodos_cargas = 91
    nodos_exteriores = [0, 45, 46, 91]

    for i in range(nodos_cargas + 1):

        if i in nodos_exteriores:
            ret.agregar_fuerza(i, 2, -F_ext)
        else:
            ret.agregar_fuerza(i, 2, -F_int)

    return ret
コード例 #14
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
    
    q = 400 * kg / m**2
    #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
    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

    F=215./36.*q *1.*m
    ret.agregar_fuerza(0,2,-F/2.)
    ret.agregar_fuerza(1,2,-F/2.)
    for i in range(68): # 6 - 73
        ret.agregar_fuerza(4+i,2,-F)
    ret.agregar_fuerza(73,2,-F)
    ret.agregar_fuerza(2,2,-F/2.)
    ret.agregar_fuerza(3,2,-F/2.)
 
    #Soporte

    #Cuadrático
    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, 0., 420*MPa))
    ret.agregar_barra(Barra(1, 5,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(4, 6,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(5, 7,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(6, 8,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(7, 9,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(8, 10,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(9, 11,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(10, 12,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(11, 13,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(12, 14,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(13, 15,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(14, 16,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(15, 17,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(16, 18,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(17, 19,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(18, 20,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(19, 21,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(20, 22,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(21, 23,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(22, 24,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(23, 25,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(24, 26,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(25, 27,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(26, 28,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(27, 29,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(28, 30,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(29, 31,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(30, 32,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(31, 33,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(32, 34,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(33, 35,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(34, 36,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(35, 37,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(36, 38,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(37, 39,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(38, 40,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(39, 41,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(40, 42,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(41, 43,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(42, 44,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(43, 45,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(44, 46,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(45, 47,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(46, 48,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(47, 49,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(48, 50,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(49, 51,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(50, 52,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(51, 53,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(52, 54,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(53, 55,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(54, 56,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(55, 57,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(56, 58,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(57, 59,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(58, 60,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(59, 61,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(60, 62,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(61, 63,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(62, 64,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(63, 65,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(64, 66,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(65, 67,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(66, 68,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(67, 69,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(68, 70,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(69, 71,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(70, 72,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(71, 73,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(1, 4,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(0, 5,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(6, 5,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(4, 7,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(8, 7,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(6, 9,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(10, 9,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(8, 11,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(12, 11,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(10, 13,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(14, 13,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(12, 15,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(16, 15,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(14, 17,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(18, 17,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(16, 19,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(20, 19,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(18, 21,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(22, 21,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(20, 23,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(24, 23,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(22, 25,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(26, 25,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(24, 27,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(28, 27,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(26, 29,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(30, 29,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(28, 31,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(32, 31,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(30, 33,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(34, 33,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(32, 35,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(36, 35,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(34, 37,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(38, 37,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(36, 39,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(40, 39,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(38, 41,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(42, 41,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(40, 43,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(44, 43,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(42, 45,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(46, 45,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(44, 47,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(48, 47,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(46, 49,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(50, 49,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(48, 51,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(52, 51,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(50, 53,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(54, 53,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(52, 55,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(56, 55,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(54, 57,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(58, 57,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(56, 59,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(60, 59,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(58, 61,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(62, 61,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(60, 63,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(64, 63,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(62, 65,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(66, 65,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(64, 67,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(68, 67,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(66, 69,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(70, 69,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(68, 71,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(72, 71,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(70, 73,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(2, 73,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(3, 72,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(72, 2,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(73, 3,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(74, 75,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(75, 76,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(76, 77,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(77, 78,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(78, 79,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(79, 80,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(80, 81,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(81, 82,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(82, 83,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(83, 84,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(84, 85,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(85, 86,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(86, 87,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(87, 88,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(88, 89,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(89, 90,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(90, 91,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(91, 92,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(92, 93,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(93, 94,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(94, 95,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(95, 96,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(96, 97,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(97, 98,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(98, 99,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(99, 100,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(100, 101,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(101, 102,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(102, 103,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(103, 104,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(104, 105,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(105, 106,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(106, 107,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(107, 108,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(108, 109,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(0, 74,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(1, 74,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(74, 4,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(74, 5,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(75, 4,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(75, 5,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(75, 6,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(75, 7,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(76, 6,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(76, 7,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(76, 8,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(76, 9,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(77, 8,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(77, 9,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(77, 10,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(77, 11,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(78, 10,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(78, 11,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(78, 12,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(78, 13,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(79, 12,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(79, 13,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(79, 14,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(79, 15,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(80, 14,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(80, 15,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(80, 16,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(80, 17,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(81, 16,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(81, 17,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(81, 18,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(81, 19,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(82, 18,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(82, 19,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(82, 20,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(82, 21,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(83, 20,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(83, 21,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(83, 22,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(83, 23,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(84, 22,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(84, 23,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(84, 24,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(84, 25,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(85, 24,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(85, 25,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(85, 26,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(85, 27,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(86, 26,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(86, 27,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(86, 28,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(86, 29,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(87, 28,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(87, 29,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(87, 30,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(87, 31,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(88, 30,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(88, 31,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(88, 32,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(88, 33,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(89, 32,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(89, 33,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(89, 34,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(89, 35,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(90, 34,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(90, 35,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(90, 36,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(90, 37,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(91, 36,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(91, 37,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(91, 38,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(91, 39,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(92, 38,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(92, 39,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(92, 40,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(92, 41,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(93, 40,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(93, 41,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(93, 42,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(93, 43,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(94, 42,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(94, 43,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(94, 44,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(94, 45,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(95, 44,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(95, 45,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(95, 46,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(95, 47,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(96, 46,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(96, 47,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(96, 48,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(96, 49,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(97, 48,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(97, 49,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(97, 50,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(97, 51,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(98, 50,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(98, 51,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(98, 52,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(98, 53,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(99, 52,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(99, 53,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(99, 54,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(99, 55,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(100, 54,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(100, 55,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(100, 56,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(100, 57,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(101, 56,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(101, 57,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(101, 58,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(101, 59,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(102, 58,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(102, 59,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(102, 60,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(102, 61,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(103, 60,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(103, 61,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(103, 62,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(103, 63,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(104, 62,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(104, 63,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(104, 64,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(104, 65,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(105, 64,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(105, 65,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(105, 66,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(105, 67,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(106, 66,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(106, 67,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(106, 68,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(106, 69,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(107, 68,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(107, 69,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(107, 70,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(107, 71,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(108, 70,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(108, 71,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(108, 72,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(108, 73,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(109, 72,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(109, 73,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(109, 2,0.479, 0.001, 200*GPa, 0., 420*MPa))
    ret.agregar_barra(Barra(109, 3,0.479, 0.001, 200*GPa, 0., 420*MPa))
    return ret
コード例 #15
0

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()
f = ret.recuperar_fuerzas()

print(ret)


ver_reticulado_2d(ret, 
    opciones_nodos = {
        "usar_posicion_deformada": True,
        "factor_amplificacion_deformada": 10.,
    },
    opciones_barras = {
        "color_barras_por_fuerza": True,
コード例 #16
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]

    # ------------------------------------
    # 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)

    # ------------------------------------
    # FUERZAS

    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
コード例 #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
ファイル: caso_L.py プロジェクト: jmbarriga1/MCOC2020-P2-3
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.81 * 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
    F1 = q * L * B / 4  # 1/4 de la carga
    F2 = q * L * B / 2  # 1/2 de la carga

    #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(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)

    #Fuerzas en nodos
    ret.agregar_fuerza(0, 2, -F1)  #listo
    ret.agregar_fuerza(1, 2, -F2)  #listo
    ret.agregar_fuerza(2, 2, -F2)  #listo
    ret.agregar_fuerza(3, 2, -F1)  #listo
    ret.agregar_fuerza(7, 2, -F1)  #listo
    ret.agregar_fuerza(8, 2, -F2)  #listo
    ret.agregar_fuerza(9, 2, -F2)  #listo
    ret.agregar_fuerza(10, 2, -F1)  #listo

    return ret
コード例 #19
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
コード例 #20
0
ファイル: caso_L.py プロジェクト: mfgonzale/MCOC2020-P2
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

    #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, 0 * 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)

    ret.agregar_fuerza(4, 2, -F)

    return ret
コード例 #21
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]
コード例 #22
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
コード例 #23
0
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()
fu = ret.recuperar_factores_de_utilizacion(f)

ver_reticulado_3d(ret,
                  opciones_nodos={
                      "usar_posicion_deformada": True,
                      "factor_amplificacion_deformada": 30.,
                  },
コード例 #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
    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