include use use /* [Options] */ LegLength=30.40; LegDiameter=16; BoltDiameter=7.06; CoreGap=0; NumberCoils=10; /* [Render Options] */ render_fs=.1; render_fn=0; render_fa=.1; // Set Render Options $fs= ($preview) ? $fs : render_fs; $fn= ($preview) ? $fn : render_fn; $fa= ($preview) ? $fa : render_fa; // Bobbin Bobbin_Length=LegLength+CoreGap/2; module core_leg(d=LegDiameter, l=LegLength, bd=BoltDiameter) { difference() { cylinder(d=d, h=l); down(1) left(d/2) cylinder(d=bd, h=l+2); } } module core_uy1658(ld=16, ll=29, bz=12.14, w=60) { echo("Leg Len:", ll-bz); xflip_copy() { left(w/2) core_leg(d=ld, l=ll); fwd(ld/2) cube([w/2,16,bz]); } } module bobbin(ld=LegDiameter, ll=LegLength, lb=12.14, tg=CoreGap, lc=.15, t=.4, sn=NumberCoils+1, st=.6, sd=50) { bl=2*(ll-lb) + tg; inner=ld+2*lc; outer=inner+2; conNeck = 5; conHead = 5; conThick = 12; conWidth = 15; pinLen = 2* conThick + bl; difference() { union() { cylinder(d=outer,h=bl, center=true); zspread(n=sn,l=bl-st) { cylinder(d=sd,h=st,center=true); left(sd/4)cube([sd/2,sd,st], center=true); } // connector left(inner/2+(conNeck+conHead)/2) zflip_copy() down(conThick/2) up((pinLen)/2) { xflip() half_joiner(h=conWidth, w=conThick,l=conThick/2,orient=ORIENT_X_90); } } cylinder(d=inner,h=bl+2*conThick+2,center=true); // Wire Channels yspread(n=2, l=5+sd/2 ) left(sd/2) cylinder(d=2,h=bl+2,center=true); } left(2*lc+inner/2) intersection() { cylinder(d=6,h=pinLen, center=true); right(2*lc+inner/2) cylinder(d=inner, h=pinLen+2, center=true); } echo("Coil_ID = ", outer); echo("Coil_len = ", bl-sn*st); } rotate([0,0,0]) { left(20)bobbin(sn=2, sd=26); right(20) bobbin(); } //core_uy1658();