rwt = .9; mini = [12, 20, 50]; norm12 = [12, 50, 170]; norm8 = [ 8, 50, 170]; //reel = mini; reel = norm12; rw = reel[0]; // reel width cd = reel[1]; // core diameter rdia = reel[2]; // complete reel diam. rrw = rw+2*rwt; // total reel width. wt=2.3; wt2=.9; $fn=90; eps = .2; module conn () { difference () { union () { cylinder (d=cd, h= rrw); cylinder (d=cd+4, h=2.01); translate ([0,0,rrw-2]) cylinder (d1=cd, d2=cd+1, h= 1); translate ([0,0,rrw-1]) cylinder (d1=cd+1, d2=cd, h= 1); } translate ([0,0,-1]) cylinder (d=cd-2*wt, h= rrw+2); } } module slice (a) { en = 100; intersection () { children (); rotate_extrude (angle=a, $fn=20) translate ([0,-en,0]) square ([en, 2*en]); } } module reel_half () { difference () { union () { cylinder ( d=rdia, h=rwt); cylinder ( d=cd+4, h=1.99); cylinder ( d=cd+4, h=rrw/2-eps/2); } //translate ([0,0,-1])cylinder (d=cd+2*eps,h=rwt+2); translate ([0,0,-.01]) cylinder (d1=cd+2*eps, d2=cd+1+2*eps, h= 1.02); translate ([0,0,1]) cylinder (d1=cd+1+2*eps, d2=cd+2*eps, h= 1.01); translate ([0,0,2]) cylinder (d1=cd+2*eps, d2=cd+1+2*eps, h= 1.02); translate ([0,0,3]) cylinder (d=cd+4-2*wt2, h= rw); for (i=[0:60:299]) rotate (i) slice (45) difference () { translate ([0,0,-1]) cylinder (d=rdia-2*15, h=rwt+2, $fn=30); translate ([0,0,-2]) cylinder (d=cd+2*15, h=rwt+4,$fn=30); } } for (a=[0:60:359]) rotate (a) slice (28) conn (); } reel_half (); //slice (20) conn2 ();