// Ein Würfel mit "runden Ecken" // minkowski() lässt einen (zweiten) Körper // um einen anderen auf dessen Oberfläche // rotieren, und hinterlässt dabeit eine // "Spur". /* minkowski(){ cube(50); sphere(d=10,$fn=50); } */ // Nachteil: Der erste Körper "wächst" in alle Richtungen um den Radius der Kugel // Wie könnte man das beheben? // Mit einrechnen, also Würfel um den // Durchmesser kleiner // und um den Radius der Kugel // verschoben. /* D=20; minkowski(){ translate([D/2, D/2, D/2]) cube(50 - D); sphere(d=D, $fn=50); } */ // Einen eigenen Befehl (module) schreiben, // für "runde würfel". // Hinweis: Hier wird ein Vektor // "size" verwendet, der drei // Elemente hat, von size[0]...size[2] module round_cube(size=[1,1,1], d=1){ minkowski(){ translate([d/2, d/2, d/2]) cube([size[0]-d,size[1]-d,size[2]-d]); sphere(r=d/2); } } // ... und aufrufen! round_cube([10,20,30],5,$fn=40); translate([20,0,0]) round_cube([50,50,50],20,$fn=40);