sharpieRadius = 12/2; thickness = 2; magnetThickness = 1.67; magnetHeight = 19; magnetWidth = 9.5; magnetBaseThickness = 1; wallWidth = 0.6; // for single back wall magnetPlay = 0.4; backThickness = thickness + magnetThickness + wallWidth + magnetPlay; height = magnetBaseThickness*2 + magnetHeight + magnetPlay; difference() { linear_extrude(height) { difference() { union() { circle(sharpieRadius + thickness); translate([-sharpieRadius - thickness, 0]) square([(sharpieRadius + thickness)*2, sharpieRadius + backThickness]); } circle(sharpieRadius); } } translate([-magnetWidth/2, sharpieRadius + thickness, magnetBaseThickness]) cube([magnetWidth*2, magnetThickness + magnetPlay, magnetHeight + magnetPlay]); }