LINEAS INFLUENCIA

Post on 11-Jul-2016

118 views 11 download

description

Programa Lineas de influencia en python, calcula ecuaciones de una viga hiperestatica continua para una carga puntual, CODIGO EN PYTHON y HP 50g

Transcript of LINEAS INFLUENCIA

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

CODIGO EN PYTHON (V 3.4.3)from tkinter import *from math import *import tkinter.ttk as ttkfrom tkinter import messagebox#FUNCIONES BASICAS:def TRANS_M(M): T=[[0 for i in range(len(M))] for j in range(len(M[0]))] for i in range(len(M)): for j in range(len(M[0])): T[j][i]=M[i][j] return Tdef PRO_ESCALAR(M,E): for i in range(len(M)): for j in range(len(M[0])): M[i][j]=M[i][j]*E return Mdef SUM_MAT(M1,M2): for i in range(len(M1)): for j in range(len(M1[0])): M1[i][j]=M1[i][j]+M2[i][j] return M1def MUL_MAT(M1,M2): M=[[0 for i in range(len(M2[0]))] for j in range(len(M1))] for i in range(len(M1)): for j in range(len(M2[0])): for k in range(len(M2)): M[i][j]=M[i][j]+M1[i][k]*M2[k][j] return Mdef COLMENOS(L,n): for i in range(len(L)): L[i].pop(n-1) return Ldef ELISTP(LISTA,P): S=0 for i in range (len(LISTA)): S=S+LISTA[i]**P return Sdef ELISTCP(LISTA,P): S=0 for i in range (len(LISTA)): S=S+LISTA[i][0]**P return Sdef INV_MAT(M): I=[[1 if i==j else 0 for i in range(len(M))] for j in range(len(M))] for i in range(len(M)): pvt=M[i][i]

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

if pvt==0: pvt_c=i+1 pvt_f=M[pvt_c][i] while pvt_f==0: pvt_c=pvt_c+1 pvt_f=M[pvt_c][i] pvt=pvt_f fila_temp=M[pvt_c] M[pvt_c]=M[i] M[i]=fila_temp fila_temp=I[pvt_c] I[pvt_c]=I[i] I[i]=fila_temp for j in range(len(M)): if i!=j and M[j][i]!=0: F1=[pvt*k for k in I[j]] F2=[-M[j][i]*k for k in I[i]] I[j]=[F1[k]+F2[k] for k in range(len(F1))] F1=[pvt*k for k in M[j]] F2=[-M[j][i]*k for k in M[i]] M[j]=[F1[k]+F2[k] for k in range(len(F1))] return [[I[j][i]/M[j][j] for i in range(len(I))] for j in range(len(I))]def REG3G(L1,L2): MX=[[0 for i in range(4)] for j in range(4)] for i in range(4): for j in range(4): MX[i][j]=ELISTP(L1,j+i) CXY=[] for i in range(4): s=0 for j in range(4): s=s+L2[j][0]*L1[j]**i CXY.append([s]) INV=INV_MAT(MX) COE=MUL_MAT(INV,CXY) return [COE,str(round(COE[3][0],6))+"*X³ + "+str(round(COE[2][0],6))+"*X² + "+str(round(COE[1][0],6))+"*X + "+str(round(COE[0][0],4))]#FUNCIONESdef CORTANTEGRAF(): global TRAEN, DISEN, CORTANTE, TextoCort CORTANTE=Toplevel(MASTER) CORTANTE.title("FUERZA CORTANTE") CORTANTE.config(bg="#0070d6") CORTANTE.geometry("200x200+85+50") Cor=Label(CORTANTE,text="Ingrese Tramo:",bg="#0070d6",fg="white").place(x=0,y=10) TRAEN=Entry(CORTANTE,font=("Times New Roman",12),width=8) TRAEN.place(x=100,y=10)

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

