X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=filamentspool.scad;h=e26fbe41afb000c0da53b9b35b877b2b83249b78;hb=1af29ee2b1e725a0863f042485ee9d7badcfacaf;hp=b88a8b0c1d17f2636206c9ff950e0ea817124cc8;hpb=c198e158b12b7dc9b6c3a201f1f8ece8e39894d1;p=reprap-play.git diff --git a/filamentspool.scad b/filamentspool.scad index b88a8b0..e26fbe4 100644 --- a/filamentspool.scad +++ b/filamentspool.scad @@ -26,9 +26,8 @@ ratchettoothheight=5; ratchettoothsmoothr=1; ratchettoothslope=0.75; overlap=0.5; -cupbigrad=20; - -xstraightmul = 1.75; +cupwidth=40; +cupheight=55; propxshift = 0; @@ -44,6 +43,7 @@ overclipcupgap=5; overclipdepth=15; overcliproundr=2.0; overclipthick=0.5; +overclipcupnextgap=20; overclipsmaller=-2.5; overclipbigger=0.0; @@ -65,6 +65,8 @@ axlepinrad = 2; axlepintabrad = 5; washerthick = 1.2; +washerthinthick = 0.8; +washerverythinthick = 0.4; washerrad = hubaxlerad + 7.5; frictionwasherarmwidth = 3; frictionwasherextrapush = 1.0; @@ -74,6 +76,7 @@ ratchetpawl=ratchetstep-ratchettooth-bigslop*2; include include include +include channelwidth = prongthick + slop; channeldepth = prongwidth + ratchettoothheight; @@ -131,43 +134,40 @@ module FilamentCupHandle(){ } module FilamentCupCup(){ - xstraight = cupbigrad * xstraightmul; - linear_extrude(height=prongthick) { - FlatArc(0,0, cupbigrad,cupbigrad+prongwidth, 89,271, $fn=80); - } for (my=[0,1]) mirror([0,my,0]) { - translate([0,cupbigrad,0]) - cube([xstraight, prongwidth, prongthick]); + translate([0,cupwidth/2,0]) + cube([cupheight + prongwidth, prongwidth, prongthick]); } } module FilamentCup() { ////toplevel FilamentCupHandle(); - dx = cupbigrad + prongwidth; gapy = prongwidth; - dy = cupbigrad + gapy + overclipcupgap; + dy = cupwidth/2 + gapy + overclipcupgap; - translate([dx, dy, 0]) + translate([0, dy, 0]) FilamentCupCup(); translate([0, -1, 0]); - cube([prongwidth, dy+1, prongthick]); + cube([prongwidth, dy+1+cupwidth/2, prongthick]); - midrad = cupbigrad + prongwidth/2; + midrad = cupwidth/2 + prongwidth/2; propshift = stalklength - overclipdepth - prongthick + propxshift; proptaken = propshift; - echo(cupbigrad, dx, midrad, propshift, proptaken); + echo(midrad, propshift, proptaken); translate([propshift, -1, 0]) { // something is wrong with the y calculation cube([prongwidth, - dy - sqrt(midrad*midrad - proptaken*proptaken) - prongwidth/2, + gapy+2, prongthick]); } - translate([0, overclipcupgap, 0]) - rotate([0,0, 102 + fdia]) - FilamentTeeth(fdia=fdia, h=teethh); + for (y = [overclipcupgap, overclipcupgap+overclipcupnextgap]) { + translate([0, y, 0]) + rotate([0,0, 102 + fdia]) + FilamentTeeth(fdia=fdia, h=teethh); + } } module CupSecuringClipSolid(w,d,h1,h2){ @@ -251,17 +251,8 @@ module ArmExtender(){ ////toplevel 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 FsAxlePin(){ ////toplevel + AxlePin(hubaxlerad, washerrad*2, axlepinrad, axlepintabrad, slop); } module Axle(){ ////toplevel @@ -316,11 +307,20 @@ module Axle(){ ////toplevel } } +module washer(thick){ + Washer(hubaxlerad, washerrad, thick, slop); +} + module AxleWasher(){ ////toplevel - difference(){ - cylinder(h=washerthick, r=washerrad); - translate([0,0,-1]) cylinder(h=washerthick+2, r=hubaxlerad+slop); - } + washer(thick=washerthick); +} + +module AxleThinWasher(){ ////toplevel + washer(thick=washerthinthick); +} + +module AxleVeryThinWasher(){ ////toplevel + washer(thick=washerverythinthick); } module AxleFrictionWasher(){ ////toplevel @@ -353,8 +353,17 @@ module TowerExtender(){ ////toplevel pillarw = towerpillarw); } +module FilamentCupPair(){ ////toplevel + FilamentCup(); + translate([cupheight + prongthick*3, + cupwidth/2*1.7, + 0]) + rotate([0,0,180]) FilamentCup(); +} + //ArmEnd(); //FilamentCup(); +FilamentCupPair(); //CupSecuringClip(); //Hub(); //ArmExtender();