X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=flyscreen-handle.scad;h=bfdec5e04d1f2f6095e162e7d686053c9307cb21;hb=5fb32b6bb162a9cb83c40153693f653d9dd0ec36;hp=3a7e7f9719729479df5bc26d2dfdf5f6dc0d2fb2;hpb=efe66e97688a445eb96db3c0f3f4d805ab644113;p=reprap-play.git diff --git a/flyscreen-handle.scad b/flyscreen-handle.scad index 3a7e7f9..bfdec5e 100644 --- a/flyscreen-handle.scad +++ b/flyscreen-handle.scad @@ -1,12 +1,19 @@ // -*- C -*- -opening_height = 7.84; +opening_height = 7.84 - 0.3; opening_depth = 7.88; openingcnr_dia = 2.75; opening_topprotr = 1.54; gap = 0.25; +retain_empir_angle = 20; +retain_empir_stalkw = 0.8; +retain_rad = 1.65; +retain_empir_inward = 0.65; + +topprotr_rad = 0.35; + bot_overlap = 5; bot_w = 3; @@ -15,6 +22,8 @@ handle_w = 8; handle_rh = 2; handle_rcut = 3; +cutout_gap = 1.5; + // calculated ins_irad = openingcnr_dia/2 + gap; @@ -29,7 +38,12 @@ handle_y1 = handle_y0 + handle_h; handle_x1 = handle_x0 + bot_w + handle_w; module InsertSection(){ - translate([-ins_orad, 0]) square([ins_th, opening_topprotr]); + hull(){ + translate([-ins_orad, 0]) square([ins_th, 0.1]); + translate([-ins_irad - topprotr_rad, + opening_topprotr - topprotr_rad]) + circle(r=topprotr_rad, $fn=10); + } translate([0, -ins_orad]) square([ins_irad+1, ins_th]); intersection(){ translate([0.1,0.1]) mirror([1,1]) square([100,100]); @@ -59,7 +73,70 @@ module HandleSection(){ } } } + hull(){ + for (y= [handle_y1 - handle_rh/2, + handle_y1 - 3*handle_rh/2]) + translate([handle_x1 - handle_rh/2, y]) + circle(r = handle_rh/2, $fn=20); + } +} + +module RetainSection(){ + rotate(180-retain_empir_angle) + translate([0, ins_orad - retain_empir_inward]) + circle(r=retain_rad, $fn=20); +} + +module RetainCutout(gapping=false){ + rotate(180-retain_empir_angle) + translate([0, ins_orad - retain_empir_inward]) { + difference(){ + circle(r=retain_rad + cutout_gap, $fn=20); + if (!gapping) + rotate(180 + retain_empir_angle/2) + translate([0, -retain_empir_stalkw]) + square([100, retain_empir_stalkw*2]); + } + } +} + +module GappingSection(){ + difference(){ + InsertSection(); + RetainCutout(true); + } + HandleSection(); +} + +module WithRetainSection(){ + difference(){ + InsertSection(); + RetainCutout(); + } + HandleSection(); + RetainSection(); +} + +module BasicSection(){ + InsertSection(); + HandleSection(); +} + +module Demo(){ + difference(){ + InsertSection(); + RetainCutout(); + } + HandleSection(); + color("red") RetainSection(); +} + +module Test(){ + linear_extrude(height=2) WithRetainSection(); } -InsertSection(); -HandleSection(); +//Demo(); +WithRetainSection(); +//BasicSection(); +//GappingSection(); +//Test();