=====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}}