Vous êtes sur la page 1sur 8

1 MODE 4:SET F3:N=1:R=2:S=3:C=4:A=5:I=6:D=7:P=8:T=9

10 PRINT TAB(2)"*CAL REP Y LOC/CION DE TODO*"TAB(7)"**TIPO DE CURVAS**"

20 INPUT "Selec(Nue/Stn/Cal,Rep,Men)";sc:IF sc=M THEN 1070 ELSE IF sc=R

THEN 370 ELSE IF sc=C THEN 1090 ELSE IF sc=S THEN 340

30 CLS:PRINT "**Tipo De Curv**";TAB(19)"0=Tangente ";:INPUT" 1=Cir

2=Esp Cir Esp 3=Esp Esp";cu:IF cu=0 THEN INPUT "N Linea Base ";nr,"E Linea

Base ";er,"Az linea Base";a17,"Abcs Ini

Base";TE:PC=TE:PT=PC+1E-4:azo=a17:GOTO 340

32 IF cu>=2 THEN INPUT "Esp 0=Simetrica 1=Asimetrica";si

35 INPUT "Trabajar Con 1 - 3 PIs (1/3) ";p:IF p=1 THEN 70

40 sc=N:INPUT "Nombre del PI 1";a$:RESTORE#:RESTORE#a$,1,60

50 READ#a$,np1,ep1:GOTO 70

60 INPUT "Ingrese N PI 1";np1," E PI 1";ep1

70 INPUT "Nombre del PI 2";b$:RESTORE#:RESTORE#b$,1,90

80 READ#b$,np2,ep2:IF p=1 THEN 130 ELSE 100

90 INPUT "Ingrese N PI 2";np2," E PI 2";ep2:IF p=1 THEN 130

100 INPUT "Nombre del PI 3";c$:RESTORE#:RESTORE#c$,1,120

110 READ#c$,np3,ep3:GOTO 130

120 INPUT "Ingrese N PI 3";np3," E PI 3";ep3

130 INPUT "Absc PC / TE";TE,"Radio c";a25:IF p=1 THEN INPUT "Az

PC/TE=>PI";a17,"Curva(I/D)";d,"Delta";a21:a0=1:IF d=I THEN a0=-1

135 IF cu=>2 THEN INPUT "Le1";le1

140 le2=le1:IF si=1 THEN INPUT "Le2";le2:CLS:PRINT "Espere...";

150 c=10:IF a25<70 THEN INPUT "Cuerda";c

155 CLS:PRINT "Espere...";:IF p=1 THEN GOTO 190


