X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=filamentspool.scad;h=212f61709d8a5621370d28375e05695582c5ed29;hb=8e0e7a7e91cf9817aeb004ae09cf3b459a46c500;hp=2d20548fc1aab70ef7d4b613801f6cc64c0fb3c4;hpb=6422743ddc08cb3e04eb78ea2b1bd54f9d117ed7;p=reprap-play.git diff --git a/filamentspool.scad b/filamentspool.scad index 2d20548..212f617 100644 --- a/filamentspool.scad +++ b/filamentspool.scad @@ -680,12 +680,13 @@ module StorArmHoleTest(){ ////toplevel guide_armdia = 15.0; guide_armwidth = 10.2; -guide_armcorelen = 15.3; +guide_armcorelen = 25.0; +guide_clipcirclethick = 10.0; guidefilclip_outerdia = 22.8; guidespacer_armslop = 0.75; -guidespacer_armlenslop = 0.75; +guidespacer_armlenslop = 1.05; guidespacer_prongprotrude = 4; guidespacer_thick = 1.6; @@ -694,7 +695,8 @@ guidespacer_thick = 1.6; guidespacer_armdia = guide_armdia + guidespacer_armslop; guidespacer_armwidth = guide_armwidth + guidespacer_armslop; -guidespacer_len = guide_armcorelen + guidespacer_armlenslop; +guidespacer_len = guide_armcorelen - guide_clipcirclethick + + guidespacer_armlenslop; guidespacer_wingheight = (guidefilclip_outerdia - guidespacer_armdia)/2; @@ -751,33 +753,93 @@ guidearm_hookprotr = 4; guidearm_hookprotrflat = 1; guidearm_hookslope = 0.3; +guidearm_totallen = 60; + +guidearm_screwplatesz = 12; +guidearm_screwplateth = 4; +guidearm_screwhole = 4 + 0.5; + +guidearm_bendlen = 50; +guidearm_bendslot = 5; + +guidearm_stopthick = 4; + // calculated guidearm_armdia = guide_armdia - guidearm_armslop; guidearm_armwidth = guide_armwidth - guidearm_armslop; guidearm_armcorelen = guide_armcorelen + guidearm_armlenslop; -module FilamentGuideArmTipPositive(){ +guidearm_base_z0 = -(guidearm_totallen - guidearm_armcorelen); + +guidearm_realbendlen = min(guidearm_bendlen, + guidearm_totallen - guidearm_screwplateth - 0.1); +guidearm_slopelen = guidearm_hookprotr/guidearm_hookslope; + +module FilamentGuideArmStop(h){ + for (ts=[-1,+1]) { + translate([ts * guidearm_hookprotr, 0,0]) + cylinder(r=guidearm_armdia/2, h, $fn=80); + } +} + +module FilamentGuideArmShaftPositive(){ r = guidearm_armdia/2; - translate([0,0,-1]) - cylinder(r=r, h= guidearm_armcorelen+2); + translate([0,0, guidearm_base_z0+1]) + cylinder(r=r, h= guidearm_totallen, $fn=80); translate([0,0, guidearm_armcorelen]){ hull(){ + FilamentGuideArmStop(guidearm_hookprotrflat); + translate([0,0, guidearm_slopelen]) + cylinder(r=r, h=guidearm_hookprotrflat, $fn=80); + } + } + mirror([0,0,1]) + FilamentGuideArmStop(guidearm_stopthick); +} + +module FilamentGuideArmBase(){ + translate([0,0, guidearm_base_z0]){ + difference(){ + translate([0,0, guidearm_screwplateth/2]) + cube(center=true, + [guidearm_armdia + guidearm_screwplatesz*2, + guidearm_armwidth, + guidearm_screwplateth]); for (ts=[-1,+1]) { - translate([ts * guidearm_hookprotr, 0,0]) - cylinder(r=r, h=guidearm_hookprotrflat); + translate([ts * (guidearm_armdia/2 + guidearm_screwplatesz/2), + 0, + -20]) + cylinder(r= guidearm_screwhole/2, h=40, $fn=20); } - translate([0,0, guidearm_hookprotr/guidearm_hookslope]) - cylinder(r=r, h=guidearm_hookprotrflat); } } } module FilamentGuideArm(){ ///toplevel - FilamentGuideArmTipPositive(); + intersection(){ + difference(){ + FilamentGuideArmShaftPositive(); + translate([-guidearm_bendslot/2, + -50, + -guidearm_realbendlen + guidearm_armcorelen]) + cube([guidearm_bendslot, + 100, + guidearm_realbendlen + 100]); + } + cube(center=true, + [guidearm_armdia*2, + guidearm_armwidth, + guidearm_totallen*3]); + } + FilamentGuideArmBase(); } +module FilamentGuideArmPrint(){ ////toplevel + rotate([90,0,0]) + FilamentGuideArm(); +} module Demo(){ translate([-hubeffrad-30,50,0]) Hub(); @@ -799,4 +861,5 @@ module Demo(){ //StorArmHoleTest(); //FilamentGuideSpacer(); //FilamentGuideArm(); +//FilamentGuideArmPrint(); //Demo();