module dodecahedron(height) { scale([height,height,height]) { intersection() { cube([2,2,1], center = true); intersection_for(i=[0:4]) { rotate([0,0,72*i]) rotate([116.56505,0,0]) cube([2,2,1], center = true); } } } } module hohles() { cylinder(10,0.5,0.5,true,$fn=40); for(i=[0:4]) { rotate([0,0,72*i]) rotate([116.56505,0,0]) cylinder(10,0.5,0.5,true,$fn=40); } } module hollow_dodecahedron() { difference() { dodecahedron(2); hohles(); sphere(0.95,true,$fn=50); } } module hollow_sphere() { difference() { sphere(0.9,true,$fn=50); for(i=[0:4]) { rotate([0,0,72*i]) rotate([116.56505,0,0]) cylinder(10,0.3,0.5,true,$fn=40); } sphere(0.8,true,$fn=50); } } module Object(factor) { scale([factor,factor,factor]) { union() { hollow_dodecahedron(); hollow_sphere(); sphere(0.7,true,$fn=50); } } } Object(1);