X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=light-bracket.scad;h=f97611fc8885135d6a60eb548c106fddf0a1054f;hb=4a69b3f0d287ac00527d4acb8862bac53c886e3e;hp=c5715f605e05147107e517a4ea2b9653d4e363f3;hpb=55e5735470f8bf73740c1c26e7d3a0178a8ff72c;p=reprap-play.git diff --git a/light-bracket.scad b/light-bracket.scad index c5715f6..f97611f 100644 --- a/light-bracket.scad +++ b/light-bracket.scad @@ -9,6 +9,7 @@ base_thick=6; base_margin=4.0; base_width=remote_width-base_margin*2; base_height=remote_height-base_margin*2; +base_edgewidth=4; // origin is base of mainhole @@ -21,9 +22,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 ]); } @@ -44,15 +48,43 @@ module hstuff() { translate([-10,0,0]) hhookbot(15); } +module slashes() { + for (y=[-35 : 35 : +40]) + translate([0,y,0]) + rotate(v=[0,0,1],a=45) + cube(center=true, [ 5,200,200 ]); +} + module base() { - translate([-base_width/2, base_margin, -base_thick*2]) - cube(center=false, [base_width,base_height,base_thick+10]); + 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]); } +screw_ys=[ 20, remote_height-30 ]; + module stuff() { hstuff(); mirror([1,0,0]) hstuff(); base(); + for (y=screw_ys) translate([0, y, -20]) + cylinder(r=7.5, h=21); } module screwhole(holedia, csdia) { @@ -63,11 +95,19 @@ module screwhole(holedia, csdia) { cylinder(h=100, r=csdia/2); } -difference() { - stuff(); - mainhole(); - translate([0, 20, -base_thick+2]) screwhole(4,10); - translate([0, remote_height-30, -base_thick+2]) screwhole(4,10); - translate([0,0,-50 - base_thick]) - cube(center=true,[300,300,100]); // print bed +module bracket() { + // this is the actual thing we want + difference() { + stuff(); + mainhole(); + for (y=screw_ys) translate([0, y, -base_thick+2]) + screwhole(4,10); + translate([0,0,-50 - base_thick]) + cube(center=true,[300,300,100]); // print bed + } +} + +intersection() { + bracket(); + cube(center=true, [100,55,100]); }