X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=filamentspool.scad;h=a0381de00f2037b798b6fd4238507461a37701de;hb=8b5b84f1d0510020f9656e979c84f4c834536404;hp=2ffc0435571b128f948e54f865b38db1bda213f7;hpb=60ac66beaf78ab0131ae206af36c9f2c859ea3e9;p=reprap-play.git diff --git a/filamentspool.scad b/filamentspool.scad index 2ffc043..a0381de 100644 --- a/filamentspool.scad +++ b/filamentspool.scad @@ -5,7 +5,7 @@ fdia=1.75; slop=0.5; bigslop=slop*2; -exteffrad = 85; +exteffrad = 70; hubeffrad = 30; hubbigrad = 20; hublwidth = 3; @@ -13,6 +13,10 @@ hubstemwidth = 2; hublthick = 10; hubaxlelen = 25; hubaxlerad = 5; +totalheightfromtower = 240; +axletowerfudgebend = 0; +axleaxlefudgebend = 3; +axlepadlen = 1.0; prongthick=5; prongwidth=5; @@ -52,11 +56,14 @@ armendwallthick=2.5; armendbasethick=1.2; axlehorizoffset = 12.5; -axlevertheight = 80; +axlevertheight = 100; towercliph = 16; towerclipcount = 3; towerpillarw = 5; +axlepinrad = 2; +axlepintabrad = 5; + washerthick = 1.2; washerrad = hubaxlerad + 7.5; @@ -65,7 +72,6 @@ ratchetpawl=ratchetstep-ratchettooth-bigslop*2; include include include -include channelwidth = prongthick + slop; channeldepth = prongwidth + ratchettoothheight; @@ -239,14 +245,26 @@ module ArmExtender(){ ////toplevel hb=doveclipheight); } -module AxleSplitPin(){ ////toplevel - SplitPin(); +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]) @@ -256,33 +274,38 @@ module Axle(){ ////toplevel pillarw=towerpillarw); } - axleclearlen = hubaxlelen + slop*2 + washerthick; - axlerad = hubaxlerad+slop; + axleclearlen = hubaxlelen + slop*4 + washerthick*2 + axlepadlen; + 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); - intersection(){ + translate([0, 0, shift]) { + difference() { + union(){ + translate([-1, 0, 0]) + rotate([0,90,0]) + cylinder($fn=60, + r = axlerad, + h = 1 + axleclearlen + axlepinrad*2 + 2); 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]); + cylinder(r = axlerad*1.75, h = 3); + intersection(){ + mirror([1,0,0]) + translate([axlehorizoffset - pillarswidth/2, 0, 0]) + rotate([0,90,0]) + cylinder($fn=60, + r = towercliph - shift, + h = pillarswidth * 0.5); // fixme 0.5 is bogus + 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([axleclearlen, 0, 0]) - mirror([0,0,1]) - rotate([0,0,90]) - SplitPinCavity(); } translate([-50,-50,0]) cube([100,100,100]); } @@ -295,10 +318,20 @@ module AxleWasher(){ ////toplevel } } +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(); +//AxleWasher(); +//AxlePin();