X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=filamentspool.scad;h=8dd6b791524cf605e0bf8d213109fdbfed132f0f;hb=51f330faca99347f2f91e2ce1f8fc8e02bfbb33c;hp=487d853b0645b524d5d6ca1f7dc8a0f8aa016b39;hpb=df4da45dbd990257651abc7ec5198400cda2b0bb;p=reprap-play.git diff --git a/filamentspool.scad b/filamentspool.scad index 487d853..8dd6b79 100644 --- a/filamentspool.scad +++ b/filamentspool.scad @@ -5,13 +5,18 @@ fdia=1.75; slop=0.5; bigslop=slop*2; -hubeffrad = 30; // + 55; +exteffrad = 70; +hubeffrad = 30; hubbigrad = 20; hublwidth = 3; hubstemwidth = 2; hublthick = 10; hubaxlelen = 25; hubaxlerad = 5; +totalheightfromtower = 240; +axletowerfudgebend = 0; +axleaxlefudgebend = 3; +axlepadlen = 1.0; prongthick=5; prongwidth=5; @@ -50,6 +55,18 @@ wingthick=3; armendwallthick=2.5; armendbasethick=1.2; +axlehorizoffset = 12.5; +axlevertheight = 100; +towercliph = 16; +towerclipcount = 3; +towerpillarw = 5; + +axlepinrad = 2; +axlepintabrad = 5; + +washerthick = 1.2; +washerrad = hubaxlerad + 7.5; + ratchetpawl=ratchetstep-ratchettooth-bigslop*2; include @@ -197,7 +214,7 @@ module Hub(){ ////toplevel translate([0,0,-1]) cylinder($fn=60, h=hubaxlelen+2, r=axlerad); } hole = hubeffrad - hubbigrad - DoveClip_depth() - hublwidth*2; - holewidth = DoveClip_width() - hubstemwidth*2; + holewidth = DoveClipPairSane_width() - hubstemwidth*2; for (ang=[0,120,240]) rotate([0,0,ang]) { difference() { @@ -222,7 +239,95 @@ module Hub(){ ////toplevel } } +module ArmExtender(){ ////toplevel + DoveClipExtender(length=exteffrad-hubeffrad, + ha=doveclipheight, + hb=doveclipheight); +} + +module AxlePin(){ ////toplevel + pinr = axlepinrad - slop; + intersection(){ + translate([0, 0, pinr*0.7]) { + translate([0, -washerrad, 0]) rotate([-90,0,0]) + cylinder(r=pinr, h=washerrad*2, $fn=10); + translate([-axlepintabrad, hubaxlerad, -axlepinrad]) + cube([axlepintabrad*2, axlepinrad*2, axlepinrad*2]); + } + translate([-50,-50,0]) cube([100,100,50]); + } +} + +module Axle(){ ////toplevel + pillarswidth = DoveClipPairSane_width(towerclipcount); + +if(0) + rotate([0,0, -( axleaxlefudgebend + atan(slop/hubaxlelen) ) ]) + translate([-axlehorizoffset, -axlevertheight, 0]) { + rotate([0,0,-axletowerfudgebend]) + 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*4 + washerthick*2 + axlepadlen; + axlerad = hubaxlerad-slop; + bump = axlerad * 0.2; + shift = axlerad-bump; + joinbelowallow = 3; + + intersection(){ + translate([0, 0, shift]) { + difference() { + union(){ + translate([-1, 0, 0]) + rotate([0,90,0]) + cylinder(r = axlerad, h = 1 + axleclearlen + 3 + 2); + 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]); + } + } + rotate([90,0,0]) + translate([axleclearlen + axlepinrad/2, 0, -25]) + cylinder(r = axlepinrad + slop, h=50); + } + } + 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); + } +} + +module TowerExtender(){ ////toplevel + l = totalheightfromtower - axlevertheight; + echo("TowerExtender",l); + DoveClipExtender(length = l, + ha = towercliph, hb = towercliph, + counta = towerclipcount, countb = towerclipcount, + pillarw = towerpillarw); +} + //ArmEnd(); //FilamentCup(); //CupSecuringClip(); //Hub(); +//ArmExtender(); +//Axle(); +//AxleWasher(); +//AxlePin();