chiark / gitweb /
xeno-drivebay-bracket fancy wall shape
[reprap-play.git] / xeno-drivebay-bracket.scad
index 66b520ea673100583460646d95865818936baced..3bbff794485c232007ef931b02bf7df643c92e28 100644 (file)
@@ -1,6 +1,6 @@
 // -*- C -*-
 
-basel = 20;
+basel = 23;
 basew = 27;
 baset = 4.0;
 
@@ -11,12 +11,24 @@ wallh = 42;
 baseholesz = 4; // fixme check
 baseholeslot = 4;
 
+topl = 20;
+
 holeslop = 0.5;
 
-walll = basel;
+webt = 3;
+
+padt = 3;
+padw = 20;
+padl = padw;
+padholesz = 5.0;
+
 wallholeh = 6+14+2;
 wallholesz = 3.0; // fixme check
-wallholeslot = 3.0;
+wallholeslot = 4.5;
+
+walll = basel + webt + padl;;
+
+webw = min(basew, padw);
 
 module slothole(sz, slot, thick) {
   hull(){
@@ -29,19 +41,42 @@ module slothole(sz, slot, thick) {
   }
 }
 
-difference(){
-  translate([0, -basew, 0])
-    cube([basel, basew, baset]);
+module Bracket(){
+  difference(){
+    translate([0, -basew, 0])
+      cube([basel, basew, baset]);
 
-  translate([basel/2, -(basew+wallt)/2, 0])
-    slothole(baseholesz, baseholeslot, baset);
-}
+    translate([basel/2, -(basew+wallt)/2, 0])
+      slothole(baseholesz, baseholeslot, baset);
+  }
 
-difference(){
-  translate([0, -wallt, 0])
-    cube([walll, wallt, wallh]);
+  difference(){
+    rotate([90,0,0]) {
+      linear_extrude(height=wallt){
+       polygon([[0,0],
+                [0, wallh/2 + wallholesz/2 + wallt + wallt],
+                [basel, wallh],
+                [walll, wallh],
+                [walll, wallh - padt - padt],
+                [basel + webt, 0]]);
+      }
+    }
+
+    translate([basel/2, 0, wallholeh])
+      rotate([90,90,0])
+      slothole(wallholesz, wallholeslot, wallt);
+  }
+
+  translate([basel-0.01, -webw, 0])
+    cube([webt+0.02, webw, wallh]);
 
-  translate([basel/2, 0, wallholeh])
-    rotate([90,0,0])
-    slothole(wallholesz, wallholeslot, wallt);
+  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);
+    }
+  }
 }
+
+Bracket();