Cor=Label(CORTANTE,text="Ingrese distancia desde el apoyo:",bg="#0070d6",fg="white").place(x=0,y=40) DISEN=Entry(CORTANTE,font=("Times New Roman",12),width=8) DISEN.place(x=100,y=60) BOTGRAFC=Button(CORTANTE,text="GRAFICAR!", font=("Times New Roman",12),width=15,command=Vxx).place(x=30,y=120) BOTECUC=Button(CORTANTE,text="ECUACIONES", font=("Times New Roman",12),width=15,command=ECUCORT).place(x=30,y=155) TextoCort=Text(CORTANTE, width=60, height=10,font=("TIMES NEW ROMAN",12),relief=RAISED,cursor="mouse") TextoCort.place(x=210,y=35) TextoCort.config(state=DISABLED)def ECUCORT(): T=eval(TRAEN.get()) if 0<T<n+2: EQE=[] for i in range(n+1): EQE.append(EQC[i][T-1][1]) TextoCort.config(state=NORMAL) TextoCort.insert(INSERT,"Vx :\n") for i in range(n+1): TextoCort.insert(INSERT,"TRAMO "+str(i+1)+"⇨"+EQE[i]+"\n") TextoCort.insert(INSERT,"-----------------------------------------------------\n") TextoCort.config(state=DISABLED) CORTANTE.geometry("700x200+85+50") else: messagebox.showerror("ERROR", "NO EXISTE EL PUNTO "+str(NM)) MOMENTOS.deiconify()def Vxx(): global T, D, L2, EQC T=eval(TRAEN.get()) D=eval(DISEN.get()) L2=[i*1 for i in L] L2.insert(T,L2[T-1]) print(L2) UNI=[[1 for i in range(T)]] for i in range(n-T+1): UNI[0].append(0) Vx1=[] for i in range(n): Vx2=[] for j in range(4): Vx2.append(MUL_MAT(UNI,R[i][j])[0]) Vx1.append(Vx2) for i in range(T):

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

for j in range(4): Vx1[i][j]=[Vx1[i][j][0]*1-1] Vx3=[] for i in range(4): Vx4=Vx1[T-1][i][0]*1 Vx3.append([Vx4]) for j in range(4): Vx3[j]=[Vx3[j][0]+1] Vx1.insert(T,Vx3) print("Vx",Vx1) EQC=[] X1=[] for i in range(n): X2=[] for j in range(4): X2.append(x[i][j]*1) X1.append(X2) X1.insert(T-1,X1[T-1]) for i in range(n+1): EQ1=[] for j in range(n+1): EQ1.append(REG3G(X1[i],Vx1[i])) EQC.append(EQ1) GRAFICARCOR()def GRAFICARCOR(): global TRAEN, DISEN, EQC if 0<T<n+1: EQ=[] EQE=[] for i in range(n+1): EQ.append(EQC[i][T-1][0]) EQE.append(EQC[i][T-1][1]) print("COEF ECU",EQ) Xmin=0 Xmax=L2 PX=1 IncX=[(Xmax[i]-Xmin)/(Xmax[i]*INCpx) for i in range(n)] Ymin=-0.5 Ymax=0.5 Grafico.delete("all") Grafico.create_line(50,200,1125,200,fill="white") Grafico.create_polygon(50,200,35,220,65,220,fill="white") Grafico.create_oval(35,250,65,280,outline="yellow") Grafico.create_text(50,265,text="1",font=("TIMES NEW ROMAN",15),fill="white") Grafico.create_line(50,285,50,305,fill="cyan") Grafico.create_line(50,295,1125,295,fill="cyan") s1=0 for i in range(n): Grafico.create_polygon(50+s1+L[i]*INCpx,200,

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

35+s1+L[i]*INCpx,220, 65+s1+L[i]*INCpx,220,fill="white") Grafico.create_oval(35+s1+L[i]*INCpx,250,65+s1+L[i]*INCpx,280,outline="yellow") Grafico.create_text(50+s1+L[i]*INCpx,265,text=str(i+2),font=("TIMES NEW ROMAN",15),fill="white") Grafico.create_line(50+s1+L[i]*INCpx,285,50+s1+L[i]*INCpx,305,fill="cyan") Grafico.create_text(50+s1+L[i]*INCpx/2,300,text=str(L[i])+"m",font=("TIMES NEW ROMAN",15),fill="cyan" ) s1=s1+L[i]*INCpx s=0 for i in range(T-1): XYlist=[] for j in range(0,int(L2[i]*INCpx+1),PX): X=Xmin+j*IncX[1] #Xlist.append(X) Y=EQ[i][3][0]*X**3+EQ[i][2][0]*X**2+EQ[i][1][0]*X+EQ[i][0][0] #Ylist.append(Y) Yj=125+(Y-Ymax)*150/(Ymin-Ymax) XYlist.append((j+50+s,Yj)) Grafico.create_polygon(XYlist,50+s,200,50+s+L2[i]*INCpx,200,fill="#da72f6",smooth=0,stipple="gray12") Grafico.create_line(XYlist,fill="#da72f6",smooth=1) s=s+L2[i]*INCpx XYlist=[] for j in range(0,int(D*INCpx+1),PX): X=Xmin+j*IncX[1] #Xlist.append(X) Y=EQ[T][3][0]*X**3+EQ[T-1][2][0]*X**2+EQ[T-1][1][0]*X+EQ[T-1][0][0] #Ylist.append(Y) Yj=125+(Y-Ymax)*150/(Ymin-Ymax) XYlist.append((j+50+s,Yj)) Grafico.create_polygon(50+s+D*INCpx,200,XYlist,fill="#da72f6",smooth=0,stipple="gray12") Grafico.create_line(XYlist,fill="#da72f6",smooth=1) s=s+D*INCpx for j in range(0,int((L2[T]-D)*INCpx+1),PX): X=D+j*IncX[1] #Xlist.append(X) Y=EQ[T][3][0]*X**3+EQ[T][2][0]*X**2+EQ[T][1][0]*X+EQ[T][0][0] #Ylist.append(Y)

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

Yj=125+(Y-Ymax)*150/(Ymin-Ymax) XYlist.append((j+50+s,Yj)) Grafico.create_polygon(50+s+(L[T-1]-D)*INCpx,200,XYlist,fill="#da72f6",smooth=0,stipple="gray12") Grafico.create_line(XYlist,fill="#da72f6",smooth=1) s=s+(L2[T-1]-D)*INCpx for i in range(n-T): XYlist=[] for j in range(0,int(L[T+i]*INCpx+1),PX): X=Xmin+j*IncX[1] #Xlist.append(X) Y=EQ[T+i+1][3][0]*X**3+EQ[T+i+1][2][0]*X**2+EQ[T+i+1][1][0]*X+EQ[T+i+1][0][0] #Ylist.append(Y) Yj=125+(Y-Ymax)*150/(Ymin-Ymax) XYlist.append((j+50+s,Yj)) Grafico.create_polygon(XYlist,50+s,200,50+s+L2[T+i+1]*INCpx,200,fill="#da72f6",smooth=0,stipple="gray12") Grafico.create_line(XYlist,fill="#da72f6",smooth=1) s=s+L2[T+i+1]*INCpx else: messagebox.showerror("ERROR", "NO EXISTE TRAMO "+str(T)) MOMENTOS.deiconify()def MOMENTOSGRAF(): global MOMEN, MOMENTOS, TextoMom MOMENTOS=Toplevel(MASTER) MOMENTOS.title("MOMENTOS") MOMENTOS.config(bg="#0070d6") MOMENTOS.geometry("200x200+85+50") MOM=Label(MOMENTOS,text="INGRESE NUMERO DE APOYO:",bg="#0070d6",fg="white").place(x=0,y=10) MOMEN=Entry(MOMENTOS,font=("Times New Roman",12),width=15) MOMEN.place(x=30,y=70) BOTGRAFM=Button(MOMENTOS,text="GRAFICAR!", font=("Times New Roman",12),width=15,command=GRAFICARMOMS).place(x=30,y=120) BOTECUM=Button(MOMENTOS,text="ECUACIONES", font=("Times New Roman",12),width=15,command=ECUMOMS).place(x=30,y=155) TextoMom=Text(MOMENTOS, width=60, height=10,font=("TIMES NEW ROMAN",12),relief=RAISED,cursor="mouse") TextoMom.place(x=210,y=35) TextoMom.config(state=DISABLED)def ECUMOMS(): NM=eval(MOMEN.get()) if 0<NM<n+2: EQE=[] for i in range(n): EQE.append(EQMs[i][NM-1][1]) TextoMom.config(state=NORMAL)

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

