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