Visualisierung

OpenSCAD eignet sich auch dazu, größere Datenmengen dreidimensional zu veranschaulichen – etwa die Verteilung von Erdbeben ab einer Stärke 5, die es weltweit im letzten Jahr gab [4]. Die Grafik zeigt den Ort der Beben auf der Erde, die Stärke ausgedrückt durch den Durchmesser der Kugeln und die überhöhte Tiefe, sowohl zu erkennen durch die Anordnung unterhalb des Koordinatengitters als auch durch die Farbe (Abbildung 8).

Abbildung 8: Das Programm eignet sich selbst für Infografiken, wie die Verteilung von Erdbeben ab einer Stärke 5.

Die Koordinaten und Stärke der Erdbeben liegen in zwei Arrays, abgelegt in der Datei eq03.scad. Zur Orientierung enthält der eigentliche Code die Koordinaten einiger Städte. Daten und Namen stehen in den Arrays plock und plockname. Die Schleife durchläuft alle Elemente, deren Anzahl der Befehl len() berechnet. Die selbst definierte Funktion ku2ka bestimmt aus den Kugelkoordinaten Länge, Breite und Tiefe die kartesischen Raumkoordinaten x, y und z. Sie nimmt einen Vektor entgegen und gibt den umgerechneten Vektor zurück.

Am komplexesten fällt die Konstruktion des Gitters aus: Eindimensionale Linien ohne Füllung gibt es bei OpenSCAD nicht. Deshalb konstruieren Sie diese aus extrudierten Kreisscheiben als dünne 3D-Objekte. Bei der kleinen schwarzen Kugel in der Grafik handelt es sich um die Stadt Honolulu auf Hawaii. Die Beschriftung lässt sich in der Reproduktion nicht lesen. Südwestlich stoßen die pazifische und die australische Platte zusammen. Die Erdbeben an der Oberfläche (grün) und die Tiefenbeben (rot) sind selbst in der statischen Ausgabe recht gut zu erkennen.

Listing 3

$fn=100;
$vpd=5500;       // Kameradistanz
$vpr=[88,0,300]; // Kameraorientierung
r=1000;          // Radius
// Die Datei eq03.scad enthält zwei Arrays mit den
// mit den Positionen (eqlock) und den abgeleiteten
// Größen für Erdbebenstärke und -tiefe (eqspec).
include <eq03.scad>
// Koordinaten einiger ausgewählter Punkte
plock=[
[52,   13, 0],  // Berlin
[48,   11, 0],  // München
[35,  139, 0],  // Tokyo
[21, -157, 0]   // Honolulu
];
// Bezeichnung der ausgewählten Punkte
plockname=["Berlin", "München", "Tokyo", "Honolulu"];
// Ausgabe von eqlock und eqspec
for (i=[0:len(eqlock)-1]){
  translate(ku2ka(eqlock[i])) color([eqspec[i][0],1-eqspec[i][0],0]) sphere(eqspec[i][1]);
}
// Ausgabe der ausgewählten Punkte
for (i=[0:len(plock)-1]){
  translate(ku2ka(plock[i])) color("black") sphere(10);
 translate(ku2ka(plock[i])) color("black") text(text=plockname[i], size=30);
}
sphere(450);  //zeichnet innere Kugel
grid(15);     //zeichnet Gitternetz
// Wandelt Kugelkoordinaten um in kartesische
function ku2ka(v)= [
  cos(v.y) * (r-v.z) * sin(90-v.x),
  sin(v.y) * (r-v.z) * sin(90-v.x),
  (r-v.z) * cos(90-v.x)];
// Zeichnet ein Längen- und Breitennetz
module grid(d=30){
  mirrorc()
  rotate_extrude(){
    for (i=[0:d:85]){
      a= ku2ka([0,i,0]);
      translate(a) circle(5);
    };
  };
  for (i=[0:d:185])
  rotate([0,0,i])
  rotate([90,0,0])
  rotate_extrude()
  translate([r,0,0]) circle(5);
}
// Hilfsmodul, um einen Block zu spiegeln
module mirrorc(v=[0,0,1]){
    children();
    mirror(v) children();
};

