Documentos de Académico
Documentos de Profesional
Documentos de Cultura
function on.escapeKey()
end
platform.window:invalidate()
end
function on.charIn(T)
end
platform.window:invalidate()
end
function on.backspaceKey()
if Pantalla==1 then
Dat_In[px] = string.usub(Dat_In[px],0,-2)
Dat2[px2] = string.usub(Dat2[px2],0,-2)
end
platform.window:invalidate()
end
function on.arrowUp()
end
platform.window:invalidate()
end
function on.arrowDown()
end
platform.window:invalidate()
end
function on.enterKey()
Datos_Entrada()
Calcular()
Diseno_Tuberia()
Pantalla=4
Diseno_RDE()
end
platform.window:invalidate()
end
function on.paint(gc)
Mostrar_Pantalla(gc)
end
Pantalla=0
function Mostrar_Pantalla(gc)
end
end
function Ventana_0(gc)
gc:setFont("sansserif","bi",20)
gc:setColorRGB(0,0,200)
gc:drawString("HIDRAULICA",60,45,"middle")
gc:setFont("sansserif","r",14)
gc:setColorRGB(0,0,0)
gc:drawString("Darcy - Weisbach",75,80,"middle")
gc:setFont("sansserif","r",12)
end
Dat_In={}
Dat_In[1],Dat_In[2],Dat_In[3],Dat_In[4],Dat_In[5]="","","","",""
Dat_In[6]=""
px=1
function Ventana_1(gc)
local a,b=60,px*20+39
gc:setColorRGB(200,0,0)
gc:fillRect(160,b,15,5)
gc:fillRect(270,b,15,5)
gc:setColorRGB(0,0,0)
gc:drawString("Longitud (m)",30,100,"middle")
gc:drawString("Caudal (m^3/s)",30,120,"middle")
gc:drawString("Temperatura (ºC)",30,140,"middle")
gc:drawString("Rugosidad",30,160,"middle")
for i=1,6 do
gc:drawString(Dat_In[i],200,a,"middle")
a=a+20
end
gc:setFont("sansserif","r",14)
gc:setColorRGB(220,0,0)
gc:drawString("Ingresar Datos",88,25,"middle")
end
function Ventana_2(gc)
gc:drawString("Iteraciones "..Iteracion,30,60,"middle")
gc:drawString("Re = "..Re,30,90,"middle")
gc:drawString("e/D = "..kd,30,130,"middle")
gc:drawString("f = "..f,30,150,"middle")
end
function Ventana_3(gc)
gc:drawString("f1 = "..fa,30,90,"middle")
gc:drawString("f2 = "..fb,30,110,"middle")
gc:setFont("sansserif","r",14)
gc:setColorRGB(220,0,0)
end
function Ventana_4(gc)
gc:setFont("sansserif","r",14)
gc:setColorRGB(220,0,0)
gc:drawString("Correciones de Longitud",40,20,"middle")
end
Dat2={}
Dat2[1],Dat2[2]="",""
px2=1
function Ventana_5(gc)
local b=px2*30+50
gc:setColorRGB(200,0,0)
gc:fillRect(150,b,15,5)
gc:fillRect(240,b,15,5)
gc:setColorRGB(0,0,0)
gc:drawString("Abs a analizar",30,80,"middle")
gc:drawString("Cota Clave",30,110,"middle")
gc:drawString(Dat2[1],180,80,"middle")
gc:drawString(Dat2[2],180,110,"middle")
gc:setFont("sansserif","r",14)
gc:setColorRGB(220,0,0)
gc:drawString("Absisas",120,20,"middle")
end
function Ventana_6(gc)
if Abs<=L1R then
gc:drawString("Hf1 = "..hf1abs,30,70,"middle")
else
gc:drawString("Hf1 = "..hf1abs,30,70,"middle")
gc:drawString("Hf2 = "..hf2abs,30,90,"middle")
end
gc:drawString("HF = "..habs,30,120,"middle")
gc:drawString("RDE = "..Rdes,30,150,"middle")
gc:setFont("sansserif","r",14)
gc:setColorRGB(220,0,0)
end
function Ventana_Iteraciones(gc)
gc:drawString("Iteracion "..ax,30,30,"middle")
gc:drawString("Re = "..H_Re[ax],30,90,"middle")
gc:drawString("f = "..H_f[ax],30,150,"middle")
end
function Ventana_Creditos(gc)
gc:drawString("Desarrollado por:",30,30,"middle")
gc:drawString("Kelly Dayanna Moreno Maldonado",30,60,"middle")
gc:drawString("-",30,80,"middle")
gc:drawString("-",30,100,"middle")
gc:drawString("-",30,120,"middle")
end
function Datos_Entrada()
Hi,Hf,L=tonumber(Dat_In[1]),tonumber(Dat_In[2]),tonumber(Dat_In[3])
Q,T,E=tonumber(Dat_In[4]),tonumber(Dat_In[5]),tonumber(Dat_In[6])
Calcular_Viscosidad()
end
function Calcular_Viscosidad()
viscosidad=var.recall("viscosidad")
local T_aux=string.format("%.0f",T)
else
local T_sup,T_inf=math.ceil(T),math.floor(T)
local Visc_s,Visc_i=viscosidad[T_sup-4],viscosidad[T_inf-4]
Mvisc=((T-T_inf)/(T_sup-T_inf))*(Visc_s-Visc_i)+Visc_i
end
M=Mvisc/1000000
end
H_Da,H_Db,H_kd,H_V,H_Re,H_f={},{},{},{},{},{}
function Calcular()
D_ai=0.05
Hft=Hi-Hf
Da=D_ai
for i=1,50 do
H_Da[i]=Da
kd=E/(Da*1000)
kd=string.format("%.6f",kd)
H_kd[i]=kd
V=Q/((3.1416/4)*Da^2)
V=string.format("%.3f",V)
H_V[i]=V
Re=V*Da/M
Re=tonumber(string.format("%.4f",Re))
H_Re[i]=Re
if Re<=2000 then
f=64/Re
f=string.format("%.5f",f)
else
f=math.evalStr("solve(f=1/(-2*log(("..kd.."/3.7)+(2.51/("..Re.."*(f^(1/2))))))^2,f)")--Ecuacion
de Colebrook
local NResp=#f
f=tonumber(f:sub(3,NResp))
f=string.format("%.5f",f)
end
H_f[i]=f
Db=(8*f*L*(Q^2)/((3.1416^2)*9.81*Hft))^(1/5)
Db=string.format("%.4f",Db)
H_Db[i]=Db
Iteracion=i
print("i",i,"kd",kd,"V",V,"Re",Re,"f",f,"Diam",Da,Db)
end
D_Pulg=Db/0.0254
D_Pulg=string.format("%.2f",D_Pulg)
Pantalla=2
ax=Iteracion
end
function Diseno_Tuberia()
DS_Pulg=math.ceil(D_Pulg)
DI_Pulg=math.floor(D_Pulg)
else DI_Pulg=DI_Pulg-1
end
end
else DS_Pulg=DS_Pulg+1
end
end
DI,DS=DI_Pulg*0.0254,DS_Pulg*0.0254
kda,kdb=E/(DS*1000)*1000000,E/(DI*1000)*1000000
print("kda",kda)
V1,V2=Q/((3.1415/4)*(DS^2)),Q/((3.1415/4)*(DI^2))
V1=string.format("%.3f",V1)
V2=string.format("%.3f",V2)
Re1=V1*DS/M
Re2=V2*DI/M
print("kda",kda,"kdb",Re1)
fa=math.evalStr("solve(f=1/(-2*log(("..kda.."/1000000/3.7)+(2.51/("..Re1.."*(f^(1/2))))))^2,f)")--
Ecuacion de Colebrook
NResp=#fa
fa=tonumber(fa:sub(3,NResp))
fa=string.format("%.5f",fa)
fb=math.evalStr("solve(f=1/(-2*log(("..kdb.."/1000000/3.7)+(2.51/("..Re2.."*(f^(1/2))))))^2,f)")--
Ecuacion de Colebrook
NResp=#fb
fb=tonumber(fb:sub(3,NResp))
fb=string.format("%.5f",fb)
L2=math.evalStr("Solve("..Hft.."=((("..fa*V1^(2)..")/("..DS*2*9.81 ..")))*("..L.."-
L2)+((("..fb*V2^(2)..")/("..DI*2*9.81 ..")))*L2,L2)")
NResp=#L2
L2=tonumber(L2:sub(4,NResp))
L2=string.format("%.4f",L2)
L1=L-L2
Na=math.ceil(L1/6)
L1R=Na*6
L2R=L-L1R
Nb=math.floor(L2R/6)
suma=L2R-Nb*6
Pantalla=3
end
function Diseno_RDE()
Abs,Cota=tonumber(Dat2[1]),tonumber(Dat2[2])
else
if Abs<=L1R then
hf1abs=((8*Q^(2)*fa*Abs)/(3.1416^(2)*9.81*DS^(5)))
hf1abs=string.format("%.3f",hf1abs)
habs=Hi-Cota-hf1abs
else
hf1abs=((8*Q^(2)*fa*L1R)/(3.1416^(2)*9.81*DS^(5)))
hf2abs=((8*Q^(2)*fa*(Abs-L1R))/(3.1416^(2)*9.81*DI^(5)))
hf1abs=string.format("%.3f",hf1abs)
hf2abs=string.format("%.3f",hf2abs)
habs=Hi-Cota-hf1abs-hf2abs
end
habs=tonumber(string.format("%.3f",habs))
end
P_trabajo=var.recall("Presion_trabajo")
RDE=var.recall("rde")
Rdes=">9"
for i=1,8 do
if habs<=P_trabajo[i] then
Rdes=RDE[i]
end
end
Pantalla=6
end
menu={
{"Historial",
{"Iteraciones",
function() Ptemp,Pantalla=Pantalla,"Historial"
platform.window:invalidate()
end
},
},
{"Información",
{"Creditos",
function() Ptemp,Pantalla=Pantalla,"Creditos"
platform.window:invalidate()
end
},
},
}toolpalette.register(menu)