chiark / gitweb /
wardrobe-hook: retune: right-handed version
[reprap-play.git] / xeno-drivebay-bracket.scad
index 4efb526150be9257751cc1276839750548ff5102..2073e05264da0591a43615f22469a651d20a739e 100644 (file)
@@ -1,25 +1,25 @@
 // -*- C -*-
 
-basel = 18;
-basew = 22;
+basel = 16;
+basew = 24;
 baset = 4.0;
 
 wallt = 2.5;
 
 wallh = 42;
 
-baseholesz = 4;
-baseholeslot = 4.5;
+baseholesz = 3.7;
+baseholeslot = 6.5;
 baseholeslop = -0.5;
 
-topl = 20;
-
 holeslop = 0.5;
 
 webt = 2.5;
 
-padt = webt;
+pad = false;
 padw = 12;
+
+padt = webt;
 padl = padw;
 padholesz = 3.0;
 
@@ -27,17 +27,17 @@ wallholeh = 6+14+2;
 wallholesz = 3.0;
 wallholeslot = 4.5;
 
-walll = basel + webt + padl;;
+walll = basel + webt + (pad ? padl : -0.1);
 
-webw = min(basew, padw);
+webw = min(basew, pad ? padw : padt);
 
 module slothole(sz, slot, thick, csunk=true, slop=holeslop) {
   hull(){
     for (y = [-slot/2,slot/2]) {
-      translate([0,y,-0.05])
+      translate([0,y,-0.15])
        cylinder(r1=sz/2 + slop,
                 r2=sz/2 + (csunk ? thick : 0) + slop,
-                h=thick+0.10);
+                h=thick+0.30);
     }
   }
 }
@@ -52,6 +52,7 @@ module Bracket(){
   }
 
   difference(){
+    translate([0.1, 0.3, 0.1])
     rotate([90,0,0]) {
       linear_extrude(height=wallt){
        polygon([[0,0],
@@ -80,11 +81,13 @@ module Bracket(){
     }
   }
 
-  translate([basel+webt, -padw, wallh-padt]) {
-    difference(){
-      cube([padl, padw, padt]);
-      translate([padl/2, padw/2, -1])
-       cylinder(r=padholesz/2 + holeslop, h=padt+2);
+  if (pad) {
+    translate([basel+webt, -padw, wallh-padt]) {
+      difference(){
+       cube([padl, padw, padt]);
+       translate([padl/2, padw/2, -1])
+         cylinder(r=padholesz/2 + holeslop, h=padt+2);
+      }
     }
   }
 }
@@ -97,6 +100,86 @@ module BracketL(){ ////toplevel
   mirror([1,0,0]) BracketR();
 }
 
+protinnerh = 47;
+protinnerw = 53;
+protd = 45;
+protbaset = 4;
+protwallt = 2;
+protlidt = protwallt;
+protwingd = 28;
+protwingw = 23;
+
+module RearCableProtector(){
+  for (x = [-protwallt, protinnerw]) {
+    translate([x, 0, 0]) {
+      cube([protwallt, protd, protinnerh+protlidt]);
+    }
+  }
+  translate([-(protwallt-0.1), 0, protinnerh])
+    cube([protinnerw + (protwallt-0.1)*2, protd, protlidt]);
+  for (lr = [1,0]) {
+    translate([(lr ? -(protwingw + protwallt) : protinnerw), 0, 0]) {
+      difference(){
+       translate([0, 0, 0])
+         cube([protwingw, protwingd, protbaset]);
+       translate([protwingw/2, protwingd/2, 0])
+         rotate([0,0, lr ? 45 : -45])
+         slothole(baseholesz, baseholeslot, baset, slop=baseholeslop);
+      }
+    }
+  }
+}
+
+module RearCableProtectorT(){ ////toplevel
+  rotate([90,0,0]) RearCableProtector();
+}
+
+chabd = 20;
+chablidw = 40;
+chabinnerh = 11;
+chabwallt = 2;
+chablidt = 2;
+chabwebt = 2.5;
+chabbaset = baset;
+chabbasew = 20;
+chabslot = 3;
+chablidholed = 3;
+chabwebh = 5;
+
+module ChannelBracket(){
+  translate([0, -chabd, 0])
+    cube([chabwallt, chabd, chabinnerh+chablidt]);
+  translate([-chablidw, -chabd, chabinnerh]) {
+    difference(){
+      cube([chablidw + chabwallt - 0.1, chabd - 0.1, chablidt]);
+      translate([chablidw/2, chabd/2, -1])
+       cylinder(r=chablidholed/2, h=chablidt+2, $fn=20);
+    }
+  }
+  translate([chabwallt-0.1, -chabd, 0]) {
+    difference(){
+      cube([chabbasew, chabd-0.1, chabbaset]);
+      translate([chabbasew/2, (chabd-chabwebt)/2, 0])
+       rotate([0,0,90])
+       slothole(baseholesz, chabslot, baset, slop=baseholeslop);
+    }
+  }
+  rotate([90,0,0]) linear_extrude(height=chabwebt) {
+    polygon([[-chablidw, chabinnerh],
+            [-chablidw, chablidt+chabinnerh],
+            [-chabwebh, chablidt+chabinnerh+chabwebh],
+            [+chabwebh, chablidt+chabinnerh+chabwebh],
+            [+chabbasew, chabbaset],
+            [+chabbasew, 0],
+            [0, 0],
+            [0, chabinnerh]]);
+  }
+}
+
+module ChannelBracketT(){
+  rotate([-90,0,0]) ChannelBracket();
+}
+
 module Kit(){ ////toplevel
   for (y=[0, -wallh-5]) {
     translate([0,y,0]) {
@@ -107,4 +190,6 @@ module Kit(){ ////toplevel
 }
 
 //Kit();
-BracketR();
+//BracketR();
+//RearCableProtectorT();
+//ChannelBracketT();