X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=flyscreen-handle.scad;h=68b2a2f364aad2f711282aa661bd6eea41ec2ccd;hb=477b98fe70fb2689e4bdb378b4dede757e892461;hp=ecc5ff833ea6be0ec8e1ea11675598555685f6e5;hpb=0132c3dc3964d4b3cb547691a60e3f408b3f3717;p=reprap-play.git diff --git a/flyscreen-handle.scad b/flyscreen-handle.scad index ecc5ff8..68b2a2f 100644 --- a/flyscreen-handle.scad +++ b/flyscreen-handle.scad @@ -1,6 +1,6 @@ // -*- C -*- -opening_height = 7.84; +opening_height = 7.84 - 0.3; opening_depth = 7.88; openingcnr_dia = 2.75; opening_topprotr = 1.54; @@ -8,8 +8,9 @@ opening_topprotr = 1.54; gap = 0.25; retain_empir_angle = 20; -retain_empir_stalkw = 1.0; -retain_rad = 1.5; +retain_empir_stalkw = 0.8; +retain_rad = 1.65; +retain_empir_inward = 0.65; topprotr_rad = 0.35; @@ -23,6 +24,12 @@ handle_rcut = 3; cutout_gap = 1.5; +total_len = 35; +retaining_len = 10; +overret_gaplen = 5; + +overret_hch = 5; + // calculated ins_irad = openingcnr_dia/2 + gap; @@ -82,21 +89,31 @@ module HandleSection(){ module RetainSection(){ rotate(180-retain_empir_angle) - translate([0,ins_orad]) circle(r=retain_rad, $fn=20); + translate([0, ins_orad - retain_empir_inward]) + circle(r=retain_rad, $fn=20); } -module RetainCutout(){ +module RetainCutout(gapping=false){ rotate(180-retain_empir_angle) - translate([0,ins_orad]) { + translate([0, ins_orad - retain_empir_inward]) { difference(){ circle(r=retain_rad + cutout_gap, $fn=20); - rotate(180 + retain_empir_angle/2) - translate([0, -retain_empir_stalkw]) - square([100, retain_empir_stalkw*2]); + 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(); @@ -111,6 +128,25 @@ module BasicSection(){ HandleSection(); } +module Handle(){ + bs0 = retaining_len + overret_gaplen; + bs1 = bs0 + overret_hch; + linear_extrude(height=total_len, convexity=100) GappingSection(); + linear_extrude(height=retaining_len, convexity=100) WithRetainSection(); + translate([0,0, bs1]) linear_extrude(height= total_len - bs1) + BasicSection(); + translate([0,0, bs1+0.1]) mirror([0,0,1]) { + intersection_for (sl=[0,1]) { + multmatrix([[1,0,0,0], + [0,1,sl*0.65,0], + [0,0,1,0], + [0,0,0,1]]) + linear_extrude(height= overret_gaplen+1, convexity=100) + BasicSection(); + } + } +} + module Demo(){ difference(){ InsertSection(); @@ -126,5 +162,7 @@ module Test(){ //Demo(); //WithRetainSection(); -BasicSection(); +//BasicSection(); +//GappingSection(); //Test(); +Handle();