group() { linear_extrude(height = 20, center = false, convexity = 1, scale = [0.5, 0.5], $fn = 40, $fa = 12, $fs = 2) { offset(delta = 10, join_type = round, miter_limit = 2, $fn = 40, $fa = 12, $fs = 2) { square(size = [50, 50], center = true); } } multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 20], [0, 0, 0, 1]]) { linear_extrude(height = 20, center = false, convexity = 1, scale = [1, 1], $fn = 40, $fa = 12, $fs = 2) { group() { difference() { offset(delta = 1, join_type = miter, miter_limit = 2, $fn = 40, $fa = 12, $fs = 2) { group() { circle($fn = 40, $fa = 12, $fs = 2, r = 15); } } offset(delta = -1, join_type = miter, miter_limit = 2, $fn = 40, $fa = 12, $fs = 2) { group() { circle($fn = 40, $fa = 12, $fs = 2, r = 15); } } } } } } % cylinder($fn = 40, $fa = 12, $fs = 2, h = 100, r1 = 14, r2 = 14, center = false); % multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 100], [0, 0, 0, 1]]) { sphere($fn = 40, $fa = 12, $fs = 2, r = 30); } }