X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=pull-cord-keeper.scad;h=c8655c9842f942882addc05c8ce758eccbd62858;hp=4812465f1b99be691291c5f658d1b28deb4f511e;hb=9d8e9a751cc561fae994db260ac4925feec2260b;hpb=a8f373ebdb262d84e4820ec1b5ff43bba7d9cf48 diff --git a/pull-cord-keeper.scad b/pull-cord-keeper.scad index 4812465..c8655c9 100644 --- a/pull-cord-keeper.scad +++ b/pull-cord-keeper.scad @@ -11,6 +11,8 @@ blockwidth = hcentredist*2 + 6; height = 20; +roundedgedia = 7.5; + ziglen = hcentredist/2; feedxgap = 5; @@ -33,10 +35,20 @@ module Oval(centredist, rad) { } } +module VExtrude(){ + translate([0,0, -height/2]) + linear_extrude(height=20) + children(0); +} + +module OuterOval(){ + Oval(hcentredist, houterrad); +} + module Hoop(){ difference(){ hull(){ - Oval(hcentredist, houterrad); + OuterOval(); translate([0, (blockdepth + hoopthick)/2 + hinnerrad]) square([blockwidth, blockdepth + hoopthick], @@ -46,16 +58,36 @@ module Hoop(){ } } +module RoundEdges(){ + intersection(){ + VExtrude() + OuterOval(); + + for (xi=[-1,1]) { + hull(){ + for (yi=[-1,1]) { + translate([xi * (hcentredist/2 + hinnerrad), + houterrad, + yi * (height/2 - roundedgedia / 4 * sqrt(2))]) + rotate([90,0,0]) + cylinder(r=roundedgedia/2, h=houterrad*2, $fn=20); + } + } + } + } +} + module Positive(){ difference(){ - translate([0,0, -height/2]) - linear_extrude(height=20) + VExtrude() Hoop(); rotate([90,0,0]) translate([0,0,-50]) cylinder(r=screwholedia/2, h=100); } + + RoundEdges(); } module Ribs(){ @@ -126,6 +158,22 @@ module Demo(){ color("blue") B(); } +module APrint(){ ////toplevel + rotate([0,180,0]) + A(); +} + +module BPrint(){ ////toplevel + B(); +} + +module Kit(){ ////toplevel + translate([0, hinnerrad, 0]) + APrint(); + rotate([0,0,180]) + BPrint(); +} + //Ribs(); //Demo(); @@ -135,4 +183,7 @@ module Demo(){ //Hoop(); -Demo(); +//Demo(); +//BPrint(); + +//Kit();