Eine bessere Lösung für die abgerundete Kiste
Die kleine Kiste soll, wie die andere auch, die Maße von 25 x 35 haben, und eine Höhe von 15. Der Radius soll jeweils 3 werden.
Immer dran denken: Nicht die Geduld verlieren - der Rechner braucht etwas Zeit zum Rechnen ....
Wir nehmen die gleichen Kugeln aus dem vorigen Beispiel, setzen sie jedoch im Script in einzelne Module.
Script für Wand A
// abgerundete Kiste
$fn = 100;
module eins(){ translate([3, 3, 3]) sphere(r = 3); }
module zwei(){ translate([3, 22, 3]) sphere(r = 3); }
module drei(){ translate([3, 3, 12]) sphere(r = 3); }
module vier(){ translate([3, 22, 12]) sphere(r = 3); }
hull(){ // Wand A
eins();
zwei();
drei();
vier();
}
Die Modul-Namen entsprechen der Kugelnummern. Unter diesem Namen können sie nun aufgerufen werden.
Da der Name kürzer ist als die ganze Zeile, und außerdem oft aufgerufen werden muss, ist es so viel einfacher.
Die erste Wand
Script für Wand B
// abgerundete Kiste
$fn = 100;
module eins(){ translate([3, 3, 3]) sphere(r = 3); }
module zwei(){ translate([3, 22, 3]) sphere(r = 3); }
module drei(){ translate([3, 3, 12]) sphere(r = 3); }
module vier(){ translate([3, 22, 12]) sphere(r = 3); }
module fuenf(){ translate([32, 3, 3]) sphere(r = 3); }
module sechs(){ translate([32, 22, 3]) sphere(r = 3); }
module sieben(){ translate([32, 3, 12]) sphere(r = 3); }
module acht(){ translate([32, 22, 12]) sphere(r = 3); }
hull(){ // Wand A
eins();
zwei();
drei();
vier();
}
hull(){ // Wand B
fuenf();
sechs();
sieben();
acht();
}
Auch die anderen 4 restlichen Kugeln haben nun einen Modul-Namen.
Mittels "hull" ist auch hier die Wand entstanden: Wand B
Script für Wand C
...
hull(){ // Wand C
zwei();
vier();
sechs();
acht();
}
Den kurzen Script-Teil fügen wir noch unten an für die Wand C:
Script für Wand D
...
hull(){ // Wand D
eins();
drei();
fuenf();
sieben();
}
Nur noch anfügen an den bisherigen Script ...
... und auch die Wand D ist fertig:
Script für den Boden
...
hull(){ // Boden
eins();
zwei();
fuenf();
sechs();
}
Zum Schluß noch den Boden:
Es ist schon erstaunlich, wie man aus Kugeln und einer Hüllenfunktion eine fast rechteckige Kiste zaubern kann!
Der nochmals komplette Script
// abgerundete Kiste
$fn = 100;
module eins(){ translate([3, 3, 3]) sphere(r = 3); }
module zwei(){ translate([3, 22, 3]) sphere(r = 3); }
module drei(){ translate([3, 3, 12]) sphere(r = 3); }
module vier(){ translate([3, 22, 12]) sphere(r = 3); }
module fuenf(){
translate([32, 3, 3])
sphere(r = 3);
}
module sechs(){ translate([32, 22, 3]) sphere(r = 3); }
module sieben(){ translate([32, 3, 12]) sphere(r = 3); }
module acht(){ translate([32, 22, 12]) sphere(r = 3); }
hull(){ // Wand A
eins();
zwei();
drei();
vier();
}
hull(){ // Wand B
fuenf();
sechs();
sieben();
acht();
}
hull(){ // Wand C
zwei();
vier();
sechs();
acht();
}
hull(){ // Wand D
eins();
drei();
fuenf();
sieben();
}
hull(){ // Boden
eins();
zwei();
fuenf();
sechs();
}
Nun ist die Kiste fertig und alles, auch der innere Bogen, ist jetzt abgerundet
Im Script kann das Modul auf mehrere Arten geschrieben werden: entweder alles in eine Zeile, oder auch abgesetzt. Beides führt zum gleichen Ergebis.
Zum besseren Verständnis:
es werden jeweils vier Kugeln angesprochen um die eine Hülle gelegt wird.
Dadurch entsteht immer eine Wand die rings herum abgerundet ist.
Zusammengesetzt ergeben diese dann die fertig abgerundete Kiste.