3D-Unendlichkeitsspiegel: Ikosaeder, Obelisken und mehr

Seite 2: Sockelgestaltung

Inhaltsverzeichnis

Im Heft haben wir das Sockeldesign im Konstruktionsprogramm OpenSCAD nur sehr knapp erläutert, wollen hier aber noch einige Hinweise für eigene Weiterentwicklungen geben. Das kostenlose Programm arbeitet mit verschiedenen geometrischen Grundformen wie Würfeln und Kugeln, die über textbasierte Rechenoperationen miteinander verbunden werden. Mit dem Sockel wird der Kubus auf einer Spitze aufgestellt.

Allerdings reicht keine doppelte Rotation um 45 Grad in zwei Richtungen aus, um den Würfel in die passende Position zu bringen. Stattdessen arbeiten wir mit einem Arkustangens: rotate([45,-atan(sqrt(0.5)),-30])

Durch das Anpassen von Rahmenbreite, Wandstaerke und Sockelgroesse kann der Sockel wie die 3D-gedruckten Kanten individuell verändert werden. Da es sich nicht um ein echtes parametrisches Design handelt, klappt die Skalierung aber nur begrenzt.

Rahmenbreite = 20;
Wandstaerke = 1;
Sockelgroesse = 50;

difference() {
union() {
for (i=[0:2]) {
rotate([0,0,i*120-30]) translate([0,0,6*12-3]) rotate([45,-atan(sqrt(0.5)),0]) hull() {
translate([0,0,0]) sphere(0.1);
translate([Sockelgroesse*1.5,0,0]) sphere(0.1);
translate([0,Rahmenbreite,0]) sphere(0.1);
translate([0,0,Rahmenbreite]) sphere(0.1);

}
}
hull() { // Unterteil
for (i=[0:6]) {
rotate([0,0,i*60+30]) translate([0,Sockelgroesse,0]) sphere(d=5,$fn=15);
rotate([0,0,i*60+30]) translate([0,Sockelgroesse,12]) sphere(d=5,$fn=15);
rotate([0,0,i*60+30]) translate([0,12,2.5*12]) sphere(d=5,$fn=15);
}
}
hull() { // Mittelteil
for (i=[0:6]) {
rotate([0,0,i*60+30]) translate([0,12,2.5*12]) sphere(d=5,$fn=15);
}
for (i=[0:6]) {
rotate([0,0,i*60]) translate([0,12,7*12]) cylinder(d=5, h=2.5,$fn=15);
}
}
}
resize([Sockelgroesse*1.5,Sockelgroesse*1.5,12*5]) sphere(d=1, $fn=36); // Freiraum für Controller
translate([0,-Sockelgroesse+29.5+2,6]) rotate([90,0,0]) union() { // Öffnung für Stromversorgung
cylinder(d=11.5,h=30,$fn=15);
translate([0,0,0]) cylinder(d=15,h=25,$fn=6);
}
translate([0,0,9*12-3]) rotate([0,180,0]) cylinder(d=18,h=10*12); // Kabeldurchführung nach oben
translate([0,0,6*12-2.84]) rotate([45,-atan(sqrt(0.5)),-30]) cube([Sockelgroesse*1.5,Sockelgroesse*1.5,Sockelgroesse*1.5]); // Abzug der Würfelform
}

Bei der Konstruktion mit OpenSCAD arbeitet man sich von Teilstück zu Teilstück durch, indem mehrere Grundkörper wie Kugeln mittels translate() platziert und über eine Hülle zu einer komplexeren Form verbunden werden. For-Schleifen erlauben eine Vereinfachung des Codes bei regelmäßigen Wiederholungen. Mit der Rotation über den Arkustangens werden die Ärmchen des Halters in Position gebracht.

Mit union() werden die verschiedenen Strukturen dann zu einem Objekt vereinigt, von welchem wiederum die Formen für Kabeldurchführungen, Platz für den Controller und den Würfel selbst abgezogen werden.