// -*- C -*-
-basel = 23;
-basew = 27;
+basel = 18;
+basew = 22;
baset = 4.0;
-wallt = 4.0;
+wallt = 2.5;
wallh = 42;
-baseholesz = 4; // fixme check
-baseholeslot = 4;
+baseholesz = 4;
+baseholeslot = 4.5;
+baseholeslop = -0.5;
topl = 20;
holeslop = 0.5;
-webt = 3;
+webt = 2.5;
-padt = 3;
-padw = 20;
+padt = webt;
+padw = 12;
padl = padw;
-padholesz = 5.0;
+padholesz = 3.0;
-walll = basel;
wallholeh = 6+14+2;
-wallholesz = 3.0; // fixme check
+wallholesz = 3.0;
wallholeslot = 4.5;
-module slothole(sz, slot, thick) {
+walll = basel + webt + padl;;
+
+webw = min(basew, padw);
+
+module slothole(sz, slot, thick, csunk=true, slop=holeslop) {
hull(){
for (y = [-slot/2,slot/2]) {
translate([0,y,-0.05])
- cylinder(r1=sz/2 + holeslop,
- r2=sz/2+thick + holeslop,
+ cylinder(r1=sz/2 + slop,
+ r2=sz/2 + (csunk ? thick : 0) + slop,
h=thick+0.10);
}
}
cube([basel, basew, baset]);
translate([basel/2, -(basew+wallt)/2, 0])
- slothole(baseholesz, baseholeslot, baset);
+ slothole(baseholesz, baseholeslot, baset, slop=baseholeslop);
}
difference(){
- translate([0, -wallt, 0])
- cube([walll, wallt, wallh]);
+ 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);
+ slothole(wallholesz, wallholeslot, wallt, csunk=false);
}
- translate([basel-0.01, -basew, 0])
- cube([webt+0.02, basew, wallh]);
+ translate([basel-0.01, 0, 0]) {
+ rotate([90,0,90]) {
+ linear_extrude(height=webt+0.02) {
+ polygon([[-basew, 0],
+ [-basew, baset],
+ [-webw, wallh],
+ [0, wallh],
+ [0, 0]]);
+ }
+ }
+ }
translate([basel+webt, -padw, wallh-padt]) {
difference(){
}
}
-Bracket();
+module BracketR(){ ////toplevel
+ rotate([-90,0,0]) Bracket();
+}
+
+module BracketL(){ ////toplevel
+ mirror([1,0,0]) BracketR();
+}
+
+module Kit(){ ////toplevel
+ for (y=[0, -wallh-5]) {
+ translate([0,y,0]) {
+ translate([5,0,0]) BracketR();
+ BracketL();
+ }
+ }
+}
+
+//Kit();
+BracketR();