domingo, 17 de abril de 2011

CALCULO DE ARMADURAS EN VIGUETAS DE FORJADO


' port1.bas


cls
color 10,6
cls

print "Pantalla o impresora p/i "
o$=input$(1)
if o$="" then o$="p"
select case o$
case "i" : open "lpt1:" for output as #1
case else: open "scrn:" for output as #1
end select


pi=4*atn(1)
lea=4100 ' limite elastico del acero
rkh=250 ' resistencia caracteristica del hormigon
csa=1.1 ' coeficiente de seguridad del acero
csc=1.6 ' coeficiente de seguridad de las cargas
csh=1.5 ' coeficiente de seguridad del hormigon
rca=lea/csa ' resistencia de calculo del acero
rch=rkh/csh

mdl=10 'maximo de luces por cada portico
dim l(mdl)
dim ms(20)
dim mi(20)
dim r$(20)

dim ars$(29)
'altura.entrevigado.ancho nervio.capa de compresion,carga
data 28,70,10,4,700
read ht,b,bw,hf,q
h=ht-2.5

'serie de diametros de redondos
data 6,8,10,12,14,16,20,0

n=0
do
incr n
read d(n)
if d(n)=0 then exit loop
loop
ndd=n-1

'...................................

' PORTICOS
Input "Nombre del proyecto ";pro$
open pro$ for input as #2
input #2, ndpo
for pp=1 to ndpo
input #2, por$
n=0
do
incr n
input #2, l(n)
if l(n)=0 then exit loop
loop

'ndpo=4
'for pp=1 to ndpo
' data A,3.5,0
' data B,4,5,5,0
' data C,3,4,5,2,0
' data D,2,3,5,0

'read por$
'n=0
' do
' incr n
' read l(n)
' if l(n)=0 then exit loop
' loop

ndv=n-1

ks(1)=0.15
ks(ndv+1)=ks(1)
ki(1)=0.775
if ndv=1 then ki(1)=0.95
ki(ndv)=ki(1)

ks(2)=0.5
ks(ndv)=ks(2)
if ndv=2 then ks(2)=0.6
if ndv>2 then ki(2)=0.65
ki(ndv-1)=ki(2)
if ndv=3 then ki(2)=0.6

if ndv>3 then
for n=3 to ndv-1
ks(n)=0.4
if n
next n
end if

' CALCULO
' momento maximo que absorve cada armadura
g=0
for n= 1 to ndd
for m=1 to 2
incr g
a=m*pi*(d(n)/(10*2))^2
ms(g)=rca*a*h*(1-rca*a/(2*rch*b*h))/csc
mi(g)=rca*a*h*(1-rca*a/(2*rch*bw*h))/csc
r$(g)=str$(m)+"R"+str$(d(n))

next m
next n
'if pp=1 then
' d3$="\ \ ######,.## ######,.##"
' print #1, "Armadura ms mi"
' for n=1 to 2*ndd
' print #1, using d3$;r$(n);ms(n);mi(n)
' next
' call s
'end if
'.....................
'momento de calculo

for n=1 to ndv+1
l=100*(l(n)+l(n-1))/2
msc(n)=(ks(n)*4.9*l^2)/8
if n
l=100*l(n)
mic(n)=(ki(n)*b*(q/10000)*l^2)/8
end if
next n

'......................
'seleccion de armadura

for p=1 to (ndv+1)
difs.min=0
difi.min=0

for n=1 to 2*ndd
difs=ms(n)-msc(p)
difi=mi(n)-mic(p)
if difs>=0 Then
if difs.min=0 then difs.min=difs
if difs=
end if
if difi>=0 Then
if difi.min=0 then difi.min=difi
if difi=
end if
next n
next p
'.......................
' longitud de negativos

ni(1)=0.1*l(1)*100:if ni(1)<2*ht then ni(1)=2*ht
if ndv>1 then nd(1)=0.3*l(1)*100 else nd(1)=ni(1)
if ndv>1 then
for n=2 to ndv-1
ni(n)=0.25*l(n)*100
nd(n)=0.25*l(n)*100
next n
end if
if ndv>1 then
nd(ndv)=0.1*l(ndv)*100:if nd(ndv)<2*ht then nd(ndv)=2*ht
ni(ndv)=0.3*l(ndv)*100
end if

d1$=" ## #,.### ######,.## \ \ ### ### ######,.##"
d2$=" ##,.## #,.### ######,.## \ \ ######,.##"
d4$="\ \ ####, \ \"
if pp=1 then
print #1, " CALCULO DE ARMADURAS EN VIGUETAS DE FORJADO"
PRINT #1, " ..........................................."
PRINT #1, "Calculos realizados de acuerdo con la instruccion para el proyecto y"
print #1, "la ejecucion de obras de hormigon armado EHE"
print #1,
print #1, "Datos generales del forjado y de los materiales:"
print #1, using d4$;"Canto del forjado : ";ht;" cm."
print #1, using d4$;"Entrevigado.......: ";b ;" cm."
print #1, using d4$;"Ancho del nervio. : ";bw;" cm."
print #1, using d4$;"Capa de compresion: ";hf;" cm."
print #1, using d4$;"Limite elastico del acero..............: ";lea;" kg/cm2"
print #1, using d4$;"Resistencia caracteristica del hormigon: ";rkh;" kg/cm2"
print #1, "Nivel de control de la ejecucion.................: Normal"
print #1, "________________________________________________________________"
end if

print #1," PORTICO ";por$
print #1,
print #1,
print #1, "Nudo luz k mc ARMADURAS ma"
print #1, " m. kg.cm SUP INF long(cm)"
print #1, "____________ _______ ____________ _______________________ __________"
for n=1 to ndv+1
print #1, using d1$;n;ks(n);msc(n);ars$(n);nd(n-1);ni(n),msa(n)
if n
next
print #1, "_____________________________________________________________________________"
print #1,
if o$= "p" then call s
next pp
end

sub s
while inkey$="":wend
cls
end sub

No hay comentarios: