From b6b7ab084845af53765a57e24b5e96c284763c6f Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 15 Sep 2012 23:06:37 +0100 Subject: [PATCH] filamentspool CupSecuringClip --- filamentspool.scad | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/filamentspool.scad b/filamentspool.scad index 8dbf1bf..65592f5 100644 --- a/filamentspool.scad +++ b/filamentspool.scad @@ -16,7 +16,16 @@ prongstalkxwidth=3; stalklength=40; overclipcupgap=5; -overclipheight=15; +overclipdepth=15; +overcliproundr=2.0; +overclipthick=0.5; + +wingspoke=3; +wingsize=6; +wingthick=3; + +overclipsmaller=-1.0; +overclipbigger=2.0; armendwallthick=2.5; armendbasethick=1.2; @@ -105,7 +114,7 @@ module FilamentCup() { midrad = cupbigrad + prongwidth/2; - propshift = stalklength - overclipheight - prongthick; + propshift = stalklength - overclipdepth - prongthick; proptaken = propshift; echo(cupbigrad, dx, midrad, propshift, proptaken); @@ -115,5 +124,36 @@ module FilamentCup() { prongthick]); } +module CupSecuringClipSolid(w,d,h1,h2){ + rotate([0,-90,0]) translate([0,-h1/2,-w/2]) linear_extrude(height=w) { + polygon(points=[[0,0], [d,0], [d,h2], [0,h1]]); + } +} + +module CupSecuringClipSolidSmooth(xrad=0, xdepth=0){ + hbase = totalheight + prongstalkxwidth - overcliproundr*2; + minkowski(){ + CupSecuringClipSolid(w=totalwidth, + d=overclipdepth + xdepth, + h1=hbase - overclipsmaller, + h2=hbase + overclipbigger); + cylinder($fn=20, h=0.01, r=overcliproundr+xrad); + } +} + +module CupSecuringClip(){ + wingswidth = wingspoke*2 + overclipthick*2 + overcliproundr*2 + totalwidth; + difference(){ + union(){ + CupSecuringClipSolidSmooth(xrad=overclipthick, xdepth=0); + translate([-wingswidth/2, -wingsize/2, 0]) + cube([wingswidth, wingsize, wingthick]); + } + translate([0,0,-0.1]) + CupSecuringClipSolidSmooth(xrad=0, xdepth=5); + } +} + //ArmEnd(); -FilamentCup(); +//FilamentCup(); +CupSecuringClip(); -- 2.30.2