diff --git a/examples/MainsBreakOutBox/assemblies/main_assembly.png b/examples/MainsBreakOutBox/assemblies/main_assembly.png index e75b60f..d281fae 100644 Binary files a/examples/MainsBreakOutBox/assemblies/main_assembly.png and b/examples/MainsBreakOutBox/assemblies/main_assembly.png differ diff --git a/examples/MainsBreakOutBox/assemblies/main_assembly_tn.png b/examples/MainsBreakOutBox/assemblies/main_assembly_tn.png index cda1e89..dbad629 100644 Binary files a/examples/MainsBreakOutBox/assemblies/main_assembly_tn.png and b/examples/MainsBreakOutBox/assemblies/main_assembly_tn.png differ diff --git a/examples/MainsBreakOutBox/assemblies/mains_in_assembled.png b/examples/MainsBreakOutBox/assemblies/mains_in_assembled.png index ac165c0..e86d432 100644 Binary files a/examples/MainsBreakOutBox/assemblies/mains_in_assembled.png and b/examples/MainsBreakOutBox/assemblies/mains_in_assembled.png differ diff --git a/examples/MainsBreakOutBox/assemblies/mains_in_assembled_tn.png b/examples/MainsBreakOutBox/assemblies/mains_in_assembled_tn.png index d70c0b6..b5aa414 100644 Binary files a/examples/MainsBreakOutBox/assemblies/mains_in_assembled_tn.png and b/examples/MainsBreakOutBox/assemblies/mains_in_assembled_tn.png differ diff --git a/examples/MainsBreakOutBox/assemblies/mains_in_assembly.png b/examples/MainsBreakOutBox/assemblies/mains_in_assembly.png index 69f0408..ce31501 100644 Binary files a/examples/MainsBreakOutBox/assemblies/mains_in_assembly.png and b/examples/MainsBreakOutBox/assemblies/mains_in_assembly.png differ diff --git a/examples/MainsBreakOutBox/assemblies/mains_in_assembly_tn.png b/examples/MainsBreakOutBox/assemblies/mains_in_assembly_tn.png index 65cae05..01f2b3c 100644 Binary files a/examples/MainsBreakOutBox/assemblies/mains_in_assembly_tn.png and b/examples/MainsBreakOutBox/assemblies/mains_in_assembly_tn.png differ diff --git a/examples/MainsBreakOutBox/scad/bob_main.scad b/examples/MainsBreakOutBox/scad/bob_main.scad index c82af26..6697f92 100644 --- a/examples/MainsBreakOutBox/scad/bob_main.scad +++ b/examples/MainsBreakOutBox/scad/bob_main.scad @@ -60,7 +60,7 @@ insert_length = insert_length(insert); insert_boss = mains_socket_insert_boss(socket); screw_length = screw_longer_than(mains_socket_height(socket) + insert_length(insert)); -iec_h = iec_slot_h(iec) + 1; +iec_h = iec_body_h(iec) + 1; box_height = socket_depth + iec_h; base_thickness = wall; diff --git a/gallery/ArduinoThermostat.png b/gallery/ArduinoThermostat.png index c69253f..56d5d7e 100644 Binary files a/gallery/ArduinoThermostat.png and b/gallery/ArduinoThermostat.png differ diff --git a/libtest.png b/libtest.png index a5f56ce..9a4d2d1 100644 Binary files a/libtest.png and b/libtest.png differ diff --git a/readme.md b/readme.md index 80a5fcd..dc3a2b1 100644 --- a/readme.md +++ b/readme.md @@ -766,6 +766,10 @@ IEC mains inlets and outlet. | ```iec_bezel_r(type)``` | Bezel corner radius | | ```iec_bezel_t(type)``` | Bezel thickness | | ```iec_bezel_w(type)``` | Bezel width | +| ```iec_body_h(type)``` | Body height | +| ```iec_body_r(type)``` | Body corner radius | +| ```iec_body_w(type)``` | Body width | +| ```iec_body_w2(type)``` | Body width at the narrow part | | ```iec_depth(type)``` | Depth of the body below the flange | | ```iec_flange_h(type)``` | Flange height | | ```iec_flange_r(type)``` | Flange corner radius | @@ -775,9 +779,6 @@ IEC mains inlets and outlet. | ```iec_part(type)``` | Description | | ```iec_pitch(type)``` | Screw hole pitch | | ```iec_screw(type)``` | Screw type | -| ```iec_slot_h(type)``` | Body height | -| ```iec_slot_r(type)``` | Body corner radius | -| ```iec_slot_w(type)``` | Body width | | ```iec_spades(type)``` | Spade type | | ```iec_width(type)``` | Widest part including the lugs | @@ -800,14 +801,15 @@ IEC mains inlets and outlet. ### Vitamins | Qty | Module call | BOM entry | | ---:|:--- |:---| -| 1 | ```iec(IEC_fused_inlet)``` | IEC fused inlet | +| 1 | ```iec(IEC_fused_inlet)``` | IEC fused inlet JR-101-1F | +| 1 | ```iec(IEC_fused_inlet2)``` | IEC fused inlet old | | 1 | ```iec(IEC_inlet)``` | IEC inlet | | 1 | ```iec(IEC_inlet_atx)``` | IEC inlet for ATX | -| 1 | ```iec(IEC_outlet)``` | IEC outlet | -| 8 | ```nut(M3_nut, nyloc = true)``` | Nut M3 x 2.4mm nyloc | +| 1 | ```iec(IEC_outlet)``` | IEC outlet RS 811-7193 | +| 10 | ```nut(M3_nut, nyloc = true)``` | Nut M3 x 2.4mm nyloc | | 4 | ```screw(M3_cs_cap_screw, 10)``` | Screw M3 cs cap x 10mm | -| 4 | ```screw(M3_cs_cap_screw, 12)``` | Screw M3 cs cap x 12mm | -| 8 | ```washer(M3_washer)``` | Washer M3 x 7mm x 0.5mm | +| 6 | ```screw(M3_cs_cap_screw, 12)``` | Screw M3 cs cap x 12mm | +| 10 | ```washer(M3_washer)``` | Washer M3 x 7mm x 0.5mm | Top diff --git a/tests/png/iecs.png b/tests/png/iecs.png index b05c4e8..7484329 100644 Binary files a/tests/png/iecs.png and b/tests/png/iecs.png differ diff --git a/tests/png/psus.png b/tests/png/psus.png index ce44192..7b0929c 100644 Binary files a/tests/png/psus.png and b/tests/png/psus.png differ diff --git a/tests/png/spades.png b/tests/png/spades.png index 3b1ad06..432382f 100644 Binary files a/tests/png/spades.png and b/tests/png/spades.png differ diff --git a/vitamins/iec.scad b/vitamins/iec.scad index 2ef9f49..b61322a 100644 --- a/vitamins/iec.scad +++ b/vitamins/iec.scad @@ -30,21 +30,22 @@ include function iec_part(type) = type[1]; //! Description function iec_screw(type) = type[2]; //! Screw type function iec_pitch(type) = type[3]; //! Screw hole pitch -function iec_slot_w(type) = type[4]; //! Body width -function iec_slot_h(type) = type[5]; //! Body height -function iec_slot_r(type) = type[6]; //! Body corner radius -function iec_bezel_w(type) = type[7]; //! Bezel width -function iec_bezel_h(type) = type[8]; //! Bezel height -function iec_bezel_r(type) = type[9]; //! Bezel corner radius -function iec_bezel_t(type) = type[10]; //! Bezel thickness -function iec_flange_w(type) = type[11]; //! Flange width not including the lugs -function iec_flange_h(type) = type[12]; //! Flange height -function iec_flange_r(type) = type[13]; //! Flange corner radius -function iec_flange_t(type) = type[14]; //! Flange thickness -function iec_width(type) = type[15]; //! Widest part including the lugs -function iec_depth(type) = type[16]; //! Depth of the body below the flange -function iec_spades(type) = type[17]; //! Spade type -function iec_male(type) = type[18]; //! True for an outlet +function iec_body_w(type) = type[4]; //! Body width +function iec_body_w2(type) = type[5]; //! Body width at the narrow part +function iec_body_h(type) = type[6]; //! Body height +function iec_body_r(type) = type[7]; //! Body corner radius +function iec_bezel_w(type) = type[8]; //! Bezel width +function iec_bezel_h(type) = type[9]; //! Bezel height +function iec_bezel_r(type) = type[10]; //! Bezel corner radius +function iec_bezel_t(type) = type[11]; //! Bezel thickness +function iec_flange_w(type) = type[12]; //! Flange width not including the lugs +function iec_flange_h(type) = type[13]; //! Flange height +function iec_flange_r(type) = type[14]; //! Flange corner radius +function iec_flange_t(type) = type[15]; //! Flange thickness +function iec_width(type) = type[16]; //! Widest part including the lugs +function iec_depth(type) = type[17]; //! Depth of the body below the flange +function iec_spades(type) = type[18]; //! Spade type +function iec_male(type) = type[19]; //! True for an outlet insert_screw_length = 10; function iec_insert_screw_length() = insert_screw_length; //! Screw length used for inserts @@ -68,10 +69,10 @@ module iec(type) { //! Draw specified IEC connector cube([pin_w, pin_d, h - pin_chamfer], center = true); } - socket_w = 24; + socket_w = 24.5; socket_w2 = 14; - socket_h = 16.5; - socket_h2 = 12; + socket_h = 16.34; + socket_h2 = socket_h - (socket_w - socket_w2); socket_d = 17; socket_r = 3; socket_r2 = 0.5; @@ -83,7 +84,7 @@ module iec(type) { //! Draw specified IEC connector translate([side * (socket_w / 2 - socket_r), -socket_h / 2 + socket_r]) circle(socket_r); - translate([side * (socket_w / 2 - socket_r2), -socket_h / 2 + socket_h2 + socket_r2]) + translate([side * (socket_w / 2 - socket_r2), socket_h2 / 2 - socket_r2]) circle(socket_r2); translate([side * (socket_w2 / 2 - socket_r2), socket_h / 2 - socket_r2]) @@ -94,7 +95,7 @@ module iec(type) { //! Draw specified IEC connector translate([0, socket_offset]) if(iec_male(type)) difference() { - offset(3) + offset(2) socket_shape(); difference() { @@ -111,6 +112,28 @@ module iec(type) { //! Draw specified IEC connector else socket_shape(); + module body_shape() { + hull() { + bw = iec_body_w(type); + bh = iec_body_h(type); + br = iec_body_r(type); + bw2 = iec_body_w2(type); + bh2 = bh - (bw - bw2); + br2 = 1; + + for(side = [-1, 1]) { + translate([side * (bw / 2 - br), -bh / 2 + br]) + circle4n(br); + + translate([side * (bw / 2 - br2), bh2 / 2 - br2]) + circle4n(br2); + + translate([side * (bw2 / 2 - br2), bh / 2 - br2]) + circle4n(br2); + } + } + } + color(grey20) { // Flange flange_t = iec_flange_t(type); @@ -153,12 +176,14 @@ module iec(type) { //! Draw specified IEC connector translate_z(-h) linear_extrude(height = h) difference() { - rounded_square([iec_slot_w(type), iec_slot_h(type)], iec_slot_r(type)); + body_shape(); + oriffice_shape(); } // Back translate_z(-iec_depth(type)) - rounded_rectangle([iec_slot_w(type), iec_slot_h(type), iec_depth(type) - h], iec_slot_r(type), center = false); + linear_extrude(height = iec_depth(type) - h) + body_shape(); } if(!iec_male(type)) translate([0, socket_offset, iec_flange_t(type) + iec_bezel_t(type) - socket_d]) { @@ -175,6 +200,8 @@ module iec(type) { //! Draw specified IEC connector spade(spade[0], spade[1]); } +function iec_spade_depth(type) = iec_depth(type) + max([for(spade = iec_spades(type)) spade[1]]); + module iec_screw_positions(type) //! Position children at the screw holes for(side = [-1, 1]) translate([side * iec_pitch(type) / 2, 0]) @@ -204,11 +231,11 @@ module iec_holes(type, h = 100, poly = false, horizontal = false, insert = false extrude_if(h) hull() for(x = [-1, 1], y = [-1, 1], sag = horizontal && y > 1 ? layer_height : 0) - translate([x * (iec_slot_w(type) / 2 - iec_slot_r(type)), y * (iec_slot_h(type) / 2 - iec_slot_r(type) + sag )]) + translate([x * (iec_body_w(type) / 2 - iec_body_r(type)), y * (iec_body_h(type) / 2 - iec_body_r(type) + sag )]) if(horizontal) - teardrop(0, iec_slot_r(type) + clearance / 2 + layer_height / 4); + teardrop(0, iec_body_r(type) + clearance / 2 + layer_height / 4); else - drill(iec_slot_r(type) + clearance / 2, 0); + drill(iec_body_r(type) + clearance / 2, 0); } module iec_inserts(type) { //! Place the inserts diff --git a/vitamins/iecs.scad b/vitamins/iecs.scad index d3e0ea2..6f49a87 100644 --- a/vitamins/iecs.scad +++ b/vitamins/iecs.scad @@ -19,29 +19,43 @@ include include -fused_spades = [[spade6p4, 14, -7, 0, 0], - [spade6p4, 14, 7, 0, 0], - [spade6p4, 14, 0, 11, 0], +fused_spades = [[spade4p8, 8.5, 7, 3, 90], + [spade4p8, 8.5, 0, 7, 90], + [spade4p8, 8.5, 5, -7, 90]]; + +fused_spades2 = [[spade6p4, 13, -7, 0, 0], + [spade6p4, 13, 7, 0, 0], + [spade6p4, 13, 0, 11, 0], [spade4p8, 8.5, -7, -9, 90], [spade4p8, 8.5, 7, -9, 90]]; inlet_spades = [[spade6p4, 9, -7, -5.5, 0], [spade6p4, 9, 7, -5.5, 0], [spade6p4, 9, 0, 5.5, 0]]; -// -// p s p s s s b b b b f f f f w d s m -// a c i l l l e e e e l l l l i e p a -// r r t o o o z z z z a a a a d p a l -// t e c t t t e e e e n n n n t t d e -// w h l l l l g g g g h h e -// w h r e e e e s -// w h r t -// w h r t -// -IEC_fused_inlet = ["IEC_fused_inlet", "IEC fused inlet", M3_cs_cap_screw, 36, 27.3, 31.2, 3, 28, 31, 2, 2.5, 30, 33, 4, 2.5, 44, 21, fused_spades, false ]; -IEC_inlet = ["IEC_inlet", "IEC inlet", M3_cs_cap_screw, 40, 28.2, 20.2, 3, 28, 20.5, 4, 2.5, 37, 23, 1, 2.5, 48, 14, inlet_spades, false ]; -IEC_inlet_atx = ["IEC_inlet_atx", "IEC inlet for ATX", M3_cs_cap_screw, 40, 27.0, 19.0, 3, 30, 22, 2, 2.0, 30, 22, 2, 4.0, 50, 13, inlet_spades, false ]; -IEC_outlet = ["IEC_outlet", "IEC outlet", M3_cs_cap_screw, 40, 32, 24, 3, 28, 20.5, 2, 0.0, 29, 29, 2, 2.9, 50, 23, inlet_spades, true ]; -iecs = [IEC_inlet, IEC_inlet_atx, IEC_fused_inlet, IEC_outlet]; +atx_spades = [[spade3p5, 8, -7, -3, 90], + [spade3p5, 8, 7, -3, 90], + [spade3p5, 8, 0, 3, 90]]; + +outlet_spades = [[spade4p8ll, 8, -7, -2, 90], + [spade4p8ll, 8, 7, -2, 90], + [spade4p8ll, 8, 0, 2, 90]]; + +// +// p s p b b b b b b b b f f f f w d s m +// a c i o o o o e e e e l l l l i e p a +// r r t d d d d z z z z a a a a d p a l +// t e c y y y y e e e e n n n n t t d e +// w h l l l l g g g g h h e +// w w h r e e e e s +// 2 w h r t +// w h r t +IEC_fused_inlet = ["IEC_fused_inlet", "IEC fused inlet JR-101-1F", M3_cs_cap_screw, 36, 27, 16, 31, 3, 28, 31, 2, 2.0, 30, 33, 4, 3.0, 44, 15, fused_spades, false ]; +IEC_fused_inlet2= ["IEC_fused_inlet2","IEC fused inlet old", M3_cs_cap_screw, 36, 27, 14, 31, 3, 28, 31, 2, 2.5, 30, 33, 4, 2.5, 44, 18, fused_spades2, false ]; + +IEC_inlet = ["IEC_inlet", "IEC inlet", M3_cs_cap_screw, 40, 28, 18, 20, 3, 28, 20.5, 4, 2.5, 37, 23, 1, 2.5, 48, 14, inlet_spades, false ]; +IEC_inlet_atx = ["IEC_inlet_atx", "IEC inlet for ATX", M3_cs_cap_screw, 40, 27, 18, 19, 3, 30.5, 22, 2, 2.0, 30.5, 22, 2, 4.0, 50, 15, atx_spades, false ]; +IEC_outlet = ["IEC_outlet", "IEC outlet RS 811-7193", M3_cs_cap_screw, 40, 32, 18, 24, 3, 28, 20.5, 2, 0.0, 29, 29, 2, 2.8, 50, 23, outlet_spades, true ]; + +iecs = [IEC_inlet, IEC_inlet_atx, IEC_fused_inlet, IEC_fused_inlet2, IEC_outlet]; use diff --git a/vitamins/spades.scad b/vitamins/spades.scad index 5789a9f..2ae982c 100644 --- a/vitamins/spades.scad +++ b/vitamins/spades.scad @@ -17,12 +17,13 @@ // If not, see . // -spade3 = [3.8, 3.0, 0.4, 1.0, 3.9]; -spade6p4 = [8.3, 6.4, 0.8, 1.8, 8]; -spade4p8 = [6.4, 4.8, 0.5, 1.8, 8]; -spade4p8l = [7.0, 4.8, 0.5, 1.8, 8]; -spade4p8ll = [8.0, 4.8, 0.5, 1.8, 4.8]; +spade3 = [3.8, 3.0, 0.4, 1.0, 3.9]; +spade3p5 = [7.0, 3.5, 0.8, 1.75, 6.8]; +spade6p4 = [8.3, 6.4, 0.8, 1.8, 8]; +spade4p8 = [6.4, 4.8, 0.5, 1.8, 8]; +spade4p8l = [7.0, 4.8, 0.5, 1.8, 8]; +spade4p8ll = [8.0, 4.8, 0.5, 1.8, 4.8]; -spades = [spade3, spade6p4, spade4p8, spade4p8l, spade4p8ll]; +spades = [spade3, spade3p5, spade6p4, spade4p8, spade4p8l, spade4p8ll]; use