remote_width=56.2; remote_height=124.7; remote_thick=6.8; mainhole_thick=remote_thick+1; hook_hook_thick=1.5; hook_stem_thick=1.5; hook_hook_len=1.5; base_thick=6; base_margin=4.0; base_width=remote_width-base_margin*2; base_height=remote_height-base_margin*2; base_edgewidth=4; // origin is base of mainhole module mainhole() { translate([ -remote_width/2, 0, 0 ]) cube(center=false, size=[ remote_width, remote_height, mainhole_thick ] ); } module hhook(extent) { difference() { translate([ -hook_stem_thick, 0, -base_thick*2 ]) cube(center=false, size=[ hook_stem_thick+base_margin+base_edgewidth-1, extent, base_thick*2 + mainhole_thick + hook_hook_thick ]); translate([hook_hook_len, -5, 0]) cube(center=false, size=[ 20, extent+10, 30 ]); } } module hhookside(extent) { translate([ -remote_width/2, 0, 0 ]) hhook(extent); } module hhookbot(extent) { rotate(a=90, v=[0,0,1]) hhook(extent); } module hstuff() { translate([0,70,0]) hhookside(15); translate([0,10,0]) hhookside(15); translate([-10,0,0]) hhookbot(15); } module slashes() { for (y=[-35 : 35 : +40]) translate([0,y,0]) rotate(v=[0,0,1],a=45) cube(center=true, [ 5,200,200 ]); } module base() { translate([ 0, base_height/2 + base_margin, -base_thick/2 ]) intersection() { cube(center=true, [ base_width, base_height, base_thick+10 ]); union() { difference() { cube(center=true, [ 200,200,200 ]); cube(center=true, [ base_width - base_edgewidth*2, base_height - base_edgewidth*2, base_thick + 15 ]); } slashes(); mirror([1,0,0]) slashes(); } } // translate([-base_width/2, base_margin, -base_thick*2]) // cube(center=false, [base_width,base_height,base_thick+10]); } screw_ys=[ 20, remote_height-30 ]; module stuff() { hstuff(); mirror([1,0,0]) hstuff(); base(); for (y=screw_ys) translate([0, y, -20]) cylinder(r=7.5, h=21); } module screwhole(holedia, csdia) { // screw goes along z axis downwards // origin is base of countersink // results are positive, so this should be subtracted translate([0,0,-100]) cylinder(h=200, r=holedia/2); cylinder(h=100, r=csdia/2); } difference() { stuff(); mainhole(); for (y=screw_ys) translate([0, y, -base_thick+2]) screwhole(4,10); translate([0,0,-50 - base_thick]) cube(center=true,[300,300,100]); // print bed }