OpenSCAD für Anfänger · Teil 16TutorialEinsteiger

OpenSCAD

OpenSCAD für Anfänger – Teil 16: Text, Beschriftungen und Gravuren

Erstelle OpenSCAD-Text mit text() und linear_extrude(): Schrift ausrichten, erhaben aufsetzen oder gravieren. Mit parametrischem Namensschild.

Veröffentlicht am

7 Minuten Lesezeit

Erstelle OpenSCAD-Text mit text() und linear_extrude(): Schrift ausrichten, erhaben aufsetzen oder gravieren. Mit parametrischem Namensschild.

Voraussetzungen

Du brauchst OpenSCAD und die Grundlagen aus Teil 15. Die Beispiele verwenden die klassische OpenSCAD-Syntax; eine Ausführung mit einer konkreten Softwareversion wurde hier nicht geprüft. Wir behandeln eine Modelleinheit als einen Millimeter.

Kapitel 4 – Von 2D zu 3D

OpenSCAD kann nicht nur technische Geometrien erzeugen, sondern auch Text direkt in ein Modell integrieren.

Dafür steht der Befehl:

text();

zur Verfügung.

Da text() zunächst eine zweidimensionale Geometrie erzeugt, lässt sich die Schrift anschließend mit:

linear_extrude();

in ein dreidimensionales Objekt umwandeln.

Damit lassen sich unter anderem erzeugen:

  • Namensschilder

  • Typenschilder

  • Beschriftungen

  • Gravuren

  • Skalen

  • Markierungen

  • Logos aus Schrift

  • Kennzeichnungen für technische Bauteile

Lernziel:
Nach dieser Lektion kannst du Text erzeugen, ausrichten und extrudieren sowie erhabene Beschriftungen und Gravuren in 3D-Modelle integrieren.

Der erste Text

Die einfachste Schreibweise lautet:

text("OpenSCAD");

Der Text selbst steht in Anführungszeichen.

Das Ergebnis ist zunächst eine zweidimensionale Kontur.

Textgröße einstellen

Mit:

size

wird die Schriftgröße beeinflusst.

Beispiel:

text(
    "OpenSCAD",
    size=20
);

Text ausrichten

Für die Positionierung sind besonders zwei Parameter interessant:

halign
valign

Beispiel:

text(
    "OpenSCAD",
    size=20,
    halign="center",
    valign="center"
);

Horizontale Ausrichtung

Typische Werte für halign sind:

Wert Bedeutung
"left" linksbündig
"center" zentriert
"right" rechtsbündig

Vertikale Ausrichtung

Typische Werte für valign sind beispielsweise:

Wert Bedeutung
"baseline" an der Schriftgrundlinie
"center" zentriert
"top" obere Kante
"bottom" untere Kante

Für technische Beschriftungen ist:

halign="center",
valign="center"

häufig besonders praktisch.

Text verschieben

Da text() eine normale 2D-Geometrie erzeugt, kann sie mit den bekannten Transformationen bearbeitet werden.

translate([
    40,
    20
])
    text(
        "OpenSCAD",
        size=12,
        halign="center",
        valign="center"
    );

Text drehen

rotate(90)
    text(
        "OpenSCAD",
        size=12
    );

Damit lassen sich beispielsweise seitliche Beschriftungen erzeugen.

Aus 2D-Text wird 3D-Text

Mit:

linear_extrude()

bekommt der Text eine Höhe.

linear_extrude(
    height=2
)
    text(
        "OpenSCAD",
        size=15,
        halign="center"
    );

Erhabene Beschriftung

Nehmen wir eine einfache Grundplatte:

breite = 80;
tiefe = 30;
dicke = 3;

cube([
    breite,
    tiefe,
    dicke
]);

Darauf setzen wir extrudierten Text:

schrift_h = 1.2;
textgroesse = 12;

translate([
    breite / 2,
    tiefe / 2,
    dicke
])
    linear_extrude(
        height=schrift_h
    )
        text(
            "OpenSCAD",
            size=textgroesse,
            halign="center",
            valign="center"
        );

Grundplatte und Text vereinigen

Wenn beide Geometrien bewusst gemeinsam behandelt werden sollen:

union() {

    cube([
        breite,
        tiefe,
        dicke
    ]);

    translate([
        breite / 2,
        tiefe / 2,
        dicke
    ])
        linear_extrude(
            height=schrift_h
        )
            text(
                "OpenSCAD",
                size=textgroesse,
                halign="center",
                valign="center"
            );
}

Text gravieren

Für eine Gravur verwenden wir die Schrift als Schneidkörper:

gravur_tiefe = 1;

difference() {

    cube([
        breite,
        tiefe,
        dicke
    ]);

    translate([
        breite / 2,
        tiefe / 2,
        dicke - gravur_tiefe
    ])
        linear_extrude(
            height=gravur_tiefe + 0.5
        )
            text(
                "OpenSCAD",
                size=textgroesse,
                halign="center",
                valign="center"
            );
}

Warum etwas tiefer schneiden?

Wie bereits bei Bohrungen sollten Schneidkörper möglichst nicht exakt an einer Oberfläche enden.

Deshalb verwenden wir beispielsweise:

height=gravur_tiefe + 0.5

Der Schriftkörper reicht damit etwas über die Oberseite hinaus.

Das sorgt für eine robuste boolesche Operation.

Text parametrisch definieren

Auch der eigentliche Text kann in einer Variablen gespeichert werden:

beschriftung =
    "Know-How-Schmiede";

Dann:

