HP-GL Interpreter

Software-Entwicklung, Compiler, Interpreter, ...
Antworten
Benutzeravatar
bbock
Beiträge: 53
Registriert: 08.02.2015, 15:31

HP-GL Interpreter

Beitrag von bbock » 28.09.2019, 14:26

Hallo Joyce-Freunde,

heute möchte ich euch mein jüngstes Projekt vorstellen: einen HP-GL-Interpreter für die Joyce. HP-GL steht für "Hewlett Packard Graphics Language"; das ist eine Sprache für die Steuerung von Plottern, wird aber auch z.B. für CNC-Maschinen zum Fräsen oder Gravieren eingesetzt. Die HPGL-Dateien haben oft die Endung ".plt" (für "plot"). Es handelt sich um gewöhnliche Textdateien mit einem relativ 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. hier: https://en.wikipedia.org/wiki/HP-GL

Benutzeravatar
bbock
Beiträge: 53
Registriert: 08.02.2015, 15:31

HP-GL Interpreter

Beitrag von bbock » 28.09.2019, 14:39

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.
Die erste Version meines HP-GL Interpreters unterstützt nur einen Teil der möglichen Befehle, insbesondere diejenigen zum Positionieren und zum Zeichnen von Linien. Verschiedene Farben werden nicht unterstützt, auch keine Strichdicken oder verschiedene Stifte. Trotzdem kann man bereits viele plt-Dateien ansehnlich auf dem Bildschirm darstellen.
HPGL.zip
HP-GL Interpreter und PLT-Dateien
(171.84 KiB) 15-mal heruntergeladen
Weitere Details zur Programmierung und erweiterte Programmversionen folgen demnächst.

wnb
Beiträge: 18
Registriert: 06.03.2015, 12:16
Wohnort: Werner aus Wolfhagen

Re: HP-GL Interpreter

Beitrag von wnb » 15.10.2019, 10:01

Moin Bernd,
habe mir die Dateien heruntergeladen und es macht echt Spaß,
dem JOYCE beim Plotten zuzuschauen - Danke dass Du uns teilhaben lässt !
Freue mich schon auf die Erweiterungen, die Du beim Klubtreffen angekündigt hast.
VG Werner

Benutzeravatar
bbock
Beiträge: 53
Registriert: 08.02.2015, 15:31

Re: HP-GL Interpreter

Beitrag von bbock » 16.10.2019, 10:31

Z.Z. arbeite ich an einer automatischen Skalierung auf max. Bildschirmgröße. Die Koordinatenumrechnung ist komplizierter, als man denkt...
Dazu muss das Parsing zweimal durchlaufen werden: beim ersten Durchgang werden die maximalen und minimalen Koordinaten bestimmt, im zweiten wird bildschirmfüllend gezeichnet.

Später möchte ich noch die Möglichkeit einbauen das fertige Bild als Bilddatei zu speichern. Dann vielleicht noch eine Kommandozeilenoption zur Batch-Verarbeitung.

Es gibt viel zu tun!

Viele Grüße
Bernd

wnb
Beiträge: 18
Registriert: 06.03.2015, 12:16
Wohnort: Werner aus Wolfhagen

Re: HP-GL Interpreter

Beitrag von wnb » 17.10.2019, 18:54

Habe `mal vier JOYCiE Cliparts in Plotter-Dateien umgewandelt. War etwas zeitaufwendig, mußte die original Dateien mehrfach 'verformen' und ausprobieren, um Sie ansehnlich auf dem JOYCE-Bildschirm plotten lassen zu können. Nachfolgend vom JOYCE-Bildschirm abfotographiert, der xMAS-JOYCiE. Wenn Du die automatische Skalierung implementiert hast, werde ich die JOYCiE-Vorlagen noch einmal nacharbeiten und neue Plotterdateien erstellen. Bis dahin hier schon `mal die JOYCiE-Plotter Dateien zum Download ...
PLT_pcw.zip
(139.16 KiB) 1-mal heruntergeladen
xMAS_PLT_kl.jpg
JOYCiE
xMAS_PLT_kl.jpg (44.16 KiB) 43 mal betrachtet
...

Antworten