include $fn=36; module conn(d1, d2, h) { difference() { cyl(d=d1, h=h); cyl(d=d2, h=h); } } module motor() { ycyl(d=33, h=25, anchor=FWD); ycyl(d=37, h=2, anchor=FWD); down(7 - 1.5) back(1) union() { left(36/2 + 5) conn(8,4,3); right(36/2 + 5) conn(8,4,3); } } t = 2; guzik1 = [6,8,100]; guzik2 = 16; module box() { diff("R") { // box + hole cuboid([39,60,39], anchor=FWD); tag("R") back(t) cuboid([39-2*t,60-2*t,39-2*t], anchor=FWD); tag("R") cuboid(41, anchor=BACK); // for tabs back(1) down(2.8) union() { chain_hull() { cuboid([52, 6, t]); back(10) cuboid([35,10,t]); } tag("R") left(36/2 + 5) cyl(d=4, h=10); tag("R") right(36/2 + 5) cyl(d=4, h=10); } // holes for buttons tag("R") back(45) union() { left(7) cyl(d=guzik2, h=100, anchor=BOT); right(10) cuboid(guzik1, anchor=BOT); } // hole for cable tag("R") down(10) ycyl(d=4, h=500); } } difference() { color([1,0,0,0.5]) box(); motor(); }