Files
whipsaw/core_uy1658-60.scad

64 lines
1.6 KiB
OpenSCAD

include <BOSL/constants.scad>
use <BOSL/transforms.scad>
/* [Options] */
LegLength=30.40;
LegDiameter=16;
BoltDiameter=5;
CoreGap=0.0;
NumberCoils=10;
YokeHeight=12.14;
YokeLen=28.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;
// Area Info
leg_a1 = PI * (LegDiameter/20)^2;
leg_a2 = PI * (BoltDiameter/20)^2/2;
yoke_a = LegDiameter * YokeHeight;
path_l1 = 2*LegLength - YokeHeight;
path_l2 = YokeLen + LegDiameter;
echo("Leg Len:", 2*LegLength, "mm");
echo("Bobbin_Max:", 2*LegLength-2*YokeHeight, "mm");
echo("Leg Cross Section Area: ", leg_a1-leg_a2, "cm^2");
echo("Yoke A: ", yoke_a);
echo("Magnetic Path: ", 2*(path_l1+path_l2), "mm");
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=LegDiameter, ll=LegLength, yoke_z=YokeHeight, yokelen=YokeLen, orient=ORIENT_X, align=V_CENTER) {
legx = yokelen + ld;
orient_and_align([legx+2*ld,ld,LegLength],orient,align,orig_orient=ORIENT_X) xflip_copy() down(ll/2) {
left(legx/2) core_leg(d=ld, l=ll);
fwd(ld/2) cube([legx/2,ld,yoke_z]);
}
}
// Full Core, both halfs.
module core(gap=CoreGap, orient=ORIENT_X, align=V_CENTER) {
orient_and_align([YokeLen+2*LegDiameter,LegDiameter,2*LegLength],
orient=orient,align=align,orig_orient=ORIENT_X) xflip_copy() {
up(gap/2) core_uy1658(align=V_TOP, orient=ORIENT_X_180);
down(gap/2) core_uy1658(align=V_BOTTOM);
}
}
core();