module pentagram(r, w=1, d=1) { linear_extrude(height=d) { for(a=[0:+(360/5):360]) { rotate([0, 0, a]) translate([-r, 0, 0]) rotate([0, 0, 18]) translate([w * 0.95, -0.5 * w]) square(size=[r, w]); rotate([0, 0, a]) translate([-r, 0, 0]) rotate([0, 0, -1 * 18]) translate([w * 0.95, -0.5 * w]) square(size=[r, w]); } difference() { circle(r=r); circle(r=r-w); } } } scale([1/10, 1/10, 1/10]) union() { Heigth = 560; radius = 540; difference() { color("blue") rotate([0,0,45+180]) difference() { cylinder(h=Heigth, r1=radius * 0.37, r2=radius * 0.5, center = false, $fn = 128); translate([0,0,50]) cylinder(h=Heigth+100, r1=radius * 0.25, r2=radius * 0.48, center = false, $fn = 23); translate([0, 300, 320]) rotate([-10, 0, 0]) union() { sphere(100, $fn = 128); rotate([180,0,0]) cylinder(280, r=100, $fn=128); } translate([300, 0, 320]) rotate([0, 10, 0]) union() { sphere(100, $fn = 128); rotate([180,0,0]) cylinder(280, r=100, $fn=128); } translate([0, -300, 320]) rotate([10, 0, 0]) union() { sphere(100, $fn = 128); rotate([180,0,0]) cylinder(280, r=100, $fn=128); } DIAMETER = 200; //translate([0,0,45]) pentagram((DIAMETER/2) - 1, 10, 12); translate([0,0,40]) rotate([180,0,45]) cylinder(70, r1=50, r2=200, $fn=6); } rotate([81, 0, -45]) translate([0, 220, -250]) linear_extrude(84) import("dog.svg", center=true); } ARC_ANGLE=120; stext = ["P", "H", "I", "L"]; chars = len( stext ); color("red") translate([0, 0, 400]) for(i=[0:1:chars]){ rotate([0,5,i*ARC_ANGLE/chars]){ translate( [Heigth*0.4,0,0]) rotate([90,0,90]) linear_extrude(30) text(stext[i],size=120,valign="center",halign="center"); } } }