home *** CD-ROM | disk | FTP | other *** search
-
- Schönschrift mit dem Plotter
-
- Solange man seinen Plotter nur in Verbindung mit professionellen
- CAD-Programmen benutzt, braucht man sich wenig Gedanken über die
- Ansteuerung des "Zeichenknechtes" machen. Kommt man aber einmal auf
- die Idee, einige der Features des Plotters in selbstgeschriebenen
- Programmen auszunutzen, kann man leicht sein blaues Wunder erleben.
- Wie man die Tücken der Technik in den Griff bekommen kann, sei im
- folgenden am Beispiel "Plotter und Zeichensätze" kurz aufgezeigt.
-
- Der Anlass war harmlos : eine Anfrage in der Redaktion, ob man mit
- dem Plotter auch Zeichensätze wie bei einem Nadeldrucker selbst
- gestalten könne und ob hierbei eventuell die im Plotter
- hardwaremässig ansteuerbaren Zeichensätze verwendbar wären. Ehrlich
- gesagt, für die in meinem Plotter-Handbuch erwähnten 14
- Zeichensätze hatte ich mich bis dahin auch nicht interessiert, da
- mein "Haus-Cad-Programm" über eine Reihe von Software-Zeichensätzen
- verfügt. Da Plotter-Handbücher anscheinend genauso uninformativ zu
- sein haben, wie es früher die Drucker-Handbücher waren, und aus
- diesem Grunde ein Ausdruck der Zeichensätze nicht zu finden war,
- machte ich mich mit Hilfe der kurz zuvor entstandenen UNIT HPGL.PAS
- daran, ein kurzes Programm zur Ausgabe der Zeichensätze zu
- schreiben (siehe Listing 1 : Pgm. PLSchrift.PAS). Das Ergebnis war
- enttäuschend, es zeigte sich :
-
- - nur der Bereich von ASCII 32 .. 127 und 160 .. 225 ist mit
- darstellbaren Zeichen belegt, die Restbereiche enthalten meist
- Steuercodes
-
- - sieht man einmal von der japanischen Schrift "Katakana" ab,
- unterscheiden sich die Zeichensätze nur in einigen
- landesspezifischen Zeichen (siehe Bild 1 : deutscher Zeichensatz).
- Daß die Umlaute an "unüblichen" ASCII-Werten stehen, sei in diesem
- Zusammenhang nur noch am Rande erwähnt.
-
- So auf die Schnelle kommt man also nicht an neue Zeichensätze ! Wer
- die Zeichensätze seines CAD-Programmes schon einmal mehr oder wenig
- mühsam mit deutsche Umlauten ergänzt hat, der weiß aber, daß die in
- einem solchen Programm verwendeten Zeichen ja auch nichts anderes
- sind als aus einzelnen Linien zusammengesetzte "Bilder". Mit
- anderen Worten : Vektorgraphik !
-
- Zitat A. Schäpers : "jedes Zeichen eines Grafik-Zeichensatzes ist
- als Folge von X/Y-Wertepaaren definiert, wobei ein Wertepaar aus 2
- aufeinanderfolgenden Bytes besteht und einen Punkt relativ zum
- Ursprung des Zeichens beschreibt". Der "Fachmann" weiß bereits, was
- gemeint ist : in den neuen Versionen von Turbo-Pascal und Turbo-C
- (und angeblich auch bald in Turbo-Basic) sind die Zeichensätze
- (*.CHR) ebenfalls vektormäßig orientiert. Der Gedanke lag also, die
- Zeichensätze von (hier) Turbo-Pascal zum Plotter umzuleiten. Das
- Hauptproblem, das Einlesen eines definierten Zeichenstzes und die
- linienorientierte Ausgabe des Zeichens (am Bildschirm) war bereits
- von D. Bückhart mit dem Programm "Font-Edit" gelöst, ein
- entsprechendes Programm befindet sich auch im Quellcode auf dieser
- Diskette.
-
- Dieses Programm war schnell auf eine Plotterausgabe umgeschrieben
- und ergänzt (s. Listing 2 : PLScript) und in Zusammenarbeit mit der
- UNIT HPGL liess sich bald griechische Schrift und ähnliches zu
- Papier bringen. (siehe Bild 2)
-
- Listing 3 (PLBGI.PAS) enthält einige Hinweise zur Arbeit mit
- Vektor-Zeichensätzen, hier folgt eine Gebrauchsanleitung :
-
- 1. OpenGraphik ('PRN') initialisiert den Plotter
- 2. InitGraphik (GraphMode, GraphDriver, '') initialisiert die
- Bildschirmgraphik
- 3. SetTextStyle (zeichensatzname, Richtung, Grösse) legt die
- verwendete Schriftart fest
- zeichensatzname : Der Name des Fonts ist in PLScript deklariert,
- einer Erweiterung um eigene (z.B. mit FontEdit definierter)
- Zeichensätze steht natürlich nichts im Wege.
- Richtung : in der Regel HorizDir für eine waagrechte Schrift
- Grösse : eine Zahl von 1..26 legt die Textgrösse in cm (!) fest.
- wird hier "0" übergeben, so kann in Verbindung mit der
- Prozedur SetUserCharSize eine beliebige Schriftgrösse in
- horizontaler und vertikaler Richtung festgelegt werden
-
- - SetUserCharSize (MultX, DivX, MultY, DivY) - vgl. Turbo-Handbuch/
- nur maßgebend bei Textgrösse "0"
-
- 4. SetTextJustify richtet den Text, z.B. linksbündig und mit der
- unteren Ecke des ersten Zeichens am Startpunkt beginnend, aus. Auch
- hierbei sei wieder auf das Turbo-Handbuch verwiesen !
-
- 5. Der String "Message" enthält die gewünschte Zeichenfolge (max.
- 80 Zeichen)
- Ein Hinweis : gerade bei aufwendigen Schriften wie z.B. der
- gothischen Schrift sollte man nicht zuviel auf einmal schreiben
- lassen, sonst kann es leicht zu einem Time-Out-Fehler des Plotters
- kommen (das Gerät macht es sich einfach, bei zuviel Arbeit hört es
- zu arbeiten auf !). Für kurze Beschriftungen reicht es aber
- allemal.
-
- 6. FillChar (Farbe, ..) legt die "allgemeine" Zeichenfarbe fest.
- Wer mag, kann im ARRAY Farbe auch noch einzelne Zeichen mit anderen
- Farbwerten belegen.
-
- 7. OutTextXY (X, Y, Message) bringt die Botschaft zu Papier. Die X-
- und Y-Koordinaten sind hierbei in mm anzugeben)
-
-
- Viel Spaß beim Beschriften !
-
- (Gerd Kraus)
-
- Verwendeter Plotter : PL-450, DIN A3, HPGL-kompatibel
-
- Ergänzende Literatur : A. Schäpers, Turbo 4.0 (5.0), Konzepte,
- Analysen ... Ergänzende Software : FontEdit, DMV-Verlag