Files
whipsaw/bobbin.scad
Stephen J Carpenter 939d87e97d Remove Duplicate Code
bobbin.scad had code from core.
2026-03-18 13:50:56 -04:00

91 lines
2.2 KiB
OpenSCAD

include <BOSL/constants.scad>
use <BOSL/transforms.scad>
use <BOSL/joiners.scad>
use <./core_uy1658-60.scad>
use <./legs.scad>
/* [Options] */
LegLength=30.40;
LegDiameter=16;
CoreGap=0;
NumberCoils=10;
YokeHeight = 12.14;
YokeLen=28.00;
/* [Render Options] */
render_fs=.4;
render_fn=0;
render_fa=.4;
// 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 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) {
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();
}
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);
}
legx = (YokeLen + LegDiameter)/2;
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();
//core_uy1658();