X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=xeno-drivebay-bracket.scad;h=2073e05264da0591a43615f22469a651d20a739e;hp=cf2ea7b8854462886de536103a0bbd6af1e451fb;hb=4f66d0f9315a053ba0a36b21c1e9f04a9f0c4e7a;hpb=35c4b6f9b1d613cd354d41697d7ef2e60631e5a3 diff --git a/xeno-drivebay-bracket.scad b/xeno-drivebay-bracket.scad index cf2ea7b..2073e05 100644 --- a/xeno-drivebay-bracket.scad +++ b/xeno-drivebay-bracket.scad @@ -1,42 +1,43 @@ // -*- C -*- -basel = 23; -basew = 27; +basel = 16; +basew = 24; baset = 4.0; -wallt = 4.0; +wallt = 2.5; wallh = 42; -baseholesz = 4; // fixme check -baseholeslot = 4; - -topl = 20; +baseholesz = 3.7; +baseholeslot = 6.5; +baseholeslop = -0.5; holeslop = 0.5; -webt = 3; +webt = 2.5; + +pad = false; +padw = 12; -padt = 3; -padw = 20; +padt = webt; padl = padw; -padholesz = 5.0; +padholesz = 3.0; wallholeh = 6+14+2; -wallholesz = 3.0; // fixme check +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) { +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, - h=thick+0.10); + translate([0,y,-0.15]) + cylinder(r1=sz/2 + slop, + r2=sz/2 + (csunk ? thick : 0) + slop, + h=thick+0.30); } } } @@ -47,10 +48,11 @@ module Bracket(){ cube([basel, basew, baset]); translate([basel/2, -(basew+wallt)/2, 0]) - slothole(baseholesz, baseholeslot, baset); + slothole(baseholesz, baseholeslot, baset, slop=baseholeslop); } difference(){ + translate([0.1, 0.3, 0.1]) rotate([90,0,0]) { linear_extrude(height=wallt){ polygon([[0,0], @@ -64,7 +66,7 @@ module Bracket(){ translate([basel/2, 0, wallholeh]) rotate([90,90,0]) - slothole(wallholesz, wallholeslot, wallt); + slothole(wallholesz, wallholeslot, wallt, csunk=false); } translate([basel-0.01, 0, 0]) { @@ -79,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); + } } } } @@ -96,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]) { @@ -105,4 +189,7 @@ module Kit(){ ////toplevel } } -Kit(); +//Kit(); +//BracketR(); +//RearCableProtectorT(); +//ChannelBracketT();