text(
    beschriftung,
    size=12
);

Damit lassen sich verschiedene Namensschilder mit demselben Modell erzeugen.

Schriftart auswählen

Eine bestimmte Schrift kann mit:

font

angegeben werden.

Beispiel:

text(
    beschriftung,
    size=12,
    font="Liberation Sans",
    halign="center",
    valign="center"
);

Welche Schriften verfügbar sind, hängt vom verwendeten Betriebssystem und den dort installierten Fonts ab.

Schriftarten und Austauschbarkeit

Wird eine .scad-Datei auf einem anderen Computer geöffnet, ist die verwendete Schrift möglicherweise nicht vorhanden.

Für Modelle, die verteilt oder veröffentlicht werden sollen, sind verbreitete Schriftarten deshalb meist die bessere Wahl.

Hinweise für den 3D-Druck

Bei kleinen Beschriftungen sollte darauf geachtet werden, dass die einzelnen Linien der Schrift nicht zu fein werden.

Wichtig sind unter anderem:

  • ausreichende Schriftgröße

  • gut druckbare Schriftart

  • ausreichende Linienbreite

  • genügend Gravurtiefe

  • genügend Höhe bei erhabener Schrift

Eine sehr filigrane Schrift sieht auf dem Bildschirm möglicherweise gut aus, kann aber beim FDM-Druck teilweise verschwinden.

Gravur oder erhabene Schrift?

Gravur

Vorteile:

  • geschützt vor Abrieb

  • keine zusätzliche Bauhöhe

  • technisch zurückhaltend

Erhabene Schrift

Vorteile:

  • besonders gut sichtbar

  • kann bei Farbwechseln zweifarbig gedruckt werden

  • eignet sich gut für Logos und Typenschilder

Praxisprojekt: parametrisches Namensschild

Wir erstellen ein einfaches Namensschild mit Gravur und optionaler Befestigungsbohrung.

Parameter

breite = 90;
tiefe = 30;
dicke = 3;

beschriftung = "OpenSCAD";

textgroesse = 12;
gravur_tiefe = 1;

mit_loch = true;
loch_d = 5;
rand = 8;

Vollständiges Modell

difference() {

    // Grundplatte
    cube([
        breite,
        tiefe,
        dicke
    ]);

    // Gravur
    translate([
        breite / 2,
        tiefe / 2,
        dicke - gravur_tiefe
    ])
        linear_extrude(
            height=gravur_tiefe + 0.5
        )
            text(
                beschriftung,
                size=textgroesse,
                halign="center",
                valign="center"
            );

    // optionale Befestigungsbohrung
    if (mit_loch)
        translate([
            rand,
            tiefe / 2,
            -1
        ])
            cylinder(
                h=dicke + 2,
                d=loch_d,
                $fn=64
            );
}

Variante ohne Befestigungsbohrung

Es reicht:

mit_loch = false;

und die Bohrung wird nicht erzeugt.

Damit kombinieren wir erneut mehrere bereits gelernte Techniken:

text()
+
linear_extrude()
+
difference()
+
if()

Mitmach-Aufgabe

Erstelle ein parametrisches Namensschild.

Vorgaben

Parameter Wert
Breite 100 mm
Tiefe 35 mm
Dicke 3 mm
Text Maker
Textgröße 14
Gravurtiefe 1 mm
Bohrungsdurchmesser 5 mm
Randabstand 10 mm

Die Befestigungsbohrung soll optional über:

mit_loch

ein- und ausgeschaltet werden können.

Musterlösung

breite = 100;
tiefe = 35;
dicke = 3;

beschriftung = "Maker";
textgroesse = 14;

gravur_tiefe = 1;

mit_loch = true;
loch_d = 5;
rand = 10;

difference() {

    cube([
        breite,
        tiefe,
        dicke
    ]);

    // Gravur
    translate([
        breite / 2,
        tiefe / 2,
        dicke - gravur_tiefe
    ])
        linear_extrude(
            height=gravur_tiefe + 0.5
        )
            text(
                beschriftung,
                size=textgroesse,
                halign="center",
                valign="center"
            );

    // optionale Bohrung
    if (mit_loch)
        translate([
            rand,
            tiefe / 2,
            -1
        ])
            cylinder(
                h=dicke + 2,
                d=loch_d,
                $fn=64
            );
}

Was haben wir gelernt?

Mit:

text()

können wir Text als 2D-Geometrie erzeugen.

Wir können:

  • Textgröße einstellen

  • Text horizontal und vertikal ausrichten

  • Text verschieben und drehen

  • Schriftarten auswählen

  • Text mit linear_extrude() dreidimensional machen

  • erhabene Schrift mit einem Grundkörper verbinden

  • Gravuren mit difference() erzeugen

  • Beschriftungen parametrisch definieren

Damit können OpenSCAD-Modelle nun nicht nur geometrisch, sondern auch funktional beschriftet werden.

Im nächsten Teil

Im nächsten Teil beschäftigen wir uns genauer mit der Qualität runder Geometrien.

Dafür schauen wir uns an:

$fn
$fa
$fs

Wir klären:

  • warum hohe Auflösung nicht immer besser ist

  • wie sich Rundungen auf die Renderzeit auswirken

  • welche Einstellungen für 3D-Druck sinnvoll sein können

  • wie sich Vorschau und endgültiges Modell unterschiedlich behandeln lassen

Weiterlernen

Referenz

Die OpenSCAD-Sprachreferenz verlinkt die Dokumentation der verwendeten Befehle.