X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=light-bracket.scad;h=f64e81c7a8d1661ea0aff2bfa821b76ab11df5ad;hp=7c97461b64cb690e4201b94b914e2d2a20d98b7a;hb=26d53245e6556d95c2a893802c3e91bd38a45876;hpb=cb71228ec07b200c81bc9a6bca7e6e9b6f3ae634 diff --git a/light-bracket.scad b/light-bracket.scad index 7c97461..f64e81c 100644 --- a/light-bracket.scad +++ b/light-bracket.scad @@ -1,11 +1,20 @@ -remote_width=56.2; -remote_height=124.7; -remote_thick=6.8; +shrinkage = 1.0126; // width of 56.2 gives 55.5 +remote_width= 56.2 * shrinkage; +remote_height=124.7 * shrinkage; +remote_thick=7.3; // height of 6.8 gives 6.3 mainhole_thick=remote_thick+1; hook_hook_thick=1.5; hook_stem_thick=1.5; hook_hook_len=1.5; -base_thick=10; +base_thick=3.5; +base_margin=3.0; +base_width=remote_width-base_margin*2; +base_height=remote_height-base_margin*2; +base_edgewidth=4; + +screw_ys=[ 28, remote_height-28 ]; + +// origin is base of mainhole module mainhole() { translate([ -remote_width/2, 0, 0 ]) @@ -16,9 +25,12 @@ module mainhole() { module hhook(extent) { difference() { translate([ -hook_stem_thick, 0, -base_thick*2 ]) - cube(center=false, size=[ hook_stem_thick+15, extent, - base_thick*2 + mainhole_thick - + hook_hook_thick ]); + cube(center=false, + size=[ + hook_stem_thick+base_margin+base_edgewidth-1, + extent, + base_thick*2 + mainhole_thick + hook_hook_thick + ]); translate([hook_hook_len, -5, 0]) cube(center=false, size=[ 20, extent+10, 30 ]); } @@ -39,13 +51,67 @@ module hstuff() { 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); +} + +module bracket() { + // this is the actual thing we want + difference() { + stuff(); + mainhole(); + for (y=screw_ys) translate([0, y, 0]) + screwhole(5,9); //dia=4 gives 2.9 + //holedia=10 gives 9.0 want 7.0 + translate([0,0,-50 - base_thick]) + cube(center=true,[300,300,100]); // print bed + } } -difference() { - stuff(); - mainhole(); - translate([0,0,-50 - base_thick]) cube(center=true,[300,300,100]); +intersection() { + !bracket(); + cube(center=true, [100,55,100]); }