X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=hole-repair-20191117.scad;h=0138c6741254a7e400bd6e1e57ba4b3666385d0e;hb=6dba99d4594590c1af949fbd0379d366a05c2ca6;hp=90b13697a87733edab47532a034e36ce3ed45baa;hpb=f70c7876829d5382f9fd81e332c8dfa00485c140;p=reprap-play.git diff --git a/hole-repair-20191117.scad b/hole-repair-20191117.scad index 90b1369..0138c67 100644 --- a/hole-repair-20191117.scad +++ b/hole-repair-20191117.scad @@ -1,28 +1,49 @@ // -*- C -*- post_dia = 23.0; +post_height = 20; th = 4; -nom_hole = 22; +nom_hole = 25; min_r = 15 + nom_hole/2; -maj_r = 22 + nom_hole/2; +maj_r = 15 + nom_hole/2; + +postwall_th = 2; + +$fa=1; +$fs=1; module Profile(r) { - prof_r = th/(1-cos(45)); - prof_R = r - prof_r * cos(45); - - intersection(){ - hull(){ - translate([0, th-prof_r]){ - translate([1,0]) - square(center=true, 2*[1,prof_r]); - translate([prof_R, 0]) - circle(prof_r, $fa=1,$fs=1); - } - } - square([r, th]); + polygon([ [0, 0], + [r, 0], + [r-th, th], + [0, th] ]); +} + +module Body(){ + hull(){ + for (x= [-1,+1] * (maj_r-min_r)) + translate([x,0,0]) + rotate_extrude() + Profile(min_r); } } -Profile(maj_r); +module Post(){ + difference(){ + translate([0,0,-1]) + cylinder(r= post_dia/2, h= post_height+1); + translate([0,0,-2]) + cylinder(r= post_dia/2 - postwall_th, h= post_height+3); + } +} + +module Cover(){ + rotate([0,180,0]) Body(); + Post(); +} + +//Body(); +//Post(); +Cover();