home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antennas
/
Antennas_CD-ROM_Walnut_Creek_September_1996.iso
/
mininec
/
mn3basic
/
mnplot.asc
< prev
next >
Wrap
Text File
|
1996-06-30
|
5KB
|
177 lines
10 PRINT " PLOT PROGRAM FOR MININEC3 PATTERN DATA"
20 PRINT " USE A SCREEN PRINTER PROGRAM FOR HARD COPY"
30 PRINT " R.P.HAVILAND, NOVEMBER 1986"
40 PRINT
50 WIDTH 78
99 REM SETUP
100 INPUT "SEE DIRECTORY,Y/N";T$
110 IF T$<>"Y" THEN 200
120 INPUT "FILEPATH TO USE";T$
130 CLS
140 PRINT "PRESS RETURN TO CONTINUE"
150 FILES T$
160 INPUT T$
199 REM GET FILED DATA
200 INPUT "ENTER NAME OF FILE; .PAT IS ADDED";NA$
210 INPUT "ENTER FILEPATH TO USE";FP$
220 OPEN FP$+NA$+".PAT" FOR INPUT AS #3
230 INPUT #3,LE,GA,TY$
240 DIM A(LE,5)
250 FOR N=1 TO LE
260 A(N,0)=N
270 FOR M=1 TO 5
280 INPUT #3,A(N,M)
290 NEXT M
300 NEXT N
310 CLOSE 3
399 REM UV/M TO DB/M
400 IF TY$="D" THEN 500
410 FOR N=1 TO LE
420 FOR M=3 TO 5
430 A(N,M)=20*LOG(A(N,M))
440 NEXT M
450 NEXT N
499 REM GET MAX VALUES
500 MX=-999
510 FOR N=1 TO LE
520 FOR M=3 TO 5
530 IF MX < A(N,M) THEN MX=A(N,M)
540 NEXT M
550 IF MV < A(N,1) THEN MV=A(N,1)
560 IF MH < A(N,2) THEN MH=A(N,2)
570 NEXT N
799 REM ADJUST PLOT VALUES 800 FOR N=1 TO LE
810 FOR M=3 TO 5
820 A(N,M)=A(N,M)-MX
830 IF A(N,M)<-100 THEN A(N,M)=-100
840 NEXT M
850 NEXT N
999 REM PLOT QUANTITY SELECT
1000 PRINT " ENTER 1=VERTICAL POLARIZATION COMPONENT"
1010 PRINT " 2=HORIZONTAL POLARIZATION COMPONENT"
1020 PRINT " 3=TOTAL COMPONENT"
1030 INPUT PC
1040 IF ABS(PC-2)>1 THEN 1000
1050 IF PC=1 THEN PC$="VERTICAL COMPONENT"
1060 IF PC=2 THEN PC$="HORIZONTAL COMPONENT"
1070 IF PC=3 THEN PC$="TOTAL COMPONENT"
1100 PC=PC+2
1110 PRINT " ENTER V=VERTICAL PLANE PLOT (ZENITH-NADIR)"
1120 PRINT " H=HORIZONTAL PLANE PLOT (ANGLES FROM NORTH)"
1130 INPUT PT$
1140 IF PT$="V" THEN 3000
1150 IF PT$<>"H" THEN 1100
1999 REM DO H-PLANE
2000 CLS
2010 PRINT "ANGLES FROM ZENITH ARE:"
2020 FOR N=1 TO LE
2030 PRINT A(N,1);" ";
2040 NEXT N
2050 PRINT
2060 PRINT "**** PLOT ANGLE MUST BE A VALUE FROM THIS TABLE ****"
2070 INPUT " PLOT ANGLE (90-ANGLE ABOVE HORIZON)";PAH
2080 IF MH <> 90 THEN IF MH <> 180 THEN 2200
2090 INPUT " ENTER 90 OR 180 TO COMPLETE PLOT BY SYMMETRY,OR 0 "; CPS
2100 PRINT "PRESS RETURN TO TERMINATE PLOT"
2110 IF CPS=O THEN LIM=0:GOTO 2200
2120 LIM= 360/CPS-1
2200 GOSUB 5000
2210 FOR J=0 TO LIM
2205 REP=0
2220 FOR K=1 TO LE
2230 IF A(K,1)<>PAH THEN 2370
2240 RV=A(K,PC)
2250 AV=(-1)^(J)*A(K,2)-180*(J>1)
2260 GOSUB 6000
2370 NEXT K
2380 NEXT J
2390 GOSUB 7000
2400 GOTO 9000
2999 REM DO V-PLANE
3000 CLS
3010 PRINT " AZMUITH ANGLES ARE:"
3020 FOR N=1 TO 100
3030 PRINT A(N,2);" ";
3040 NEXT N
3050 PRINT
3060 PRINT "**** PLOT ANGLE MUST BE A VALUE FROM THIS TABLE ****"
3070 INPUT "ENTER AZMUITH ANGLE TO PLOT";PAZ
3080 IF MH <> 90 THEN IF MH <> 180 THEN 3200
3090 INPUT " ENTER 90 OR 180 TO COMPLETE PLOT BY SYMMETRY,OR 0 "; CPS
3100 PRINT "PRESS RETURN TO TERMINATE PLOT"
3110 IF CPS=O THEN LIM=0:GOTO 3200
3120 LIM= 360/CPS-1
3200 GOSUB 5000
3210 FOR J=0 TO LIM
3205 REP=0
3220 FOR K=1 TO LE
3230 IF A(K,2)<>PAZ THEN 3370
3240 RV=A(K,PC)
3250 AV=(-1)^(J)*A(K,1)-180*(J>1)
3260 GOSUB 60003370 NEXT K
3380 NEXT J
3390 GOSUB 7000
3400 GOTO 9000
4999 REM DO COORDINATES
5000 CLS
5010 CIRCLE (400,95),200
5020 CIRCLE (400,95),168
5030 CIRCLE (400,95),112
5040 CIRCLE (400,95),35
5050 LINE (200,95)-(600,95)
5060 LINE (400,6)-(400,185)
5070 PI=3.1415927#
5080 CSX=200*SIN(PI/4)
5090 CSY=90*SIN(PI/4)
5100 LINE (400-CSX,95-CSY)-(400+CSX,95+CSY)
5110 LINE (400+CSX,95-CSY)-(400-CSX,95+CSY)
5120 RETURN
5999 REM DO PLOTTING
6000 REP=REP+1
6010 RPV1=.89125^(-RV/2)
6020 XPV1=400+200*RPV1*COS(AV/57.3)
6030 YPV1=95-90*RPV1*SIN(AV/57.3)
6040 IF REP=1 THEN 6060
6050 LINE (XPV2,YPV2)-(XPV1,YPV1)
6060 XPV2=XPV1
6070 YPV2=YPV1
6080 RETURN
6999 REM DO LEGEND
7000 PRINT PC$;" PATTERN FOR "
7010 PRINT " ";NA$
7020 PRINT "PATTERN IS FOR THE ":PRINT PT$;"-PLANE"
7030 IF PT$="H" THEN PRINT " FOR";90-PAH:PRINT " DEGREES ABOVE HORIZON"
7040 IF PT$="V" THEN PRINT " AT AN AZMUITH OF":PRINT PAZ;" DEGREES":PRINT
7050 PRINT "PLOT REFERENCE GAIN=":PRINT MX;"DB U/V"
7060 PRINT "= LARGEST LOBE GAIN
7070 PRINT "RELATIVE TO ISOTROPIC"
7080 IF PT$="V" THEN PRINT " TOP IS ZENITH"
7090 IF PT$="H" THEN PRINT " TOP IS NORTH"
7100 PRINT :PRINT
7110 PRINT "SCALE,CENTER-OUT"
7120 PRINT " -100 DB"
7130 PRINT " - 30 DB"
7140 PRINT " -10 DB"
7150 PRINT " -3 DB"
7160 PRINT " 0 DB"
7170 PRINT "RELATIVE TO"
7180 PRINT " REFERENCE GAIN"
7190 INPUT T$
7200 RETURN
8999 REM DO CLEANUP
9000 PRINT " ENTER P=REPLOT"
9010 PRINT " R=ANOTHER RUN"
9020 PRINT " Q=QUIT
9100 INPUT T$
9200 IF T$="Q" THEN STOP
9210 IF T$="P" THEN 1000
9220 IF T$<>"R" THEN 9000
9230 ERASE A
9340 END
2,