Bump version
[yosys.git] / libs / ezsat / puzzle3d.scad
1
2 gap = 30;
3 layers = 0;
4 variant = 1;
5
6 module block(size_x, size_y, size_z, pos_x, pos_y, pos_z, idx)
7 {
8 col = idx % 6 == 0 ? [ 0, 0, 1 ] :
9 idx % 6 == 1 ? [ 0, 1, 0 ] :
10 idx % 6 == 2 ? [ 0, 1, 1 ] :
11 idx % 6 == 3 ? [ 1, 0, 0 ] :
12 idx % 6 == 4 ? [ 1, 0, 1 ] :
13 idx % 6 == 5 ? [ 1, 1, 0 ] : [ 0, 0, 0 ];
14 translate([-2.5, -2.5, 0] * (100+gap)) difference() {
15 color(col) translate([pos_x, pos_y, pos_z] * (100 + gap))
16 cube([size_x, size_y, size_z] * (100+gap) - [gap, gap, gap], false);
17 if (layers > 0)
18 color([0.3, 0.3, 0.3]) translate([0, 0, layers * (100+gap)] - [0.5, 0.5, 0.5] * gap)
19 cube([5, 5, 5] * (100 + gap), false);
20 }
21 }
22
23 if (variant == 1) {
24 block(1,4,2,0,1,3,47);
25 block(1,4,2,4,0,0,72);
26 block(2,1,4,0,0,0,80);
27 block(2,1,4,3,4,1,119);
28 block(4,2,1,0,3,0,215);
29 block(4,2,1,1,0,4,224);
30 block(3,2,2,0,3,1,253);
31 block(3,2,2,2,0,2,274);
32 block(2,3,2,1,2,3,311);
33 block(2,3,2,2,0,0,312);
34 block(2,2,3,0,1,0,339);
35 block(2,2,3,3,2,2,380);
36 }
37
38 if (variant == 2) {
39 block(1,2,4,0,0,1,1);
40 block(1,2,4,4,3,0,38);
41 block(2,4,1,0,1,0,125);
42 block(2,4,1,3,0,4,154);
43 block(4,1,2,0,4,3,179);
44 block(4,1,2,1,0,0,180);
45 block(3,2,2,0,2,3,251);
46 block(3,2,2,2,1,0,276);
47 block(2,3,2,0,2,1,297);
48 block(2,3,2,3,0,2,326);
49 block(2,2,3,1,0,2,350);
50 block(2,2,3,2,3,0,369);
51 }
52
53 if (variant == 3) {
54 block(1,4,2,0,0,3,43);
55 block(1,4,2,4,1,0,76);
56 block(2,1,4,0,4,0,88);
57 block(2,1,4,3,0,1,111);
58 block(4,2,1,0,0,0,200);
59 block(4,2,1,1,3,4,239);
60 block(3,2,2,0,0,1,241);
61 block(3,2,2,2,3,2,286);
62 block(2,3,2,1,0,3,303);
63 block(2,3,2,2,2,0,320);
64 block(2,2,3,0,2,0,342);
65 block(2,2,3,3,1,2,377);
66 }
67
68 if (variant == 4) {
69 block(1,2,4,0,3,1,7);
70 block(1,2,4,4,0,0,32);
71 block(2,4,1,0,0,0,120);
72 block(2,4,1,3,1,4,159);
73 block(4,1,2,0,0,3,163);
74 block(4,1,2,1,4,0,196);
75 block(3,2,2,0,1,3,247);
76 block(3,2,2,2,2,0,280);
77 block(2,3,2,0,0,1,289);
78 block(2,3,2,3,2,2,334);
79 block(2,2,3,1,3,2,359);
80 block(2,2,3,2,0,0,360);
81 }
82