X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=flyscreen-handle.scad;h=f18a83fd1b7ede0836e70cbf0f5be1766cc63ce6;hp=144d0d44dd3cf2b3cf5595b9bdf27b58977fc1a9;hb=62702e323fdd511901a9f37b367e4647f7c3f76e;hpb=b1de7ec964921a5b643a55e9bcff515424b58614 diff --git a/flyscreen-handle.scad b/flyscreen-handle.scad index 144d0d4..f18a83f 100644 --- a/flyscreen-handle.scad +++ b/flyscreen-handle.scad @@ -3,7 +3,7 @@ opening_height = 7.84; opening_depth = 7.88; openingedge_dia = 2.00; -opening_protrh = 1.8; +opening_protrh = 2.00; pivot_x = 6; inside_len = 4; @@ -11,9 +11,11 @@ inside_len = 4; pivoting_gap = 0.1; outside_gap = 3; -outside_len = 16; +outside_len = 13; outend_height = 3; +outside_len_bot = 23; + outside_pushh = 4; outside_pushslope = 1.4; outside_push_inadj = 0.82; @@ -33,8 +35,12 @@ pivot_slop = 0.25; strap_above = 0.1; strap_th = 2.5; strap_below = 3; +strap_width = 5; + +width = 35; +nstraps = 2; -width = 5; +test_width = 5; // calculated @@ -62,6 +68,10 @@ P9t = P8t + [ 0, -(strap_above + strap_th + strap_below - ourcirc_r*2) ]; P9b = [ P9t[0], -P9t[1] + outside_gap ]; P8b = P9b + [ 0, outend_height ]; +P89eadj = [ outside_len_bot - outside_len, 0 ]; +P8eb = P8b + P89eadj; +P9eb = P9b + P89eadj; + P6t = P5 + [ 0, outside_pushh - ourcirc_r*2 ]; P7 = [ P6t[0] + (P6t[1] - P1[1]) / outside_pushslope, P1[1] ]; @@ -73,6 +83,8 @@ outside_push_inadj_slope = (P3t[1]-P4[1]) / (P6a[1]-P5[1]); ribble_rad = ribble_dia/2; +kit_adj_shift = -opening_height - 2.0; + module ExtrusionSect(){ cr = openingedge_dia/2; toph = opening_height/2 + opening_protrh; @@ -126,8 +138,8 @@ module LeverSect(top, inadj=false){ } } -module StrapSect(){ - translate(P9t) { +module StrapSectTop(){ + translate(P9t + ourcirc_r * [+1,-1]) { difference(){ circle(r = strap_below + strap_th, $fn=40); circle(r = strap_below, $fn=40); @@ -135,16 +147,33 @@ module StrapSect(){ } } +module StrapSectBot(){ + mirror([0,1]){ + for (dx = [ -(strap_below + strap_th), + 0 ]) { + translate(P9b + [ ourcirc_r + dx, -10 ]) { + square([strap_th, 20]); + } + } + } +} + +module Ribbles(xmax, xmin, y){ + for (x = [ xmax + ourcirc_r - ribble_rad : + -ribble_rad * 4 : + xmin ]) { + translate([x, y]) + circle(r = ribble_rad, $fn=20); + } +} + module LeverSectTop(){ difference(){ union(){ LeverSect(true, false); - for (x = [ P8t[0] + ourcirc_r - ribble_rad : - -ribble_rad * 4 : - Q0[0] + edge_or + ribble_rad*2 ]) { - translate([x, P5[1] + ourcirc_r]) - circle(r = ribble_rad, $fn=20); - } + Ribbles(P8t[0], + Q0[0] + edge_or + ribble_rad*2, + P5[1] + ourcirc_r); } translate([pivot_x,0]) circle(r= pivot_r + pivot_slop, $fn=20); } @@ -155,6 +184,7 @@ module LeverSectBot(inadj=false){ mirror([0,1]) { LeverSect(false, inadj); PsHull([P5,P6,P7]); + PsHull([P8b,P8eb,P9eb,P9b]); translate([pivot_x,0]) circle(r=pivot_r, $fn=20); } } @@ -164,23 +194,62 @@ module Demo(){ LeverSectTop(); translate([0,0,5]) LeverSectBot(); color("black") LeverSectBot(true); - color("blue") translate([0,0,10]) StrapSect(); + color("blue") translate([0,0,10]) StrapSectTop(); + color("purple") translate([0,0,-10]) StrapSectBot(); } -module LeverTop(){ - linear_extrude(height=width, convexity=100) LeverSectTop(); +module SomeLever() { + // SomeLever(){ LeverBot(inadj); LeverSectBot(); } + difference(){ + linear_extrude(height=width, convexity=100) children(0); + for (i = [ 0 : nstraps - 1 ]) { + translate([0,0, (i + 0.5) / nstraps * width - strap_width/2]) + linear_extrude(height=strap_width, convexity=10) + children(1); + } + } } -module LeverBot(inadj=false){ - linear_extrude(height=width, convexity=100) LeverSectBot(inadj); +module Test(){ + linear_extrude(height=test_width, convexity=100) { + translate([0,2,0]) LeverSectTop(); + LeverSectBot(); + translate([0,kit_adj_shift]) LeverSectBot(true); + } } -module Test(){ +module LeverTop(){ ////toplevel + SomeLever(){ + LeverSectTop(); + StrapSectTop(); + } +} +module LeverBot(){ ////toplevel + SomeLever(){ + LeverSectBot(); + StrapSectBot(); + } +} +module LeverBotAdj(){ ////toplevel + SomeLever(){ + LeverSectBot(true); + StrapSectBot(true); + } +} + +module Kit(){ ////toplevel translate([0,2,0]) LeverTop(); LeverBot(); - translate([0,-opening_height - 2,0]) LeverBot(true); +} + +module KitAdj(){ ////toplevel + translate([0,2,0]) LeverTop(); + LeverBotAdj(); } //LeverSectBot(true); //Demo(); -Test(); +//LeverTop(); +//Test(); +//Kit(); +//KitAdj();