HP-GL Interpreter

Plottergrafik für die Schneider Joyce

Die Hewlett Packard Graphics Language, oder kurz HP-GL, ist ein Steuerbefehlssatz für Stiftplotter, der von Hewlett-Packard (HP) entwickelt wurde. HP-GL war ursprünglich ein Befehlssystem für HP-Plotter, wird aber mittlerweile von vielen CAD-Anwendungen und Plottern als Standardbefehlssatz verwendet. Es gibt auch eine Erweiterung namens HP-GL/2 (insbes. für Rasterplotter) mit Funktionen wie Befehlskomprimierung, Farbdaten, Rastergrafikunterstützung, Strichstärken, usw.

Neben der Steuerung von Plottern wird die Sprache aber auch z.B. für CNC-Maschinen zum Fräsen oder Gravieren eingesetzt. Die HP-GL-Dateien haben oft die Endung ".plt" (für "plot"). Es handelt sich um gewöhnliche Textdateien mit einem vergleichsweise einfachen Aufbau. Die HP-GL-Befehle beginnen mit einem Code ("Mnemonic") aus zwei Großbuchstaben, dann können ein oder mehrere Parameter folgen, z.B. Stiftnummern, Farbcodes oder X-/Y-Koordinaten zur Stiftpositionierung.

Beispiele:
   
IN;   Initialize = Plot Job beginnen
PU50,50;   pen up = Stift anheben und zur Koordinate 50,50 bewegen
PD100,0,100,100,0,100,0,0;   pen down = Stift absenken und zu den Koordinaten 100,0,
dann 100,100, dann 0,100 und schließlich zu 0,0 bewegen
(zeichnet ein Quadrat mit der Kantenlänge 100)

Das Semikolon schließt jeden Befehl ab. Trennsymbole können neben dem Komma auch Leerzeichen oder andere Whitespaces sein. Weitere Details zur Sprache finden man u.a. auf Wikipedia !

Die Befehle zum Zeichnen von Linien, Ellipsen, usw. erzeugen also ein Bild auf Papier oder in Holz oder Metall gefräst; dieses Bild kann man aber auch auf einem Computermonitor ausgeben. Dazu muss der Interpreter die HP-GL-Befehle in Zeichenbefehle umwandeln, dann kann man die Bildentstehung auf dem Monitor bewundern.

Der HP-GL Interpreter unterstützt nur den Teil der möglichen Befehle, der für die Bildschirmausgabe sinnvoll ist. Das sind insbesondere die Befehle zum Positionieren und zum Zeichnen von Linien. Verschiedene Farben werden nicht unterstützt, auch keine Strichdicken oder verschiedene Stifte. Damit kann man bereits viele plt-Dateien ansehnlich auf dem Bildschirm darstellen.

Das Programm wurde in Turbo Pascal 3.00A geschrieben. Die verwendete Grafikbibliothek ist ein Mix aus Turbo Pascal und Assembler-Routinen für die Grafik-Kernbefehle. Die Grafikbibliothek wurde überarbeitet und optimiert; so wurde u.a. die häufig verwendete Line-Funktion in Assembler neu geschrieben (Bresenham-Algorithmus).

Auf der Kommandozeile gibt man einfach hpgl33 ein um das Programm im interaktiven Modus zu starten. Alternativ kann man auch gleich einen Dateinamen angeben, z.B. hpgl33 girl2.plt.

Im interaktiven Modus erscheint ein Dialog, der zu Beginn zur Eingabe des Dateinamens der HP-GL-Datei auffordert (z.B. girl2.plt). Der Dateiname muss vollständig eingegeben werden, inklusive der Extension (.plt). Lässt man den Dateinamen leer und drückt auf die Enter-Taste, dann wird das Programm beendet.

Dann kann optional der Dateiname eingegeben werden, unter der die Grafik als Bitmap-Datei im Format PBM gespeichert werden soll. Das Feld kann auch leer bleiben, dann wird keine PBM-Datei erzeugt. Im Feld "AR correction" muss man mit Y für Yes oder N für No angeben, ob eine Korrektur des Seitenverhältnisses (aspect ratio) durchgeführt werden soll. In dem Fall wird das Bild in doppelter Höhe ausgegeben und es erscheint auf dem PC unverzerrt. Da die Pixel der Joyce nicht quadratisch sind, sondern etwa doppelt so hoch wie breit, ist die Korrektur zu empfehlen, wenn man die Dateien auf dem PC betrachten möchte.

Die HP-GL-Datei wird in zwei Durchläufen gelesen. Zuerst wird eine Analyse durchgeführt, bei der die Minima und Maxima der Koordinaten bestimmt werden. Diese werden in einer Konfigurationsdatei gespeichert, die den gleichen Namen wie die HP-GL-Datei hat, allerdings mit der Extension .cfg. Existiert diese Datei bereits, dann entfällt der Analyse-Durchlauf, was die Wartezeit bei mehrfachem Aufruf derselben Datei deutlich verringert. Im zweiten Durchlauf erfolgt die Größenanpassung und das Zeichnen der Grafik. Die Grafik ist fertig gezeichnet, wenn ein Signal ertönt. Das fertige Bild kann dann in Ruhe betrachtet werden; ein Druck auf eine beliebige Taste beendet das Programm.

Wurde der Dateiname für die PBM-Datei angegeben, dann wird sie nach Abschluss des zweiten Durchlaufs erzeugt. PBM-Dateien können mit dem Zusatzprogramm pbmread gelesen und angezeigt werden. Der Aufruf erfolgt interaktiv mit pbmread oder direkt mit pbmread <Datei>, also z.B. pbmread girl2.pbm.

Im interaktiven Modus muss der Dateiname der PBM-Datei eingegeben werden, wieder inklusive der Extension .pbm. Wenn man keinen Dateinamen eingibt und einfach die Enter-Taste drückt, dann wird pbmread beendet. Andernfalls erscheint die geladene Grafik auf dem Bildschirm. Sie wird unabhängig von der "AR correction"-Option korrekt dargestellt, d.h. eine ggf. doppelte Zeilenhöhe wird wieder auf die einfache Zeilenhöhe reduziert, damit das Bild unverzerrt auf dem Joyce-Bildschirm erscheint. Nach Betrachten der Grafik genügt ein Tastendruck um das Programm zu beenden.

Wer eigene Grafiken auf die JOYCE zaubern möchte, sei auf mein Java-Programm TinySVG verwiesen, mit dem sich SVG-Vektorgrafiken auch in das benötigte "PLoTter-Format" umwandeln lassen.

 

Bernd Bock, Juni 2021

Weitere Infos findest Du im joyceforum.de !