# viga simplemente apoyada
#
# este ejemplo trata vigas con apoyos simples A y B separados L
# y una sola carga P a L1 del apoyo A 
# se plantean las ecuaciones de 
# Sumatorias de Fx
# Sumatoria de momentos respecto de A
# Sumatoria d emomentos respecto de B
# se asume positiva una terna dextrogira
# por ultimo se pide cantidad de puntos en los cuales calcular el 
# diagrama de esfuerzo de corte


import os
os.system("clear")
# aseguro borrar variables y fijar tipo
L=L1=Px=Py=0.0
flag=0
#pido datos
print("Los Datos deben ingresarse con signos segun terna dextrogira")
print
dum=input("Longitud de la viga:")
L=float(dum)
dum=input("Ingrese la componente horizontal de la carga:")
Px=float(dum)
dum=input("Ingrese la componente vertical de la carga:")
Py=float(dum)
dum=input("Ingrese la distancia a A de la carga:")
L1=float(dum)

# valido entradas

if Px==0.0 and Py==0.0:
    print("Error, carga nula")
    flag=1
if L<=0.0:
    print("Error, la longtud de la viga no puede seer 0")
    flag=1
if L1>L or L1<0.0:
    print("Error, la carga esta fuera de la viga")
    flag=1

# si la validacion dia bien, resuelvo
if flag==0:
    Rax=-Px
    Rby=-Py*L1/L
    Ray=-Py*(L-L1)/L

    print("Rax:",Rax)
    print("Rby:",Rby)
    print("Ray:",Ray)
    
# diagrama de corte
    n=int(input("Cuantas divisiones:"))

    for i in range(n+1):
        x=L/n*i
        if x<L1:
            corte=Ray
        if x>=L1:
            corte=Ray+Py
        print("Posicion",x,"Corte",corte)
    
exit()