TextoMom.insert(INSERT,"REACCIÓN "+str(NM)+":\n") for i in range(n): TextoMom.insert(INSERT,"TRAMO "+str(i+1)+"⇨"+EQE[i]+"\n") TextoMom.insert(INSERT,"-----------------------------------------------------\n") TextoMom.config(state=DISABLED) MOMENTOS.geometry("700x200+85+50") else: messagebox.showerror("ERROR", "NO EXISTE EL PUNTO "+str(NM)) MOMENTOS.deiconify()def ECUREAC(): REACCIONES.geometry("700x200+85+50") NR=eval(REAEN.get()) EQE=[] for i in range(n): EQE.append(EQs[i][NR-1][1]) TextoReac.config(state=NORMAL) TextoReac.insert(INSERT,"REACCIÓN "+str(NR)+":\n") for i in range(n): TextoReac.insert(INSERT,"TRAMO "+str(i+1)+"⇨"+EQE[i]+"\n") TextoReac.insert(INSERT,"-----------------------------------------------------\n") TextoReac.config(state=DISABLED)def REACCIONESGRAF(): global REAEN, REACCIONES, TextoReac REACCIONES=Toplevel(MASTER) REACCIONES.title("REACCIONES") REACCIONES.config(bg="#0070d6") REACCIONES.geometry("200x200+85+50") REA=Label(REACCIONES,text="INGRESE NUMERO DE APOYO: ECUACIONES:",bg="#0070d6",fg="white").place(x=0,y=10) REAEN=Entry(REACCIONES,font=("Times New Roman",12),width=15) REAEN.place(x=30,y=70) BOTGRAF=Button(REACCIONES,text="GRAFICAR!", font=("Times New Roman",12),width=15,command=GRAFICARREAC).place(x=30,y=120) BOTECU=Button(REACCIONES,text="ECUACIONES", font=("Times New Roman",12),width=15,command=ECUREAC).place(x=30,y=155) TextoReac=Text(REACCIONES, width=60, height=10,relief=RAISED,cursor="mouse") TextoReac.place(x=210,y=35) TextoReac.config(state=DISABLED)def GRAFICARMOMS(): global MOMEN, EQE, NM NM=eval(MOMEN.get()) if 0<NM<n+2:

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

EQ=[] EQE=[] for i in range(n): EQ.append(EQMs[i][NM-1][0]) EQE.append(EQMs[i][NM-1][1]) Xmin=0 Xmax=L PX=1 IncX=[(Xmax[i]-Xmin)/(Xmax[i]*INCpx) for i in range(n)] Ymin=-0.3 Ymax=0.3 Grafico.delete("all") Grafico.create_line(50,200,1125,200,fill="white") Grafico.create_polygon(50,200,35,220,65,220,fill="white") Grafico.create_oval(35,250,65,280,outline="yellow") Grafico.create_text(50,265,text="1",font=("TIMES NEW ROMAN",15),fill="white") Grafico.create_line(50,285,50,305,fill="cyan") Grafico.create_line(50,295,1125,295,fill="cyan") s1=0 for i in range(n): Grafico.create_polygon(50+s1+L[i]*INCpx,200, 35+s1+L[i]*INCpx,220, 65+s1+L[i]*INCpx,220,fill="white") Grafico.create_oval(35+s1+L[i]*INCpx,250,65+s1+L[i]*INCpx,280,outline="yellow") Grafico.create_text(50+s1+L[i]*INCpx,265,text=str(i+2),font=("TIMES NEW ROMAN",15),fill="white") Grafico.create_line(50+s1+L[i]*INCpx,285,50+s1+L[i]*INCpx,305,fill="cyan") Grafico.create_text(50+s1+L[i]*INCpx/2,300,text=str(L[i])+"m",font=("TIMES NEW ROMAN",15),fill="cyan" ) s1=s1+L[i]*INCpx s=0 for i in range(n): XYlist=[] for j in range(0,int(L[i]*INCpx+1),PX): X=Xmin+j*IncX[1] #Xlist.append(X) Y=EQ[i][3][0]*X**3+EQ[i][2][0]*X**2+EQ[i][1][0]*X+EQ[i][0][0] #Ylist.append(Y) Yj=125+(Y-Ymax)*150/(Ymin-Ymax) XYlist.append((j+50+s,Yj))

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

