X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=inline;f=filamentspool.scad;h=89f3cfb3a0ac97e069efddde6a57a01fd7fb87d7;hb=9b824b304dfc50b89172ec9dbf53b0076e526097;hp=937310b39511daf31b1f22fc722d27463eb3e055;hpb=8a067f59d4f8f318ebb1b94cb6fda67a663bdde3;p=reprap-play.git diff --git a/filamentspool.scad b/filamentspool.scad index 937310b..89f3cfb 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; @@ -57,6 +57,12 @@ towercliph = 16; towerclipcount = 3; towerpillarw = 5; +axlepinrad = 2; +axlepintabrad = 5; + +washerthick = 1.2; +washerrad = hubaxlerad + 7.5; + ratchetpawl=ratchetstep-ratchettooth-bigslop*2; include @@ -235,9 +241,23 @@ 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 Axle(){ ////toplevel pillarswidth = DoveClipPairSane_width(towerclipcount); +if(0) translate([-axlehorizoffset, -axlevertheight, 0]) { rotate([0,0,-90]) DoveClipPairSane(h=towercliph, count=towerclipcount, baseextend=3); @@ -247,6 +267,45 @@ module Axle(){ ////toplevel pillarswidth, towercliph, pillarw=towerpillarw); } + + axleclearlen = hubaxlelen + slop*3 + washerthick*2; + 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, 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); + } } //ArmEnd(); @@ -254,4 +313,6 @@ module Axle(){ ////toplevel //CupSecuringClip(); //Hub(); //ArmExtender(); -Axle(); +//Axle(); +//AxleWasher(); +//AxlePin();