160 dt1=POL(np1-np2,ep1-ep2:a17=Y+180:dt2=POL(np2-np3,ep2-ep3:a18=Y+180

170 a21=a18-a17:IF a21>180 THEN a21=a18-360-a17

180 IF a21<-180 THEN a21=a21+360

185 a0=1:IF a21<0 THEN a0=-1:GOTO 200

190 a0=1:IF d=I THEN a0=-1

195 Y=a17+(a21*a0):GOSUB 730:a18=Y

200 a21=ABS a21:Y=a17+180:GOSUB 730:az1=Y

210 Y=a18+180:GOSUB 730:az2=Y

215 IF cu=1 THEN le1=1E-4:PC=TE:EC=TE

220 CLS:PRINT "Espere...";:s1=90*le1/(PI*a25:Y=a17+((90+s1)*a0:GOSUB

730:azo=Y:s2=s1:IF si=1 THEN s2=90*le2/(PI*a25)

230

gc=a21-(s1+s2):oe1=s1*(PI/180:xs1=le1*(1-oe1^2/10:ys1=le1*(oe1/3-
oe1^3/42:IF si=1 THEN

oe2=s2*(PI/180:xs2=le2*(1-oe2^2/10:ys2=le2*(oe2/3-oe2^3/42

235

u1=xs1-ys1*(1/TAN(s1):p1=ys1-a25*(1-COS(s1):q1=xs1-a25*(SIN(s1):ts1=q1+
(a25+p1)*TAN(a21/2):tc1=ys1/SIN(s1):tl1=xs1-(ys1/(TAN(s1)):g=ASN((c/2)/
a25*2:LC=PI/180*a25*gc:IF

cu=1 THEN ex=TAN(a21/4)*ts1:PT=TE+LC:CE=PT:ET=PT

240 IF cu=>2 THEN ex=(a25+p1)/(COS(a21/2))-a25

250 nte=np2+REC(ts1,az1:ete=ep2+Y:IF si=0 THEN

u2=u1:p2=p1:q2=q1:ts2=ts1:tc2=tc1:tl2=tl1:xs2=xs1:ys2=ys1

260 IF si=1 THEN

u2=xs2-ys2*(1/TAN(s2):p2=ys2-a25*(1-COS(s2):q2=xs2-a25*(SIN(s2):ts2=q2+
(a25+p2)*TAN(a21/2:tc2=ys2/SIN(s2):tl2=xs2-(ys2/(TAN(s2))

270 IF cu=2 THEN EC=TE+le1:CE=EC+LC:ET=CE+le2:PC=EC:PT=CE

273

net=np2+REC(ts2,a18:eet=ep2+Y:yo=ys1+REC(a25,s1:xo=xs1-
Y:X=POL(xo,yo*a0:Y=Y+a17:GOSUB 730:nr=nte+COS Y*X:er=ete+SIN Y*X

280 CLS:IF cu=>1 THEN INPUT "Ver Los Elementos(S/N)";o:IF o=N THEN 340
290 IF cu=>2 THEN PRINT "Elementos 1a

Esp=";TAB(0)"Xe=";xs1;TAB(17)"Ye=";ys1,"Disl=";p1;TAB(17)"Ext=";ex;TAB(0)"Tle=
";tl1;TAB(17)"Tce=";tc1,"Te=";ts1

300 IF LC>.01 THEN PRINT "Elementos

Circ=>";TAB(18)"Ext=";ex;TAB(0)"L=";LC,"Del Cir=";DMS$(gc;TAB(0)"Gra
Cir=";DMS$(g

310 IF si=1 THEN PRINT "Elementos 2a

Esp";TAB(0)"Xe=";xs2;TAB(17)"Ye=";ys2,"Disl=";p2;TAB(17)"Ext=";ex;TAB(0)"Tle=";
tl2;TAB(17)"Tce=";tc2,"Te=";ts2

320 IF cu=2 THEN PRINT

"TE=";TE;TAB(17)"EC=";EC;TAB(0)"ET=";ET;TAB(17)"CE=";CE

330 IF cu=1 THEN npc=nte:epc=ete:npt=net:ept=eet:PRINT

"PC=";PC;TAB(15)"N pc";npc;TAB(15)"E pc";epc,"PT=";PT;TAB(15)"N


pt";npt;TAB(15)"E

pt";ept

335 IF cu=3 THEN EE=TE+le1:ET=EE+le2:PRINT

"TE=";TE;TAB(17)"EE=";EE;TAB(0)"ET=";ET

340 sc=S:CLS:INPUT "Nombre Pto

Armado";r$:RESTORE#:RESTORE#r$,1,350:READ#r$,a1,a2,a3:GOTO 355

350 INPUT "Ingrese N Pto";a1," E Pto";a2

355 IF cu=0 THEN az1=a17+180:nte=nr:ete=er:net=nr

360 INPUT "Desea Calc / Repl(C/R)";sc:IF sc=C THEN 1090

370 sc=R:INPUT "Desea Chaflanar(S/N)";dc:IF dc=N THEN 410 ELSE INPUT

"Cta Stn";a3,"AI Inst";a4

380 CLS:INPUT "Curva Vertical(S/N)";cv:IF cv=S THEN INPUT "Absc

PIV";PVP,"Cta PIV";PVZ,"Pen Ent%";S6,"Pen Sal%";S7,"Lon v1";LV1,"Lon

v2";LV2:S3=S6/100:S4=S7/100:PCV=PVP-LV1:PTV=PVP+LV2:ev=(S4-
S3)*LV1*LV2/(2*(LV1+LV2))

390 IF cv=N THEN INPUT "Absc Base";PVP,"Cta Base";PVZ,"Pen

%";S6:S3=S6/100:S4=S3

400 IF dc=S THEN INPUT "M/ban ";mb,"Estruc Sobre


Ras";est,"Talud";tl,"Peralt Max %";pee,"Peralt / Bombeo En Tang (P/B)";pb,"Per/Bom

%";bo,"Absc Prox PCV";fin:per=pee/100:bom=bo/100:pp=per-bom:IF sc=C THEN


1100

410 sc=R:INPUT " Que Metodo Desea (Coor ,Az-dist

(C/A)";in:IF in=C THEN 450

420 sc=R:in=A:INPUT "Az Hor";a6:IF a6=PI THEN 1070 ELSE INPUT "Ang

Ver";a7,"Dis Inc";a8:IF dc=S THEN INPUT "A! pris";a9

430 a10=FRAC a6*100:a11=INT a6+INT a10/60+FRAC a10/36:a12=FRAC

a7*100:a13=INT a7+INT a12/60+FRAC a12/36

440 a36=a3+a4+REC(a8,a13)-a9:a34=a1+COS a11*Y:a35=a2+SIN a11*Y:GOTO


460

450 sc=R:in=C:INPUT "N pt";a34:IF a34=PI THEN 1070 ELSE INPUT "E

pt";a35 :IF dc=S THEN INPUT "C pt";a36 ELSE CLS:PRINT "Espere...";

460 X=POL(a34-nr,a35-er:k=ROUND(540-azo+Y,-8:IF k=>360 THEN k=k-360

470 IF cu=0 THEN ab=PC+REC(X,Y-a17:de=Y:GOSUB 940:GOTO 660

480 IF a0<0 AND k>0 THEN k=360-k

490 IF cu>2 OR (cu=2 AND k>ABS gc)THEN 530

500 s5=0:IF k<=gc THEN ab=PC+(k*LC)/gc:GOTO 520

510 s5=k-gc:ab=PT+X*SIN s5:IF k>180 THEN s5=k-360:ab=PC+X*SIN s5

520 de=a0*(a25-X*COS s5:GOSUB 940:GOTO 660

530 az=a17:X=POL(a34-nte,a35-ete:IF k<180 THEN

az=az2:X=POL(a34-net,a35-eet:GOSUB 730

540 Y=Y-az:GOSUB 730:ang=Y

550 l=REC(X,ang:de=Y:ab=TE+l:IF ab>EC THEN ab=EC

560 IF k<180 THEN de=-de:ab=ET-l:IF ab<CE THEN ab=CE

570 IF COS ang<0 THEN GOSUB 940:GOTO 660

580 de=a0:GOSUB 800:Y=azp:GOSUB 730:azp=Y:IF a34=ne:AND a35=ee THEN

de=0:GOSUB 940:GOTO 660

590 X=POL(ne-a34,ee-a35:GOSUB 730:Y=azp-Y:GOSUB 730


600 dif=Y:IF Y=>180 THEN dif=Y-360:GOTO 620

610 IF Y>90 THEN dif=180-Y

620 ab=ab+X*SIN dif*-a0:IF ABS dif<=.029 OR 180+dif<=.029 THEN de=X*SGN

COS Y*-a0:GOSUB 940:GOTO 660

630 IF cu=2 AND ab<EC+(LC/2)AND ab>EC THEN ab=EC

640 IF cu=2 AND ab>CE-(LC/2)AND ab<CE THEN ab=CE

650 GOTO 580

660 GOTO 680

680 CLS:PRINT "Absc=";ab;TAB(0)"Ord-I/+D=";de

690 IF in=C THEN INPUT "Replantear(S/N)";rp:IF rp=S THEN

X=POL(a1-a34,a2-a35:Y=Y+180:PRINT "Az =";DMS$(Y)TAB(0)"Dis=";X

700 IF in=A THEN INPUT "Desea Coor(S/N)";rp:IF rp=S THEN PRINT "N

pt=";a34;TAB(17)"C pt=";a36;"E pt=";a35

710 IF dc=S THEN 740

720 IF in=A THEN 420 ELSE 450

730 IF Y<0 THEN Y=Y+360

735 IF Y>360 THEN Y=Y-360

737 RETURN

740 CLS:PRINT "Ras Ej";ras;TAB(16)"Cort/llen";cor;TAB(0)"Ras

B/V";rbv;TAB(16)"Chaf=";pch:IF in=A THEN 420 ELSE 450

800 IF ab<=EC THEN

ak=oe1:le=le1:l=ab-TE:i=a0:az=a17:ne=nte:ee=ete:dec=de

810 IF ab=>CE THEN

ak=oe2:le=le2:l=ET-ab:i=-a0:az=az2:ne=net:ee=eet:dec=-de

820 IF l=0 THEN dhs=ABS de:azp=az+90*SGN dec:GOTO 870

830 IF ab<TE AND ab>ET THEN dhs=SQR(l^2+de^2:azp=az+180+ATN(dec/l):GOTO

870

840 u=s1*(l/le1)^2*PI/180:GOSUB 900:dhp=SQR(xe^2+ye^2


850

dfp=ATN(ye/
xe:azp=az+dfp*i:ne=ne+REC(dhp,azp:ee=ee+Y:azp=azp+(90+2*dfp*SGN
de*a0)*SGN dec

860 dhs=ABS de:IF sc=R THEN RETURN

870 np=ne+REC(dhs,azp:ep=ee+Y:GOSUB 940

880 a34=np:a35=ep:CLS:PRINT

"Absc=";ab;TAB(16)"Ord=";de;TAB(0)"Npt=";a34;TAB(16)"Ept=";a35:INPUT
"Replantear(S/N)";rp:IF rp=S THEN

X=POL(a1-a34,a2-a35:Y=Y+180:PRINT "Dis=";X;"

Ord";de;TAB(0)"Az=";DMS$(Y);TAB(16)" Abs";ab ELSE IF dc=N AND tp=T THEN 1080

890 IF tp=P AND dc=N THEN 1100 ELSE PRINT "Ras

eje";ras;TAB(16)"Absc";ab;TAB(0)"Ras bv";rbv;TAB(18)"Ord=";de:GOTO 1080

900

xe=l*(1-.1*u^2+u^4/216-u^6/9360+u^8/685440:ye=l*(u/3-u^3/42+u^5/1320-
u^7/75600+u^9/689720:RETURN

910 ras=(ab-PVP)*-S3+PVZ+est:GOTO 1120

920 ras=(ab-PVP)*S4+PVZ+est:GOTO 1120

930 GOTO 940

940 IF dc=N THEN 1120 ELSE IF ab>fin THEN PRINT "El Prox pcv=";fin:GOTO

380 ELSE IF cv=N THEN 910 ELSE IF ab<PCV THEN 910 ELSE IF PTV<ab THEN

920

950 hv=ab-PCV:IF hv>lv1 THEN 960 ELSE

jv=(ev/LV1^2)*hv^2:kv=PVZ+(PVP-ab)*S3*-1:GOTO 970

960 hv=PTV-ab:jv=(ev/LV2^2)*hv^2:kv=PVZ+(ab-PVP)*S4

970 ras=kv+jv+est:GOTO 1120

990 np=nr+REC(ABSd,az:ep=er+Y

1000 IF ab<TE THEN

X=POL(TE-ab,de*-1:az=az1+Y:np=nte+REC(X,az:ep=ete+Y:GOSUB 940:GOTO 880

1010 IF ab>ET THEN


X=POL(ab-ET,de:az=a18+Y:np=net+REC(X,az:ep=eet+Y:GOSUB 940:GOTO 880

1020 IF cu=3 OR(cu=2 AND(ab<EC OR ab>=CE THEN 800

1030 dab=ab-PC:d1=a25-de*a0:IF d1=0 THEN d1=1E-4

1040 d=d1:az=azo+90*(1+SGN d1*SGN cu

1050 d=d1:IF ab>PC AND ab<PT THEN

az=az+dab*(gc*a0)/LC:dfp=g*dab/2*cl:dhp=2*a25*SIN dfp

1053 IF ab=>PT THEN d=SQR((ab-PT)^2+d1^2:az=az+dfi+ACS(d1/d)*a0

1056 IF ab<=PC THEN d=SQR(dab^2+d1^2:az=az-ACS(d1/d)*a0

1060 np=nr+REC(ABS d,az:ep=er+Y:GOSUB 940:GOTO 880

1070 PRINT " Menu De Apoyo Para Cualquier Cambio":INPUT

"PIs=1:Vert=2:Stn=3:Cal=4:Rep=5: Coor=6:Az=7:";men

1075 ON men GOTO 20,380,340,1090,370,450,420

1080 IF tp=T THEN ab=ab+n:GOTO 1110 ELSE 1100

1090 sc=C:INPUT "Calc Punto / Tramo(P/T)";tp,"Desea Rasante(S/N)";dc:IF

dc=S THEN 380

1100 sc=C:INPUT "Absc a Calc";ab:IF ab=PI THEN 1070 ELSE INPUT "Ord

-I/+D ";de:IF tp=T THEN INPUT "Cuerdas";n

1110 CLS:PRINT "Espere...";:d=ab-TE:GOTO 990

1120 IF cu=0 THEN 1180 ELSE IF ab<TE THEN 1180 ELSE IF ab<EC THEN

l=le1:u1=ab-TE:GOTO 1140

1130 IF ab<CE THEN 1160 ELSE IF ab<ET THEN l=le2:u1=ET-ab:GOTO 1140

1135 GOTO 1180

1140 CLS:PRINT TAB(5)"**Esta en la Espiral**":IF dc=N THEN RETURN ELSE

IF pb=B THEN 1150 ELSE pe=(pp/l)*u1+bom:GOTO 1210

1150 pe=(pp/l)*u1+bom:GOTO 1210

1160 CLS:PRINT TAB(4)"**Esta En La Circular**":IF dc=N THEN RETURN ELSE

rbv=ras+((de*per)*-a0:IF sc=C THEN RETURN

1170 cor=rbv-a36:pch=ABS cor*tl+mb-ABS de:RETURN


1180 CLS:PRINT TAB(4)"**Esta La Tangente**":IF dc=N THEN RETURN ELSE IF

pb=B THEN 1190 ELSE rbv=ras+((de*bom)*-a0:IF sc=C THEN RETURN ELSE 1200

1190 rbv=ras-ABS(de*bom:IF sc=C THEN RETURN

1200 cor=rbv-a36:pch=ABS cor*tl+mb-ABS de:RETURN

1210 rbv=ras+((de*pe)*-a0:IF sc=C THEN RETURN ELSE cor=rbv-a36:pch=ABS

cor*tl+mb-ABS de:RETURN

Vous aimerez peut-être aussi