15. Texte anwenden
Unserem Schachbrett fehlt noch die korrekte Beschriftung der Felder. Die Felder werden in der Breite mit A, B, C, D, E, F, G, H und in der Tiefe mit 1, 2, 3, 4, 5, 6, 7, 8 bezeichnet. Dazu braucht unser Schachbrett zunächst einen Rahmen um das eigentliche Spielfeld, um in diesem Rahmen die Beschriftung zu platzieren.

Dazu öffnen wir als Erstes unsere Italienische_Eroeffnung.scad. In der figuren_library.scad sind neben den Figuren auch unser Schachbrett hinterlegt.

Mit gedrückter „CTRL“-Taste kann die Datei durch einen Klick auf das Wort geöffnet werden.

Über dem Editor sehen wir nun zwei Reiter mit den geöffneten Dateien Italienische_Eroeffnung.scad und figuren_library.scad. Im Editor sehen wir den Code der figuren_library.scad mit dem Modul „Schachbrett“.
Etwas anderes fällt auch auf, in der 3D-Ansicht wird nichts mehr dargestellt? Auch ein F5 ändert daran nichts.
Merke: Ist eine .scad-Datei geöffnet, die nur Module ohne deren Aufruf enthält, kann auch nichts dargestellt werden. Wir müssen wieder in die Italienische_Eroeffnung.scad wechseln und F5 drücken.
Bei Änderungen an einer use-Datei wie figuren_library.scad muss diese Datei zuerst gespeichert werden. Anschließend wird in die „Hauptdatei“ gewechselt und erneut F5 gedrückt.
15.1 Rahmen um das Schachbrett
Als Erstes braucht das Schachbrett einen Rahmen. Machen wir es uns nicht zu kompliziert: Der Rahmen soll ebenfalls ein Feld breit sein. Daher erweitern wir das Schachbrett in x- und y-Richtung jeweils um ein -feld.
Diesen Code fügen wir im module schachbrett()-Modul vor den eigentlichen Schachfeldern ein.
module schachbrett() {
// Rahmen um das Brett
difference() {
translate([-feld,-feld,0])
cube([feld*10,feld*10,dick]);
translate([0,0,-0.1])
cube([feld*8,feld*8,dick+0.2]);
}
//Schachfelder
...
Und ja: Zuerst die Änderungen speichern, dann in die Italienische_Eroeffnung.scad wechseln und erst danach F5 drücken.

15.2 Texte anwenden
Machen wir es uns zunächst ganz einfach: Der text("...")-Befehl schreibt einen Text in der Standardschrift und mit der Standarddicke in die 3D-Ansicht. Damit wir etwas sehen, geben wir jedoch bereits eine gewünschte Dicke an.
//Text
linear_extrude(skale*dick+1)
text("Hallo Welt");
Das Resultat in der 3D-Ansicht … genau: zuerst speichern, dann wechseln, dann F5 drücken.

So in etwa müsste es aussehen. Nur sollten Schriftart, Größe und Position frei wählbar sein.
Als Erstes stanzen wir ein "A" aus dem Rahmen. Die Konstante t_font = "Arial:style=Bold"; definiert die Schriftart und legt fest, dass der Buchstabe fett geschrieben wird. Damit wir den Buchstaben sauber ausstanzen können, wird z = -0.1 gesetzt und die Höhe über linear_extrude(skale*dick + 1) festgelegt.
Zur einfacheren Positionierung kennt der Befehl text() die Parameter valign (vertikale Ausrichtung) und halign (horizontale Ausrichtung).
// A,B,C...
t_font="Arial:style=Bold";
translate([0,0,-0.1])
linear_extrude(skale*dick+1)
text("A",font=t_font,valign="center",halign="center");
Genau: Zuerst speichern, dann in die Hauptdatei wechseln und F5 drücken.

Nun fehlt noch die genaue Positionierung: Das "A“ muss um feld/2 in x-Richtung und -feld/2 in y-Richtung verschoben werden.
Nun fehlt noch die genau Positionierung. Das A muss feld/2 in x und -feld/2 in y Richtung verschoben werden.
// A,B,C...
t_font="Arial:style=Bold";
translate([feld/2,-feld/2,-0.1])
linear_extrude(skale*dick+1)
text("A",font=t_font,valign="center",halign="center");
Da wir das "A“ sowohl vertikal als auch horizontal zentriert haben, stimmt die Position nun ganz genau.

Die nächsten Felder wären dann:
- x-Verschiebung= 1*feld+(feld/2),
- x-Verschiebung= 2*feld+(feld/2),
usw.
translate([1*feld+(feld/2),-feld/2,-0.1])
linear_extrude(skale*dick+1)
text("B",font=t_font,valign="center",halign="center");
translate([2*feld+(feld/2),-feld/2,-0.1])
linear_extrude(skale*dick+1)
text("C",font=t_font,valign="center",halign="center");
Sieht in der 3D-Ansicht schön aus, aber könnte der Code nicht auch mit einer for()-Schleife von 0 bis 7 umgesetzt werden?

15.3 Der Array-Type
Damit eine for()-Schleife möglich wird, brauchen wir einen Speicherbereich, der ebenfalls 0 bis 7 „Schubladen“ hat. Dieser Speichertyp wird Array (Feld, Bereich oder auch Aufstellung) genannt.
Nennen wir unser Array t_abc für „Text_abc“. Darin werden alle benötigten Buchstaben in Hochkommas gesetzt und durch Kommas getrennt in eckige Klammern geschrieben.
t_abc = ["A","B","C","D","E","F","G","H"];
Die for()-Schleife mit dem Zähler it sieht dann wie folgt aus:
for (it = [0:1:7]) {
translate([it*feld+(feld/2),-feld/2,-0.1])
linear_extrude(skale*dick+1)
text(t_abc[it],font=t_font,valign="center",halign="center");
}
Der einzige Unterschied ist die Textangabe: text(t_abc[it], font...) statt text("A", font...).

15.4 Die Zahlenreihe ist dann ein Kinderspiel
Wir füllen ein neues Array t_num mit den gewünschten Zahlen und erstellen erneut eine for()-Schleife.
Dabei können wir wieder it verwenden. Es handelt sich ja nicht um eine feste Variable; wenn ein Variablenname erneut verwendet wird, erstellt OpenSCAD einfach ein neues it und vergisst das alte.
Die Formel zur Positionierung muss nun entlang der y-Achse angewendet werden. In x bleibt der Wert stets -feld/2.
// 1,2,3..
t_num = ["1","2","3","4","5","6","7","8"];
for (it = [0:1:7]) {
translate([-feld/2,it*feld+(feld/2),-0.1])
linear_extrude(skale*dick+1)
text(t_num[it],font=t_font,valign="center",halign="center");
}
Fertig ist unser beschriftetes Schachbrett:

Der Befehl text() kennt übrigens noch eine ganze Reihe von Parametern, um das Aussehen zu verändern.
Auf der englischen Seite https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Text findet sich eine ausführlichere Beschreibung.