| |
| gap = 30; |
| layers = 0; |
| variant = 1; |
| |
| module block(size_x, size_y, size_z, pos_x, pos_y, pos_z, idx) |
| { |
| col = idx % 6 == 0 ? [ 0, 0, 1 ] : |
| idx % 6 == 1 ? [ 0, 1, 0 ] : |
| idx % 6 == 2 ? [ 0, 1, 1 ] : |
| idx % 6 == 3 ? [ 1, 0, 0 ] : |
| idx % 6 == 4 ? [ 1, 0, 1 ] : |
| idx % 6 == 5 ? [ 1, 1, 0 ] : [ 0, 0, 0 ]; |
| translate([-2.5, -2.5, 0] * (100+gap)) difference() { |
| color(col) translate([pos_x, pos_y, pos_z] * (100 + gap)) |
| cube([size_x, size_y, size_z] * (100+gap) - [gap, gap, gap], false); |
| if (layers > 0) |
| color([0.3, 0.3, 0.3]) translate([0, 0, layers * (100+gap)] - [0.5, 0.5, 0.5] * gap) |
| cube([5, 5, 5] * (100 + gap), false); |
| } |
| } |
| |
| if (variant == 1) { |
| block(1,4,2,0,1,3,47); |
| block(1,4,2,4,0,0,72); |
| block(2,1,4,0,0,0,80); |
| block(2,1,4,3,4,1,119); |
| block(4,2,1,0,3,0,215); |
| block(4,2,1,1,0,4,224); |
| block(3,2,2,0,3,1,253); |
| block(3,2,2,2,0,2,274); |
| block(2,3,2,1,2,3,311); |
| block(2,3,2,2,0,0,312); |
| block(2,2,3,0,1,0,339); |
| block(2,2,3,3,2,2,380); |
| } |
| |
| if (variant == 2) { |
| block(1,2,4,0,0,1,1); |
| block(1,2,4,4,3,0,38); |
| block(2,4,1,0,1,0,125); |
| block(2,4,1,3,0,4,154); |
| block(4,1,2,0,4,3,179); |
| block(4,1,2,1,0,0,180); |
| block(3,2,2,0,2,3,251); |
| block(3,2,2,2,1,0,276); |
| block(2,3,2,0,2,1,297); |
| block(2,3,2,3,0,2,326); |
| block(2,2,3,1,0,2,350); |
| block(2,2,3,2,3,0,369); |
| } |
| |
| if (variant == 3) { |
| block(1,4,2,0,0,3,43); |
| block(1,4,2,4,1,0,76); |
| block(2,1,4,0,4,0,88); |
| block(2,1,4,3,0,1,111); |
| block(4,2,1,0,0,0,200); |
| block(4,2,1,1,3,4,239); |
| block(3,2,2,0,0,1,241); |
| block(3,2,2,2,3,2,286); |
| block(2,3,2,1,0,3,303); |
| block(2,3,2,2,2,0,320); |
| block(2,2,3,0,2,0,342); |
| block(2,2,3,3,1,2,377); |
| } |
| |
| if (variant == 4) { |
| block(1,2,4,0,3,1,7); |
| block(1,2,4,4,0,0,32); |
| block(2,4,1,0,0,0,120); |
| block(2,4,1,3,1,4,159); |
| block(4,1,2,0,0,3,163); |
| block(4,1,2,1,4,0,196); |
| block(3,2,2,0,1,3,247); |
| block(3,2,2,2,2,0,280); |
| block(2,3,2,0,0,1,289); |
| block(2,3,2,3,2,2,334); |
| block(2,2,3,1,3,2,359); |
| block(2,2,3,2,0,0,360); |
| } |
| |