///////H&WLabs////// //DESARROLLADOR: Hebert PV //PROGRAMA : vigaPRO v1.1 // CARACTERISTICAS: //1.- Calculo de vigas Hiperestaticas. //2.- Calculo re reacciones, momento felctor y ezfuerzo cortante. // Se respeta derechos del autor, ultimamente mal intensionados publican los programas con sus nombres, // el programa es de uso personal no se puede editar, copiar sin permiso del AUTOR: // PARA MAS PROGRAMAS VISITA LA PAGINA: https://www.facebook.com/HPPRIME-programar-HWLabs-1702068820036255/ #pragma mode(separator(.,;)integer(h32)) vigaPRO();VIEW "VigaPRO",START()BEGIN startview(6,1);vigaPRO();END; ICON AA 89504E470D0A1A0A0000000D494844520000000A0000000A0100000000A549F210000 0000274524E5300010194FDAE000000184944415478017DC2010D0000008320FBA77A 336D7006EE0C075211778635152C0000000049454E44AE426082; EXPORT vigaPRO()BEGIN LOCAL MENU,menu1,menu2,menu3,k,i; LOCAL NODOS,TA,FUERZA1,FUERZA,BARRAS; RECT(); WAIT(0.5);FOR i FROM 1 TO 25 DO BLIT_P(G0,"AA"); FILLPOLY_P({0,0,320,0,320,240,0,240},#FFFFFFh,255-(10.2*i)); TEXTOUT_P(("Cargando... "),119,155,1,#2E64FEh,100,#FFFFFFh); TEXTOUT_P((2*i)+("%"),171,155,1,#2E64FEh,100,#FFFFFFh); RECT_P(105,170,206,174,0,#FFFFFFh); RECT_P(106,171,106+2*i,173,#40FF00h); WAIT(0.01); END; FOR i FROM 1 TO 25 DO BLIT_P(G0,"AA"); FILLPOLY_P({0,0,320,0,320,240,0,240},#FFFFFFh,10.2*(i)); TEXTOUT_P(("Cargando... "),119,155,1,#2E64FEh,100,#FFFFFFh); TEXTOUT_P((50+2*i)+("%"),171,155,1,#2E64FEh,100,#FFFFFFh); RECT_P(105,170,206,174,0,#FFFFFFh); RECT_P(106,171,155+2*i,173,#40FF00h); WAIT(0.01); END; RECT_P(104,154,207,175,#FFFFFFh); TEXTOUT_P(" [PRESIONE AQUI O ENTER PARA CONTINUAR]",10,180,2,#228B22h,300,#FFFFFFh); WAIT(-1); RECT(); REPEAT
CHOOSE(MENU," vigaPRO v1.1 H&WLabs ",".- Datos iniciales ",".- Datos de nodos",".Datos de fuerzas ",".- Datos de barras",".- Diagrama de viga",".- ✍ Calcular",".- Diagrama MF Y EC",".- Acerca del autor",".- SALIR"); IF MENU==1 THEN INPUT({{L,[0],{50,30,1}},{A,[0],{50,30,2}},{C,[0],{50,30,3}},{F,{"kN-m","N-m","Tonm","kg-m","libras-pie"},{50,30,4}}},"DATOS INICIALES",{"Longitud Total :","Nº de Nodos :","Nº Fuerzas :","Unidad de Medida :"},{"Ingrese Longitud de viga","Ingrese viga ","Ingrese numero de nodos","Ingrese numero Fuerzas"}); M4:=MAKEMAT(0,A-1,5); FOR k FROM 1 TO A-1 DO M4(k,3):=1; M4(k,5):=1; END; ELSE IF MENU==2 THEN NODOS:=MAKEMAT(0,A,2); FOR k FROM 1 TO A DO LOCAL EJEX:=0,APY:=1; MSGBOX("DATO PARA NODO "+k); INPUT({{EJEX,[0],{50,30,2}},{APY,{"LIBRE","EMPOTRADO","FIJO","MOVIL","RO TULA"},{50,30,3}}},"NODO "+k,{"Posicion X :","Tipo de Nodo :"},{"Ingrese la posicion en eje x"}); IF APY=1 THEN TA:=3; END; IF APY=2 THEN TA:=0; END; IF APY=3 THEN TA:=1; END; IF APY=4 THEN TA:=2; END; IF APY=5 THEN TA:=4; END; NODOS(k,1):=EJEX; NODOS(k,2):=TA; END; M5:=NODOS; ELSE IF MENU==3 THEN IF 1<=C THEN FUERZA1:=MAKEMAT(0,C,3);L0:={}; for k from 1 to A do L0(k):=k; end; FOR k FROM 1 TO C DO LOCAL fy:=0,aP9:=0,APY:=1; MSGBOX("INGRESAR FUERZAS "+k); INPUT({{fy,[0],{50,30,2}},{aP9,[0],{50,30,3}},{APY,L0,{50,30,4}}},"FUERZAS "+k,{"Fuerza Y :","Momento :","Escoja Nodo :"},{"Ingrese el valor de la FUERZA Y","Ingrese el valor del momento","Escoja el Nodo de Aplicacion"});
FUERZA1(k,1):=APY; FUERZA1(k,2):=fy; FUERZA1(k,3):=aP9; END; M2:=FUERZA1; M1:=FUERZA1; ELSE FUERZA1:=[[1,0,0]]; M2:=FUERZA1; M1:=FUERZA1; MSGBOX("NO HAY FUERZAS QUE INTRODUCIR SEGUN LOS DATOS INICIALES"); END; ELSE IF MENU==4 THEN EDITMAT(M4,{"PROPIEDADES DE CADA BARRA",{"B-1","B-2","B-3","B-4","B5","B-6","B-7","B-8","B-9","B-10","B-11","B-12","B-13","B-14","B-15","B-16"," "},{"q1","q2","ELASTICID","AREA","INERCIA"," "}}); ELSE IF MENU==5 THEN RECT(); DIMGROB_P(G1,320,240); RECT(G1); DIMGROB_P(G2,320,240); RECT(G2); DIMGROB_P(G4,320,240); RECT(G4); RECT_P(G1,0,0,320,18,#084B8Ah); TEXTOUT_P("Viga H free v1.1",G1,110,1,3,#FFFFFFh,100); RECT_P(G4,0,0,320,18,#084B8Ah); TEXTOUT_P("Viga H free v1.1",G4,110,1,3,#FFFFFFh,100); RECT_P(G2,1,50,318,230,#000000h); RECT_P(G1,1,20,318,238,#000000h); LINE(G2,-13,-3,13,-3,#D8D8D8h); LINE(G2,-13,-3.1,13,-3.1,#D8D8D8h); LINE(G2,-13,-3.2,13,-3.2,#D8D8D8h); LINE(G4,-13,-3,13,-3,#424242h); LINE(G4,-13,-3.1,13,-3.1,#424242h); LINE(G4,-13,-3.2,13,-3.2,#424242h); LOCAL k; FOR k FROM 1 TO A DO G:=M5(k,1); IF M5(k,2)=1 THEN TEXTOUT("△",G2,12.3-26+G*(26/L),-2.7,4,#D8D8D8h,100); TEXTOUT("▃▃",G2,12.4-26+G*(26/L),-3.5,1,#D8D8D8h,12); TEXTOUT("△",G4,12.3-26+G*(26/L),-2.7,4,#2E9AFEh,100); TEXTOUT("▃▃",G4,12.4-26+G*(26/L),-3.5,1,#2E9AFEh,12); TEXTOUT("△",G6,12.3-26+G*(26/L),0,4,#E6E6E6h,100); TEXTOUT("▃▃",G6,12.4-26+G*(26/L),-0.8,1,#E6E6E6h,12);
TEXTOUT("△",G3,12.3-26+G*(26/L),0,4,#E6E6E6h,100); TEXTOUT("▃▃",G3,12.4-26+G*(26/L),-0.8,1,#E6E6E6h,12); END; IF M5(k,2)=2 THEN TEXTOUT("△",G2,-13.7+G*(26/L),-2.7,5,#D8D8D8h,100); TEXTOUT("•",G2,-13.5+G*(26/L),-3.9,1,#0080FFh,100); TEXTOUT("•",G2,-13.2+G*(26/L),-3.9,1,#0080FFh,100); TEXTOUT("•",G2,-12.9+G*(26/L),-3.9,1,#0080FFh,100); TEXTOUT("△",G4,-13.7+G*(26/L),-2.7,5,#2E9AFEh,100); TEXTOUT("•",G4,-13.5+G*(26/L),-3.9,1,#2E9AFEh,100); TEXTOUT("•",G4,-13.2+G*(26/L),-3.9,1,#2E9AFEh,100); TEXTOUT("•",G4,-12.9+G*(26/L),-3.9,1,#2E9AFEh,100); TEXTOUT("△",G6,-13.9+G*(26/L),0,5,#E6E6E6h,100); TEXTOUT("•",G6,-13.7+G*(26/L),-1.2,1,#E6E6E6h,100); TEXTOUT("•",G6,-13.4+G*(26/L),-1.2,1,#E6E6E6h,100); TEXTOUT("•",G6,-13.1+G*(26/L),-1.2,1,#E6E6E6h,100); TEXTOUT("△",G3,-13.9+G*(26/L),0,5,#E6E6E6h,100); TEXTOUT("•",G3,-13.7+G*(26/L),-1.2,1,#E6E6E6h,100); TEXTOUT("•",G3,-13.4+G*(26/L),-1.2,1,#E6E6E6h,100); TEXTOUT("•",G3,-13.1+G*(26/L),-1.2,1,#E6E6E6h,100); END; IF M5(k,2)=0 THEN TEXTOUT("▓",G2,-13.4+G*(26/L),-2.6,2,#D8D8D8h,100); TEXTOUT("▓",G4,-13.4+G*(26/L),-2.6,2,#2E9AFEh,100); TEXTOUT("▓",G6,-13.4+G*(26/L),0,2,#E6E6E6h,100); TEXTOUT("▓",G3,-13.4+G*(26/L),0,2,#E6E6E6h,100); END; IF M5(k,2)=4 THEN TEXTOUT("●",G2,-13.6+G*(26/L),-2,5,#2E9AFEh,100); TEXTOUT("●",G4,-13.4+G*(26/L),-2.6,2,#2E9AFEh,100); TEXTOUT("●",G6,-13.4+G*(26/L),0,2,#2E9AFEh,100); TEXTOUT("●",G3,-13.4+G*(26/L),0,2,#2E9AFEh,100); END; END; LOCAL ADDAPOYO,k,MAX_Y,aw9,RANGO_Y,RANGO_Z; LOCAL LISTMAT,k,LIMIT,NODO,LON,LISTB,LISTN; LOCAL n,ab9; LOCAL aw91,aw92; MAX_Y:=(M4(-1)); MAX_Y:=TRN(MAX_Y); aw91:=maxnorm((MAX_Y)); MAX_Y:=(M4(-2)); MAX_Y:=TRN(MAX_Y); aw92:=maxnorm((MAX_Y)); IF aw91
ELSE RANGO_Y:=aw91/6; END; IF aw91=aw92 THEN RANGO_Y:=aw91/6; END; FOR k FROM 1 TO rowDim(M4)DO B:=M5(k,1); W:=M5(k+1,1); X:=M4(k,1); Y:=M4(k,2); ab9:=(W-B); ab9:=ab9*2.5*(26/L);
IF M4(k,1)≠ 0 AND M4(k,2)≠0 THEN
IF M4(k,1)=M4(k,2)THEN IF M4(k,2)<0 THEN FOR n FROM 1 TO ab9 DO TRIANGLE(G2,-12.9+0.4*n-0.5+B*(26/L),-2.7,-12.5+0.4*n-0.5+B*(26/L),-2.7,12.7+0.4*n-0.5+B*(26/L),-2.9,#0080FFh); LINE(G2,-12.7+0.4*n-0.5+B*(26/L),-2.6+ABS(X)/RANGO_Y,-12.7+0.4*n0.5+B*(26/L),-2.6,#0080FFh); END; TEXTOUT(ABS(X),G2,-13.7+((W+B)/2)*(26/L),2.6+0.9+ABS(X)/RANGO_Y,1,#0080FFh,100); END; IF 0
aw9:=maxnorm((MAX_Y)); RANGO_Y:=aw9/7; RANGO_Z:=aw9/6; FOR k FROM 1 TO rowDim(M2)DO H:=M2(k,1);K:=M2(k,2); IF 0<=H <=L THEN IF K<0 THEN TRIANGLE(G2,-12.9-0.5+H*(26/L),-2.7,-12.5-0.5+H*(26/L),-2.7,-12.7-0.5+H*(26/L),2.9,#FE2E64h); LINE(G2,-12.7-0.5+H*(26/L),-2.6+ABS(K)/RANGO_Y,-12.7-0.5+H*(26/L),2.6,#FE2E64h); TEXTOUT(ABS(K),G2,-13.7+H*(26/L),-2.6+0.9+ABS(K)/RANGO_Y,1,#FE2E64h,100); END; IF 0
FOR k FROM 1 TO A DO LINE(G1,-13+M5(k,1)*(26/L),-10.3,-13+M5(k,1)*(26/L),-11.3,#FFFF00h); END; TEXTOUT_P("✘",G1,300,220,5,#FF0040h,200); BLIT_P(G0,G1); BLIT_P(G0,0,20,320,200,G2,0,50,320,230); WAIT(-1); ELSE IF MENU==6 THEN LOCAL N,B,dN,lN,aL9,lB,aM9,aB9; LOCAL ks,k,PE,PA,PI; LOCAL rs,Krs,KR,Ka,Kb,Kc,Kd,Ss; LOCAL qs,ps,Vcor,Mflec,Pr,Lr; LOCAL Ke,Kf,Kg,Prs,KFIN,PFIN; LOCAL Dezp,av9,DEF,FED,aQ9; LOCAL TlB,ESFUERZO; LOCAL GRAFFUERZA,lMM,aU9,qs1,qs2; N:=MAKEMAT(0,A,2); FOR k FROM 1 TO rowDim(M5)DO N(k,1):=M5(k,1);N(k,2):=0; END; B:=MAKEMAT(0,rowDim(M4),7); FOR k FROM 1 TO rowDim(N)-1 DO B(k,1):=k; B(k,2):=k+1; B(k,3):=M4(k,3); B(k,4):=M4(k,4); B(k,5):=M4(k,5); B(k,6):=M4(k,1); B(k,7):=M4(k,2); END; M8:=B; dN:=MAKEMAT(0,rowDim(M5),3); FOR k FROM 1 TO rowDim(M5)DO IF M5(k,2)=0 THEN dN(k,1):=0; dN(k,2):=0; dN(k,3):=0; END; IF M5(k,2)=1 THEN dN(k,1):=0; dN(k,2):=0; dN(k,3):=1; END; IF M5(k,2)=2 THEN dN(k,1):=1; dN(k,2):=0;
dN(k,3):=1; END; IF M5(k,2)=3 THEN dN(k,1):=1; dN(k,2):=1; dN(k,3):=1; END; IF M5(k,2)=4 THEN dN(k,1):=1; dN(k,2):=1; dN(k,3):=0; END; END; LOCAL ñ,FFF,aC9;FFF:=M1; aC9:=MAKEMAT(0,A,3); FOR k FROM 1 TO rowDim(FFF)DO FOR ñ FROM 1 TO A DO IF FFF(k,1)=ñ THEN aC9(ñ,2):=M1(k,2); aC9(ñ,3):=M1(k,3); END; END; END; lN:=aC9; lB:=MAKEMAT(0,rowDim(M4),6); lMM:=MAKEMAT(0,rowDim(M4),2); FOR k FROM 1 TO rowDim(M4)DO FOR aU9 FROM 1 TO rowDim(M5)DO IF B(k,1)=aU9 THEN lMM(k,1):=M5(aU9,2); END; END; END; FOR k FROM 1 TO rowDim(M4)DO FOR aU9 FROM 1 TO rowDim(M5)DO IF B(k,2)=aU9 THEN lMM(k,2):=M5(aU9,2); END; END; END; aL9:=rowDim(N); aB9:=MAKEMAT(0,rowDim(B),4); aM9:=MAKEMAT(0,rowDim(B),1); FOR k FROM 1 TO rowDim(B)DO FOR aU9 FROM 1 TO rowDim(N)DO IF B(k,1)=aU9 THEN aB9(k,1):=N(aU9,1);
aB9(k,3):=N(aU9,2); END; END; END; FOR k FROM 1 TO rowDim(B)DO FOR aU9 FROM 1 TO rowDim(N)DO IF B(k,2)=aU9 THEN aB9(k,2):=N(aU9,1); aB9(k,4):=N(aU9,2); END; END; END; FOR k FROM 1 TO rowDim(B)DO aM9(k,1):=(((aB9(k,2)-aB9(k,1))^2)+((aB9(k,4)-aB9(k,3))^2))^(1/2); END; ks:=MAKEMAT(0,6,6); rs:=MAKEMAT(0,6,6); Ss:=MAKEMAT(0,aL9*3,aL9*3); FOR k FROM 1 TO (aL9-1) DO IF lMM(k,1)=4 AND lMM(k,2)=4 THEN ks(1,1):=((B(k,3)*B(k,4))/aM9(k,1)); ks(4,4):=((B(k,3)*B(k,4))/aM9(k,1)); ks(1,4):=-((B(k,3)*B(k,4))/aM9(k,1)); ks(4,1):=-((B(k,3)*B(k,4))/aM9(k,1)); ELSE
IF lMM(k,1)≠4 AND lMM(k,2)=4 THEN
ks(1,1):=((B(k,3)*B(k,4))/aM9(k,1)); ks(4,4):=((B(k,3)*B(k,4))/aM9(k,1)); ks(1,4):=-((B(k,3)*B(k,4))/aM9(k,1)); ks(4,1):=-((B(k,3)*B(k,4))/aM9(k,1)); ks(2,2):=(3*(B(k,3)*B(k,5))/aM9(k,1)^3); ks(5,5):=(3*(B(k,3)*B(k,5))/aM9(k,1)^3); ks(5,2):=(-3*(B(k,3)*B(k,5))/aM9(k,1)^3); ks(2,5):=(-3*(B(k,3)*B(k,5))/aM9(k,1)^3); ks(2,3):=(3*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(3,2):=(3*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(5,3):=(-3*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(3,5):=(-3*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(3,3):=(3*(B(k,3)*B(k,5))/aM9(k,1)); ELSE
IF lMM(k,1)=4 AND lMM(k,2)≠4 THEN
ks(1,1):=((B(k,3)*B(k,4))/aM9(k,1)); ks(4,4):=((B(k,3)*B(k,4))/aM9(k,1)); ks(1,4):=-((B(k,3)*B(k,4))/aM9(k,1)); ks(4,1):=-((B(k,3)*B(k,4))/aM9(k,1)); ks(2,2):=(3*(B(k,3)*B(k,5))/aM9(k,1)^3); ks(5,5):=(3*(B(k,3)*B(k,5))/aM9(k,1)^3);
ks(5,2):=(-3*(B(k,3)*B(k,5))/aM9(k,1)^3); ks(2,5):=(-3*(B(k,3)*B(k,5))/aM9(k,1)^3); ks(2,6):=(3*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(6,2):=(3*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(5,6):=(-3*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(6,5):=(-3*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(6,6):=(3*(B(k,3)*B(k,5))/aM9(k,1)); ELSE ks(1,1):=((B(k,3)*B(k,4))/aM9(k,1)); ks(4,4):=((B(k,3)*B(k,4))/aM9(k,1)); ks(1,4):=-((B(k,3)*B(k,4))/aM9(k,1)); ks(4,1):=-((B(k,3)*B(k,4))/aM9(k,1)); ks(2,2):=(12*(B(k,3)*B(k,5))/aM9(k,1)^3); ks(5,5):=(12*(B(k,3)*B(k,5))/aM9(k,1)^3); ks(5,2):=(-12*(B(k,3)*B(k,5))/aM9(k,1)^3); ks(2,5):=(-12*(B(k,3)*B(k,5))/aM9(k,1)^3); ks(2,3):=(6*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(2,6):=(6*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(3,2):=(6*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(6,2):=(6*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(5,3):=(-6*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(5,6):=(-6*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(3,5):=(-6*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(6,5):=(-6*(B(k,3)*B(k,5))/aM9(k,1)^2); ks(3,3):=(4*(B(k,3)*B(k,5))/aM9(k,1)); ks(6,6):=(4*(B(k,3)*B(k,5))/aM9(k,1)); ks(3,6):=(2*(B(k,3)*B(k,5))/aM9(k,1)); ks(6,3):=(2*(B(k,3)*B(k,5))/aM9(k,1)); END; END; END; rs(1,1):=(aB9(k,2)-aB9(k,1))/aM9(k,1); rs(2,2):=(aB9(k,2)-aB9(k,1))/aM9(k,1); rs(4,4):=(aB9(k,2)-aB9(k,1))/aM9(k,1); rs(5,5):=(aB9(k,2)-aB9(k,1))/aM9(k,1); rs(1,2):=(aB9(k,4)-aB9(k,3))/aM9(k,1); rs(4,5):=(aB9(k,4)-aB9(k,3))/aM9(k,1); rs(2,1):=-(aB9(k,4)-aB9(k,3))/aM9(k,1); rs(5,4):=-(aB9(k,4)-aB9(k,3))/aM9(k,1); rs(3,3):=1; rs(6,6):=1; Krs:=TRN(rs)*ks*rs; Ka:=SUB(Ss,{3*B(k,1)-2,3*B(k,1)-2},{3*B(k,1),3*B(k,1)})+SUB(Krs,{1,1},{3,3}); Kb:=SUB(Ss,{3*B(k,1)-2,3*B(k,2)-2},{3*B(k,1),3*B(k,2)})+SUB(Krs,{1,4},{3,6}); Kc:=SUB(Ss,{3*B(k,2)-2,3*B(k,2)-2},{3*B(k,2),3*B(k,2)})+SUB(Krs,{4,4},{6,6}); Kd:=SUB(Ss,{3*B(k,2)-2,3*B(k,1)-2},{3*B(k,2),3*B(k,1)})+SUB(Krs,{4,1},{6,3}); Ss(3*B(k,1)-2,3*B(k,1)-2):=Ka(1,1);
Ss(3*B(k,1)-2,3*B(k,1)-1):=Ka(1,2); Ss(3*B(k,1)-2,3*B(k,1)):=Ka(1,3); Ss(3*B(k,1)-1,3*B(k,1)-2):=Ka(2,1); Ss(3*B(k,1)-1,3*B(k,1)-1):=Ka(2,2); Ss(3*B(k,1)-1,3*B(k,1)):=Ka(2,3); Ss(3*B(k,1),3*B(k,1)-2):=Ka(3,1); Ss(3*B(k,1),3*B(k,1)-1):=Ka(3,2); Ss(3*B(k,1),3*B(k,1)):=Ka(3,3); Ss(3*B(k,1)-2,3*B(k,2)-2):=Kb(1,1); Ss(3*B(k,1)-2,3*B(k,2)-1):=Kb(1,2); Ss(3*B(k,1)-2,3*B(k,2)):=Kb(1,3); Ss(3*B(k,1)-1,3*B(k,2)-2):=Kb(2,1); Ss(3*B(k,1)-1,3*B(k,2)-1):=Kb(2,2); Ss(3*B(k,1)-1,3*B(k,2)):=Kb(2,3); Ss(3*B(k,1),3*B(k,2)-2):=Kb(3,1); Ss(3*B(k,1),3*B(k,2)-1):=Kb(3,2); Ss(3*B(k,1),3*B(k,2)):=Kb(3,3); Ss(3*B(k,2)-2,3*B(k,2)-2):=Kc(1,1); Ss(3*B(k,2)-2,3*B(k,2)-1):=Kc(1,2); Ss(3*B(k,2)-2,3*B(k,2)):=Kc(1,3); Ss(3*B(k,2)-1,3*B(k,2)-2):=Kc(2,1); Ss(3*B(k,2)-1,3*B(k,2)-1):=Kc(2,2); Ss(3*B(k,2)-1,3*B(k,2)):=Kc(2,3); Ss(3*B(k,2),3*B(k,2)-2):=Kc(3,1); Ss(3*B(k,2),3*B(k,2)-1):=Kc(3,2); Ss(3*B(k,2),3*B(k,2)):=Kc(3,3); Ss(3*B(k,2)-2,3*B(k,1)-2):=Kd(1,1); Ss(3*B(k,2)-2,3*B(k,1)-1):=Kd(1,2); Ss(3*B(k,2)-2,3*B(k,1)):=Kd(1,3); Ss(3*B(k,2)-1,3*B(k,1)-2):=Kd(2,1); Ss(3*B(k,2)-1,3*B(k,1)-1):=Kd(2,2); Ss(3*B(k,2)-1,3*B(k,1)):=Kd(2,3); Ss(3*B(k,2),3*B(k,1)-2):=Kd(3,1); Ss(3*B(k,2),3*B(k,1)-1):=Kd(3,2); Ss(3*B(k,2),3*B(k,1)):=Kd(3,3); END; Lr:=MAKEMAT(0,aL9*3,1); FOR k FROM 1 TO rowDim(lB)DO qs1:=B(k,6); qs2:=B(k,7); IF lMM(k,1)=4 AND lMM(k,2)=4 THEN
IF qs1 ≠ 0 AND qs2≠0 THEN IF qs1=qs2 THEN lB(k,2):=(-qs1*aM9(k,1))/2; lB(k,5):=(-qs1*aM9(k,1))/2; lB(k,3):=0; lB(k,6):=0;
END; END; ELSE
IF lMM(k,1)=4 AND lMM(k,2)≠4 THEN IF qs1 ≠ 0 AND qs2≠0 THEN IF qs1=qs2 THEN lB(k,2):=(-3*qs1*aM9(k,1))/8; lB(k,5):=(-5*qs1*aM9(k,1))/8; lB(k,3):=0; lB(k,6):=(qs1*aM9(k,1)^2)/8; END; END; ELSE
IF lMM(k,1)≠4 AND lMM(k,2)=4 THEN IF qs1 ≠ 0 AND qs2≠0 THEN IF qs1=qs2 THEN lB(k,2):=(-5*qs1*aM9(k,1))/8; lB(k,5):=(-3*qs1*aM9(k,1))/8; lB(k,3):=-(qs1*aM9(k,1)^2)/8; lB(k,6):=0; END; END; ELSE
IF qs1 ≠ 0 AND qs2≠0 THEN
IF qs1=qs2 THEN lB(k,2):=(-qs1*aM9(k,1))/2; lB(k,5):=(-qs1*aM9(k,1))/2; lB(k,3):=(-qs1*aM9(k,1)^2)/12; lB(k,6):=(qs1*aM9(k,1)^2)/12; END; END; END; END; END; ps:=TRN(row(lB,k)); Pr:=-(TRN(rs)*ps); Ke:=SUB(Lr,{3*B(k,1)-2,1},{3*B(k,1),1})+SUB(Pr,{1,1},{3,1}); Kf:=SUB(Lr,{3*B(k,2)-2,1},{3*B(k,2),1})+SUB(Pr,{4,1},{6,1}); Lr(3*B(k,1)-2,1):=Ke(1,1); Lr(3*B(k,1)-1,1):=Ke(2,1); Lr(3*B(k,1),1):=Ke(3,1); Lr(3*B(k,2)-2,1):=Kf(1,1); Lr(3*B(k,2)-1,1):=Kf(2,1); Lr(3*B(k,2),1):=Kf(3,1); END; FOR k FROM 1 TO rowDim(lN)DO Prs:=TRN(row(lN,k));
Kg:=SUB(Lr,{3*k-2,1},{3*k,1})+SUB(Prs,{1,1},{3,1}); Lr(3*k-2,1):=Kg(1,1); Lr(3*k-1,1):=Kg(2,1); Lr(3*k,1):=Kg(3,1); END; KFIN:=Ss; PFIN:=Lr; FOR k FROM 1 TO rowDim(dN)DO IF dN(k,1)==0 THEN ADDROW(Ss,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],3*k-2); DELROW(Ss,3*k-1); ADDCOL(Ss,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],3*k-2); DELCOL(Ss,3*k-1); Lr(3*k-2,1):=0; Ss(3*k-2,3*k-2):=1; END; IF dN(k,2)==0 THEN ADDROW(Ss,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],3*k-1); DELROW(Ss,3*k); ADDCOL(Ss,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],3*k-1); DELCOL(Ss,3*k); Lr(3*k-1,1):=0; Ss(3*k-1,3*k-1):=1; END; IF dN(k,3)==0 THEN ADDROW(Ss,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],3*k); DELROW(Ss,3*k+1); ADDCOL(Ss,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],3*k); DELCOL(Ss,3*k+1); Lr(3*k,1):=0; Ss(3*k,3*k):=1; END; END; FOR k FROM 1 TO rowDim(Ss)DO IF Ss(k,k)==0 THEN Ss(k,k):=1; END; END; Dezp:=(inv(Ss)*Lr);LOCAL RECUNOM1;RECUNOM1:=MAKEMAT(0,rowDim(dN),3);FOR k FROM 1 TO rowDim(dN)DO RECUNOM1(k,1):=Dezp(3*k-2,1);RECUNOM1(k,2):=Dezp(3*k1,1);RECUNOM1(k,3):=Dezp(3*k,1);END;M7:=RECUNOM1; av9:=KFIN*Dezp-PFIN;FOR k FROM 1 TO rowDim(dN)DO IF dN(k,1)==1 AND dN(k,2)==1 AND dN(k,3)==0 THEN av9(3*k,1):=0;END;END;LOCAL RECUNOM;RECUNOM:=MAKEMAT(0,rowDim(dN),3);FOR k FROM 1 TO rowDim(dN)DO RECUNOM(k,1):=av9(3*k-2,1);RECUNOM(k,2):=av9(3*k1,1);RECUNOM(k,3):=av9(3*k,1);END;LOCAL
REACIONNN;REACIONNN:=trunc(av9,3);TEXTOUT_P("FUERZAS EN LOS APOYOS",G4,56,45,5,#0174DF,250);FOR k FROM 1 TO rowDim(N)DO IF 0
lMM(k,1)=4 AND lMM(k,2)≠4 THEN ks(1,1):=((B(k,3)*B(k,4))/aM9(k,1));
ks(4,4):=((B(k,3)*B(k,4))/aM9(k,1));ks(1,4):=-((B(k,3)*B(k,4))/aM9(k,1));ks(4,1):=((B(k,3)*B(k,4))/aM9(k,1));ks(2,2):=(3*(B(k,3)*B(k,5))/aM9(k,1)^3);ks(5,5):=(3*(B(k,3)* B(k,5))/aM9(k,1)^3);ks(5,2):=(-3*(B(k,3)*B(k,5))/aM9(k,1)^3);ks(2,5):=(3*(B(k,3)*B(k,5))/aM9(k,1)^3);ks(2,6):=(3*(B(k,3)*B(k,5))/aM9(k,1)^2);ks(6,2):=(3*(B(k ,3)*B(k,5))/aM9(k,1)^2);ks(5,6):=(-3*(B(k,3)*B(k,5))/aM9(k,1)^2);ks(6,5):=(3*(B(k,3)*B(k,5))/aM9(k,1)^2);ks(6,6):=(3*(B(k,3)*B(k,5))/aM9(k,1));ELSE ks(1,1):=((B(k,3)*B(k,4))/aM9(k,1)); ks(4,4):=((B(k,3)*B(k,4))/aM9(k,1));ks(1,4):=-((B(k,3)*B(k,4))/aM9(k,1));ks(4,1):=((B(k,3)*B(k,4))/aM9(k,1));ks(2,2):=(12*(B(k,3)*B(k,5))/aM9(k,1)^3);ks(5,5):=(12*(B(k,3 )*B(k,5))/aM9(k,1)^3);ks(5,2):=(-12*(B(k,3)*B(k,5))/aM9(k,1)^3);ks(2,5):=(12*(B(k,3)*B(k,5))/aM9(k,1)^3);ks(2,3):=(6*(B(k,3)*B(k,5))/aM9(k,1)^2);ks(2,6):=(6*(B( k,3)*B(k,5))/aM9(k,1)^2);ks(3,2):=(6*(B(k,3)*B(k,5))/aM9(k,1)^2);ks(6,2):=(6*(B(k,3)*B (k,5))/aM9(k,1)^2);ks(5,3):=(-6*(B(k,3)*B(k,5))/aM9(k,1)^2);ks(5,6):=(6*(B(k,3)*B(k,5))/aM9(k,1)^2);
ks(3,5):=(-6*(B(k,3)*B(k,5))/aM9(k,1)^2);ks(6,5):=(6*(B(k,3)*B(k,5))/aM9(k,1)^2);ks(3,3):=(4*(B(k,3)*B(k,5))/aM9(k,1));ks(6,6):=(4*(B(k,3) *B(k,5))/aM9(k,1));ks(3,6):=(2*(B(k,3)*B(k,5))/aM9(k,1));ks(6,3):=(2*(B(k,3)*B(k,5))/a M9(k,1));END;END;END;aQ9:=ks*DEF;FED(1,k):=aQ9(1,1);FED(2,k):=aQ9(2,1);FED(3 ,k):=aQ9(3,1);FED(4,k):=aQ9(4,1);FED(5,k):=aQ9(5,1);FED(6,k):=aQ9(6,1);TlB:=TRN(r ow(lB,k));FED(1,k):=FED(1,k)+TlB(1,1);FED(2,k):=FED(2,k)+TlB(2,1);FED(3,k):=FED( 3,k)+TlB(3,1);FED(4,k):=FED(4,k)+TlB(4,1); FED(5,k):=FED(5,k)+TlB(5,1);FED(6,k):=FED(6,k)+TlB(6,1);END;ESFUERZO:=TRN(F ED);FOR k FROM 1 TO rowDim(lMM)DO IF lMM(k,1)==4 THEN ESFUERZO(k,3):=0;END;IF lMM(k,2)==4 THEN ESFUERZO(k,6):=0;END;END;DIMGROB_P(G3,320,240);RECT(G3);DIMGROB_P(G6 ,320,240);RECT(G6);LINE(G6,-13,-0.5,13,-0.5,#DBA901h);LINE(G3,-13,-0.5,13,0.5,#DBA901h);LOCAL ab9,n,aw92;LOCAL MAX_Y,aw9,RANGO_Y,aA9,MOMENTOSS,ESFUERZOCER;aA9:={"#DF3A01h","#D F7401h","#D7DF01h","#3ADF00h","#01DF3Ah","#01DFA5h","#01A9DBh","#642EFEh" ,"#9A2EFEh","#BF00FFh","#DF01A5h","#FF00FFh","#FE2E64h","#B45F04h"}; FOR k FROM 1 TO rowDim(B)DO IF ESFUERZO(k,1)<0.00005 THEN ESFUERZO(k,1):=0;END;IF-0.00005
R k FROM 1 TO rowDim(GRAFFUERZA)DO IF M8(k,6)≠ 0 AND M8(k,7)≠0 THEN IF M8(k,6)=M8(k,7)THEN ECUAEZZF(k,2):=M8(k,7); ECUAEZZF(k,3):=ESFUERZO(k,2);END;END;IF M8(k,6)=0 AND M8(k,7)=0 THEN ECUAEZZF(k,3):=ESFUERZO(k,2);END;END;L0:={};FOR k FROM 1 TO rowDim(GRAFFUERZA)DO IF ECUAEZZF(k,1)=0 AND ECUAEZZF(k,2)=0 AND ECUAEZZF(k,3)≠ 0 THEN L0(k):=[0,0];ELSE IF 0
L0(k):=[0,0];ELSE IF ECUAEZZF(k,1)=0 AND ECUAEZZF(k,2)<0 AND ECUAEZZF(k,3)< 0 THEN L0(k):=[0,0]; ELSE IF ECUAEZZF(k,1)=0 AND 0
IF ESFUERZOCER(k,1)≠0 THEN
TEXTOUT((trunc(N(k,1)+ESFUERZOCER(k,1),3)),G3,13.7+N(k,1)*(26/L)+ESFUERZOCER(k,1)*(26/L),9.4,1,#FE2E64h,100); LINE(G3,-13.3+N(k,1)*(26/L)+ESFUERZOCER(k,1)*(26/L),8.6,13.3+N(k,1)*(26/L)+ESFUERZOCER(k,1)*(26/L),-10,#585858h);END;END;FOR k FROM 1 TO rowDim(GRAFFUERZA)DO ab9:=(GRAFFUERZA(k,2)GRAFFUERZA(k,1));ab9:=ab9*5*(26/L);IF M8(k,6)≠ 0 AND M8(k,7)≠0 THEN IF M8(k,6)=M8(k,7)THEN FOR n FROM 1 TO 2*ab9 DO LINE(G3,-12.7+0.1*n0.5+GRAFFUERZA(k,1)*(26/L),0.5+(ESFUERZO(k,2)+M8(k,6)*((n*L/(5*26*2))))/RANGO_Y,-12.7+0.1*n0.5+GRAFFUERZA(k,1)*(26/L),-0.5,EXPR(aA9(k))); END;END;END;IF M8(k,6)=0 AND M8(k,7)=0 THEN FOR n FROM 1 TO 2*ab9 DO LINE(G3,-12.7+0.1*n-0.5+GRAFFUERZA(k,1)*(26/L),0.5+(ESFUERZO(k,2))/RANGO_Y,-12.7+0.1*n-0.5+GRAFFUERZA(k,1)*(26/L),0.5,EXPR(aA9(k)));END;END;END;RECT_P(G3,0,0,320,1,#58ACFAh);RECT_P(G3,0,2, 320,11,#0080FFh);RECT_P(G3,0,11,320,12,#045FB4h);TEXTOUT_P("GRAFICA DE ESFUERZO CORTANTE",G3,80,2,1,#FFFFFFh,200);RECT(G3,-13,-9.7,13,10.8,#FFFFFFh);LINE(G3,-13,-9.7,15.3,-9.7,#0080FFh);TRIANGLE(G3,15,-9.4,15,10,15.5,-9.7,#0080FFh); TEXTOUT("X",G3,15.5,-10,1,#FA5882h,500,#FFFFFFh);FOR k FROM 1 TO rowDim(N)DO LINE(G3,-13+N(k,1)*(26/L),-9.3,-13+N(k,1)*(26/L),10.3,#0080FFh);END;FOR k FROM 1 TO rowDim(N)DO TEXTOUT(N(k,1),G3,-0.313+N(k,1)*(26/L),-9.9,1,#0101DFh,500,#FFFFFFh);END;LOCAL ab9,n;LOCAL MAX_Y,aw9,aw92,RANGO_X,aA91,aa3,aw93;aA91:={"#DF01A5h","#B404AEh","#6A 0888h","#4B088Ah","#3104B4h","#045FB4h","#01A9DBh","#01DFD7h","#04B431h","# 74DF00h","#DBA901h","#DF3A01h","#FF0040h","#FF0080h","#DF01A5h","#DF0060h" };aa3:=MAKEMAT(0,rowDim(ESFUERZOCER),1);FOR k FROM 1 TO
rowDim(ESFUERZOCER)DO IF 0
ESFUERZO(k,2)*ESFUERZOCER(k,1)M8(k,6)*(ESFUERZOCER(k,1))*(ESFUERZOCER(k,1)/2))),4);END;END;END;END;M AX_Y:=(aa3(-1)); MAX_Y:=TRN(MAX_Y);aw93:=maxnorm((MAX_Y));MAX_Y:=(M9(6));MAX_Y:=TRN(MAX_Y); aw9:=maxnorm((MAX_Y)); MAX_Y:=(M9(-3));MAX_Y:=TRN(MAX_Y);aw92:=maxnorm((MAX_Y));IF aw9
ELSE IF aw92
IF ESFUERZOCER(k,1)≠0 THEN
TEXTOUT(trunc(N(k,1)+ESFUERZOCER(k,1),3),G6,13.7+N(k,1)*(26/L)+ESFUERZOCER(k,1)*(26/L),9.4,1,#FE2E64h,100); LINE(G6,-13.3+N(k,1)*(26/L)+ESFUERZOCER(k,1)*(26/L),8.6,13.3+N(k,1)*(26/L)+ESFUERZOCER(k,1)*(26/L),-10,#585858h); END; END; FOR k FROM 1 TO rowDim(GRAFFUERZA)DO ab9:=(GRAFFUERZA(k,2)-GRAFFUERZA(k,1)); ab9:=ab9*5*(26/L);
IF M8(k,6)≠ 0 AND M8(k,7)≠0 THEN
IF M8(k,6)=M8(k,7)THEN FOR n FROM 1 TO 2*ab9+0.5 DO LINE(G6,-12.7+0.1*n-0.5+GRAFFUERZA(k,1)*(26/L),-0.5+(ESFUERZO(k,3)ESFUERZO(k,2)*(n*L/(5*26*2))M8(k,6)*((n*L/(5*26*2)))*((n*L/(5*26*2))/2))/RANGO_X,-12.7+0.1*n0.5+GRAFFUERZA(k,1)*(26/L),-0.5,EXPR(aA91(k))); END; END; END; IF M8(k,6)=0 AND M8(k,7)=0 THEN FOR n FROM 1 TO 2*ab9+0.5 DO LINE(G6,-12.7+0.1*n-0.5+GRAFFUERZA(k,1)*(26/L),-0.5+(ESFUERZO(k,3)ESFUERZO(k,2)*(n*L/(5*26*2)))/RANGO_X,-12.7+0.1*n0.5+GRAFFUERZA(k,1)*(26/L),-0.5,EXPR(aA91(k))); END; END; END; FOR k FROM 1 TO rowDim(ESFUERZOCER)DO IF M8(k ,6)≠ 0 AND M8(k,7)≠0 THEN IF M8(k,6)=M8(k,7)THEN
TEXTOUT(trunc(-((ESFUERZO(k,3)-ESFUERZO(k,2)*ESFUERZOCER(k,1)M8(k,6)*(ESFUERZOCER(k,1))*(ESFUERZOCER(k,1)/2))),3),G6,13+N(k,1)*(26/L)+ESFUERZOCER(k,1)*(26/L),-0.5+(ESFUERZO(k,3)ESFUERZO(k,2)*ESFUERZOCER(k,1)M8(k,6)*(ESFUERZOCER(k,1))*(ESFUERZOCER(k,1)/2))/RANGO_X,1,#0080FFh,100 ); END; END; END; RECT_P(G6,0,0,320,1,#58ACFAh); RECT_P(G6,0,2,320,11,#0080FFh); RECT_P(G6,0,11,320,12,#045FB4h); TEXTOUT_P("GRAFICA DE MOMENTO FLECTOR",G6,80,2,1,#FFFFFFh,200); RECT_P(G6,0,225,320,226,#FFFFFFh); RECT_P(G6,0,227,320,238,#E6E6E6h); RECT_P(G6,0,237,320,238,#BDBDBDh); RECT(G6,-13,-9.7,13,-10.8,#FFFFFFh); LINE(G6,-13,-9.7,15.3,-9.7,#0080FFh); TRIANGLE(G6,15,-9.4,15,-10,15.5,-9.7,#0080FFh); TEXTOUT("X",G6,15.5,-10,1,#FA5882h,500,#FFFFFFh); GRAFFUERZA:=trunc(GRAFFUERZA,3); FOR k FROM 1 TO rowDim(GRAFFUERZA)DO TEXTOUT(GRAFFUERZA(k,3),G3,-13+GRAFFUERZA(k,1)*(26/L),0.5+GRAFFUERZA(k,3)/RANGO_Y,1,#0080FFh,100); END; FOR k FROM 1 TO rowDim(GRAFFUERZA)DO TEXTOUT(GRAFFUERZA(k,4),G3,-13+GRAFFUERZA(k,2)*(26/L),0.5+GRAFFUERZA(k,4)/RANGO_Y,1,#0080FFh,100); END; MOMENTOSS:=trunc(MOMENTOSS,3); FOR k FROM 1 TO rowDim(MOMENTOSS)DO TEXTOUT(MOMENTOSS(k,3),G6,-13+MOMENTOSS(k,1)*(26/L),-0.5MOMENTOSS(k,3)/RANGO_X,1,#0080FFh,100); END; FOR k FROM 1 TO rowDim(MOMENTOSS)DO TEXTOUT(MOMENTOSS(k,4),G6,-13+MOMENTOSS(k,2)*(26/L),-0.5MOMENTOSS(k,4)/RANGO_X,1,#0080FFh,100); END; FOR k FROM 1 TO rowDim(N)DO LINE(G6,-13+N(k,1)*(26/L),-9.3,-13+N(k,1)*(26/L),-10.3,#0080FFh); END; FOR k FROM 1 TO rowDim(N)DO TEXTOUT(N(k,1),G6,-0.3-13+N(k,1)*(26/L),-9.9,1,#0101DFh,500,#FFFFFFh); END; TEXTOUT_P("✘",G4,300,220,5,#FF0040h,200); TEXTOUT_P("✘",G3,300,220,5,#FF0040h,200);
TEXTOUT_P("✘",G6,300,220,5,#FF0040h,200); MSGBOX("LOS CALCULOS SE REALIZARON CORRECTAMENTE... :) "); ELSE IF MENU==7 THEN REPEAT CHOOSE(menu1," DIAGRAMAS ",". REACCIONES ",". EZFUERZO CORTANTE",". MOMENTO FLECTOR ",". VOLVER"); IF menu1==1 THEN BLIT_P(G0,G4);WAIT(-1); ELSE IF menu1==2 THEN BLIT_P(G0,G3);WAIT(-1); ELSE IF menu1==3 THEN BLIT_P(G0,G6);WAIT(-1); END; END; END; UNTIL menu1==4; ELSE IF MENU==8 THEN DIMGROB_P(G7,320,240); RECT(G7); RECT_P(G7,0,0,320,240,#0080FFh); TEXTOUT_P("H&WLabs",G7,111,6,7,#FFFFFFh,300); TEXTOUT_P("H&WLabs",G7,110,5,7,#FFFFFFh,300); TEXTOUT_P("HP PRIME PROGRAMACIÓN",G7,21,31,7,#1C1C1Ch,300); TEXTOUT_P("HP PRIME PROGRAMACIÓN",G7,20,30,7,#FFFFFFh,300); TEXTOUT_P("VigaPRO v1.1",G7,100,60,7,#1C1C1Ch,300); TEXTOUT_P("DESARROLLADOR :",G7,10,110,1,#1C1C1Ch,300); TEXTOUT_P("H&WLabs... HEBERT POMA VIDAL ",G7,105,110,1,#FFFFFFh,300); TEXTOUT_P("Gmail :",G7,10,120,1,#1C1C1Ch,300); TEXTOUT_P("[email protected]",G7,105,120,1,#FFFFFFh,300); TEXTOUT_P("FACEBOOK :",G7,10,130,1,#1C1C1Ch,300); TEXTOUT_P("HP PRIME programar H&WLabs",G7,105,130,1,#FFFFFFh,300); TEXTOUT_P(" El uso de nuestros programas es netamente en el ámbito ",G7,25,160,1,#1C1C1Ch,300); TEXTOUT_P(" FLORASO ",G7,40,170,1,#1C1C1Ch,300); TEXTOUT_P(" MIS BOLAS ",G7,80,190,1,#FFFFFFh,300); TEXTOUT_P("©",G7,230,185,3,#FFFFFFh,300); TEXTOUT_P("PERÚ, 14 Diciembre - 2016",G7,73,205,3,#FFFFFFh,300); TEXTOUT_P("Adquiere la version completa Viga H, contactarse ",G7,21,226,2,#FFFFFFh,300); TEXTOUT_P("Adquiere la version completa Viga H, contactarse ",G7,20,225,2,#1C1C1Ch,300); TEXTOUT_P("✘",G7,300,220,5,#FF0040h,200); BLIT_P(G0,G7);WAIT(-1);
END; END; END; END; END; END; END; END; UNTIL MENU==9;MSGBOX(" SE ACABO :) "); END;