include wall = 1.5; strut_w = 15; laser_h = 103; laser_d = 12; clip_cut_w = 4; Tx(-strut_w/2) { Ty(laser_h/2) cube([strut_w, laser_h/2, wall]); Ty(laser_h-wall) difference() { cube([strut_w, wall, strut_w]); Tx(strut_w/2) Tz(strut_w/2) Rx(-90) Tz(-eps) cylinder(r = 2.5, h = wall+2*eps, $fn = 6); } } Mx() Tx(strut_w/2-wall) cube([wall, laser_h, strut_w]); difference() { cylinder(r = laser_d/2+1.41*wall, h = strut_w, $fn = 4); Tz(-eps) cylinder(r = laser_d/2, h = strut_w+2*eps, $fn = 4); translate([-clip_cut_w/2, -laser_d, -eps]) cube([clip_cut_w, 2*laser_d, strut_w+2*eps]); }