Wir zeichnen ein Space Shuttle

Space Shuttle Für den HP-9845C gibt es einige schöne Grafikdemos. Einer meiner Lieblingsbilder daraus ist das Space Shuttle. Das wollte ich natürlich gerne auch auf meinem HP-85, HP-9816 und meinem HP-9872C Plotter zeichnen, und schon hatte ich wieder einige Arbeit am Hals. Zuerst machte ich mich auf die Suche nach der Originaldatei, von der ich aufgrund dieses YouTube Videos wusste, dass es sich um eine AutoCAD Datei handelte. Die ersten Recherchen brachten nicht den gewünschten Erfolg, aber irgendwann suchte ich nach COLUMBIA.DWG und wurde tatsächlich fündig. Der erste Schritt war getan! Erst jetzt überlegte ich mir, wie ich die Vektorzeichnung ohne grossen manuellen Aufwand auf den HP-85 bringen könnte. Ich entwickelte folgenden Plan:

  1. Die binäre AutoCAD Datei in ein textbasiertes Vektorformat umwandeln.
  2. Die Vektordatei per Python Skript in ein HP-85 BASIC Programm umwandeln.
  3. Per weiterem Python Skript aus dem BASIC Programm eine LIF Datei erzeugen, wobei als Programmtyp ASCII herhalten soll  (wie man es mit SAVE erzeugen kann), um eine Tokenisierung zu vermeiden.

Eigentlich nicht so schwierig, doch es hat mich schlussendlich doch einige Zeit gekostet. Hier noch einige Details zum konkreten Vorgehen:

  1. Als textbasiertes Vektorformat hat sich SVG (Scalable Vector Graphics) angeboten. Schnell fand ich eine Webseite, welche die Konvertierung von DWG zu SVG vollbringt.
  2. Die Umwandlung in ein BASIC Programm war keine grosse Hexerei. Die Vektoren werden in DATA Anweisungen verpackt, und ein kleines Haupt­programm liest einen Linienzug mittels READ und ruft MOVE und DRAW auf. Die erste DATA Anweisung enthält die Anzahl Punkte N, aus denen der Linienzug besteht, dann folgen die N Koordinatenpaare, wobei der erste Punkt den Anfang des Linienzugs repräsentiert und mit MOVE angefahren werden muss.
  3. Der aufwändigste Teil war das Erzeugen der LIF Datei. Zuerst musste ich raus­finden, wie SAVE ein Programm genau abspeichert. Dazu habe ich ein paar Beispielprogramme via SAVE gespeichert und analysiert. Die Details würden hier den Rahmen sprengen, aber vielleicht werde ich das Skript mal publizieren, da es einen gewissen Allgemeinnutzen hat. Wie eine LIF Datei aufgebaut ist, kann man hier nachlesen.

Den Teil 2 habe ich noch so erweitert, dass die Ausgabe auf den HP-85 Bildschirm oder einen Plotter erfolgen kann. Das Resultat ist ganz nett und zu Demonstrationszwecken gut zu gebrauchen, obwohl das Programm an sich trivial ist und nur Linienzüge zeichnet.

Space Shuttle
Space Shuttle auf dem HP-85

Hier geht’s zum Programm.

1 Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.