=============================================================

 Kurzanleitung zum Programm rskala - Erstellung von Rundskalen

 dg4ydx, 12.02.2001 - Neuerungen in README_EN.htm

=============================================================

1 Name: 

  rskala

2 Aufruf:

  Der Aufruf von rskala lautet: rskala eingabedatei ausgabedatei
  Werden keine Parameter eingegeben, wird man nach den beiden
  Dateinamen gefragt.

3 Beschreibung: 

  rskala dient zur Erstellung von Rundskalen fuer Amateurfunk-
  und beliebige andere elektronische Geraete. Als Ausgabeformate
  werden zur Zeit emTeX, emTeX-TeXCAD und HPGL unterstuetzt.
  HPGL kann (sowohl WINDOS als auch LINUX) mit dem Programm
  "hp2xx" in diverse andere Formate umgewandelt werden.

4 Format der Eingabedateien

4.0 Allgemein

	Die Eingabedatei ist eine normale ASCII-Textdatei.
	Sie besteht aus Worten - Befehlen oder Zahlen -, 
	die durch Leerzeichen, TAB, CR oder LF voneinander
	getrennt sind. Der Zeilenumbruch hat also keine		
	Auswirkungen, man kann auch jedes Wort in eine
	Zeile schreiben.
	
	Bereiche, die durch geschweifte Klammern eingeschlossen sind, werden 
	nicht beruecksichtigt, sie gelten als Kommentare. Kommentare
	koennen auch ueber mehrere Zeilen gehen, sie duerfen jedoch
	nicht geschachtelt werden.

	Klein- und Grossschreibung spielt keine Rolle innerhalb
        der Eingabedatei.

	Bei nicht-ganzen Zahlen ist zu beachten, dass das Komma
	als "." geschrieben wird, also z.B.:
	5/2 = 2.5 richtig
	5/2 = 2,5 falsch 

	Hier ein Beispiel fuer eine Eingabedatei:

-----------------------------------------------------------------
	BILDWEITE 210		{ Bildweite = 210 mm, DIN A4    }
	BILDHOEHE 297		{ Bildhoehe = 297 mm einstellen }
	SPRACHE   HPGL		{ Ausgabeformat fuer HP-Plotter }
	PI	  180		{ Alle Winkel in Altgrad }
	INIT			{ Ausgabedatei oeffnen }

	SCHRIFT			{ Einen Text ausgeben }
		   xschrift   0
		   yschrift   140
		   wschrift   10
		   hschrift   10
		   qschrift   1
		   phischrift 0
	STARTSCHRIFT
		UKW-FM-Empf„nger
	ENDSCHRIFT

	LINSKALA                { Eine Rundskala ausgeben }
		   radius       40	
		   winkelvon    -180  
		   winkelbis    0     
		   zahlvon      88	
		   zahlbis      108   
		   zahlabst     2	
		   stellen      3     
		   nachkomma    0	
		   dreh	        1	
		   aussen	1	
		   zahlenhoehe  5  
		   zahlenweite  5  
		   zahlenwinkel 0  
		   lszahl       3  
		   aszahl	1  
		   langabst     1 
		   lslang       2  
		   kurzabst     0.1 
		   lskurz	1.5 
	ENDSKALA
	LINIE	  -100 0 100 0  { Eine Linie ausgeben }
-------------------------------------------------------
	Anfangs werden ein paar Variablen eingestellt
        (BILDWEITE, BILDHOEHE, SPRACHE, PI),
	dann wird die Ausgabedatei geoeffnet (INIT), 
	schliesslich werden Schriftzuege, Linien
	und ganze Skalen ausgegeben (SCHRIFT, LINIE,
	LINSKALA, EICHSKALA).

I Variablen

4.1 BILDWEITE x		- die Bildweite auf x Millimeter  festlegen

	Aufruf..: BILDWEITE zahl
	Beispiel: BILDWEITE 280
	das Bild ist 280 mm beit, die x-Koordinaten
	liegen zwischen -140 und 140.

4.2 BILDHOEHE x		- die Bildhoehe auf x Millimeter festlegen 

	Aufruf..: BILDHOEHE zahl
	Beispiel: BILDHOEHE 200
	das Bild ist 200 mm hoch, die y-Koordinaten
	liegen zwischen -100 und 100.

4.3 SPRACHE		- die Ausgabesprache festlegen

	Aufruf..: SPRACHE LATEX|EMTEX|TEXCAD|HPGL
	Beispiel: SPRACHE HPGL 
	bedeutet: Ausgabe im HPGL-Format, das von diversen
                  Geraeten und Programmen verarbeitet werden
		  kann.

