home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antennas
/
Antennas_CD-ROM_Walnut_Creek_September_1996.iso
/
mininec
/
mn3basic
/
mnarray.asc
< prev
next >
Wrap
Text File
|
1996-06-30
|
5KB
|
169 lines
2 ON ERROR GOTO 60000
10 PRINT" ************************************************"
20 PRINT" * PROGRAM TO ASSEMBLE MININEC ARRAYS *"
30 PRINT" * FROM MININEC ELEMENTS CREATED WITH *"
40 PRINT" * MININEC OR MNGEOM *"
50 PRINT" * R.P. HAVILAND, W4MB *"
60 PRINT" * PROGRAM COPYRIGHT 1990 *"
70 PRINT" * MINILAB BOOKS *"
80 PRINT" * DAYTONA BEACH, FL 32121-1086 *"
90 PRINT" ************************************************"
100 PRINT :PRINT "THIS PROGRAM ASSEMBLES AN ARRAY FROM MININEC FILE ELEMENTS"
110 PRINT " AND ALLOWS GEOMETRY AND WIRE SIZE TO BE CHANGED"
120 PRINT :INPUT "SEE FILE DIRECTORY, Y/N"; T$
130 IF T$<>"Y" THEN 500
140 INPUT "ENTER FILEPATH TO USE, INCLUDE : AND /"; FP$
150 PRINT :PRINT "PRESS RETURN TO CLEAR LISTING"
160 FILES FP$
170 INPUT T$
500 CLS
510 INPUT " ENTER NUMBER OF ELEMENTS IN ASSEMBLED ARRAY";NEL
520 DIM A(50,8)
530 TNW=0
540 FOR I=1 TO NEL
550 GOSUB 4000 'GET ELEMENT DATA
560 GOSUB 5000 'RESIZE ELEMENT
570 GOSUB 6000 'MOVE ELEMENT DATA
580 GOSUB 7000 'CHANGE WIRE RADIUS
590 NEXT I
600 GOSUB 8000 'SAVE ARRAY DATA
900 STOP
3999 REM GET ELEMENT DATA
4000 PRINT " FOR ELEMENT NO. ";I
4010 INPUT "NAME OF ELEMENT TO USE: .GEO WILL BE ADDED";NE$
4020 INPUT "FILEPATH TO USE, INCLUDE : AND /";FP$
4030 NF$=FP$+NE$+".GEO"
4100 OPEN NF$ AS #1 LEN=30
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$
4120 GET #1
4130 NW(I)=CVI(S$)
4140 TNW=TNW + NW(I)
4150 IF TNW > 50 THEN PRINT "***** BEYOND 50 WIRES: STANDARD MININEC CAN'T ANAYLIZE *****" :STOP
4160 PRINT " ELEMENT # ";I
4200 FOR J=TNW-NW(I)+1 TO TNW
4210 GET #1
4220 A(J,1)=CVI(S$)
4230 A(J,2)=CVS(X1$)
4240 A(J,3)=CVS(Y1$)
4250 A(J,4)=CVS(Z1$)
4260 A(J,5)=CVS(X2$)
4270 A(J,6)=CVS(Y2$)
4280 A(J,7)=CVS(Z2$)
4290 A(J,8)=CVS(R$)
4300 PRINT "SEGMENT ";J;
4310 FOR K=1 TO 8
4320 PRINT A (J,K);" ";
4330 NEXT K
4340 PRINT
4400 NEXT J
4500 CLOSE 1
4600 RETURN
4999 REM RESIZE ELEMENT
5000 PRINT :PRINT "RE-SIZE ELEMENT #";I;", Y/N"
5010 INPUT T$
5120 IF T$<>"Y" THEN 6900
5130 PRINT :PRINT " ELEMENT # ";I;" POSITION IS"
5140 PRINT "X1 Y1 Z1 X2 Y2 Z2"
5150 FOR J=TNW-NW(I)+1 TO TNW
5160 FOR K=2 TO 7
5170 PRINT A(J,K);" ";
5180 NEXT K
5190 PRINT
5200 NEXT J
5400 INPUT " ENTER ELEMENT RESIZE SCALE FACTORS FOR X,Y,Z, 1=NO CHANGE ";SX,SY,SZ
5410 FOR J=TNW-NW(I)+1 TO TNW
5420 A(J,2)=A(J,2)*SX
5430 A(J,3)=A(J,3)*SY
5440 A(J,4)=A(J,4)*SZ
5450 A(J,5)=A(J,5)*SX
5460 A(J,6)=A(J,6)*SY
5470 A(J,7)=A(J,7)*SZ
5500 NEXT J
5600 PRINT :PRINT " ELEMENT # ";I;" NEW SIZE IS"
5610 PRINT "X1 Y1 Z1 X2 Y2 Z2"
5620 FOR J=TNW-NW(I)+1 TO TNW
5630 FOR K=2 TO 7
5640 PRINT A(J,K);" ";
5650 NEXT K
5660 PRINT
5670 NEXT J
5900 RETURN
5999 REM RELOCATE ELEMENT
6000 PRINT :PRINT "RELOCATE ELEMENT #";I;", Y/N"
6010 INPUT T$
6120 IF T$<>"Y" THEN 6900
6130 PRINT :PRINT " ELEMENT # ";I;" POSITION IS"
6140 PRINT "X1 Y1 Z1 X2 Y2 Z2"
6150 FOR J=TNW-NW(I)+1 TO TNW
6160 FOR K=2 TO 7
6170 PRINT A(J,K);" ";
6180 NEXT K
6190 PRINT
6200 NEXT J
6400 INPUT " ENTER DISTANCE TO MOVE ELEMENT, X,Y,Z ";MX,MY,MZ
6410 FOR J=TNW-NW(I)+1 TO TNW
6420 A(J,2)=A(J,2)+MX
6430 A(J,3)=A(J,3)+MY
6440 A(J,4)=A(J,4)+MZ
6450 A(J,5)=A(J,5)+MX
6460 A(J,6)=A(J,6)+MY
6470 A(J,7)=A(J,7)+MZ
6500 NEXT J
6600 PRINT :PRINT " ELEMENT # ";I;" NEW POSITION IS"
6610 PRINT "X1 Y1 Z1 X2 Y2 Z2"
6620 FOR J=TNW-NW(I)+1 TO TNW
6630 FOR K=2 TO 7
6640 PRINT A(J,K);" ";
6650 NEXT K
6660 PRINT
6670 NEXT J
6900 RETURN
6999 REM CHANGE WIRE RADIUS
7000 PRINT :INPUT "CHANGE WIRE RADIUS,Y/N";T$
7010 IF T$<>"Y" THEN 7900
7020 PRINT "WIRE DIAMETERS ARE"
7030 FOR J=TNW-NW(I)+1 TO TNW
7040 PRINT A(J,8)
7050 NEXT J
7060 INPUT "ENTER NEW WIRE RADIUS, ALL WIRES IN ELEMENT"; NWR
7070 FOR J=TNW-NW(I)+1 TO TNW
7080 A(J,8)=NWR
7090 NEXT J
7900 RETURN
7999 REM SAVE NEW ARRAY
8000 PRINT :INPUT " NAME OF NEW ARRAY, .GEO WILL BE ADDED";NA$
8010 INPUT "FILEPATH FOR SAVE, INCLUDE : AND /"; FP$
8020 NS$=FP$+NA$+".GEO"
8030 OPEN NS$ AS #1 LEN=30
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$
8050 A(0,1)=TNW
8060 REM NOW SEND NEW FILE TOTAL NO WIRES FIRST
8070 FOR I=0 TO TNW
8080 LSET S$=MKI$(A(I,1))
8090 LSET X1$=MKS$(A(I,2))
8100 LSET Y1$=MKS$(A(I,3))
8110 LSET Z1$=MKS$(A(I,4))
8120 LSET X2$=MKS$(A(I,5))
8130 LSET Y2$=MKS$(A(I,6))
8140 LSET Z2$=MKS$(A(I,7))
8150 LSET RW$=MKS$(A(I,8))
8160 PUT #1
8180 NEXT I
8190 CLOSE 1
8900 RETURN
9999 END
60000 PRINT "ERROR ";ERR;" AT LINE ";ERL
60010 IF ERL=160 THEN RESUME 120
60020 IF ERL=4100 THEN RESUME 4000
60030 IF ERL=8030 THEN RESUME 8000