module figure() { union() { translate([0,0,-6]) cylinder(h=12,r1=6, r2=3, center=true, $fn=16); translate([0,0,2.5]) sphere(r=4, $fn=16); } } scale(v=[1.5,1.5,1.5]) { // mary union() { figure(); translate([0,0,-7.5]) difference() { cylinder(h=10, r1=4, r2=4, $fn=16); translate([-4,0,-1]) cube(size=[8,4,12], center=false); } } // joseph translate([20,0,0]) union() { figure(); translate([0,0,-7.5]) difference() { cylinder(h=10, r1=4, r2=4, $fn=16); translate([-4,0,-1]) cube(size=[8,4,12], center=false); } translate([0,4.25,-2]) { rotate(a=90, v=[1,0,0]) intersection() { cylinder(h=1, r1=4, r2=4, $fn=16); translate([1,1,0]) cylinder(h=1, r1=4, r2=4, $fn=16); translate([-1,1,0]) cylinder(h=1,r1=4,r2=4,$fn=16); } } } // shepherd translate([20,20,0]) union() { figure(); translate([0,0,-7.5]) difference() { cylinder(h=10, r1=4, r2=4, $fn=16); translate([-4,0,-1]) cube(size=[8,4,12], center=false); } translate([0,4.25,-2]) { rotate(a=90, v=[1,0,0]) intersection() { cylinder(h=1, r1=4, r2=4, $fn=16); translate([1,1,0]) cylinder(h=1, r1=4, r2=4, $fn=16); translate([-1,1,0]) cylinder(h=1,r1=4,r2=4,$fn=16); } } translate([4,0,2]) rotate(a=-90, v=[1,0,0]) { rotate(a=-90, v=[0,1,0]) { rotate(a=-10, v=[1,0,0]) { union() { difference() { cylinder(h=1, r1=2, r2=2, center=true, $fn=16); cylinder(h=2, r1=1.5, r2=1.5, center=true, $fn=16); translate([0,0,-1]) cube(size=[3,3,3], center=false); } rotate(a=90, v=[1,0,0]) translate([0,0,-7.5]) { cylinder(h=12, r1=.5, r2=.5, center=true); } } } } } } // king translate([-20,0,0]) union() { figure(); translate([0,0,6]) difference() { cylinder(h=3, r1=3, r2=3, center=true, $fn=16); cylinder(h=4, r1=2.5, r2=2.5, center=true, $fn=16); translate([0,0,1.5]) rotate(a=90, v=[0,1,0]) cylinder(h=10, r1=1, r2=1, center=true, $fn=16); translate([0,0,1.5]) rotate(a=90, v=[0,1,0]) rotate(a=90, v=[1,0,0]) cylinder(h=10, r1=1, r2=1, center=true, $fn=16); translate([0,0,1.5]) rotate(a=90, v=[0,1,0]) rotate(a=45, v=[1,0,0]) cylinder(h=10, r1=1, r2=1, center=true, $fn=16); translate([0,0,1.5]) rotate(a=90, v=[0,1,0]) rotate(a=-45, v=[1,0,0]) cylinder(h=10, r1=1, r2=1, center=true, $fn=16); } translate([0,4.25,-2]) { rotate(a=90, v=[1,0,0]) intersection() { cylinder(h=1, r1=4, r2=4, $fn=16); translate([1,1,0]) cylinder(h=1, r1=4, r2=4, $fn=16); translate([-1,1,0]) cylinder(h=1,r1=4,r2=4,$fn=16); } } } // crib translate([-20, 20, -9]) union() { difference() { cube(size=[15, 10, 6], center=true); translate([0,0,1]) cube(size=[13, 8, 6], center=true); } difference() { cube(size=[13,8,6], center=true); translate([0,0,20]) sphere(r=18.5, $fn=32); } translate([2, 0, 3]) rotate(a=80, v=[0,1,0]) scale(v=[0.5, 0.5, 0.5]) figure(); } // angel translate([0, 20, 0]) union() { figure(); translate([0,0,6]) difference() { cylinder(h=1, r1=3, r2=3, center=true, $fn=16); cylinder(h=4, r1=2.5, r2=2.5, center=true, $fn=16); } translate([0,-3, 0]) difference() { rotate(a=90, v=[1,0,0]) cylinder(h=1, r1=10, r2=10, center=true, $fn=16); translate([0, 0, 10]) rotate(a=45, v=[0,1,0]) cube(size=[18,18,18], center=true); } } }