X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=poster-tube-lid.scad;h=6ae96f99b41e65e434dae5256deaad617645cc99;hb=3de1b50170ea835296c074fde1aa0864d14cac83;hp=bdad0c229d783ceb17881dccfe090eec6c61bb8f;hpb=a4309f492e2cecb6ebcdfcb04cd8d70d2dcf9440;p=reprap-play.git diff --git a/poster-tube-lid.scad b/poster-tube-lid.scad index bdad0c2..6ae96f9 100644 --- a/poster-tube-lid.scad +++ b/poster-tube-lid.scad @@ -458,6 +458,26 @@ module ImplHeadCupTest(){ ////toplevel ImplHeadCup(); } +module SomeStrap(){ + // children(0) is to add, (1) subtract + difference(){ + union(){ + cylinder(r=sm_outer_rad, h=sm_main_width); + StrapMountProtrusion(smc_cnr_c_x + sm_closure_cnr, + smc_max_y, + sm_closure_cnr); + children(0); + } + translate([0,0,-1]) + cylinder(r=sm_inner_rad, h=sm_main_width+2); + translate(smc_pos) + StrapMountBolt(10); + translate(smc_pos) + cube([ sm_bolt_tighten_allow, 40,100 ], center=true); + children(1); + } +} + module StrapMountBolt(l_delta){ ///toplevel // positioned relative to smc_pos translate([(smc_bolt_nut_eff_thick - sm_bolt_head_thick)/2, @@ -492,28 +512,17 @@ module StrapMountProtrusion(half_x, max_y, cnr){ } module StrapMount(){ ////toplevel - difference(){ - union(){ - cylinder(r=sm_outer_rad, h=sm_main_width); - StrapMountProtrusion(smc_cnr_c_x + sm_closure_cnr, - smc_max_y, + SomeStrap(){ + rotate([0,0,180]){ + StrapMountProtrusion(strap_hoop_inside/2 + strap_hoop_thick, + strap_hoop_thick, sm_closure_cnr); - rotate([0,0,180]){ - StrapMountProtrusion(strap_hoop_inside/2 + strap_hoop_thick, - strap_hoop_thick, - sm_closure_cnr); - translate(smc_pos + - [0,0, sm_main_width] + - strap_hoop_thick * [ 0, 0.5, -1.0 ]) - StrapHoop(); - } + translate(smc_pos + + [0,0, sm_main_width] + + strap_hoop_thick * [ 0, 0.5, -1.0 ]) + StrapHoop(); } - translate([0,0,-1]) - cylinder(r=sm_inner_rad, h=sm_main_width+2); - translate(smc_pos) - StrapMountBolt(10); - translate(smc_pos) - cube([ sm_bolt_tighten_allow, 40,100 ], center=true); + union(){ }; } } @@ -571,11 +580,32 @@ module CatchPreDistort(){ /////toplevel } module CatchAssembly(){ /////toplevel - scale(sm_inner_rad / 100) + rotate([0,0, -0.5 * (cpp1[0] + cpp2[0]) / sm_inner_rad * 360/TAU]) + translate([0,0, catch_strap_width]) + scale(sm_inner_rad / 100) import(str("poster-tube-lid,CatchPostDistort-fa", (coarse ? 20 : 1), ".stl"), convexity=20); + + SomeStrap(){ + union(){ } + union(){ + translate([-200, -200, -200]) + cube([400, 200, 400]); + } + } +} + +module CatchDemo(){ /////toplevel + translate([0,0, + -catch_strap_width + -cpp0[1] + ]) + CatchAssembly(); + translate([0,0,+side_height + ]) + %Cover(); } //ProfilesDemo();