From ff02bd28cc2bf27f2996a45f08afda4a5f4700e3 Mon Sep 17 00:00:00 2001 From: Stephen Carpenter Date: Thu, 28 Dec 2023 12:51:55 -0500 Subject: [PATCH] Added CW --- cw.scad | 163 ++++++++++++++++++++++++++++++++++++++++++++ terminal-2post.scad | 77 +++++++++++++++++++++ 2 files changed, 240 insertions(+) create mode 100644 cw.scad create mode 100644 terminal-2post.scad diff --git a/cw.scad b/cw.scad new file mode 100644 index 0000000..25d9c6e --- /dev/null +++ b/cw.scad @@ -0,0 +1,163 @@ + +include +use +use +use +use +use +use <./bobbin.scad> + +/* [Options] */ +Height = 90; +Gap = 47; + +/* [Design] */ + +N = 2; +Epk = 3769.91; +F = 21750; +Cnf = .33; +Vf = 6*3.5; +Io = .0001; + +/* [Mount Stands] */ + +Mount_Hole_D = 4.36; +Mount_X = 74.38; +Mount_Y = 89.24; + +BOX_WALL = 1.5; + +/* [Bolt Lengths] */ + +Bolt_Length = 16; +Bolt_Offset = 0; + +/* [Render Options] */ +render_fs=.3; +render_fn=0; +render_fa=.3; + +// Set Render Options +$fs= ($preview) ? $fs : render_fs; +$fn= ($preview) ? $fn : render_fn; +$fa= ($preview) ? $fa : render_fa; + +zclear=2; +bolthead=7; +module print_specs() { + C = Cnf * 10^-9; + ENL = 2*N*Epk - 2*N*Vf; + VSLOPE = (4*N^3 + 3*N^2 - N) / (2 * PI * F * C); + echo("Eout = ", ENL); + echo("VSLOPE = ", VSLOPE); + echo("VDrop = ", VSLOPE * Io); +} + +module terminal(bl=Bolt_Length, bz=Bolt_Offset-Bolt_Length, align=V_BOTTOM, orient=ORIENT_Z) { + orient_and_align([5,5,5.56], orig_align=V_BOTTOM, align=align, orient=orient) { + thread_insertM3(bl=bl, bz=bz); + } +} + +// +print_specs(); +module terminal_mount(bl=Bolt_Length, bz=Bolt_Offset, be=2) { + basez=8; + difference() { + union() { + hull() xspread(n=3, l=Gap+bolthead) { + cyl(l=.4+bl+be, d=16,align=V_TOP); + } + cuboid([(Gap+bolthead+18),18,1],align=V_TOP); + } + up(bl+7+be) rotate([45,0,0]) fillet_mask_x(l=50,r=16,align=V_CENTER); + xspread(n=2, l=Gap+bolthead) { + up(basez) cyl(l=bl, d=18,align=V_TOP); + terminal(bl=bl, align=V_TOP, orient=ORIENT_ZNEG, $die=true); + } + terminal(bl=bl, align=V_TOP, orient=ORIENT_ZNEG, $die=true); + up(basez)cuboid([18,18,bl],align=V_TOP); + } + xspread(n=3, l=Gap+bolthead) { + %terminal(bl=bl, align=V_TOP, orient=ORIENT_ZNEG); + } +} + +module terminal_mount_input(bl=Bolt_Length, bz=Bolt_Offset, be=2) { + basez=8; + difference() { + union() { + hull() xspread(n=2, l=(Gap+bolthead)/2) { + cyl(l=.4+bl+be, d=16,align=V_TOP); + } + cuboid([18+(Gap+bolthead)/2,18,1],align=V_TOP); + } + up(bl+7+be) rotate([45,0,0]) fillet_mask_x(l=50,r=16,align=V_CENTER); + xspread(n=2, l=(Gap+bolthead)/2) { + up(basez) cyl(l=bl, d=18,align=V_TOP); + terminal(bl=bl, align=V_TOP, orient=ORIENT_ZNEG, $die=true); + } + } + xspread(n=2, l=(Gap+bolthead)/2) { + %terminal(bl=bl, align=V_TOP, orient=ORIENT_ZNEG); + } +} + + +module cap_bottom() { + difference() { + union() { + hull() xspread(n=2,l=54) cyl(d=49,l=4, align=V_TOP); + fwd(30.4)cuboid([22+(Gap+bolthead)/2,22,4],align=V_TOP); + } + up(2)difference() { + hull() xspread(n=2,l=54) cyl(d=47,l=2, align=V_TOP); + xspread(n=2, l=54) + cyl(d=41,l=2,align=V_TOP); + } + up(4)xspread(n=2, l=54) cyl(d=35, l=4); + up(2)fwd(30.4)cuboid([18.2+(Gap+bolthead)/2,18.2,7],align=V_TOP); + } +} + +module cap_top() { + difference() { + hull() xspread(n=2,l=54) cyl(d=49,l=4, align=V_TOP); + difference() { + hull() xspread(n=2,l=54) cyl(d=47,l=2, align=V_TOP); + xspread(n=2, l=54) + cyl(d=41,l=2,align=V_TOP); + } + xspread(n=2, l=54) cyl(d=35, l=4); + up(2) cuboid([60,15,2],align=V_TOP); + } + up(2)terminal_mount(); +} + + +%up(Height)terminal_mount(); +up(7) fwd(30.4) { + terminal_mount_input(); + difference() { + back(0)cuboid([18+(Gap+bolthead)/2,18,7],align=V_BOTTOM); + back(1)cuboid([16+(Gap+bolthead)/2,16,7],align=V_BOTTOM); + } +} + +up(90)color("red") cap_top(); +down(2)color("red") cap_bottom(); + +difference() { + union() { + hull() xspread(n=2,l=54) cyl(d=45,l=Height, align=V_TOP); + } + up(6)rotate_extrude(angle=360) left(10) { + circle(r=7); + left(5)fwd(15)square(15); + } + down(1) fwd(5) hull() yspread(n=2, l=10) cyl(d=9,l=Height+2,align=V_TOP); + down(1)xspread(n=2, l=54) + cyl(d=42,l=Height+2,align=V_TOP); + fwd(19) cuboid([40,38,7],align=V_TOP); +} diff --git a/terminal-2post.scad b/terminal-2post.scad new file mode 100644 index 0000000..542deb7 --- /dev/null +++ b/terminal-2post.scad @@ -0,0 +1,77 @@ + +include +use +use +use +use +use <./bobbin.scad> + +/* [Options] */ + +PCB_Y = 100.80; +PCB_X = 100.30; +PCB_Z = 1.69; +PCB_CLR = 5; + +/* [Design] */ + +V_IN = 12; +Turns_Ratio = 85; + +/* [Mount Stands] */ + +Mount_Hole_D = 4.36; +Mount_X = 74.38; +Mount_Y = 89.24; + +BOX_WALL = 1.5; + +/* [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; + +zclear=2; +module print_specs() { + echo("ZVS Module: QS2015004"); + echo("Input Voltage: 12-48V"); + echo("Max Current: 20A"); + echo("24V no load current: 3A"); + echo("48V no load current: 6A"); + echo("Caps .33uFx6 = 1.90 uF"); + + vpk = PI * V_IN; + opk = vpk*Turns_Ratio; + oac = opk/sqrt(2); + echo("Vpk = ", vpk, " volts"); + echo( "OutPk = ", opk," volts"); + echo( "OutVpp = ", 2*opk," volts"); + echo("RMS = ", oac, " volts"); +} + +module terminal(bl=12, bz=-12, align=V_BOTTOM, orient=ORIENT_Z) { + orient_and_align([5,5,5.56], orig_align=V_BOTTOM, align=align, orient=orient) { + thread_insertM25(bl=bl, bz=bz); + } +} + +// +print_specs(); + +difference() { + hull() xspread(n=3, l=30) { + cyl(l=16, d=16,align=V_TOP); + } + xspread(n=2, l=30) { + up(6) cyl(l=12, d=18,align=V_TOP); + terminal(align=V_TOP, orient=ORIENT_ZNEG, $die=true); + } +} +xspread(n=2, l=30) { + %terminal(align=V_TOP, orient=ORIENT_ZNEG); +}