Files
whipsaw/bobbin.scad

107 lines
2.5 KiB
OpenSCAD
Raw Normal View History

2023-11-27 13:54:23 -05:00
include <BOSL/constants.scad>
use <BOSL/transforms.scad>
use <BOSL/joiners.scad>
use <./core_uy1658-60.scad>
use <./legs.scad>
2023-11-27 13:54:23 -05:00
/* [Options] */
LegLength=30.40;
LegDiameter=16;
BoltDiameter=7.06;
CoreGap=0;
NumberCoils=10;
YokeHeight = 12.14;
YokeLen=28.00;
2023-11-27 13:54:23 -05:00
/* [Render Options] */
2023-12-28 12:51:05 -05:00
render_fs=.4;
2023-11-27 13:54:23 -05:00
render_fn=0;
2023-12-28 12:51:05 -05:00
render_fa=.4;
2023-11-27 13:54:23 -05:00
// 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_joiners(ld=LegDiameter, ll=LegLength, lb=12.14, tg=CoreGap, lc=.15, t=.4, sn=NumberCoils+1, st=.6, sd=50, plug=true, clear=false) {
bl=2*(ll-lb) + tg;
conThick = 12;
conWidth = 15;
inner=ld+2*lc;
pinLen = 2* conThick + bl;
zflip_copy()
up((pinLen-conThick)/2) {
xflip() {
if (clear)
half_joiner_clear(h=conWidth, w=conThick,orient=ORIENT_X_90);
else if (plug)
half_joiner(h=conWidth, w=conThick,l=conThick/2,orient=ORIENT_X_90);
else
half_joiner2(h=conWidth, w=conThick,l=conThick/2,orient=ORIENT_X_90);
}
}
}
module bobbin(ld=LegDiameter, ll=LegLength, lb=12.14, tg=CoreGap, lc=.15, t=.4, sn=NumberCoils+1, st=.6, sd=50, orient=ORIENT_X, align=V_CENTER) {
2023-11-27 13:54:23 -05:00
bl=2*(ll-lb) + tg;
inner=ld+2*lc;
outer=inner+2;
conNeck = 5;
conHead = 5;
conThick = 12;
conWidth = 15;
pinLen = 2* conThick + bl;
orient_and_align([sd,sd,bl], orient, align, orig_orient=ORIENT_X) {
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+5) bobbin_joiners();
2023-11-27 13:54:23 -05:00
}
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);
2023-11-27 13:54:23 -05:00
}
}
echo("Coil_ID = ", outer);
echo("Coil_len = ", bl-sn*st);
}
legx = (YokeLen + LegDiameter)/2;
2023-12-28 12:51:05 -05:00
right(legx) bobbin(sn=2, sd=26.3, st=2, orient=ORIENT_XNEG);
left(legx) bobbin();
%core(gap=0);
//left(20+20) rotate([90,0,0]) snaps();
2023-11-27 13:54:23 -05:00
//core_uy1658();