home *** CD-ROM | disk | FTP | other *** search
/ Antennas / Antennas_CD-ROM_Walnut_Creek_September_1996.iso / mininec / amiga / mnarray.asc < prev    next >
Text File  |  1996-06-30  |  4KB  |  157 lines

  1. 10 REM MAKE ARRAY FROM MININEC ELEMENTS
  2. 20 REM R.P.HAVILAND, NOVEMBER 1986, REV 1 MAY 1987
  3. 100 PRINT :PRINT  "THIS PROGRAM ASSEMBLES AN ARRAY FROM MININEC FILE ELEMENTS"
  4. 110 PRINT  " AND ALLOWS GEOMETRY AND WIRE SIZE TO BE CHANGED"
  5. 120 PRINT :INPUT "SEE FILE DIRECTORY, Y/N"; T$
  6. 130 IF T$<>"Y" THEN 500
  7. 140 INPUT "ENTER FILEPATH TO USE, INCLUDE : AND /"; FP$
  8. 150 PRINT :PRINT "PRESS RETURN TO CLEAR LISTING"
  9. 160 FILES FP$
  10. 170 INPUT T$
  11. 500 CLS
  12. 510 INPUT " ENTER NUMBER OF ELEMENTS IN ASSEMBLED ARRAY";NEL
  13. 520 DIM A(50,8)
  14. 530 TNW=0
  15. 540 FOR I=1 TO NEL
  16. 550 GOSUB 4000 'GET ELEMENT DATA
  17. 560 GOSUB 5000 'RESIZE ELEMENT
  18. 570 GOSUB 6000 'MOVE ELEMENT DATA
  19. 580 GOSUB 7000 'CHANGE WIRE RADIUS
  20. 590 NEXT I
  21. 600 GOSUB 8000 'SAVE ARRAY DATA
  22. 900 STOP
  23. 4999 REM GET ELEMENT DATA
  24. 4000 PRINT  " FOR ELEMENT NO. ";I
  25. 4010 INPUT "NAME OF ELEMENT TO USE: .GEO WILL BE ADDED";NE$
  26. 4020 INPUT "FILEPATH TO USE, INCLUDE : AND /";FP$
  27. 4030 NF$=FP$+NE$+".GEO"
  28. 4100 OPEN NF$ AS #1 LEN=30
  29. 4110 FIELD #1,2 AS S$,4 AS X1$,4 AS Y1$,4 AS Z1$,4 AS X2$,4 AS Y2$,4 AS Z2$,4 AS R$ 
  30. 4120 GET #1
  31. 4130 NW(I)=CVI(S$)
  32. 4140 TNW=TNW + NW(I)
  33. 4150 IF TNW > 50 THEN PRINT "***** BEYOND 50 WIRES: STANDARD MININEC CAN'T ANAYLIZE *****" :STOP
  34. 4160 PRINT "   ELEMENT # ";I
  35. 4200 FOR J=TNW-NW(I)+1 TO TNW
  36. 4210 GET #1
  37. 4220 A(J,1)=CVI(S$)
  38. 4230 A(J,2)=CVS(X1$)
  39. 4240 A(J,3)=CVS(Y1$)
  40. 4250 A(J,4)=CVS(Z1$)
  41. 4260 A(J,5)=CVS(X2$)
  42. 4270 A(J,6)=CVS(Y2$)
  43. 4280 A(J,7)=CVS(Z2$)
  44. 4290 A(J,8)=CVS(R$)
  45. 4300 PRINT "SEGMENT ";J;
  46. 4310 FOR K=1 TO 8
  47. 4320 PRINT A (J,K);"   ";
  48. 4330 NEXT K
  49. 4340 PRINT 
  50. 4400 NEXT J
  51. 4500 CLOSE 1
  52. 4600 RETURN    
  53. 4999 REM RESIZE ELEMENT
  54.  
  55. 5000 PRINT :PRINT "RE-SIZE ELEMENT #";I;", Y/N"
  56. 5010 INPUT T$
  57. 5120 IF T$<>"Y" THEN 6900
  58. 5130 PRINT :PRINT " ELEMENT # ";I;" POSITION IS"
  59. 5140 PRINT "X1     Y1     Z1      X2     Y2      Z2"
  60. 5150 FOR J=TNW-NW(I)+1 TO TNW
  61. 5160 FOR K=2 TO 7
  62. 5170 PRINT  A(J,K);"     ";
  63. 5180 NEXT K
  64. 5190 PRINT 
  65. 5200 NEXT J
  66. 5400 INPUT " ENTER ELEMENT RESIZE SCALE FACTORS FOR X,Y,Z, 1=NO CHANGE ";SX,SY,SZ
  67. 5410 FOR J=TNW-NW(I)+1 TO TNW
  68. 5420 A(J,2)=A(J,2)*SX
  69. 5430 A(J,3)=A(J,3)*SY
  70. 5440 A(J,4)=A(J,4)*SZ
  71. 5450 A(J,5)=A(J,5)*SX
  72. 5460 A(J,6)=A(J,6)*SY
  73. 5470 A(J,7)=A(J,7)*SZ
  74. 5500 NEXT J
  75. 5600 PRINT :PRINT " ELEMENT # ";I;" NEW SIZE IS"
  76. 5610 PRINT "X1     Y1     Z1      X2     Y2      Z2"
  77. 5620 FOR J=TNW-NW(I)+1 TO TNW
  78. 5630 FOR K=2 TO 7
  79. 5640 PRINT  A(J,K);"    ";
  80. 5650 NEXT K
  81. 5660 PRINT 
  82. 5670 NEXT J
  83. 5900 RETURN
  84. 5999 REM RELOCATE ELEMENT
  85. 6000 PRINT :PRINT "RELOCATE ELEMENT #";I;", Y/N"
  86. 6010 INPUT T$
  87. 6120 IF T$<>"Y" THEN 6900
  88. 6130 PRINT :PRINT " ELEMENT # ";I;" POSITION IS"
  89. 6140 PRINT "X1     Y1     Z1      X2     Y2      Z2"
  90. 6150 FOR J=TNW-NW(I)+1 TO TNW
  91. 6160 FOR K=2 TO 7
  92. 6170 PRINT  A(J,K);"     ";
  93. 6180 NEXT K
  94. 6190 PRINT 
  95. 6200 NEXT J
  96. 6400 INPUT " ENTER DISTANCE TO MOVE ELEMENT, X,Y,Z ";MX,MY,MZ
  97. 6410 FOR J=TNW-NW(I)+1 TO TNW
  98. 6420 A(J,2)=A(J,2)+MX
  99. 6430 A(J,3)=A(J,3)+MY
  100. 6440 A(J,4)=A(J,4)+MZ
  101. 6450 A(J,5)=A(J,5)+MX
  102. 6460 A(J,6)=A(J,6)+MY
  103. 6470 A(J,7)=A(J,7)+MZ
  104. 6500 NEXT J
  105. 6600 PRINT :PRINT " ELEMENT # ";I;" NEW POSITION IS"
  106. 6610 PRINT "X1     Y1     Z1      X2     Y2      Z2"
  107. 6620 FOR J=TNW-NW(I)+1 TO TNW
  108. 6630 FOR K=2 TO 7
  109. 6640 PRINT  A(J,K);"    ";
  110. 6650 NEXT K
  111. 6660 PRINT 
  112. 6670 NEXT J
  113. 6900 RETURN
  114. 6999 REM CHANGE WIRE RADIUS
  115. 7000 PRINT :INPUT "CHANGE WIRE RADIUS,Y/N";T$
  116. 7010 IF T$<>"Y" THEN 7900
  117. 7020 PRINT  "WIRE DIAMETERS ARE"
  118. 7030 FOR  J=TNW-NW(I)+1 TO TNW
  119. 7040 PRINT A(J,8)
  120. 7050 NEXT J
  121. 7060 INPUT "ENTER NEW WIRE RADIUS, ALL WIRES IN ELEMENT"; NWR
  122. 7070 FOR  J=TNW-NW(I)+1 TO TNW
  123. 7080 A(J,8)=NWR
  124. 7090 NEXT J
  125. 7900 RETURN
  126. 7999 REM SAVE NEW ARRAY
  127. 8000 PRINT :INPUT " NAME OF NEW ARRAY, .GEO WILL BE ADDED";NA$
  128. 8010 INPUT "FILEPATH FOR SAVE, INCLUDE : AND /"; FP$
  129. 8020 NS$=FP$+NA$+".GEO"
  130. 8030 OPEN  NS$ AS #1 LEN=30
  131. 8040 FIELD #1,2 AS S$,4 AS X1$,4 AS Y1$,4 AS Z1$,4 AS X2$,4 AS Y2$,4 AS Z2$,4 AS RW$    
  132. 8050 A(0,1)=TNW
  133. 8060 REM NOW SEND NEW FILE TOTAL NO WIRES FIRST
  134. 8070 FOR I=0 TO TNW
  135. 8080 LSET S$=MKI$(A(I,1))
  136. 8090 LSET X1$=MKS$(A(I,2))
  137. 8100 LSET Y1$=MKS$(A(I,3))
  138. 8110 LSET Z1$=MKS$(A(I,4))
  139. 8120 LSET X2$=MKS$(A(I,5))
  140. 8130 LSET Y2$=MKS$(A(I,6))
  141. 8140 LSET Z2$=MKS$(A(I,7))
  142. 8150 LSET RW$=MKS$(A(I,8))
  143. 8160 PUT #1
  144. 8180 NEXT I
  145. 8190 CLOSE 1
  146. 8900 RETURN
  147. 9999 END 
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.