diff options
author | Clifford Wolf <clifford@clifford.at> | 2013-06-07 10:38:35 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2013-06-07 10:38:35 +0200 |
commit | 3371563f2f14ce0d6bc7798d0fc802b54aae93c8 (patch) | |
tree | ae171f088f8dcf7760c014bc75f9fae84ee1fa25 /libs/ezsat/puzzle3d.scad | |
parent | c32b9186815d0f129d923749a3c668c32f343c53 (diff) | |
download | yosys-3371563f2f14ce0d6bc7798d0fc802b54aae93c8.tar.gz yosys-3371563f2f14ce0d6bc7798d0fc802b54aae93c8.tar.bz2 yosys-3371563f2f14ce0d6bc7798d0fc802b54aae93c8.zip |
Added ezSAT library
Diffstat (limited to 'libs/ezsat/puzzle3d.scad')
-rw-r--r-- | libs/ezsat/puzzle3d.scad | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/libs/ezsat/puzzle3d.scad b/libs/ezsat/puzzle3d.scad new file mode 100644 index 000000000..693f8d853 --- /dev/null +++ b/libs/ezsat/puzzle3d.scad @@ -0,0 +1,82 @@ + +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); +} + |