X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=filamentspool.scad;h=2d20548fc1aab70ef7d4b613801f6cc64c0fb3c4;hb=6422743ddc08cb3e04eb78ea2b1bd54f9d117ed7;hp=500725a84492faa676bc8b6fd5bedc53ff462f3c;hpb=855145e3ca1064562f1f9acfaa169c9b22fdce23;p=reprap-play.git diff --git a/filamentspool.scad b/filamentspool.scad index 500725a..2d20548 100644 --- a/filamentspool.scad +++ b/filamentspool.scad @@ -40,9 +40,9 @@ // Hub // ArmEnd x 4 // FilamentCup x 4 (or FilamentCupPair x 2) -// CupSecuringClup x 4 +// CupSecuringClip x 4 // -// You will also need 4 x M4 machine screws and nuts +// You will also need 4 x M4 machine screws and nuts. // // - Light duty 3-armed spool suitable for up to around 30m // of Faberdashery 2.85mm PLA. @@ -54,7 +54,7 @@ // Hub // ArmEnd x 3 // FilamentCup x 3 (or FilamentCup + FilamentCupPair) -// CupSecuringClup x 3 +// CupSecuringClip x 3 // TowerDoveClipPin x 6 // // When assembling, insert one TowerDoveClipPin from each side, @@ -64,6 +64,11 @@ // (note that the light duty and heavy duty CupSecuringClips // are slightly different) // +// When mounting either spool on the TAZ-5 spool arm, put the `pointy' +// end of the hub towards the printer - ie, put put the spool on +// `backwards'. This ensures that the spool's arms will clear the +// printer framework. +// // For the above, I generally used the Cura `Standard' PLA profile. // // - Storage arm suitable for screwing to walls, bookshelves, @@ -671,6 +676,109 @@ module StorArmHoleTest(){ ////toplevel } +//----- filament guide spacer ----- + +guide_armdia = 15.0; +guide_armwidth = 10.2; +guide_armcorelen = 15.3; + +guidefilclip_outerdia = 22.8; + +guidespacer_armslop = 0.75; +guidespacer_armlenslop = 0.75; + +guidespacer_prongprotrude = 4; +guidespacer_thick = 1.6; + +// calculated + +guidespacer_armdia = guide_armdia + guidespacer_armslop; +guidespacer_armwidth = guide_armwidth + guidespacer_armslop; +guidespacer_len = guide_armcorelen + guidespacer_armlenslop; + +guidespacer_wingheight = (guidefilclip_outerdia - guidespacer_armdia)/2; + +module FilamentGuideArmTemplate(extra=0){ + intersection(){ + circle(r= (guidespacer_armdia/2) + extra); + square(center=true, [guidespacer_armwidth+extra*2, + guidespacer_armdia + extra*2 + 10]); + } +} + +module FilamentGuideSpacerInnerTemplate(){ + FilamentGuideArmTemplate(); + translate([0, -guidespacer_armdia/2]) + square(center=true, [guidespacer_armwidth - guidespacer_prongprotrude, + guidespacer_armdia]); +} + +module FilamentGuideSpacer(){ ////toplevel + difference(){ + union(){ + linear_extrude(height= guidespacer_len) + FilamentGuideArmTemplate(extra= guidespacer_thick); + for (angle=[26, 60]) { + for (m=[0,1]) { + mirror([m,0,0]) { + rotate([0,0,angle]) { + hull(){ + for (t=[[0, guidespacer_wingheight], + [guidespacer_len-1, -guidespacer_wingheight]]) + translate([0,0, t[0] + 0.5]) + cube([guidespacer_thick, guidespacer_armdia + t[1]*2, + 1], + center=true); + } + } + } + } + } + } + translate([0,0,-1]) + linear_extrude(height= guidespacer_len+5) + FilamentGuideSpacerInnerTemplate(); + } +} + + +//----- replacement filament guide arm for TAZ-5 ----- + +guidearm_armslop = 0.25; +guidearm_armlenslop = 0.25; + +guidearm_hookprotr = 4; +guidearm_hookprotrflat = 1; +guidearm_hookslope = 0.3; + +// calculated + +guidearm_armdia = guide_armdia - guidearm_armslop; +guidearm_armwidth = guide_armwidth - guidearm_armslop; +guidearm_armcorelen = guide_armcorelen + guidearm_armlenslop; + +module FilamentGuideArmTipPositive(){ + r = guidearm_armdia/2; + + translate([0,0,-1]) + cylinder(r=r, h= guidearm_armcorelen+2); + translate([0,0, guidearm_armcorelen]){ + hull(){ + for (ts=[-1,+1]) { + translate([ts * guidearm_hookprotr, 0,0]) + cylinder(r=r, h=guidearm_hookprotrflat); + } + translate([0,0, guidearm_hookprotr/guidearm_hookslope]) + cylinder(r=r, h=guidearm_hookprotrflat); + } + } +} + +module FilamentGuideArm(){ ///toplevel + FilamentGuideArmTipPositive(); +} + + module Demo(){ translate([-hubeffrad-30,50,0]) Hub(); ArmEnd(); @@ -689,4 +797,6 @@ module Demo(){ //AxleFrictionWasher(); //StorageArmLeft(); //StorArmHoleTest(); +//FilamentGuideSpacer(); +//FilamentGuideArm(); //Demo();