Fehlersuche

Das wichtigste Dokument zu OpenSCAD findet sich unter Help | Cheat_sheet: eine vollständige Liste aller Befehle, die die Software kennt [5]. Fehlermeldungen beim Übersetzen eines Skripts erscheinen in der Konsole.

Ein vergessenes Semikolon erkennen Sie nur dadurch, dass das Programm in der Abgrenzung zu den nachfolgenden Befehlen stolpert. Der eigentliche Fehler liegt deshalb vor der Zeile, in der das Programm abbricht. Mühsamer zu finden sind syntaktisch korrekte, aber logisch falsche Semikola: Schließen Sie eine Transformation wie translate([0,0,1]) mit dem Zeichen ab, ist das kein Fehler, liefert aber auch keinen Output.

Um beim Verschneiden geometrischer Objekte den Überblick zu behalten, welcher Anteil von welchem Objekt kommt, stellen Sie einem Befehl für das Objekt eine Raute (#) voran. So gibt die Software das Objekt halbtransparent aus. Ein vorangestellter Stern (*) blockt eine Befehlszeile. Ein Ausrufezeichen (!) sperrt alle anderen Zeilen, was die Auswirkungen lediglich der betrachteten Zeile anzeigt. Der Befehl echo schreibt in die Werte von Variablen oder auch Ergebnisse von Berechnungen (echo(3 * 4)) in die Konsole.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Programm der Tübix steht
    Am 13. Juni findet der Linuxtag in Tübingen, kurz Tübix, statt. Die Veranstalter haben jetzt das recht umfangreiche Programm veröffentlicht.
  • Fedora 19 Beta veröffentlicht

    Das Fedora-Projekt hat leicht verspätet die Beta für die kommende Version 19 seiner Linux-Distribution veröffentlicht.
  • Ubuntu, Linux Mint und Knoppix
    Ubuntu, Linux Mint und Knoppix basieren auf der Distribution Debian – wir verraten Tricks und Kniffe, welche die Arbeit auf diesen Systemen angenehmer machen.
  • Easy Programming
    Die Java-Software Processing verwandelt auch Nicht-Programmierer in Computerkünstler: Damit erzeugen Sie schnell und einfach bewegliche Figuren und stellen sie als Flash-ähnliches Applet ins Netz.
  • Neues auf den Heft-DVDs
    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial Ihres Rechners. Mit der Heft-DVD erhalten Sie nicht nur topaktuelle Distributionen, sondern auch die passenden Programme zu den Artikeln.
Kommentare

Infos zur Publikation

LU 02/2018: PAKETE VERWALTEN

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Internet abschalten
Karl-Heinz Hauser, 20.02.2018 20:10, 0 Antworten
In der Symbolleiste kann man das Kabelnetzwerk ein und ausschalten. Wie sicher ist die Abschaltu...
JQuery-Script läuft nicht mit Linux-Browsern
Stefan Jahn, 16.02.2018 12:49, 2 Antworten
Hallo zusammen, ...folgender goldener Code (ein jQuery-Script als Ergebnis verschiedener Exper...
XSane-Fotokopie druckt nicht mehr
Wimpy *, 30.01.2018 13:29, 1 Antworten
openSuse 42.3 KDE 5.8.7 Seit einem Software-Update druckt XSane keine Fotokopie mehr aus. Fehler...
TOR-Browser stürzt wegen Wikipedia ab
Wimpy *, 27.01.2018 14:57, 0 Antworten
Tor-Browser 7.5 based on Mozilla Firefox 52.8.0 64-Bit. Bei Aufruf von http: oder https://de.wi...
Wifikarte verhindert Bootvorgang
Maik Kühn, 21.01.2018 22:23, 1 Antworten
iwlwifi-7265D -26 failed to load iwlwifi-7265D -25 failed to load iwlwifi-7265D -24 failed to l...