include use use use use use <./bobbin.scad> /* [Options] */ PCB_Y = 100.80; PCB_X = 100.30; PCB_Z = 1.69; PCB_CLR = 5; /* [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 = "); } // PCB Board up(5) %difference() { cuboid([PCB_X,PCB_X,PCB_Z], fillet=3, edges=EDGES_Z_ALL, align=V_TOP); left((Mount_Y-Mount_X)/2) yspread(l=Mount_Y) xspread(l=Mount_X) cyl(d=Mount_Hole_D, chamfer=0, h=2*PCB_CLR, align=V_CENTER); } // Box difference() { left(25/2) cuboid([PCB_X+30+2*BOX_WALL+.4,PCB_Y+2*BOX_WALL+.4,PCB_Z+PCB_CLR+BOX_WALL], fillet=3, edges=EDGES_Z_ALL, align=V_BOTTOM); pcb_mount_clearance(); mount_positions() thread_insertM25(bl=6, bz=-6, $die=true); rotate([00,0,0]) left(5+6+PCB_X/2) rotate([0,90,90]) bobbin_joiners(clear=true); thread_insertM25(bl=5, bz=-5, $die=false); } rotate([00,0,0]) left(5+6+PCB_X/2) rotate([0,90,90]) bobbin_joiners(plug=false); module mount_positions() { left((Mount_Y-Mount_X)/2) yspread(l=Mount_Y) xspread(l=Mount_X) children(); } module pcb_mount_clearance() { // clearance // pcb itself color("yellow") up(.01) cuboid([PCB_X+.4,PCB_Y+.4,PCB_Z+.01], fillet=3, edges=EDGES_Z_ALL, align=V_BOTTOM); down(PCB_Z-.01) difference() { union() { cuboid([PCB_X,PCB_Y,PCB_CLR+.02], fillet=3, edges=EDGES_Z_ALL, align=V_BOTTOM); } color("green") up(.02) { right(PCB_X/2) cuboid([4,PCB_Y,PCB_CLR+.02], align=V_BOTTOM); // Edge Support left(PCB_X/2) cuboid([8,PCB_Y,PCB_CLR+.02], align=V_BOTTOM); // Edge Support } cyl(d=Mount_Hole_D+3, chamfer=0, h=PCB_CLR, align=V_BOTTOM); mount_positions() cyl(d=Mount_Hole_D+3, chamfer=0, h=PCB_CLR, align=V_BOTTOM); } }