First TestBed

Working prototype. Still needs full case, fan and current limiter.
This commit is contained in:
2023-12-02 14:24:14 -05:00
parent ad72818ad7
commit 846efa74da
5 changed files with 302 additions and 28 deletions

View File

@@ -2,6 +2,8 @@
include <BOSL/constants.scad>
use <BOSL/transforms.scad>
use <BOSL/joiners.scad>
use <./core_uy1658-60.scad>
use <./legs.scad>
/* [Options] */
@@ -10,6 +12,8 @@ LegDiameter=16;
BoltDiameter=7.06;
CoreGap=0;
NumberCoils=10;
YokeHeight = 12.14;
YokeLen=28.00;
/* [Render Options] */
render_fs=.1;
@@ -40,7 +44,26 @@ module core_uy1658(ld=16, ll=29, bz=12.14, w=60) {
}
}
module bobbin(ld=LegDiameter, ll=LegLength, lb=12.14, tg=CoreGap, lc=.15, t=.4, sn=NumberCoils+1, st=.6, sd=50) {
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,l=conThick/2,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;
@@ -50,37 +73,34 @@ module bobbin(ld=LegDiameter, ll=LegLength, lb=12.14, tg=CoreGap, lc=.15, t=.4,
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);
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();
}
// 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);
}
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();
}
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();
//core_uy1658();