11 translate([0, -h
/2, h/2])
13 translate([-1.5*h
, -1.5*h
])
29 // [h,h,0], [h,-h,0], [-h,-h,0], [-h,h,0], [0,0,h]
32 // [1,4,0], [2,4,1], [2,3,4], [4,3,0],
37 module
quarter_pyramid() {
40 rotate([0,0,45]) translate([-2*h
, 0, -h
]) cube([h
*4,h
*4,h
*4]);
41 rotate([0,0,-45]) translate([-2*h
, -4*h
, -h
]) cube([h
*4,h
*4,h
*4]);
42 rotate([0,0,-45]) translate([0, -4*h
, -h
]) cube([h
*4,h
*4,h
*4]);
53 translate([0,0,2*h
]) rotate([180,0,0])
58 translate([0,h
,h
]) rotate([90,90,0])
63 rotate([0,0,180]) north()
68 translate([h
,0,h
]) rotate([90,0,0]) rotate([0,-90,0])
73 rotate([0,0,180]) east()
78 translate([0,0,-2*h
]) top() pyramid();
82 translate([0,-h
,-h
]) rotate([180,-90,90]) quarter_pyramid();
86 translate([0,-h
,-h
]) rotate([180,-90,-90]) quarter_pyramid();
90 translate([-h
,h
,-h
]) rotate([0,180,90]) {
99 translate([0,h
,-h
]) rotate([90, 0, 0]) partC();
103 rotate([0,0,180]) partD();
106 module
puzzle_piece() {
117 translate([0, -2.8, 0])
119 translate([-h
, -h
, 0])
120 translate([0, 4.2, 4.2])
121 cube([2*h
, 2*h
, 2*h
]);
124 module
puzzle_part(){
126 rotate([0,45,0]) puzzle_piece();
128 translate([0, 2*h
, 0])
132 translate([4, -15, h
])
136 translate([4, -15, h
])
142 module
solved_puzzle(){
143 bottom() puzzle_piece();
144 top() puzzle_piece();
145 north() puzzle_piece();
146 south() puzzle_piece();
147 east() puzzle_piece();
148 west() puzzle_piece();
152 bottom() puzzle_piece();
153 south() puzzle_piece();
154 west() puzzle_piece();
158 bottom() puzzle_piece();
159 south() puzzle_piece();
160 east() puzzle_piece();
161 west() puzzle_piece();
165 bottom() puzzle_piece();
166 south() puzzle_piece();
167 east() puzzle_piece();
168 west() puzzle_piece();
169 north() puzzle_piece();