Grafico.create_polygon(XYlist,50+s,200,50+s+L[i]*INCpx,200,fill="#da72f6",smooth=0,stipple="gray12") Grafico.create_line(XYlist,fill="#da72f6",smooth=1) s=s+L[i]*INCpx else: messagebox.showerror("ERROR", "NO EXISTE EL PUNTO "+str(NM)) MOMENTOS.deiconify()def GRAFICARREAC(): global NR, CONT NR=eval(REAEN.get()) if 0<NR<n+2: EQ=[] for i in range(n): EQ.append(EQs[i][NR-1][0]) Xmin=0 Xmax=L PX=1 IncX=[(Xmax[i]-Xmin)/(Xmax[i]*INCpx) for i in range(n)] Ymin=-0.5 Ymax=0.5 Grafico.delete("all") Grafico.create_line(50,200,1125,200,fill="white") Grafico.create_polygon(50,200,35,220,65,220,fill="white") Grafico.create_oval(35,250,65,280,outline="yellow") Grafico.create_text(50,265,text="1",font=("TIMES NEW ROMAN",15),fill="white") Grafico.create_line(50,285,50,305,fill="cyan") Grafico.create_line(50,295,1125,295,fill="cyan") s1=0 for i in range(n): Grafico.create_polygon(50+s1+L[i]*INCpx,200, 35+s1+L[i]*INCpx,220, 65+s1+L[i]*INCpx,220,fill="white") Grafico.create_oval(35+s1+L[i]*INCpx,250,65+s1+L[i]*INCpx,280,outline="yellow") Grafico.create_text(50+s1+L[i]*INCpx,265,text=str(i+2),font=("TIMES NEW ROMAN",15),fill="white") Grafico.create_line(50+s1+L[i]*INCpx,285,50+s1+L[i]*INCpx,305,fill="cyan") Grafico.create_text(50+s1+L[i]*INCpx/2,300,text=str(L[i])+"m",font=("TIMES NEW ROMAN",15),fill="cyan" ) s1=s1+L[i]*INCpx s=0 for i in range(n): XYlist=[]

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

for j in range(0,int(L[i]*INCpx+1),PX): X=Xmin+j*IncX[1] #Xlist.append(X) Y=EQ[i][3][0]*X**3+EQ[i][2][0]*X**2+EQ[i][1][0]*X+EQ[i][0][0] #Ylist.append(Y) Yj=125+(Y-Ymax)*150/(Ymin-Ymax) XYlist.append((j+50+s,Yj)) Grafico.create_polygon(50+s+L[i]*INCpx,200,50+s,200,XYlist,fill="#da72f6",smooth=0,stipple="gray12") Grafico.create_line(XYlist,fill="#da72f6",smooth=1) s=s+L[i]*INCpx else: messagebox.showerror("ERROR", "NO EXISTE EL PUNTO "+str(NR)) REACCIONES.deiconify()def ACEPTARA(): MASTER.deiconify() Autor.withdraw()def AUTOR(): Autor.deiconify() MASTER.withdraw()def CP(): global x, n, RP, INCpx,L,EQs,EQMs,R,Mx L=eval(LdisEN.get()) n=len(L) if n>1: LT=ELISTP(L,1) MVC=[[0 for i in range(n)] for j in range(n-1)] for i in range(n-1): MVC[i][i:i+2]=[L[i],2*(L[i]+L[i+1]),L[i+1]] MVC=COLMENOS(COLMENOS(MVC,1),n) x=[] for i in range(n): s=0 x1=[] for j in range(4): x1.append(s) s=s+L[i]/3 x.append(x1) R=[] M=[] Vx=[] Mx=[] MVC1=INV_MAT(MVC) for i in range(n-1): #i contador de tramos M1=[] CM=[[0] for k in range(n-1)] for j in range(2):

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

