home *** CD-ROM | disk | FTP | other *** search
/ Antennas / Antennas_CD-ROM_Walnut_Creek_September_1996.iso / mininec / mn3basic / mnplot.asc < prev    next >
Text File  |  1996-06-30  |  5KB  |  177 lines

  1. 10 PRINT " PLOT PROGRAM FOR MININEC3 PATTERN DATA"
  2. 20 PRINT " USE A SCREEN PRINTER PROGRAM FOR HARD COPY"
  3. 30 PRINT " R.P.HAVILAND, NOVEMBER 1986"
  4. 40 PRINT
  5. 50 WIDTH 78
  6. 99 REM SETUP
  7. 100 INPUT "SEE DIRECTORY,Y/N";T$
  8. 110 IF T$<>"Y" THEN 200
  9. 120 INPUT "FILEPATH TO USE";T$
  10. 130 CLS
  11. 140 PRINT "PRESS RETURN TO CONTINUE"
  12. 150 FILES T$
  13. 160 INPUT T$
  14. 199 REM GET FILED DATA
  15. 200 INPUT "ENTER NAME OF FILE; .PAT IS ADDED";NA$
  16. 210 INPUT "ENTER FILEPATH TO USE";FP$
  17. 220 OPEN FP$+NA$+".PAT" FOR INPUT AS #3
  18. 230 INPUT #3,LE,GA,TY$
  19. 240 DIM A(LE,5)
  20. 250 FOR N=1 TO LE
  21. 260 A(N,0)=N
  22. 270 FOR M=1 TO 5
  23. 280 INPUT #3,A(N,M)
  24. 290 NEXT M
  25. 300 NEXT N
  26. 310 CLOSE 3
  27. 399 REM UV/M TO DB/M
  28. 400 IF TY$="D" THEN 500
  29. 410 FOR N=1 TO LE
  30. 420 FOR M=3 TO 5
  31. 430 A(N,M)=20*LOG(A(N,M))
  32. 440 NEXT M
  33. 450 NEXT N
  34. 499 REM GET MAX VALUES
  35. 500 MX=-999
  36. 510 FOR N=1 TO LE
  37. 520 FOR M=3 TO 5
  38. 530 IF MX < A(N,M) THEN MX=A(N,M)
  39. 540 NEXT M
  40. 550 IF MV < A(N,1) THEN MV=A(N,1)
  41. 560 IF MH < A(N,2) THEN MH=A(N,2)
  42. 570 NEXT N 
  43. 799 REM ADJUST PLOT VALUES 800 FOR N=1 TO LE
  44. 810 FOR M=3 TO 5
  45. 820 A(N,M)=A(N,M)-MX
  46. 830 IF A(N,M)<-100 THEN A(N,M)=-100
  47. 840 NEXT M
  48. 850 NEXT N
  49. 999 REM PLOT QUANTITY SELECT
  50. 1000 PRINT "  ENTER  1=VERTICAL POLARIZATION COMPONENT"
  51. 1010 PRINT "         2=HORIZONTAL POLARIZATION COMPONENT"
  52. 1020 PRINT "         3=TOTAL COMPONENT"
  53. 1030 INPUT PC
  54. 1040 IF ABS(PC-2)>1 THEN 1000
  55. 1050 IF PC=1 THEN PC$="VERTICAL COMPONENT"
  56. 1060 IF PC=2 THEN PC$="HORIZONTAL COMPONENT"
  57. 1070 IF PC=3 THEN PC$="TOTAL COMPONENT"
  58. 1100 PC=PC+2
  59. 1110 PRINT "  ENTER V=VERTICAL PLANE PLOT (ZENITH-NADIR)"
  60. 1120 PRINT "        H=HORIZONTAL PLANE PLOT (ANGLES FROM NORTH)"
  61. 1130 INPUT PT$
  62. 1140 IF PT$="V" THEN 3000
  63. 1150 IF PT$<>"H" THEN 1100
  64. 1999 REM DO H-PLANE
  65. 2000 CLS
  66. 2010 PRINT  "ANGLES FROM ZENITH ARE:"
  67. 2020 FOR N=1 TO LE
  68. 2030 PRINT  A(N,1);" ";
  69. 2040 NEXT N
  70. 2050 PRINT 
  71. 2060 PRINT  "**** PLOT ANGLE MUST BE A VALUE FROM THIS TABLE ****"
  72. 2070 INPUT " PLOT ANGLE (90-ANGLE ABOVE HORIZON)";PAH
  73. 2080 IF MH <> 90 THEN IF  MH <> 180 THEN 2200
  74. 2090 INPUT " ENTER 90 OR 180 TO COMPLETE PLOT BY SYMMETRY,OR 0 "; CPS
  75. 2100 PRINT "PRESS RETURN TO TERMINATE PLOT"
  76. 2110 IF CPS=O THEN LIM=0:GOTO 2200
  77. 2120 LIM= 360/CPS-1
  78. 2200 GOSUB 5000
  79. 2210 FOR J=0 TO LIM 
  80. 2205 REP=0
  81. 2220 FOR K=1 TO LE
  82. 2230 IF A(K,1)<>PAH THEN 2370
  83. 2240 RV=A(K,PC)
  84. 2250 AV=(-1)^(J)*A(K,2)-180*(J>1)
  85. 2260 GOSUB 6000
  86. 2370 NEXT K
  87. 2380 NEXT J
  88. 2390 GOSUB 7000
  89. 2400 GOTO 9000
  90. 2999 REM DO V-PLANE
  91. 3000 CLS
  92. 3010 PRINT " AZMUITH ANGLES ARE:"
  93. 3020 FOR N=1 TO 100
  94. 3030 PRINT A(N,2);" ";
  95. 3040 NEXT N
  96. 3050 PRINT 
  97. 3060 PRINT  "**** PLOT ANGLE MUST BE A VALUE FROM THIS TABLE ****"
  98. 3070 INPUT "ENTER AZMUITH ANGLE TO PLOT";PAZ
  99. 3080 IF MH <> 90 THEN IF  MH <> 180 THEN 3200
  100. 3090 INPUT " ENTER 90 OR 180 TO COMPLETE PLOT BY SYMMETRY,OR 0 "; CPS
  101. 3100 PRINT "PRESS RETURN TO TERMINATE PLOT"
  102. 3110 IF CPS=O THEN LIM=0:GOTO 3200
  103. 3120 LIM= 360/CPS-1
  104. 3200 GOSUB 5000
  105. 3210 FOR J=0 TO LIM
  106. 3205 REP=0
  107. 3220 FOR K=1 TO LE
  108. 3230 IF A(K,2)<>PAZ THEN 3370
  109. 3240 RV=A(K,PC)
  110. 3250 AV=(-1)^(J)*A(K,1)-180*(J>1)
  111. 3260 GOSUB 60003370 NEXT K
  112. 3380 NEXT J
  113. 3390 GOSUB 7000
  114. 3400 GOTO 9000
  115. 4999 REM DO COORDINATES
  116. 5000 CLS
  117. 5010 CIRCLE (400,95),200
  118. 5020 CIRCLE (400,95),168
  119. 5030 CIRCLE (400,95),112
  120. 5040 CIRCLE (400,95),35
  121. 5050 LINE (200,95)-(600,95)
  122. 5060 LINE (400,6)-(400,185)
  123. 5070 PI=3.1415927#
  124. 5080 CSX=200*SIN(PI/4)
  125. 5090 CSY=90*SIN(PI/4)
  126. 5100 LINE (400-CSX,95-CSY)-(400+CSX,95+CSY)
  127. 5110 LINE (400+CSX,95-CSY)-(400-CSX,95+CSY)
  128. 5120 RETURN
  129. 5999 REM DO PLOTTING
  130. 6000 REP=REP+1
  131. 6010 RPV1=.89125^(-RV/2)
  132. 6020 XPV1=400+200*RPV1*COS(AV/57.3)
  133. 6030 YPV1=95-90*RPV1*SIN(AV/57.3)
  134. 6040 IF REP=1 THEN 6060
  135. 6050 LINE (XPV2,YPV2)-(XPV1,YPV1)
  136. 6060 XPV2=XPV1
  137. 6070 YPV2=YPV1
  138. 6080 RETURN
  139. 6999 REM DO LEGEND
  140. 7000 PRINT  PC$;" PATTERN FOR "
  141. 7010 PRINT "  ";NA$
  142. 7020 PRINT "PATTERN IS FOR THE ":PRINT PT$;"-PLANE"
  143. 7030 IF PT$="H" THEN PRINT " FOR";90-PAH:PRINT "  DEGREES ABOVE HORIZON"
  144. 7040 IF PT$="V" THEN PRINT " AT AN AZMUITH OF":PRINT PAZ;" DEGREES":PRINT 
  145. 7050 PRINT  "PLOT REFERENCE GAIN=":PRINT  MX;"DB U/V"
  146. 7060 PRINT "= LARGEST LOBE GAIN 
  147. 7070 PRINT "RELATIVE TO ISOTROPIC"
  148. 7080 IF PT$="V" THEN PRINT " TOP IS ZENITH"
  149. 7090 IF PT$="H" THEN PRINT " TOP IS NORTH"
  150. 7100 PRINT :PRINT 
  151. 7110 PRINT "SCALE,CENTER-OUT"
  152. 7120 PRINT " -100 DB"
  153. 7130 PRINT " - 30 DB"
  154. 7140 PRINT "  -10 DB"
  155. 7150 PRINT  "   -3 DB"
  156. 7160 PRINT "    0 DB"
  157. 7170 PRINT "RELATIVE TO"
  158. 7180 PRINT " REFERENCE GAIN"
  159. 7190 INPUT T$
  160. 7200 RETURN
  161. 8999 REM DO CLEANUP
  162. 9000 PRINT " ENTER  P=REPLOT"
  163. 9010 PRINT "        R=ANOTHER RUN"
  164. 9020 PRINT "        Q=QUIT
  165. 9100 INPUT T$
  166. 9200 IF T$="Q" THEN STOP
  167. 9210 IF T$="P" THEN 1000
  168. 9220 IF T$<>"R" THEN 9000
  169. 9230 ERASE A
  170. 9340 END
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177. 2,