hook_hook_thick=1.5;
hook_stem_thick=1.5;
hook_hook_len=1.5;
-base_thick=10;
+base_thick=6;
+base_margin=4.0;
+base_width=remote_width-base_margin*2;
+base_height=remote_height-base_margin*2;
+
+// origin is base of mainhole
module mainhole() {
translate([ -remote_width/2, 0, 0 ])
}
module hhook(extent) {
- translate([ -remote_width/2 - hook_stem_thick, 0, -base_thick*2 ])
- cube(center=false, size=[ hook_stem_thick+hook_hook_len, extent,
- base_thick*2 + mainhole_thick + hook_hook_thick ]);
+ difference() {
+ translate([ -hook_stem_thick, 0, -base_thick*2 ])
+ cube(center=false, size=[ hook_stem_thick+15, 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,50,0]) hhook(10);
+ translate([0,70,0]) hhookside(15);
+ translate([0,10,0]) hhookside(15);
+ translate([-10,0,0]) hhookbot(15);
+}
+
+module base() {
+ translate([-base_width/2, base_margin, -base_thick*2])
+ cube(center=false, [base_width,base_height,base_thick+10]);
}
module stuff() {
hstuff();
mirror([1,0,0]) hstuff();
+ base();
+}
+
+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();
+ mainhole();
+ translate([0, 20, -base_thick+2]) screwhole(4,10);
+ translate([0, remote_height-30, -base_thick+2]) screwhole(4,10);
+ translate([0,0,-50 - base_thick])
+ cube(center=true,[300,300,100]); // print bed
}