From ffdb1be0b2771deee73d986c2fff0e94abc850b8 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 15 Sep 2012 19:59:56 +0100 Subject: [PATCH 1/1] filamentspool wip --- filamentspool.scad | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/filamentspool.scad b/filamentspool.scad index eb4ee6d..a0ca9d9 100644 --- a/filamentspool.scad +++ b/filamentspool.scad @@ -3,24 +3,52 @@ slop=0.5; prongthick=5; prongwidth=5; -ratchetstep=10; +ratchetstep=15; ratchettooth=3; ratchettoothheight=5; +ratchettoothsmoothr=1; +ratchettoothslope=0.75; overlap=0.5; armendwallthick=2.5; armendbasethick=1.2; -module ArmEnd(length=100){ +include + +module ArmEnd(length=120){ channelwidth = prongthick + slop; channeldepth = prongwidth + ratchettoothheight; totalwidth = armendwallthick*2 + channelwidth; totalheight = channeldepth + armendbasethick; - difference(){ - translate([0, -armendwallthick, -armendbasethick]) - cube([ratchetstep+overlap, totalwidth, totalheight]); - translate([-1, 0, 0]) - cube([ratchetstep+overlap+2, channelwidth, channeldepth+1]); + + basecube = 5; + + translate([0, 3, -armendbasethick]) { + translate([-basecube+0.5, -7.5, 0]) + cube([basecube, 15, totalheight]); + + translate([-basecube+2,0,0]) + rotate([0,0,-90]) + DoveClipPair(h=totalheight); + } + + for (dx = [0 : ratchetstep : length]) translate([dx,0,0]) { + difference(){ + translate([0, -armendwallthick, -armendbasethick]) + cube([ratchetstep+overlap, totalwidth, totalheight]); + translate([-1, 0, 0]) + cube([ratchetstep+overlap+2, channelwidth, channeldepth+1]); + } + translate([ratchettoothsmoothr+0.5, armendwallthick/2, 0]) minkowski(){ + rotate([90,0,0]) + cylinder($fn=20, r=ratchettoothsmoothr, h=armendwallthick); + multmatrix([ [ 1, 0, ratchettoothslope, 0 ], + [ 0, 1, 0, 0 ], + [ 0, 0, 1, 0 ], + [ 0, 0, 0, 1 ]]) + cube([ratchettooth - ratchettoothsmoothr*2, + channelwidth, ratchettoothheight]); + } } } -- 2.30.2