group() { group() { difference() { cube(size = [100, 100, 100], center = true); group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { multmatrix([[1, 0, 0, 50], [0, 1, 0, 50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } multmatrix([[1, 0, 0, -50], [0, 1, 0, 50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } multmatrix([[1, 0, 0, -50], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } multmatrix([[1, 0, 0, 50], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } } } multmatrix([[1, 0, 0, 0], [0, 0, -1, 0], [0, 1, 0, 0], [0, 0, 0, 1]]) { group() { multmatrix([[1, 0, 0, 50], [0, 1, 0, 50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } multmatrix([[1, 0, 0, -50], [0, 1, 0, 50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } multmatrix([[1, 0, 0, -50], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } multmatrix([[1, 0, 0, 50], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } } } multmatrix([[0, 0, 1, 0], [0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1]]) { group() { multmatrix([[1, 0, 0, 50], [0, 1, 0, 50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } multmatrix([[1, 0, 0, -50], [0, 1, 0, 50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } multmatrix([[1, 0, 0, -50], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } multmatrix([[1, 0, 0, 50], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { render(convexity = 2) { difference() { cube(size = [20, 20, 150], center = true); multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 80, r1 = 10, r2 = 10, center = true); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, 40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -10], [0, 1, 0, -10], [0, 0, 1, -40], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } } } } group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } multmatrix([[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { multmatrix([[1, 0, 0, -20], [0, 1, 0, 0], [0, 0, 1, -20], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, 20], [0, 1, 0, 0], [0, 0, 1, 20], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } multmatrix([[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { multmatrix([[1, 0, 0, -20], [0, 1, 0, 0], [0, 0, 1, -25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -20], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -20], [0, 1, 0, 0], [0, 0, 1, 25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, 20], [0, 1, 0, 0], [0, 0, 1, -25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, 20], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, 20], [0, 1, 0, 0], [0, 0, 1, 25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } multmatrix([[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -25], [0, 1, 0, 0], [0, 0, 1, -25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, 25], [0, 1, 0, 0], [0, 0, 1, -25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -25], [0, 1, 0, 0], [0, 0, 1, 25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, 25], [0, 1, 0, 0], [0, 0, 1, 25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 0, -1, 0], [0, 1, 0, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { multmatrix([[1, 0, 0, -25], [0, 1, 0, 0], [0, 0, 1, -25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, 25], [0, 1, 0, 0], [0, 0, 1, 25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 0, 1, 0], [0, -1, 0, 0], [0, 0, 0, 1]]) { multmatrix([[1, 0, 0, 0], [0, 1, 0, -50], [0, 0, 1, 0], [0, 0, 0, 1]]) { group() { multmatrix([[1, 0, 0, -25], [0, 1, 0, 0], [0, 0, 1, -25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, 25], [0, 1, 0, 0], [0, 0, 1, -25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, -25], [0, 1, 0, 0], [0, 0, 1, 25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } multmatrix([[1, 0, 0, 25], [0, 1, 0, 0], [0, 0, 1, 25], [0, 0, 0, 1]]) { sphere($fn = 0, $fa = 12, $fs = 2, r = 10); } } } } } } } } }