Rückblick
Ab hier ist dein Modell ein Programm. Variablen, Schleifen und Module sind dieselben drei Werkzeuge, die du aus jeder Programmiersprache kennst – und sie bringen hier denselben Gewinn: Ein Modell, das man an einer Stelle ändert, statt an zwanzig.
Das kann ich jetzt
- Ich lege Maße als Parameter an und berechne abgeleitete Maße daraus. (4.1, 4.2)
- Ich kann mit
$fndie Auflösung steuern und weiß, was sie kostet. (4.2) - Ich kann mit
forviele gleichartige Objekte erzeugen. (4.3) - Ich kann verschachtelte Schleifen für Raster einsetzen. (4.3, 4.5)
- Ich schreibe eigene Module mit Parametern. (4.4)
Gemischte Aufgaben
Aufgabe 1: Zählen
a) Wie viele Objekte entstehen bei einem Bereich von 0 bis 5?
b) Wie viele bei einem Bereich von 0 bis 10 mit Schrittweite 2?
c) Wie viele bei zwei geschachtelten Schleifen über je 0 bis 3?
d) Wie viele bei drei geschachtelten Schleifen über je 0 bis 4?
e) Ein Raster soll 4 Reihen zu je 6 Objekten haben, und der Abstand soll 15 betragen. Wie lauten die beiden Bereiche, und wie berechnest du die Verschiebung?
Tipp
Ein Bereich von 0 bis n schließt beide Grenzen ein – das sind n + 1 Werte. Das ist der Unterschied zu range in Python, wo die obere Grenze nicht dazugehört.
Aufgabe 2: Eine Bauplatte
Bau eine Platte mit Noppen, ähnlich einem Baustein.
a) Eine Grundplatte, 4 Millimeter dick.
b) Darauf ein Raster aus Noppen – Zylinder mit Radius 4 und Höhe 5.
c) Zahl der Spalten, Zahl der Zeilen, Abstand und Noppenradius stehen oben als Parameter.
d) Die Größe der Grundplatte wird aus diesen Parametern berechnet, nicht fest eingetragen.
e) Schreib die Noppe als eigenes Modul.
f) Ändere danach die Zahl der Spalten auf 8. Was musst du anpassen?
Tipp 1: Die Grundplatte berechnen
Wenn 4 Spalten im Abstand 12 stehen sollen, ist die Platte 4 · 12 = 48 breit:
cube([spalten * abstand, zeilen * abstand, 4]);
Tipp 2: Die Noppen mittig setzen
Die erste Noppe soll nicht auf der Kante sitzen, sondern in der Mitte des ersten Feldes. Dafür addiert man den halben Abstand:
translate([x * abstand + abstand/2, y * abstand + abstand/2, 4]) noppe();
Die 4 in der Höhe ist die Dicke der Grundplatte – die Noppe sitzt oben darauf.