include disp_thick = 3 + 0.3; mount_thick = 3.5 + 0.3; wall = 3*0.45; disp_w = 102; disp_h = 82; body_h = 35; disp_inner_w = 92; disp_inner_h = 62; disp_inner_top = 3.5; // offset from the top difference() { // main block translate([-disp_w/2-wall, -disp_h/2-wall, 0]) cube([disp_w+2*wall, disp_h+2*wall, body_h]); // inside space translate([-disp_w/2, -disp_h/2, wall]) cube([disp_w, disp_h, body_h]); // front hole for visible part of the display Ty((disp_h-disp_inner_h)/2-disp_inner_top) hull() { translate([-disp_inner_w/2-wall/2, -disp_inner_h/2-wall/2, -eps]) cube([disp_inner_w+wall, disp_inner_h+wall, eps]); translate([-disp_inner_w/2, -disp_inner_h/2, wall]) cube([disp_inner_w, disp_inner_h, eps]); } } Mx() Tz(wall+mount_thick) Rx(90) Tx(disp_w/2) Tz(-10) cylinder(r = wall, h = 20, $fn = 4); My() Tz(body_h-wall) Ry(90) Ty(disp_h/2) Tz(-10) cylinder(r = wall, h = 20, $fn = 4);