64 lines
1.6 KiB
OpenSCAD
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();
|