HPGL für Penman konvertieren
Das HP-GL-Format ist der Sprache des Penman sehr ähnlich. Deshalb lässt sich die Konvertierung von der formalen Sprache HPGL zu der Sprache des Penman sehr einfach gestalten.
Es gibt auch den erweiterten Befehlsatz des HP-GL/2. Diesen brauche ich nicht.
Die HPGL-Befehle lauten
- PA: Stift zu absoluten Koordinaten bewegen
- PR: Stift um Anzahl von Einheiten bewegen
- PD: Pen down
- PU: Pen up
- SP: Select pen
Die Übersetzung geht sehr einfach ohen Zustandsautomaten
- "PA" → "A, \r\n"
- "PR" → "R, \r\n"
- "PD" → "D M "
- "PU" → "U M "
- "SP" → "U\r\nP "
- vorsicht, es muss sichergestellt werden, dass der Stift vor denm Wechsel gehoben wird, sonst mecker [[Penman]
- Außerdem ist der Wertebereich für Penman 1 bis 3
- ";" → ",\r\n"
Übersetzung mit sed
Mit dem Programm Inkscape lassen sich die HPGL-Dateien erzeugen.
hpgl2pl.sh
#!/bin/bash
cat $1 | sed 's/IN;/H\r\nI\r\nW1\r\nA\r\n/g' | sed 's/PU;/U,\r\n/g' | sed 's/\;/ \r\n/g' | sed 's/PU/U\ M\ /g' | sed 's/PD/D\ M\ /g' | sed 's/\SP/U,\r\nP/g' > $2
cat $1 | sed 's/IN;/H\r\nI\r\nW1\r\nA\r\n/g' | sed 's/PU;/U,\r\n/g' | sed 's/\;/ \r\n/g' | sed 's/PU/U\ M\ /g' | sed 's/PD/D\ M\ /g' | sed 's/\SP/U,\r\nP/g' > $2
HPGL-Datei
(;;test.hpgl) IN;SP1;PU8682,2350;PD8681,2375;PD8677,2398;PD8670,2420;PD8660,2440;PD8648,2459;...;PU;
Penman-Datei
(;;test.pl) H I W1 A U, P1 U M 8682,2350 D M 8681,2375 D M 8677,2398 D M 8670,2420 D M 8660,2440 D M 8648,2459 ... U,
HPGL-Viewer
Siehe auch Inkscape • PenMan
There are no comments on this page. [Add comment]