martes, 22 de noviembre de 2011

CALCULO DE ZAPATAS DE CIMENTACION


cls
color 5,3
dim l$(200)
dim a$(200)
dim ndp$(200)
dim l(200)
dim a(200)
dim sup(200)
dim carga(200)
dim zap$(200)
f#=0.7
m#=0.6
print "si necesita ayuda pulse a"
ayuda$=input$(1)
if ayuda$="a" then gosub ayuda
input "Nombre del fichero ",fichero$
if fichero$= "" then fichero$="cargas"
fichero$=fichero$+".bas"
open fichero$ for input as #1
input #1, rt :' resistencia del suelo kg/cm2
input #1, n1%,c1# :' Numero de plantas y carga tipo1
input #1, n2%,c2# :' Numero de plantas y carga tipo2
input #1, ndz
for n=1 to ndz
input #1, ndp$(n),l$(n),a$(n)
next n
close #1
cu#=n1%*c1#+n2%*c2#
pp=(n1%+n2%)*2.4*3*((0.25+(0.15/(n1%+n2%))*(n1%+n2%-1))^2)
for n=1 to ndz
ndll=len(l$(n)) :' numero de letras de largo
ndla=len(a$(n)) :' numero de letras de ancho
l(n)=val(l$(n))
a(n)=val(a$(n))
if right$(l$(n),1)="f" then l(n)=val(l$(n))+f#
if right$(a$(n),1)="f" then a(n)=val(a$(n))+f#

if right$(l$(n),1)="m" then l(n)=val(l$(n))+m#
if right$(a$(n),1)="m" then a(n)=val(a$(n))+m#

if right$(l$(n),1)<>"m" and right$(a$(n),1)<>"m"then zap$(n)="me"

sup(n)=l(n)*a(n)
carga(n)=sup(n)*cu#+pp
next n

print str$(n1%)+" plantas de carga "+str$(c1#)+"t."
print str$(n2%)+" plantas de carga "+str$(c2#)+"t."
print "Carga unitaria = "_
+str$(n1%)+" x "+str$(c1#)+" + "+str$(n2%)+" x "+str$(c2#)+" = "_
+str$(cu#)+" t."
print
print "Numero Largo Ancho Superficie Carga Peso Peso Total "
print " unitaria Forjados Pilares Carga"
print " m m m2 T T T T"
print "-------------------------------------------------------------------------"
d1$="\ \ \ \ \ \ ####,.## ###,.## ###,.## ###,.## ###,.## "
for n=1 to ndz
if n mod 15=0 then input "Para seguir pulse una tecla ",aa
print using d1$; ndp$(n);l$(n);a$(n);sup(n);cu#;sup(n)*cu#;pp;carga(n)
next n


' cimentacion de zapatas
print
PRINT_
" ZAPATA DIMENSIONES ARMADURAS SECCION "
print_
" cm x cm x cm cm2Xcm2"
print_
"-------------------------------------------------------------"
d1$="\ \ ### \\ ### \\ ### ##\\##\\##\\## ##,.##\\##,.##"
print
print
FOR n=1 TO ndz

' a=3*n-3
h=30
' m=n-1

if zap$(n)<>"me" then la=10*INT((SQR(2300*carga(n)/rt)+10)/10) else_
la=10*INT((SQR(1150*carga(n)/rt)+10)/10)
IF la<60 THEN la=60
IF la<150 THEN al=30 ELSE al=10*(1+la\50)

rtc=1000*carga(n)/la^2
if zap$(n)="me" then rtc=2*rtc
mxz=0.8*rtc*la*(0.5*la-0.35*h)^2/10^5
myz=0.8*rtc*la*(0.25*la-0.35*h)^2/10^5
ppx=0.5*la*al*0.11666
ppy=2*ppx
ax=0.2805*ppx*(1-SQR(1-320*mxz/(ppx*(al-5))))
ay=0.2805*ppy*(1-SQR(1-320*myz/(ppy*(al-5))))
az=0.2805*ppy*(1-SQR(1-320*mxz/(ppy*(al-5))))
nx=fnMAX(1+la\40,1+ax\3.1416)
ny=fnMAX(1+la\20,1+ay\3.1416)
nz=fnMAX(1+la\20,1+az\3.1416)
FOR ff=1 TO 3
d(1)=11.284*SQR(ax/nx)
d(2)=11.284*SQR(ay/ny)
d(3)=11.284*SQR(az/nz)
GOSUB redondos2
NEXT ff
if zap$(n)="me" then
PRINT using d1$;ndp$(n);la;"X";la;"X";al;_
nz;"R";d(3);"X";nz;"R";d(3);az;"X";az
else
PRINT using d1$;ndp$(n);la;"X";la/2;"X";al;_
nx;"R";d(1);"X";ny;"R";d(2);ax;"X";ay
end if
next n





end

ayuda:
cls
print "Los datos se introduciran en un fichero de texto."
print "Ese fichero se debe crear con un procesador de textos, en forma"
print "ascii, por ejemplo en Wordstar con la entrada N, con el formato"
print "siguiente:"
print
print "3,1 numero de plantas y carga del tipo 1"
print "7,0.7 numero de plantas y carga del tipo 2"
print "5 numero de pilares"
print "4,3.2f largo y ancho de cada superficie de carga"
print "3,5.5 la letra f al final significa que hay una fachada"
print "3m,5 la letra m significa que hay una medianera en"
print "3,2 esa direccion"
print "4,4.3"
print "0,0 Al final se pondran dos ceros"
print
print
print "Si desea acceder a un procesador de textos sin salir del programa"
print "pulse p"
aa$=input$(1)
if aa$="p" then
cls
chdir "c:\ws"
shell "ws"
chdir "c:\b\ca"
cls
end if

input "Para seguir pulse ",aa
cls
return


def fnMAX(a,b)
if a>=b then fnMAX=a else fnMAX=b
end def

redondos:
IF drp>=0 AND drp<=12 THEN drp=12
IF drp>12 AND drp<=14 THEN drp=14
IF drp>14 AND drp<=16 THEN drp=16
IF drp>16 AND drp<=20 THEN drp=20
RETURN

redondos2:
FOR ff=1 TO 3
IF d(ff)<=10 THEN d(ff)=10
IF d(ff)>10 AND d(ff)<=12 THEN d(ff)=12
IF d(ff)>12 AND d(ff)<=14 THEN d(ff)=14
IF d(ff)>14 AND d(ff)<=16 THEN d(ff)=16
IF d(ff)>16 AND d(ff)<=20 THEN d(ff)=20
NEXT ff
RETURN

No hay comentarios: