+ translate([0,70,0]) hhookside(15);
+ translate([0,10,0]) hhookside(15);
+ translate([-10,0,0]) hhookbot(15);
+}
+
+module slashes() {
+ for (y=[-30 : 60 : +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]);
+}
+
+module stuff() {
+ hstuff();
+ mirror([1,0,0]) hstuff();
+ base();
+ for (y=screw_ys) translate([0, y, -20])
+ cylinder(r=6.5, h=21);
+}
+
+module screwhole(holedia, csdia) {
+ // screw goes along z axis downwards
+ // origin is top of head
+ // results are positive, so this should be subtracted
+ translate([0,0,-100]) cylinder(h=200, r=holedia/2);
+ csdist=(csdia-holedia)/2;
+ translate([0,0,-csdist]) cylinder(h=csdist, r1=holedia/2, r2=csdia/2);
+ cylinder(h=100, r=csdia/2);