Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INFORME #001. Programa de Caminos
INFORME #001. Programa de Caminos
1
INFORME N 001-2012
A : Ing. DEVYN OMAR DONAYRE HERNNDEZ
DE : BLAZ ARTEAGA, Dialina Orfelinda.
VELA GOMEZ, Karol Miluska.
GARCA OCHOA, Carlos David.
MENDIETA AYALA, Edwin.
FACHIN TORRES, Ral.
FLORES RUIZ, Bill Brian.
SANCHEZ CHAVEZ, Shierly.
DIAS MARTINEZ, Baldomer.
ASUNTO : ENTREGA DE INFORME DEL TRABAJO
FECHA : 25 DE JULIO DEL 2012
M Mediante el presente me dirijo a Usted para saludarlo cordialmente y a la vez hacer
llegar el informe del TRABAJO, que se realiz el domingo 22 de julio del 2012.
Es todo cuanto informo a Usted para su conocimiento y dems fines.
ING.
CIVIL
Pucallpa-Per
2012
[INFORME DE CAMINOS I] [2012]
2
A continuacin describimos el algoritmo del programa:
LOCAL dato1,dato2,dato3,dato4,dato5,dato6,dato7
WITH thisform
dato1 = .text1.value
dato2 = .text2.value
dato3 = .text3.value/100
dato4 = .text4.value/100
dato5 = .text5.value
dato6 = .text6.value
dato7 = .text7.value
IF dato3 > 0 AND dato4 < 0
abPCV = dato1 - dato5
abPTV = dato1 + dato6
CoPCV = dato2 - (dato3*dato5)
coPTV = dato2 - ((dato4*-1)*dato6)
NroCo = ROUND(dato5/dato7,0)
NroCo2 = ROUND(dato6/dato7,0)
diferencia_pendiente = (dato3 - dato4)
IF diferencia_pendiente < 0
diferencia_pendiente = diferencia_pendiente * -1
ENDIF
eb = (diferencia_pendiente * dato5 * dato6)/(2*(dato5+dato6))
INSERT INTO datos(tipo,cotae,valore,correccion,valor) values('e','PCV',CoPCV,CoPCV,0)
vRecorre = NroCo - 1
[INFORME DE CAMINOS I] [2012]
3
FOR i = 1 TO vRecorre
vNro = 'Co'+ALLTRIM(STR(i))
&vNro = CoPCV + (dato3*(dato7*i))
INSERT INTO datos(tipo,intervalo,cotae,valore)
values('e',(dato7*i),'Co'+ALLTRIM(STR(i)),&vNro)
ENDFOR
xValor = (dato2 - eb)
INSERT INTO datos(tipo,cotae,valore,correccion,valor) values('e','PIV',dato2,xValor,eb)
SELECT datos
=TABLEUPDATE(.t.)
NroCo = ROUND(dato6/dato7,0)
vRecorre2 = NroCo2-1
FOR i = vRecorre2 TO 1 STEP -1
vNro = 'Co2'+ALLTRIM(STR(i))
&vNro = coPTV + ((dato4*-1)*(dato7*i))
INSERT INTO datos(tipo,intervalo,cotae,valore)
values('s',(dato7*i),'Co'+ALLTRIM(STR(i)),&vNro)
ENDFOR
SELECT datos
=TABLEUPDATE(.t.)
SELECT idcota,intervalo,cotae,valore,correccion FROM datos WHERE !EMPTY(intervalo)
AND !EMPTY(cotae) INTO CURSOR cCoEntrada
if _tally > 0
SELECT cCoEntrada
SCAN all
dato = eb * ((cCoEntrada.intervalo/dato5)^2)
SELECT datos
locate for idcota = cCoEntrada.idcota
IF FOUND()
[INFORME DE CAMINOS I] [2012]
4
REPLACE valor WITH dato
REPLACE datos.correccion WITH datos.valore - dato
ENDIF
ENDSCAN
ENDIF
SELECT datos
=TABLEUPDATE(.t.)
SELECT idcota,intervalo,cotae,valore,correccion FROM datos WHERE ALLTRIM(tipo)='s'
INTO CURSOR cCoSalida
if _tally > 0
SELECT cCoSalida
SCAN all
dato = eb * ((cCoSalida.intervalo/dato6)^2)
SELECT datos
locate for idcota = cCoSalida.idcota
IF found()
REPLACE valor WITH dato
REPLACE correccion WITH datos.valore - dato
ENDIF
ENDSCAN
INSERT INTO datos(tipo,cotae,valore,correccion,valor)
values('s','PTV',coPTV,coPTV,0)
SELECT datos
=TABLEUPDATE(.t.)
ENDIF
ENDIF
*******segunda
IF dato3 < 0 AND dato4 < 0 AND dato3 > dato4
dato10 = dato3
dato11 = dato4
[INFORME DE CAMINOS I] [2012]
5
dato3 = dato3*-1
dato4 = dato4*-1
abPCV = dato1 - dato5
abPTV = dato1 + dato6
CoPCV = dato2 + (dato3*dato5)
coPTV = dato2 - (dato4*dato6)
NroCo = ROUND(dato5/dato7,0)
NroCo2 = ROUND(dato6/dato7,0)
diferencia_pendiente = (dato10 - dato11)
IF diferencia_pendiente < 0
diferencia_pendiente = diferencia_pendiente * -1
ENDIF
eb = (diferencia_pendiente * dato5 * dato6)/(2*(dato5+dato6))
INSERT INTO datos(tipo,cotae,valore,correccion,valor) values('e','PCV',CoPCV,CoPCV,0)
vRecorre = NroCo - 1
FOR i = 1 TO vRecorre
vNro = 'Co'+ALLTRIM(STR(i))
&vNro = CoPCV - (dato3*(dato7*i))
INSERT INTO datos(tipo,intervalo,cotae,valore)
values('e',(dato7*i),'Co'+ALLTRIM(STR(i)),&vNro)
ENDFOR
xValor = (dato2 - eb)
INSERT INTO datos(tipo,cotae,valore,correccion,valor) values('e','PIV',dato2,xValor,eb)
SELECT datos
[INFORME DE CAMINOS I] [2012]
6
=TABLEUPDATE(.t.)
NroCo = ROUND(dato6/dato7,0)
vRecorre2 = NroCo2-1
FOR i = vRecorre2 TO 1 STEP -1
vNro = 'Co2'+ALLTRIM(STR(i))
&vNro = coPTV + ((dato4)*(dato7*i))
INSERT INTO datos(tipo,intervalo,cotae,valore)
values('s',(dato7*i),'Co'+ALLTRIM(STR(i)),&vNro)
ENDFOR
SELECT datos
=TABLEUPDATE(.t.)
SELECT idcota,intervalo,cotae,valore,correccion FROM datos WHERE !EMPTY(intervalo)
AND !EMPTY(cotae) INTO CURSOR cCoEntrada
if _tally > 0
SELECT cCoEntrada
SCAN all
dato = eb * ((cCoEntrada.intervalo/dato5)^2)
SELECT datos
locate for idcota = cCoEntrada.idcota
IF FOUND()
REPLACE valor WITH dato
REPLACE datos.correccion WITH datos.valore - dato
ENDIF
ENDSCAN
ENDIF
SELECT datos
=TABLEUPDATE(.t.)
SELECT idcota,intervalo,cotae,valore,correccion FROM datos WHERE ALLTRIM(tipo)='s'
INTO CURSOR cCoSalida
[INFORME DE CAMINOS I] [2012]
7
if _tally > 0
SELECT cCoSalida
SCAN all
dato = eb * ((cCoSalida.intervalo/dato6)^2)
SELECT datos
locate for idcota = cCoSalida.idcota
IF found()
REPLACE valor WITH dato
REPLACE correccion WITH datos.valore - dato
ENDIF
ENDSCAN
INSERT INTO datos(tipo,cotae,valore,correccion,valor)
values('s','PTV',coPTV,coPTV,0)
SELECT datos
=TABLEUPDATE(.t.)
ENDIF
ENDIF
***** tercera
IF dato3 > 0 AND dato4 > 0 AND dato3 > dato4
abPCV = dato1 - dato5
abPTV = dato1 + dato6
CoPCV = dato2 - (dato3*dato5)
coPTV = dato2 + ((dato4*-1)*dato6)
NroCo = ROUND(dato5/dato7,0)
NroCo2 = ROUND(dato6/dato7,0)
diferencia_pendiente = (dato3 - dato4)
IF diferencia_pendiente < 0
diferencia_pendiente = diferencia_pendiente * -1
[INFORME DE CAMINOS I] [2012]
8
ENDIF
eb = (diferencia_pendiente * dato5 * dato6)/(2*(dato5+dato6))
INSERT INTO datos(tipo,cotae,valore,correccion,valor) values('e','PCV',CoPCV,CoPCV,0)
vRecorre = NroCo - 1
FOR i = 1 TO vRecorre
vNro = 'Co'+ALLTRIM(STR(i))
&vNro = CoPCV + (dato3*(dato7*i))
INSERT INTO datos(tipo,intervalo,cotae,valore)
values('e',(dato7*i),'Co'+ALLTRIM(STR(i)),&vNro)
ENDFOR
xValor = (dato2 - eb)
INSERT INTO datos(tipo,cotae,valore,correccion,valor) values('e','PIV',dato2,xValor,eb)
SELECT datos
=TABLEUPDATE(.t.)
NroCo = ROUND(dato6/dato7,0)
vRecorre2 = NroCo2-1
FOR i = vRecorre2 TO 1 STEP -1
vNro = 'Co2'+ALLTRIM(STR(i))
&vNro = coPTV - ((dato4*-1)*(dato7*i))
INSERT INTO datos(tipo,intervalo,cotae,valore)
values('s',(dato7*i),'Co'+ALLTRIM(STR(i)),&vNro)
ENDFOR
SELECT datos
=TABLEUPDATE(.t.)
SELECT idcota,intervalo,cotae,valore,correccion FROM datos WHERE !EMPTY(intervalo)
AND !EMPTY(cotae) INTO CURSOR cCoEntrada
if _tally > 0
[INFORME DE CAMINOS I] [2012]
9
SELECT cCoEntrada
SCAN all
dato = eb * ((cCoEntrada.intervalo/dato5)^2)
SELECT datos
locate for idcota = cCoEntrada.idcota
IF FOUND()
REPLACE valor WITH dato
REPLACE datos.correccion WITH datos.valore - dato
ENDIF
ENDSCAN
ENDIF
SELECT datos
=TABLEUPDATE(.t.)
SELECT idcota,intervalo,cotae,valore,correccion FROM datos WHERE !EMPTY(intervalo)
AND !EMPTY(cotas) INTO CURSOR cCoSalida
if _tally > 0
SELECT cCoSalida
SCAN all
dato = eb * ((cCoSalida.intervalo/dato6)^2)
SELECT datos
locate for idcota = cCoSalida.idcota
IF found()
REPLACE valor WITH dato
REPLACE correccion WITH datos.valore - dato
ENDIF
ENDSCAN
INSERT INTO datos(tipo,cotae,valore,correccion,valor)
values('s','PTV',coPTV,coPTV,0)
SELECT datos
=TABLEUPDATE(.t.)
ENDIF
[INFORME DE CAMINOS I] [2012]
10
ENDIF
contador = 0
SELECT datos
GO top
SCAN ALL
IF contador = 0
REPLACE absisa WITH abPCV
ELSE
REPLACE absisa WITH abPCV + (dato7 * contador)
ENDIF
IF ALLTRIM(tipo) = 'e'
REPLACE pendiente WITH .text3.value
ENDIF
IF ALLTRIM(tipo) = 's'
REPLACE pendiente WITH .text4.value
ENDIF
IF ALLTRIM(cotae)= 'CotaPCV' OR ALLTRIM(cotae)= 'CotaPIV' OR
ALLTRIM(cotae)= 'CotaPTV'
REPLACE pendiente WITH 0
ENDIF
contador = contador + 1
ENDSCAN
SELECT datos
GO TOP
thisform.grid1.Refresh()
ENDWITH
[INFORME DE CAMINOS I] [2012]
11
EJEMPLOS:
1. Para el clculo de una curva vertical asimtrica convexa, se dispone de la siguiente informacin:
Abscisa de PIV = K 3+600
Cota del PIV = 500 m
Pendiente de la tangente de entrada = 5%
Pendiente de la tangente de salida = -7%
Longitud de la curva vertical = 80 m
Longitud de la primera rama de la curva = 50 m
Longitud de la segunda rama de la curva = 30 m
Calcular:
La curva vertical en abscisas de 10 m.
Solucin
[INFORME DE CAMINOS I] [2012]
12
[INFORME DE CAMINOS I] [2012]
13
2. Para el clculo de una curva vertical asimtrica convexa se dispone de la siguiente informacin:
Abscisa de PIV = K 2+640
Cota del PIV = 200 m
Pendiente de la tangente de entrada = -4 %
Pendiente de la tangente de salida = -8%
Longitud de la curva vertical = 120 m
Longitud de la primera rama de la curva = 50 m
Longitud de la segunda rama de la curva = 70 m
Calcular:
La curva vertical en abscisas de 10 m.
Solucin:
[INFORME DE CAMINOS I] [2012]
14
[INFORME DE CAMINOS I] [2012]
15
[INFORME DE CAMINOS I] [2012]
16
CONCLUSIN
Concluimos que el programa creado ayudar a calcular los
problemas de replanteo de una curva vertical asimtrica
convexa.