if i==0: CM[0][0]=x[i][j+1]*(L[i]-x[i][j+1])*(L[i]+x[i][j+1])/(L[i]) CM1=MUL_MAT(MVC1,CM) M1.append(CM1) elif i!=0 and i!=(n-1): CM[i-1][0]=x[i][j+1]*(L[i]-x[i][j+1])*(2*L[i]-x[i][j+1])/(L[i]) CM[i][0]=x[i][j+1]*(L[i]-x[i][j+1])*(L[i]+x[i][j+1])/(L[i]) CM1=MUL_MAT(MVC1,CM) M1.append(CM1) Mx.append(M1) M1=[] CM=[[0] for k in range(n-1)] for j in range(2): CM[n-2][0]=x[n-1][j+1]*(L[n-1]-x[n-1][j+1])*(2*L[n-1]-x[n-1][j+1])/(L[n-1]) CM1=MUL_MAT(MVC1,CM) M1.append(CM1) Mx.append(M1) for i in range(n): #CONTADOR DE TRAMOS for j in range(2): #CONTADOR DE PUNTOS Mx[i][j].append([0]) Mx[i][j].insert(0,[0]) for i in range(n): Zero=[[0] for i in range(n+1)] Mx[i].insert(0,Zero) Mx[i].append(Zero) CR=[] for i in range(n): #CONTADOR DE TRAMOS R2=[] for j in range(4):#CONTADOR DE PUNTOS R1=[] for k in range(n): R1.append([(Mx[i][j][k][0]-Mx[i][j][k+1][0])/L[k]]) R1.append([0]) R1.insert(0,[0]) R2.append(R1) CR.append(R2)

MCM=[] for i in range(n): #CONTADOR DE TRAMOS MCM1=[] for j in range(4): #CONTADOR DE PUNTOS MCM2=[[0] for i in range(n+1)] MCM2[i][0]=(1-x[i][j]/L[i]) MCM2[i+1][0]=x[i][j]/L[i] MCM1.append(MCM2)

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

MCM.append(MCM1)

for i in range(n): #contador de tramos Ra=[] for j in range(4):#contador de puntos Ra1=[] for k in range(n+1): Rc=CR[i][j][k+1][0]-CR[i][j][k][0]+MCM[i][j][k][0] Ra1.append([Rc]) Ra.append(Ra1) R.append(Ra) RP=[] MP=[] for i in range(n): RP.append(TRANS_M(R[i])) for i in range(n): MP.append(TRANS_M(Mx[i])) INCpx=1075/LT Grafico.delete("all") Grafico.create_line(50,200,1125,200,fill="white", width=2) Grafico.create_polygon(50,200,35,220,65,220,fill="white") Grafico.create_oval(35,250,65,280,outline="yellow") Grafico.create_text(50,265,text="1",font=("TIMES NEW ROMAN",15),fill="white") Grafico.create_line(50,285,50,305,fill="cyan") Grafico.create_line(50,295,1125,295,fill="cyan") s1=0 for i in range(n): Grafico.create_polygon(50+s1+L[i]*INCpx,200, 35+s1+L[i]*INCpx,220, 65+s1+L[i]*INCpx,220,fill="white") Grafico.create_oval(35+s1+L[i]*INCpx,250,65+s1+L[i]*INCpx,280,outline="yellow") Grafico.create_text(50+s1+L[i]*INCpx,265,text=str(i+2),font=("TIMES NEW ROMAN",15),fill="white") Grafico.create_line(50+s1+L[i]*INCpx,285,50+s1+L[i]*INCpx,305,fill="cyan") Grafico.create_text(50+s1+L[i]*INCpx/2,300,text=str(L[i])+"m",font=("TIMES NEW ROMAN",15),fill="cyan" ) s1=s1+L[i]*INCpx EQs=[] EQMs=[] print("x=",x) print("REACCIONES=",R) print("MOMENTOS=",Mx) for i in range(n):

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

EQ1=[] for j in range(n+1): EQ1.append(REG3G(x[i],RP[i][j])) EQs.append(EQ1) for i in range(n): EQ1=[] for j in range(n+1): EQ1.append(REG3G(x[i],MP[i][j])) EQMs.append(EQ1) else: messagebox.showerror("ERROR", "INGRESE NUMERO DE TRAMOS MAYORES A 2")

#VENTANAS #VENTANA MASTER:MASTER = Tk() #VENTANAS SECUNDARIAS:Autor=Toplevel(MASTER)DATOS=Toplevel(MASTER)RESULT=Toplevel(MASTER)DIBUJO=Toplevel(MASTER)UNID=Toplevel(MASTER)PRESIC=Toplevel(MASTER)VXMX=Toplevel(MASTER)#CONFIGURACIONES DE VENTANASMASTER.config(bg="#0070d6")MASTER.title(" LINEAS DE INFUENCIA")Autor.config(bg="#0070d6")Autor.title("AUTOR")RESULT.config(bg="#0070d6")RESULT.title("RESULTADOS")DIBUJO.config(bg="#0070d6")DIBUJO.title("CONFIGURACION DE DIBUJO")UNID.config(bg="#0070d6")UNID.title("UNIDADES")PRESIC.config(bg="#0070d6")PRESIC.title("PRESICION")VXMX.config(bg="#0070d6")VXMX.title("Fuerza Cort. Mom. Flector")DATOS.config(bg="#0070d6")DATOS.title("DATOS")#DATOS DE LA PANTALLAXM=int((MASTER.winfo_screenwidth()-1200)/2)YM=int((MASTER.winfo_screenheight()-762)/2)Xv=int((MASTER.winfo_screenwidth()-300)/2)Xv1=int((MASTER.winfo_screenwidth()-1030)/2)Yv=int((MASTER.winfo_screenheight()-300)/2)Yv1=int((MASTER.winfo_screenheight()-630)/2)#CONFIGURANDO TAMAÑO DE PANTALLA

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

MASTER.geometry("1200x680+"+str(XM)+"+"+str(YM))DATOS.geometry("500x500")Autor.geometry("100x100")RESULT.geometry("100x100")DIBUJO.geometry("100x100")UNID.geometry("100x100")PRESIC.geometry("100x100")VXMX.geometry("100x100")MASTER.resizable(0,0)Autor.resizable(0,0)Autor.protocol("WM_DELETE_WINDOW","onexit")Autor.geometry("300x300+"+str(Xv)+"+"+str(Yv))#VENTANA MASTER:#MENUS:menubar = Menu(MASTER)Filemenu = Menu(menubar, tearoff=0)Filemenu.add_command(label="Salir", command=MASTER.destroy)menubar.add_cascade(label="Archivo", menu=Filemenu)Ayuda = Menu(menubar, tearoff=0)Ayuda.add_command(label="Acerca de...", command=AUTOR)menubar.add_cascade(label="Ayuda",menu=Ayuda,underline=1)MASTER.config(menu=menubar)#TITULOS Y DATOS EN AUTOR:Datoslbl2=Label(Autor, text="LINEAS DE INFLUENCIA", font=("TIMES NEW ROMAN",19),bg="#0070d6",fg="white").place(x=8,y=5)Datoslbl=Label(Autor, text="R E S I S T E N C I A D E M A T E R I A L E S I I\n\n\n\n\n\nP o r : D e n n i s V e n t u r a H u a m a n\n\n\n\n\nCel: 948148655\nCorreo: vehude_gem@hotmail.com\n INGENIERIA CIVIL\nUNIVERSIDAD NACIONAL DE HUANCAVELICA", bg="#0070d6", fg="white").place(x=20, y=50)SalirAut=Button(Autor,text="ACEPTAR➯", font=("ARIAL",14), command=ACEPTARA).place(x=100,y=170)#WIDGETS EN MASTER:Ldis=Label(MASTER, text="Ingrese Longitud de tramos[L1,L2,...Ln]:", font=("Times New Roman",12),bg="#0070d6", fg="white").place(x=10,y=50)LdisEN=Entry(MASTER,font=("Times New Roman",12),width=35)LdisEN.place(x=10,y=80)LdisEN.insert(0,[])#BOTONES:TITLE=Label(MASTER, text="LINEAS DE INFLUENCIA",font=("Times New Roman",40),bg="#0070d6", fg="white").place(x=450,y=40)Calc=Button(MASTER, text="SIMULAR",font=("Times New Roman",20),width=10, command=CP).place(x=500,y=150)REA=Button(MASTER, text="REACCIONES",font=("Times New Roman",15), command=REACCIONESGRAF).place(x=200,y=630)MOM=Button(MASTER, text="MOMENTOS",font=("Times New Roman",15), command=MOMENTOSGRAF).place(x=500,y=630)

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

CORT=Button(MASTER, text="F. CORTANTE",font=("Times New Roman",15), command=CORTANTEGRAF).place(x=800,y=630)#CREANDO ESPACIO DE GRAFICO:Grafico=Canvas(MASTER,bg="black",width=1175,height=400)Grafico.place(x=10,y=230)#ESCONDIENDO VENTANASMASTER.withdraw()RESULT.withdraw()DIBUJO.withdraw()UNID.withdraw()PRESIC.withdraw()VXMX.withdraw()DATOS.withdraw()#CONGELANDO MASTERMASTER.mainloop

CODIGO EN HP (RPL)

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

EJEMPLOS

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

ANALIZAR LA SIGUIENTE VIGA:

1

x

4m 6m 8m 5m

SOLUCION CON EL PROGRAMA HECHO EN PYTHON:

1. PRESENTACION DEL SOFTWARE:

2. Ingrese la lista de Longitudes de tramos de la viga y hacer clic en SIMULAR:

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

3. Te grafica la viga, con sus respectivas acotaciones:

4. Presionar en cualquiera de las opciones de abajo:5. INGRESANDO A REACCIONES: Al selecciona REACCIONES, se abrirá una

ventana, la cual te pedirá insertar el número de apoyo la cual quieres analizar

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

6. GRAFICAR, y MOSTRAR ECUACIONES DE LA REACCIONES EN LOS APOYOS:

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

7. GRAFICAR Y MOSTRAR LAS ECUACIONES DE LOS MOMENTOS EN LOS APOYOS:

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

8. GRAFICAR Y MOSTRAR LAS ECUACIONES DE LA FUERZA CORTANTE EN UN PUNTO:

9. ERRORES, Al ingresar mal los datos, te saldrá algunos errores:

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

SOLUCION CON EL PROGRAMA LINF2.1 PARA HP50g:

1. PRESENTACION DEL PROGRAMA LINF2.1:

2. Ingrese Número de tramos de la viga T=4

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

3. Ingresar las longitudes de los tramos: {4 6 8 5}

4. Te muestra las opciones:

5. En la Opcion 1 se encuentra la matriz de Viga continua [VC]:

6. En la opcion 2 se encuentra la Matriz de Carga Movil [CM]:

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

7. En la opcion 3 te muestra la matriz de momentos [M]:

8. En la Opción 4 se encuentra de Reacciones

9. Al presionar la opcion 5, te pide ingresar el tramo y la distancia del apoyo: {T D}

RESISTENCIA DE MATERIALES II

UNIVERSIDAD NACIONAL DE HUANCAVELICAFACULTAD DE CIENCIAS DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA CIVIL

10. Esta te dará como resultado las ecuaciones y su respectiva tabulación.

11. Al igual que para el Vx, en la opcion 6 te pedirá el tramo y la distancia: {T D}

RESISTENCIA DE MATERIALES II