Wiki source for HPGL2penman


Show raw source

=====HPGL für Penman konvertieren=====

Das HP-GL-Format ist der Sprache des [[Penman]] sehr ähnlich. Deshalb lässt sich die Konvertierung von der [[FormaleSprachen 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 [[LinuxSed sed]]

Mit dem Programm [[Inkscape]] lassen sich die HPGL-Dateien erzeugen.

%%(bash;;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
%%

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,
%%


[[http://hpglviewer.com HPGL-Viewer]]

----
Siehe auch {{backlinks}}
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki