900 REM ******************************* 910 REM * * 920 REM * PLOTTOMAT * 930 REM * * 940 REM * 1987 BY STEFAN SABLATNOEG * 950 REM * * 960 REM ******************************* 970 : 980 : 990 : 1000 : 1010 REM 1020 REM TITELAUSGABE 1030 REM 1040 : 1050 CLR 1060 POKE53280,15:POKE53281,15:PRINT"[144]" 1070 PRINT"[147] PLOTTOMAT" 1080 PRINT" ---------" 1090 PRINT" PLOTPROGRAMM FUER PED" 1100 PRINT" 5.9.-12.9.87" 1110 PRINT" BY STEFAN SABLATNOEG" 1120 FORI=1TO2000:NEXT 1130 : 1140 REM 1150 REM EINGABE UND DEKLARATION 1160 REM EINIGER VARIABLEN 1170 REM 1180 : 1190 INPUT"[147]WIE VIELE OBJEKTE";OB 1200 DIMN$(OB),P(OB),L(OB),A$(10,OB),B$(20),FO(OB+1) 1210 FORI=1TOOB 1220 PRINT"[147]NAME DES "I". PLOTFILES";:INPUTN$(I) 1230 NEXT 1240 FORT=1TOOB 1250 PRINT"[147]0 - SCHWARZ 1 - BLAU 2 - GRUEN 3 - ROT[144]" 1260 PRINT"FARBE DES "T". OBJEKTES (0-3)";:INPUTFO(T) 1270 NEXT 1280 PRINT"[147]0 - SCHWARZ 1 - BLAU 2 - GRUEN 3 - ROT[144]" 1290 INPUT"FARBE DER SCHRIFT (0-3)";FS 1300 PRINT"[147]0 - SCHWARZ 1 - BLAU 2 - GRUEN 3 - ROT[144]" 1310 INPUT"FARBE DES RAHMENS UM DIE BESCHRIFTUNG";FR 1320 REM ABFRAGEN ZUM DESIGN 1330 PRINT"[147]RAHMEN UM GRAFIK ZEICHNEN ?" 1340 POKE198,0:WAIT198,1:GETG$:IFG$="J"THENRA=1:GOTO1360 1350 IFG$<>"N"THEN1330 1360 PRINT"[147]PUNKTNUMMERN EINZEICHNEN ?" 1370 POKE198,0:WAIT198,1:GETG$:IFG$="J"THENNU=1:GOTO1392 1380 IFG$<>"N"THEN1360 1392 PRINT"[147]OBJEKTBLOCK ZEICHNEN ?" 1394 POKE198,0:WAIT198,1:GETG$:IFG$="J"THENBL=1:GOTO1460 1396 IFG$<>"N"THEN1392 1398 : 1400 REM 1410 REM EINGABEN ABGESCHLOSSEN 1420 REM 1430 REM DATEN FILES LESEN 1440 REM 1450 : 1460 PRINT"[147]---> BITTE LEGEN SIE DIE DISKETTE MIT" 1470 PRINT" DEN/M PLOTFILE(S) EIN UND MACHEN" 1480 PRINT" SIE DEN PLOTTER FERTIG.......TASTE" 1500 POKE198,0:WAIT198,1:POKE198,0 1510 OPEN15,8,15 1520 PRINT"[147]READING "; 1530 FORK=1TOOB 1540 OPEN1,8,2,N$(K)+",S,R" 1550 GOSUB4450 1560 IFE<>0THEN1050 1570 INPUT#1,P(K):INPUT#1,L(K) 1580 GOSUB4450 1590 IFE<>0THEN1050 1600 P(K)=P(K)+1:L(K)=L(K)+1 1610 P=P+P(K):L=L+L(K) 1620 CLOSE1 1630 NEXT 1640 REM 1650 REM GROESSE BESTIMMT NUN FELDER 1660 REM DIMENSIONIEREN 1670 REM UND DATEN EINLESEN 1680 REM 1690 DIM X(P+1),Y(P+1),N%(P+1),L1%(L+1),L2%(L+1) 1700 YI=999999:XI=999999 1710 IL=1:IP=0:PA=0:FORK=1TOOB 1720 OPEN1,8,2,N$(K)+",S,R" 1730 GOSUB4450 1740 IFE<>0THEN1050 1750 INPUT#1,PH:INPUT#1,LH 1760 GOSUB4450 1770 IFE<>0THEN1050 1780 FORJ=0TOPH 1790 INPUT#1,N%(IP),X,Y 1800 GOSUB4450 1810 IFE<>0THEN1050 1820 PRINT"."; 1830 IFN%(IP)=-1THENX=-1:Y=-1:GOTO1860 1840 IFX0THEN1050 1930 IFP1=-1ORP2=-1THENL1%(IL)=P1:L2%(IL)=P2:GOTO1960 1940 PRINT"."; 1950 L1%(IL)=P1+PA:L2%(IL)=P2+PA 1960 IL=IL+1 1970 NEXTJ 1980 FORJ=0TO10 1990 INPUT#1,A$(J,K) 2000 GOSUB4450 2010 IFE<>0THEN1050 2020 NEXTJ 2030 CLOSE1 2040 PA=IP 2050 NEXTK 2060 CLOSE15 2070 : 2080 : 2090 REM 2100 REM ENDE DES EINLESENS 2110 REM 2120 REM GROESSE DES OBJEKTS OPTIMIEREN 2130 REM 2140 : 2150 : 2160 PRINT:PRINT"[147]THINKING " 2170 FORI=0TOP 2180 IFX(I)=-1THEN2200 2190 X(I)=X(I)-XI:Y(I)=Y(I)-YI 2200 NEXT 2210 FORI=0TOP 2220 IFX(I)>XMTHENXM=X(I) 2230 IFY(I)>YMTHENYM=Y(I) 2240 NEXT 2250 TU=0 2260 IFXM>YM THEN2320 2270 H=XM:XM=YM:YM=H 2280 FORI=0TOP 2290 H=X(I):X(I)=Y(I):Y(I)=H 2300 NEXT 2310 TU=1 2320 F1=998/XM:F2=479/YM 2330 F=F1:IFF2-1THENX(I)=X(I)+ADD 2430 NEXT 2440 : 2450 : 2460 REM 2470 REM ENDE DER ANPASSUNG 2480 REM 2490 REM PLOTTEN DES OBJEKTES 2500 REM 2510 : 2520 : 2530 PRINT:PRINT"[147]PLOTTING"; 2540 OPEN1,6,1:OPEN2,6,2:OPEN3,6,3:OPEN4,6,4:OPEN7,6 2550 PRINT#3,1:PRINT#7:PRINT#4,0 2560 PRINT#2,FO(1) 2570 REM 2580 FORI=1TOL 2590 IFL1%(I)=-1ORL2%(I)=-1THEN2660 2600 IFI=1THEN2620 2610 IF(L2%(I)=L2%(I-1))OR((R=1)AND(L2%(I)=L1%(I-1)))THEN3800 2620 R=0 2630 PRINT#1,"M";X(L1%(I)),-Y(L1%(I)) 2640 PRINT#1,"D";X(L2%(I)),-Y(L2%(I)) 2650 PRINT"."; 2660 LK=0:FORT=1TOOB 2670 LK=LK+L(T) 2680 IFI=LKTHENPRINT#2,FO(T+1) 2690 NEXT 2700 NEXT 2710 : 2720 : 2730 REM 2740 REM OBJEKT GEPLOTTET 2750 REM 2760 REM PUNKTNUMMERN EINZEICHNEN 2770 REM 2780 : 2790 : 2800 IF NU=0THEN3080 2810 IFTU=0THEN2920 2820 PRINT#4,0:PRINT#3,0:PRINT#2,FS:FORI=0TOP-1:XP=X(I):YP=-Y(I) 2830 IFN%(I)=-1THEN2890 2840 IFYP<-XM*F+2THENYP=-XM*F+2 2850 IFYP>-10THENYP=-10 2860 NR$=STR$(N%(I)):NR$=RIGHT$(NR$,LEN(NR$)-1) 2870 IFXP>455THENXP=479-6*LEN(NR$) 2880 PRINT#1,"M";XP;YP:PRINT#7,NR$; 2890 NEXT:GOTO3080 2900 REM 2910 REM 2920 PRINT#4,1:PRINT#3,0:PRINT#2,FS:FORI=0TOP-1:XP=X(I):YP=-Y(I) 2930 IFN%(I)=-1THEN3000 2940 IFYP<-XM*F+2THENYP=-XM*F+2 2950 IFYP>-10THENYP=-10 2960 NH$=STR$(N%(I)):NH$=RIGHT$(NH$,LEN(NH$)-1) 2970 NR$="":FORJ=1TOLEN(NH$):NR$=MID$(NH$,J,1)+" "+NR$:NEXT 2980 IFXP>431THENXP=479-6*LEN(NR$) 2990 PRINT#1,"M";XP;YP:PRINT#7,NR$; 3000 NEXT 3010 : 3020 : 3030 REM 3040 REM RAHMEN WENN GEWUENSCHT 3050 REM 3060 : 3070 : 3080 IFRA<>1THEN3130 3090 PRINT#2,FR 3100 PRINT#1,"M";0;0:PRINT#1,"D";0;-XM*F 3110 PRINT#1,"D";479,-XM*F:PRINT#1,"D";479;0 3120 PRINT#1,"D";0;0 3130 PRINT#1,"M";0;-XM*F 3140 : 3150 : 3160 REM 3170 REM OBJEKTBLOCK AUSWAEHLEN UND PLOTTEN 3180 REM 3190 : 3200 : 3210 IFBL=0THENPRINT#7:PRINT#7:PRINT#7:PRINT#7:GOTO3640 3215 IFTU=0THEN3900:REM OBJEKT WURDE NICHT GEDREHT 3220 REM AB HIER OBJEKTBLOCK FUER GEDREHTES OBJEKT 3230 FORK=1TOOB 3240 PRINT#2,FS 3250 PRINT#3,1 3260 PRINT#7 3270 PRINT#3,0 3280 PRINT#7," AUGENPUNKT : X :";A$(1,K) 3290 PRINT#7," : Y :";A$(3,K) 3300 PRINT#7," : Z :";A$(5,K) 3310 PRINT#7," BLICKPUNKT : X :";A$(2,K) 3320 PRINT#7," : Y :";A$(4,K) 3330 PRINT#7," : Z :";A$(6,K) 3340 PRINT#7," ZOOMFAKTOR :";A$(8,K) 3350 PRINT#7," BLICKWINKEL :";A$(9,K) 3360 PRINT#7," BILDGROESSE :";A$(7,K); 3370 PRINT#3,3 3380 PRINT#7:PRINT#7," OBJEKT:" 3390 PRINT#2,FO(K) 3400 PRINT#7," "LEFT$(N$(K),9):PRINT#7," "MID$(N$(K),10,6); 3410 PRINT#2,FR 3420 PRINT#1,"M";0;0:PRINT#1,"D";0;330:PRINT#1,"D";479;330 3430 PRINT#1,"D";479;0:PRINT#1,"D";0;0 3440 PRINT#1,"M";0;300:PRINT#1,"D";479;300 3450 PRINT#1,"M";479;269:PRINT#1,"D";0;269 3460 PRINT#1,"M";0;259:PRINT#1,"D";479;259 3470 PRINT#1,"M";479;249:PRINT#1,"D";0;249 3480 PRINT#1,"M";0;239:PRINT#1,"D";479;239 3490 PRINT#1,"M";479;160:PRINT#1,"D";0;160 3500 PRINT#3,0 3510 FORI=1TO16:PRINT#7:NEXT 3520 REM 3530 NEXTK 3540 PRINT#3,1:PRINT#7:PRINT#7:PRINT#7:PRINT#7:PRINT#7 3550 : 3560 : 3570 REM 3580 REM ENDE DES GEDREHTEN OBJEKTBLOCKS 3590 REM 3600 REM GLEICHES OBJEKT NOCHMAL ???? 3610 REM 3620 : 3630 : 3640 PRINT"[147]DAS SELBE OBJEKT" 3650 PRINT"NOCHMAL PLOTTEN ? (J/N)":POKE198,0:WAIT198,1:GETG$:IFG$="J"THENAG=1 3660 IFG$<>"N"ANDG$<>"J"THEN3640 3670 CLOSE1:CLOSE2:CLOSE3:CLOSE4:CLOSE7 3680 IFAG=1THENAG=0:GOTO2530 3690 PRINT"[147]EIN ANDERES OBJEKT" 3700 PRINT"PLOTTEN ? (J/N)":POKE198,0:WAIT198,1:GETG$:IFG$="J"THEN1050 3710 IFG$<>"N"THEN3690 3720 END 3730 REM ******************** 3740 REM *ENDE DES PROGRAMMS* 3750 REM ******************** 3760 REM 3770 : 3780 : 3790 REM LINIE DURCHZIEHEN 3800 R=1 3810 PRINT#1,"D";X(L1%(I)),-Y(L1%(I)) 3820 GOTO2660 3830 : 3840 : 3850 REM 3860 REM OBJEKTBLOCK FUER NICHT GEDREHTES OBJEKT 3870 REM 3880 : 3890 : 3900 FORK=1TOOB 3910 PRINT#2,FS 3920 PRINT#4,1 3930 PRINT#3,0 3940 REM 3950 PRINT#7:PRINT#7:PRINT#7 3960 B$(1)="AUGENPUNKT : X :"+A$(1,K) 3970 B$(7)="BLICKPUNKT : X :"+A$(2,K) 3980 B$(3)=" : Y :"+A$(3,K) 3990 B$(9)=" : Y :"+A$(4,K) 4000 B$(5)=" : Z :"+A$(5,K) 4010 B$(11)=" : Z :"+A$(6,K) 4020 B$(17)="BILDGROESSE :"+A$(7,K) 4030 B$(13)="ZOOMFAKTOR :"+A$(8,K) 4040 B$(15)="BLICKWINKEL :"+A$(9,K) 4050 FORI=1TO18 4060 IFLEN(B$(I))<30THENB$(I)=B$(I)+" ":GOTO4060 4070 NEXT 4080 FORJ=1TO30 4090 FORI=18TO1STEP-1 4100 PRINT#7,MID$(B$(I),J,1); 4110 NEXT 4120 PRINT#7 4130 NEXT 4140 PRINT#2,FR 4150 PRINT#1,"M";0;320 4160 PRINT#1,"D";479;320:PRINT#1,"D";479;0:PRINT#1,"D";0;0:PRINT#1,"D";0;320 4170 PRINT#1,"M";16;320:PRINT#1,"D";16;0 4180 PRINT#1,"M";28;320:PRINT#1,"D";28;0 4190 PRINT#1,"M";40;320:PRINT#1,"D";40;0 4200 PRINT#1,"M";76;320:PRINT#1,"D";76;0 4210 PRINT#1,"M";112;320:PRINT#1,"D";112;0 4220 PRINT#1,"M";112;250:PRINT#1,"D";479;250 4230 PRINT#1,"M";0;250 4240 PRINT#2,FS 4250 PRINT#4,0 4260 PRINT#3,3 4270 PRINT#7," OBJEKT:" 4280 PRINT#2,FO(K) 4290 PRINT#7," ";LEFT$(N$(K),7):PRINT#7," ";MID$(N$(K),8,7) 4300 REM 4310 PRINT#3,0 4320 PRINT#7 4330 PRINT#3,1 4340 NEXT 4350 PRINT#7:PRINT#7:PRINT#7:PRINT#7 4360 REM 4370 REM OBJEKTBLOCK FUER NICHT GEDREHTES OBJEKT IST FERTIG ->RUECKSPRUNG 4380 REM 4390 GOTO3640 4400 : 4410 : 4420 REM 4430 REM FEHLERKANAL DER FLOPPY 4440 REM 4450 INPUT#15,E,E$,E1,E2 4460 IFE=0THENRETURN 4470 PRINT"[147]DISK FEHLER:" 4480 PRINT"";E;E$;E1;E2"[146]" 4490 PRINT"BITTE PROBLEM BEHEBEN UND NOCHMAL ANFANGEN -->TASTE" 4500 POKE198,0:WAIT198,1:POKE198,0 4510 RETURN