============================================================= 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)