4.5 PI x		- den Winkel fuer einen Halbkreis festlegen (meist 180)

	Aufruf..: PI zahl
	Beispiel: PI 3.14159
	bedeutet: alle folgenden Winkel werden im Bogenmass interpretiert.
	Beispiel: PI 180
	bedeutet: alle folgenden Winkel werden in Altgrad interpretiert
                  (ist der Normalfall).

II Ausgabeaktionen

4.6 INIT		- die Ausgabe initialisieren (erst ab hier kann
                          ausgegeben werden)
	Aufruf: INIT

4.7 ECHO ... ENDECHO	- einen Text auf den Bildschirm (und nur dort!) ausgeben
                          Worte, deren erstes Zeichen ein "#" ist,
                          werden als Zahl interpretiert; das zur Zahl
                          gehoerige ASCII-Zeichen wird ausgegeben.

	Aufruf: ECHO {Wort|#Zahl} ENDECHO
        Beispiel: ECHO Hallo, #13 Du da! ENDECHO 
        gibt aus: "Hallo, 
                  Du da!"  

III Druck-Befehle:

4.8 LINIE x1 y1 x2 y2 	- eine Linie zeichnen
                          vom Punkt (x1,y1) zum Punkt (x2,y2). 

        Aufruf  : LINIE Zahl Zahl Zahl Zahl
	Beispiel: LINIE -100 0 100 0 
        gibt eine 200 mm lange Linie quer ueber die Mitte des Blattes aus.

4.9 SCHRIFT		- gibt einen Schriftzug aus.

        Aufruf: SCHRIFT parameterliste STARTSCHRIFT ENDSCHRIFT
		parameterliste = {XSCHRIFT|YSCHRIFT|WSCHRIFT|HSCHRIFT zahl}
	Beispiel:
		SCHRIFT
		   xschrift 20
		   yschrift 15
		   wschrift 8
		   hschrift 12
		   qschrift 0
		   phischrift 0
		STARTSCHRIFT
		   Das ist das Haus vom Nikolaus. 
		ENDSCHRIFT

4.9.1 XSCHRIFT - Abstand der Schrift von der Bildmitte in seitlicher Richtung

        Aufruf  : XSCHRIFT zahl
        Beispiel: XSCHRIFT 20
        die Schrift liegt 20 mm rechts von der Bildmitte
        Beispiel: XSCHRIFT -35
        die Schrift liegt 35 mm links von der Bildmitte 

4.9.2 YSCHRIFT - Abstand der Schrift von der Bildmitte in vertikaler Richtung

	Aufruf  : YSCHRIFT zahl
        Beispiel: YSCHRIFT 40
        die Schrift liegt 40 mm oerhalb der Bildmitte

4.9.3 WSCHRIFT - Breite eines Schriftzeichens

        Aufruf  : WSCHRIFT zahl
        Beispiel: WSCHRIFT 7
        ein Zeichen ist auf dem Papier 7 mm breit. 

4.9.4 HSCHRIFT - Hoehe eines Schriftzeichens

	Aufruf  : HSCHRIFT zahl
	Beispiel: HSCHRIFT 9 
        jedes Zeichen ist 9 mm hoch. 

4.9.5 QSCHRIFT - Position des Schriftzuges

        Aufruf  : QSCHRIFT 0|1|2|3
        Beispiel: QSCHRIFT 0 
        Schrift liegt rechts oberhalb des Punktes, 
        der mit XSCHRIFT und YSCHRIFT festgelet wurde.
        Beispiel: QSCHRIFT 1 
        Schrift liegt links oberhalb des Punktes. 
        Beispiel: QSCHRIFT 2 
        Schrift liegt links unterhalb des Punktes. 	
	Beispiel: QSCHRIFT 3 
        Schrift liegt rechts unterhalb des Punktes.                  

4.9.6 PHISCHRIFT - Drehwinkel des Schriftzuges
 
        Aufruf  : PHISCHRIFT zahl
        Beispiel: PHISCHRIFT 90
        die Schrift ist um 90 Grad nach links gekippt und steht auf
        dem ersten Buchstaben.
        Beispiel: PHISCHRIFT -90
        die Schrift ist um 90 Grad nach rechts gekippt und steht auf
        dem letzten Buchstaben.

4.9.7 STARTSCHRIFT ... ENDSCHRIFT

        Aufruf  : STARTSCHRIFT {wort} ENDSCHRIFT
        Beispiel: STARTSCHRIFT Das ist das Haus. ENDSCHRIFT
        gibt aus: "Das ist das Haus."

4.10 LINSKALA		- eine Skala beginnen, deren Punkte gleich weit
                          auseinanderliegen

	Aufruf  : LINSKALA parameterliste ENDSKALA
	parameterliste = {RADIUS|WINKELVON|WINKELBIS|ZAHLVON|ZAHLBIS
                         |ZAHLABST|STELLEN|NACHKOMMA|DREH|AUSSEN|
			 |ZAHLENHOEHE|ZAHLENWEITE|ZAHLENWINKEL
			 |LSZAHL|ASZAHL|LANGABST|LSLANG|KURZABST|LSKURZ} zahl
	Beispiel:
	LINSKALA
		radius    40	{ Halbmesser des Kreises }
		winkelvon 0     { von der 3-Uhr-Position }
		winkelbis 180   { bis zur 9-Uhr-Position }
		dreh	  1	{ Zahlen sollen sich um Mittelpunkt drehen }
		aussen	  1	{ Zahlen ausserhalb des 40-mm-Kreises }

		zahlvon   88	{ von 88 MHz }
		zahlbis   108   { bis 108 MHz }
		zahlabst  2	{ Zahlen alle 2 MHz}
		stellen   3     { dreistellige Zahlen }
		nachkomma 0	{ aber ohne Nachkommastellen }

		dreh	  1	{ Zahlen sollen sich um Mittelpunkt drehen }
		aussen	  1	{ Zahlen ausserhalb des 40-mm-Kreises }
		zahlenhoehe  5  { Hoehe eines Ziffernzeichens 5 mm }
		zahlenweite  5  { Breite eines Ziffernzeichens auch 5 mm } 
		zahlenwinkel 0  { Unterseite der Ziffern soll zum
                                  Kreismittelpunkt zeigen } 
		lszahl       3  { Laenge der Strichmarken unter den Zahlen }
		aszahl	     1  { Abstand Zahl - Strichmarke 1 mm }
		langabst     1  { Lange Marken alle 1 MHz }
		lslang       2  { Laenge dieser Marken 2 mm }
		kurzabst     0.1 { kurze Markierungen alle 100 kHz }
		lskurz	     1.5 { Laenge der kurzen Strichmarken 1,5 mm }
	ENDSKALA

4.10.1 RADIUS

	Aufruf  : RADIUS zahl
	Beispiel: RADIUS 70
	gibt eine Skala, deren Durchmesser 140 mm betraegt.

4.10.2 WINKELVON

	Aufruf  : WINKELVON zahl
	Beispiel: WINKELVON 0
	Ergebnis: Skala beginnt rechts vom Blattmittelpunkt
	Beispiel: WINKELVON 90
	Ergebnis: Skala beginnt oberhalb vom Blattmittelpunkt
	Beispiel: WINKELVON 180
	Ergebnis: Skala beginnt links vom Blattmittelpunkt
	Beispiel: WINKELVON -90
	Ergebnis: Skala beginnt links vom Blattmittelpunkt
	Bemerkung: Der Winkel 0 befindet sich dort, wo auf
        dem Zifferblatt einer Uhr eine "3" ist. Von dort
	aus wird gegen den Uhrzeigersinn gemessen:
	  0 Grad -  3 Uhr	180 Grad -  9 Uhr
	 30 Grad -  2 Uhr	210 Grad -  8 Uhr
	 60 Grad -  1 Uhr	240 Grad -  7 Uhr
	 90 Grad - 12 Uhr	270 Grad -  6 Uhr
	120 Grad - 11 Uhr	300 Grad -  5 Uhr
	150 Grad - 10 Uhr 	330 Grad -  4 Uhr

4.10.3 WINKELBIS

	Aufruf  : WINKELBIS zahl
	Beispiel: WINKELBIS 180
	Ergebnis: Skala endet links vom Blattmittelpunkt

	Bemerkung: Die Skala verlaeuft gegen den Uhrzeigersinn
	von WINKELVON bis WINKELBIS.
	Beispiel: WINKELVON 0 WINKELVON 180
	Ergebnis: oberer Halbkreis.
	Beispiel: WINKELVON 180 WINKELBIS 360
	Ergebnis: unterer Halbkreis.

	Einschraenkung: Falls WINKELVON groesser als 
	WINKELBIS ist, muss zu WINKELBIS 360 Grad 
	addiert werden,  damit vom Programm der 
	richtige Drehsinn benutzt wird.

4.10.4 ZAHLVON

	Aufruf  : ZAHLVON zahl
	Beispiel: ZAHLVON 88
	Ergebnis: An der Stelle, an der WINKELVON ist, wird
	die entsprechende Zahl 88 dargestellt.

4.10.5 ZAHLBIS

	Aufruf  : ZAHLBIS zahl
	Beispiel: ZAHLBIS 108
	Ergebnis: An der Stelle, an der WINKELBIS ist, wird
	die entsprechende Zahl 88 dargestellt.

4.10.6 ZAHLABST

	Aufruf  : ZAHLABST zahl
	Beispiel: ZAHLABST 2
	Ergebnis: Die Zahlen 90, 92, ..., 106 stehen an
	den richtigen Stellen der Skala.

4.10.7 STELLEN

	Aufruf  : STELLEN zahl
	Beispiel: STELLEN 3
	Ergebnis: Alle Zahlen dieser Skala werden maximal 
        dreistellig angezeigt.

4.10.8 NACHKOMMA

	Aufruf  : NACHKOMMA zahl
	Beispiel: NACHKOMMA 1
	Ergebnis: Alle Zahlen dieser Skala werden mit einer 
	Nachkommastelle angezeigt.

4.10.9 DREH

	Aufruf  : DREH {0|1}
	Beispiel: DREH 0 
	Ergebnis: Alle Zahlen werden so angezeigt, dass man 
	sie, ohne den Kopf zu drehen, lesen kann.
	Beispiel: DREH 1
	Ergebnis: Alle Zahlen werden so angezeigt, dass man,
	wenn man das Blatt mit der Skala selbst dreht, immer
	an derselben Stelle eine Zahl lesen kann, ohne den 
	Kopf zu drehen - wie etwa bei der Badezimmerwaage, 
	wo die Skala sich dreht, oder beim Elektroherd, wo 
	die Skala auf den Drehknopf gemalt ist.
	
4.10.10 AUSSEN

	Aufruf  : AUSSEN {0|1}
	Beispiel: AUSSEN 0
	Ergebnis: Die Skala liegt innerhalb des Kreises.
	Beispiel: AUSSEN 1
	Ergebnis: Die Skala liegt ausserhalb des Kreises.

4.10.11 ZAHLENHOEHE

	Aufruf  : ZAHLENHOEHE zahl
	Beispiel: ZAHLENHOEHE 3
	Ergebnis: Jedes Zahlenzeichen ist 3 mm hoch.

4.10.12 ZAHLENWEITE

	Aufruf  : ZAHLENWEITE zahl
	Beispiel: ZAHLENWEITE 1.5
	Ergebnis: Jedes Zahlenzeichen ist 1,5 mm breit.

4.10.13 ZAHLENWINKEL

	Aufruf  : ZAHLENWINKEL
	Beispiel: ZAHLENWINKEL 0
	Ergebnis bei Dreh=0: Alle Zahlen sind senkrecht.
	Ergebnis bei Dreh=1: Die Zahl an 3 Uhr ist senkrecht,
	die anderen drehen sich mit den Skalenstrichen mit.
	Immer dann sinnvoll, wenn z.B. das Anzeigefenster rechts
	vom Skalenmittelpunkt liegt. 
	Beispiel: ZAHLENWINKEL -90
	Ergebnis bei Dreh=0: Alle Zahlen sind nach links gekippt.
	Ergebnis bei Dreh=1: Die Zahl an 12 Uhr ist senkrecht,
	die anderen drehen sich mit den Skalenstrichen mit.
	Immer dann sinnvoll, wenn z.B. das Anzeigefenster oberhalb
	des Skalenmittelpunktes liegt. 

4.10.14 LSZAHL

	Aufruf  : LSZAHL zahl
	Beispiel: LSZAHL 2
	Ergebnis: Jeder Skalenstrich an einer Zahl ist 2 mm lang.

4.10.15 ASZAHL

	Aufruf  : ASZAHL zahl
	Beispiel: ASZAHL 1
	Ergebnis: Zwischen der Zahl und dem Skalenstrich an der
	Zahl liegt 1 mm Abstand.

4.10.16 LANGABST

	Aufruf  : LANGABST 
	Beispiel: LANGABST 1
	Ergebnis: Zwischen zwei langen Skalenstrichen liegt ein
 	Zahlenwert von 1.

4.10.17 LSLANG

	Aufruf  : LSLANG zahl
	Beispiel: LSLANG 1.5 
	Ergebnis: Jeder der langen Skalenstriche ist 1,5 mm lang.

4.10.18 KURZABST

	Aufruf  : KURZABST
	Beispiel: KURZABST 0.5
	Ergebnis: Zwischen zwei kurzen Skalenstrichen liegt ein
	Zahlenwert von 0,5.

4.10.18 LSKURZ

	Aufruf  : LSKURZ zahl
	Beispiel: LSKURZ 1
	Ergebnis: Jeder der kurzen Skalenstriche ist 1 mm lang.

4.11 EICHSKALA		- eine Skala beginnen, deren Punkte beim Abgleich
                          ermittelt wurden

	Aufruf  : EICHSKALA parameterliste ENDSKALA
	parameterliste = {((RADIUS|WINKELVON|WINKELBIS
			  |STELLEN|NACHKOMMA|DREH|AUSSEN
			  |ZAHLENHOEHE|ZAHLENWEITE|ZAHLENWINKEL
			  |LSZAHL|ASZAHL|LANGABST|LSLANG|KURZABST|LSKURZ)
                          zahl) | abgleichpunkte}
	abgleichpunkte = LIST {zahl zahl} ENDLIST
	Beispiel: 
	EICHSKALA
		radius    40	{ Halbmesser des Kreises }
		winkelvon -180  { von der 9-Uhr-Position }
		winkelbis 0     { bis zur 3-Uhr-Position}
		LIST		{ Liste der Abgleichmarken: }
			88.5    -180	{ 88.5 MHz,  -180 Grad }
			90	-163	{ 90 MHz,    -180 Grad }
			92	-146	{ 92 MHz,    -180 Grad }
			94	-129	{ 94 MHz,    -180 Grad }
			96	-110	{ 96 MHz,    -180 Grad }
			98	-109	{ 98 MHz,    -180 Grad }
			100	-72	{ 100 MHz,   -180 Grad }
			102	-54	{ 102 MHz,   -180 Grad }
			104	-36	{ 104 MHz,   -180 Grad }
			106	-18	{ 106 MHz,   -180 Grad }
			107.5	0	{ 107.5 MHz, -180 Grad }
		ENDLIST
		stellen   3     { dreistellige Zahlen }
 		nachkomma 0	{ aber ohne Nachkommastellen }
		dreh	  1	{ Zahlen sollen sich um Mittelpunkt drehen }
		aussen	  1	{ Zahlen ausserhalb des 40-mm-Kreises }
		zahlenhoehe  5  { Hoehe eines Ziffernzeichens 5 mm }
		zahlenweite  5  { Breite eines Ziffernzeichens auch 5 mm } 
		zahlenwinkel 0  { Unterseite der Ziffern soll zum
                                  Kreismittelpunkt zeigen } 
		lszahl       3  { Laenge der Strichmarken unter den Zahlen }
		aszahl	     1  { Abstand Zahl - Strichmarke 1 mm }
		langabst     1  { Lange Marken alle 1 MHz }
		lslang       2  { Laenge dieser Marken 2 mm }
		kurzabst     0.1 { kurze Markierungen alle 100 kHz }
		lskurz	     1.5 { Laenge der kurzen Strichmarken 1,5 mm }
	ENDSKALA

4.11.1 LIST ... ENDLIST - eine Liste von Abgleichpunkten angeben

	Aufruf:   LIST {zahl zahl} ENDLIST
	Beispiel: LIST 
			14.020 -90
			14.090 0 
			14.185 900 
		  ENDLIST
	Ergebnis: An der Stelle -90 Grad (Zeigerposition 12 Uhr)
                  wird die Zahl 14.020 ausgegeben, z.B.
                  als Marke fuer 14,020 MHz.
                  An der Stelle 0 Grad (Zeigerposition 3 Uhr)
                  wird die Zahl 14.090 ausgegeben, z.B. 
                  als Marke fuer 14,090 MHz.
                  An der Stelle +90 Grad (Zeigerposition 6 Uhr)
                  wird die Zahl 14.185 ausgegeben, z.B. 
                  als Marke fuer 14,185 MHz.
                  Zwischen diesen beiden Marken wird eine lineare
                  Einteilung vorgenommen (wie bei der linearen 
		  Skala), es werden jedoch zwischen den Marken 
		  keine Zahlen ausgegeben.
		  Je mehr Abgleichpunkte vorhanden sind, desto
		  naeher kann diese lineare Einteilung zwischen
		  den Abgleichpunkten an die Wirklichkeit 
		  heranreichen.

4.11.2 RADIUS, WINKELVON, WINKELBIS, STELLEN, NACHKOMMA, DREH, AUSSEN,
       ZAHLENHOEHE, ZAHLENWEITE, ZAHLENWINKEL, LSZAHL, ASZAHL, LANGABST
       LSLANG, KURZABST, LSKURZ
    
	Aufruf und Beispiele: siehe LINSKALA.

5 Autor/Versionen

Autor....: dg4ydx@firstlinux.net
Version..: 0.12
Datum....: 28.08.1995/12.02.2001
Sprache..: Pascal
Dialekt..: Turbo 6.0 (WINDOS) oder gpc (LINUX)