module snapfit() { difference() { union() { translate([-5, 1.5, -2.5]) cube([14, 3, 5]); translate([5, -1, -2.5]) cube([4, 3, 5]); translate([15.5, 0.5, -2.5]) rotate(30, [0, 0, 1]) cube([2, 1.5, 5]); translate([16.91, 1.05, -2.5]) cube([2, 1.4, 5]); } union() { translate([3.0, -5.0, -3]) rotate(28, [0, 0, 1]) cube([12, 4, 6]); translate([-0.5, -0.3, -3.0]) cube([5.5, 3, 8]); } } } module snapfit_neg() { w = 12.0; sw = 2.0; translate([19, -w / 2.0 - sw, -2.5]) cube([4.0, w, 6.0]); }