2023-11-27 13:54:23 -05:00
|
|
|
|
|
|
|
|
include <BOSL/constants.scad>
|
|
|
|
|
use <BOSL/transforms.scad>
|
|
|
|
|
use <BOSL/joiners.scad>
|
2023-12-02 14:24:14 -05:00
|
|
|
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;
|
2023-12-02 14:24:14 -05:00
|
|
|
YokeHeight = 12.14;
|
|
|
|
|
YokeLen=28.00;
|
2023-11-27 13:54:23 -05:00
|
|
|
|
|
|
|
|
/* [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]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-02 14:24:14 -05:00
|
|
|
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)
|
2023-12-05 16:04:47 -05:00
|
|
|
half_joiner_clear(h=conWidth, w=conThick,orient=ORIENT_X_90);
|
2023-12-02 14:24:14 -05:00
|
|
|
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;
|
2023-12-02 14:24:14 -05:00
|
|
|
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
|
|
|
}
|
2023-12-02 14:24:14 -05:00
|
|
|
cylinder(d=inner,h=bl+2*conThick+2,center=true);
|
|
|
|
|
// Wire Channels
|
2023-12-05 16:04:47 -05:00
|
|
|
yspread(n=2, l=5+sd/2
|
2023-12-02 14:24:14 -05:00
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-02 14:24:14 -05:00
|
|
|
legx = (YokeLen + LegDiameter)/2;
|
|
|
|
|
right(legx) bobbin(sn=2, sd=26, 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();
|