X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=filamentspool.scad;h=fe85c8f6fd7cae4f037a6842c77948bae73782a4;hp=e7230b1544c882cabfd8b8404984b2326a7b123e;hb=7eedab3e04eae517f990017b5af5a3cd2afcf6dd;hpb=ad602f0e94f6799569844990ca76b63108e90f96 diff --git a/filamentspool.scad b/filamentspool.scad index e7230b1..fe85c8f 100644 --- a/filamentspool.scad +++ b/filamentspool.scad @@ -51,11 +51,21 @@ wingthick=3; armendwallthick=2.5; armendbasethick=1.2; +axlehorizoffset = 12.5; +axlevertheight = 80; +towercliph = 16; +towerclipcount = 3; +towerpillarw = 5; + +washerthick = 1.2; +washerrad = hubaxlerad + 7.5; + ratchetpawl=ratchetstep-ratchettooth-bigslop*2; include include include +include channelwidth = prongthick + slop; channeldepth = prongwidth + ratchettoothheight; @@ -225,12 +235,72 @@ module Hub(){ ////toplevel module ArmExtender(){ ////toplevel DoveClipExtender(length=exteffrad-hubeffrad, - pillarw=2, ha=doveclipheight, hb=doveclipheight); } +module AxleSplitPin(){ ////toplevel + SplitPin(); +} + +module Axle(){ ////toplevel + pillarswidth = DoveClipPairSane_width(towerclipcount); + +if(0) + translate([-axlehorizoffset, -axlevertheight, 0]) { + rotate([0,0,-90]) + DoveClipPairSane(h=towercliph, count=towerclipcount, baseextend=3); + translate([0, DoveClip_depth(), 0]) + rotate([0,0,90]) + ExtenderPillars(axlevertheight - DoveClip_depth(), + pillarswidth, towercliph, + pillarw=towerpillarw); + } + + axleclearlen = hubaxlelen + slop*2 + washerthick; + axlerad = hubaxlerad+slop; + bump = axlerad * 0.2; + shift = axlerad-bump; + joinbelowallow = 3; + + intersection(){ + difference() { + translate([0, 0, shift]) + union(){ + translate([-1, 0, 0]) + rotate([0,90,0]) + cylinder(r = axlerad, h = 1 + axleclearlen + 6); + mirror([1,0,0]) rotate([0,90,0]) + cylinder(r = washerrad, h = 3); +if(0) + intersection(){ + mirror([1,0,0]) rotate([0,90,0]) + cylinder(r = towercliph - shift, + h = pillarswidth/2 + axlehorizoffset); + translate([-50, -joinbelowallow, -50]) + cube([100, joinbelowallow+50, 100]); + } + } + translate([axleclearlen, 0, 0]) + mirror([0,0,1]) + rotate([0,0,90]) + SplitPinCavity(); + } + translate([-50,-50,0]) cube([100,100,100]); + } +} + +module AxleWasher(){ ////toplevel + difference(){ + cylinder(h=washerthick, r=washerrad); + translate([0,0,-1]) cylinder(h=washerthick+2, r=hubaxlerad+slop); + } +} + //ArmEnd(); //FilamentCup(); //CupSecuringClip(); //Hub(); +//ArmExtender(); +//Axle(); +//AxleWasher();