************************************** **** Tesla Coil Base in SCAD ********* **** by Arto Juhani Heino (c)2021 **** ************************************** **** Top piece for 0 deg coil former**** module ring(r, R) { rotate_extrude() translate([R, 0, 0]) circle(r); } difference() { translate([177.6, 0, (138 + 11)]) cube([245.2, 20, 22], center = true); $fn=256; scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 83.175); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 95.875); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 108.575); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 121.275); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 133.975); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 146.675); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 159.375); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 172.075); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 184.775); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 197.475); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 210.175); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 222.875); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 235.575); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 248.275); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 260.975); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 273.675); } **** Top piece for 180 coil former**** module ring(r, R) { rotate_extrude() translate([R, 0, 0]) circle(r); } difference() { translate([177.6, 0, (138 + 11)]) cube([245.2, 20, 22], center = true); $fn=256; scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 89.525); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 102.225); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 114.925); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 127.625); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 140.325); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 153.025); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 165.725); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 178.425); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 191.125); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 203.825); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 216.525); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 229.225); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 241.925); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 254.625); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 267.325); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 280.025); } **********Main Block 0 deg bottom former************* module ring(r, R) { rotate_extrude() translate([R, 0, 0]) circle(r); } difference() { difference() { difference() { difference() { difference() { difference() { difference() { difference() difference() difference() { difference() { translate([169.1, 0, 69]) cube([228.2, 217, 138], center = true); translate([0, 0, 70]) cylinder(h = 68, r = 75, $fn=256); } translate([0, 0, 0]) cylinder(h = 28, r = 57.5, $fn=256); } rotate([0, 0, 45]) translate([80, 80, 69]) cube([160, 160, 138], center = true); rotate([0, 0, 225]) translate([80, 80, 69]) cube([160, 160, 138], center = true); } translate([(93 + 97.2), 0, 70]) cube([186, 75, 50], center = true); translate([(93 + 97.2), 70, 70]) cube([186,50,50], center = true); translate([(93 + 97.2), -70, 70]) cube([186,50,50], center = true); translate([(93 + 97.2), 0, 24]) cube([186, 75, 20], center = true); translate([(93 + 97.2), 70, 24]) cube([186,50,20], center = true); translate([(93 + 97.2), -70, 24]) cube([186,50,20], center = true); translate([181.6,0,3.175]) cube([203.2,6.35,6.35], center = true); } translate([83.175, 0, 0]) cylinder(h = 138, r = 3.2, $fn=256); } translate([-20, 0, 70]) cube([150, 217, 138], center = true); } translate([166.6, 59.25, 127]) cube([233.20, 98.5, 22], center = true); } translate([166.6, -59.25, 127]) cube([233.20, 98.5, 22], center = true); } $fn=256; scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 83.175); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 95.875); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 108.575); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 121.275); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 133.975); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 146.675); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 159.375); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 172.075); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 184.775); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 197.475); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 210.175); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 222.875); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 235.575); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 248.275); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 260.975); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 273.675); } difference() { translate([0, 0, 70]) cylinder(h = 11, r = 70, $fn=256); translate([-20, 0, 70]) cube([150, 217, 138], center = true); } **********Main Block 180 deg bottom former************* module ring(r, R) { rotate_extrude() translate([R, 0, 0]) circle(r); } difference() { difference() { difference() { difference() { difference() { difference() { difference() { difference() difference() difference() { difference() { translate([169.1, 0, 69]) cube([228.2, 217, 138], center = true); translate([0, 0, 70]) cylinder(h = 68, r = 75, $fn=256); } translate([0, 0, 0]) cylinder(h = 28, r = 57.5, $fn=256); } rotate([0, 0, 45]) translate([80, 80, 69]) cube([160, 160, 138], center = true); rotate([0, 0, 225]) translate([80, 80, 69]) cube([160, 160, 138], center = true); } translate([(93 + 97.2), 0, 70]) cube([186, 75, 50], center = true); translate([(93 + 97.2), 70, 70]) cube([186,50,50], center = true); translate([(93 + 97.2), -70, 70]) cube([186,50,50], center = true); translate([(93 + 97.2), 0, 24]) cube([186, 75, 20], center = true); translate([(93 + 97.2), 70, 24]) cube([186,50,20], center = true); translate([(93 + 97.2), -70, 24]) cube([186,50,20], center = true); translate([181.6,0,3.175]) cube([203.2,6.35,6.35], center = true); } translate([89.525, 0, 0]) cylinder(h = 138, r = 3.2, $fn=256); } translate([-20, 0, 70]) cube([150, 217, 138], center = true); } translate([166.6, 59.25, 127]) cube([233.20, 98.5, 22], center = true); } translate([166.6, -59.25, 127]) cube([233.20, 98.5, 22], center = true); } $fn=256; scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 89.525); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 102.225); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 114.925); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 127.625); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 140.325); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 153.025); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 165.725); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 178.425); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 191.125); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 203.825); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 216.525); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 229.225); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 241.925); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 254.625); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 267.325); scale([1, 1, 1]) rotate([0, 0, 0]) translate([0, 0, 138]) ring(3.175, 280.025); } difference() { translate([0, 0, 70]) cylinder(h = 11, r = 70, $fn=256); translate([-20, 0, 70]) cube([150, 217, 138], center = true); } ******* End ******* ******************************************* *** Plug in Adapter with Mode Selector **** ******************************************* module ring(r, R) { rotate_extrude() translate([R, 0, 0]) circle(r); } module prismA(l, w, h) { polyhedron(points = [[0, -w, 0], [l, -w, 0], [l, 0, 0], [0, 0, 0], [0, 0, h], [l, 0, h]], faces = [[0, 1, 2, 3], [5, 4, 3, 2], [0, 4, 5, 1], [0, 3, 4], [5, 2, 1]]); } module prismB(l, w, h) { polyhedron(points = [[0, 0, 0], [l, 0, 0], [l, w, 0], [0, w, 0], [0, 0, h], [l, 0, h]], faces = [[0, 1, 2, 3], [5, 4, 3, 2], [0, 4, 5, 1], [0, 3, 4], [5, 2, 1]]); } module prismC(l, w, h) { polyhedron(points = [[0, w, 0], [l, w, 0], [l, 0, 0], [0, 0, 0], [0, 0, -h], [l, 0, -h]], faces = [[0, 1, 2, 3], [5, 4, 3, 2], [0, 4, 5, 1], [0, 3, 4], [5, 2, 1]]); } module prismD(l, w, h) { polyhedron(points = [[0, 0, 0], [l, 0, 0], [l, -w, 0], [0, -w, 0], [0, 0, -h], [l, 0, -h]], faces = [[0, 1, 2, 3], [5, 4, 3, 2], [0, 4, 5, 1], [0, 3, 4], [5, 2, 1]]); } module block() { difference() { prismA(120, 41, 68); prismA(120, 21.6, 36); } difference() { prismB(120, 41, 68); prismB(120, 21.6, 36); } difference() { prismC(120, 41, 68); prismC(120, 21.6, 36); } difference() { prismD(120, 41, 68); prismD(120, 21.6, 36); } translate([60, 40, 0]) cube([120, 20, 20], center = true); translate([60, -40, 0]) cube([120, 20, 20], center = true); translate([60, 0, 0]) cube([120, 50, 20], center = true); translate([60, 0, -48]) cube([120, 40, 40], center = true); } difference() { block(); translate([24, 55, 0]) rotate([90, 90, 0]) cylinder(h = 30, r = 3.175, $fn = 256); translate([48, 55, 0]) rotate([90, 90, 0]) cylinder(h = 30, r = 3.175, $fn = 256); translate([72, 55, 0]) rotate([90, 90, 0]) cylinder(h = 30, r = 3.175, $fn = 256); translate([96, 55, 0]) rotate([90, 90, 0]) cylinder(h = 30, r = 3.175, $fn = 256); translate([24, -25, 0]) rotate([90, 90, 0]) cylinder(h = 30, r = 3.175, $fn = 256); translate([48, -25, 0]) rotate([90, 90, 0]) cylinder(h = 30, r = 3.175, $fn = 256); translate([72, -25, 0]) rotate([90, 90, 0]) cylinder(h = 30, r = 3.175, $fn = 256); translate([96, -25, 0]) rotate([90, 90, 0]) cylinder(h = 30, r = 3.175, $fn = 256); translate([72, 30, 0]) rotate([(31.066 + 117.933), 0, 0]) cylinder(h = 60, r = 3.175, $fn = 256); translate([72, -30, 0]) rotate([-31.066, 0, 0]) cylinder(h = 60, r = 3.175, $fn = 256); translate([0, 30, 0]) rotate([31.066, 0, 0]) cylinder(h = 60, r = 3.175, $fn = 256); translate([0, -30, 0]) rotate([-31.066, 0, 0]) cylinder(h = 60, r = 3.175, $fn = 256); translate([0, 30, 0]) rotate([0, 90, 0]) cylinder(h = 120, r = 3.175, $fn = 256); translate([0, -30, 0]) rotate([0, 90, 0]) cylinder(h = 120, r = 3.175, $fn = 256); translate([0, 0, 50]) rotate([0, 90, 0]) cylinder(h = 120, r = 3.175, $fn = 256); translate([0, 0, -50]) rotate([0, 90, 0]) cylinder(h = 120, r = 3.175, $fn = 256); translate([0, 30, 0]) rotate([(31.066 + 117.933), 0, 0]) cylinder(h = 60, r = 3.175, $fn = 256); translate([0, -30, 0]) rotate([(-31.066 - 117.933), 0, 0]) cylinder(h = 60, r = 3.175, $fn = 256); translate([(24 + 24), 42, 0]) cube([72, 8, 22], center = true); translate([(24 + 24), -42, 0]) cube([72, 8, 22], center = true); } ***************END*************