group() { intersection(); intersection(); intersection() { sphere($fn = 0, $fa = 12, $fs = 2, r = 5); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 3], [0, 0, 0, 1]]) { cube(size = [4, 4, 6], center = true); } } multmatrix([[1, 0, 0, 0], [0, 1, 0, 12], [0, 0, 1, 0], [0, 0, 0, 1]]) { intersection() { cube(size = [10, 10, 10], center = true); cylinder($fn = 0, $fa = 12, $fs = 2, h = 12, r1 = 4, r2 = 4, center = true); } } multmatrix([[1, 0, 0, 12], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { intersection() { cube(size = [10, 10, 10], center = true); cylinder($fn = 0, $fa = 12, $fs = 2, h = 12, r1 = 4, r2 = 4, center = true); multmatrix([[0, 0, 1, 0], [0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 12, r1 = 4, r2 = 4, center = true); } } } multmatrix([[1, 0, 0, 12], [0, 1, 0, 12], [0, 0, 1, 0], [0, 0, 0, 1]]) { intersection() { cube(size = [10, 10, 10], center = true); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 7.01], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 4, r1 = 4, r2 = 4, center = true); } } } multmatrix([[1, 0, 0, 24], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { intersection() { cube(size = [10, 10, 10], center = true); multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 6.99], [0, 0, 0, 1]]) { cylinder($fn = 0, $fa = 12, $fs = 2, h = 4, r1 = 4, r2 = 4, center = true); } } } multmatrix([[1, 0, 0, -12], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { intersection() { cube(size = [10, 10, 10], center = true); multmatrix([[1, 0, 0, 0], [0, 1, 0, -10], [0, 0, 1, -10], [0, 0, 0, 1]]) { cube(size = [10, 10, 10], center = true); } } } multmatrix([[1, 0, 0, -12], [0, 1, 0, 12], [0, 0, 1, 0], [0, 0, 0, 1]]) { intersection() { cube(size = [10, 10, 10], center = true); multmatrix([[1, 0, 0, 0], [0, 1, 0, -9.99], [0, 0, 1, -9.99], [0, 0, 0, 1]]) { cube(size = [10, 10, 10], center = true); } } } }