X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=flyscreen-wall-spacer.scad;h=4abe1ef48b97798b6ad8adf7b1c41d120ffe4114;hb=refs%2Fheads%2Fmaster;hp=6dbf6f0f52b8c037bd8563a643cc0c4a6170ae2f;hpb=633e4197b00b96be84c28512c6501e45c32aecfb;p=reprap-play.git diff --git a/flyscreen-wall-spacer.scad b/flyscreen-wall-spacer.scad index 6dbf6f0..4abe1ef 100644 --- a/flyscreen-wall-spacer.scad +++ b/flyscreen-wall-spacer.scad @@ -11,21 +11,52 @@ screw_dia = 5; bucket_wall = 2.5; bucket_floor = 2.5; whole_dia = plug_dia + bucket_wall *2; -spacing = 14; + +min_spacing = 8; +max_spacing = 19; + +general_spacer_height = 10; + +// calculated + +module Oval(r, dc) { + hull(){ + circle(r); + translate([0, dc]) + circle(r); + } +} module MainCircle() { difference(){ circle(r = whole_dia/2); - rectfromto([-100, spacing/2], - [+100, +100]); circle(r = screw_dia/2); } } -module Spacer(inboard_to_wall) { +module MultiSpacer() { + difference(){ + linextr(0, $inboard_to_wall - bracket_th){ + Oval(whole_dia/2, max_spacing); + } + + linextr(bucket_floor, 100) { + Oval(plug_dia/2, max_spacing); + } + + linextr(-1, 100) { + circle(screw_dia/2); + + translate([0, min_spacing]) + Oval(screw_dia/2, max_spacing - min_spacing); + } + } +} + +module AnySpacer(max_z) { linextr(0, bucket_wall) MainCircle(); - linextr(0, inboard_to_wall - bracket_th){ + linextr(0, max_z){ difference(){ MainCircle(); circle(r = plug_dia/2); @@ -33,10 +64,37 @@ module Spacer(inboard_to_wall) { } } -module Spacers() { - Spacer(left_inboard_to_wall); - translate([0, 40]) - Spacer(right_inboard_to_wall); +module Spacer($inboard_to_wall) { + AnySpacer($inboard_to_wall - bracket_th); +} + +module Spacers1() { + for (dy = [0, 30]) { + translate([0,dy,0]) { + Spacer($inboard_to_wall = left_inboard_to_wall); + translate([0, 70, 0]) + Spacer($inboard_to_wall = right_inboard_to_wall); + } + } + + translate([40, 0, 0]) + MultiSpacer($inboard_to_wall = left_inboard_to_wall); + translate([40, 70, 0]) + MultiSpacer($inboard_to_wall = right_inboard_to_wall); +} + +module Spacers2() { + for (dy = 30 * [0]) { + echo(dy); + translate([0, dy, 0]) + AnySpacer(general_spacer_height); + } +} + +module Spacers3() { + AnySpacer(6.08); + translate([0, 30, 0]) + AnySpacer(8.18); } -Spacers(); +Spacers3();