/************************************************************************* * Hülle für die u23-Spielekonsole. * * Funktionen zur Modifikation der Außenkanten. * * * * Author: Shy * * License: CC0 * *************************************************************************/ // Objekt, um abgerundete oder abgeschrägte Außenkanten zu "schneiden". module edge_cutter(beveled, outline) { minkowski() { linear_extrude(height=0.1) { import(outline); } $fn = $preview ? 4 : 16; if (beveled) { // Abgeschrägte Kanten. cylinder(h=4, r1=1.5, r2=0); } else { // Abgerundete Kanten. Dafür generieren wir einen konkaven Kegel. // Kurve der Kegelseite. curve = $preview ? [1.34, 0.84, 0.46, 0.2, 0.05, 0] : [1.34, 1.07, 0.84, 0.63, 0.46, 0.32, 0.2, 0.11, 0.05, 0.01, 0]; // Vertikale Auflösung. v_step = $preview ? 1 : 0.5; for (i = [0:len(curve)-2]) { translate([0, 0, i*v_step]) cylinder(h=v_step, r1=curve[i], r2=curve[i+1]); } } } } // Erzeugt abgerundete oder abgeschrägte Außenkanten. module edge_modifier(beveled, outline) { difference() { children(); translate([0, 0, -0.1]) edge_cutter(beveled_edges, outline); } }