Fixed bugs in poly_ring() and insert_boss().
IEC screw length fixed at 10 if inserts used.
@ -26,7 +26,7 @@
|
|||||||
"vitamins": {
|
"vitamins": {
|
||||||
"washer(M3_washer): Washer M3 x 7mm x 0.5mm": 8,
|
"washer(M3_washer): Washer M3 x 7mm x 0.5mm": 8,
|
||||||
"screw(M3_dome_screw, 10): Screw M3 dome x 10mm": 4,
|
"screw(M3_dome_screw, 10): Screw M3 dome x 10mm": 4,
|
||||||
"nut(M3_nut, nyloc = true): Nut M3 nyloc": 4
|
"nut(M3_nut, nyloc = true): Nut M3 x 2.4mm nyloc": 4
|
||||||
},
|
},
|
||||||
"printed": {
|
"printed": {
|
||||||
"foot.stl": 4
|
"foot.stl": 4
|
||||||
@ -42,7 +42,7 @@
|
|||||||
"iec(IEC_inlet_atx): IEC inlet for ATX": 1,
|
"iec(IEC_inlet_atx): IEC inlet for ATX": 1,
|
||||||
"screw(M3_cs_cap_screw, 12): Screw M3 cs cap x 12mm": 2,
|
"screw(M3_cs_cap_screw, 12): Screw M3 cs cap x 12mm": 2,
|
||||||
"washer(M3_washer): Washer M3 x 7mm x 0.5mm": 2,
|
"washer(M3_washer): Washer M3 x 7mm x 0.5mm": 2,
|
||||||
"nut(M3_nut, nyloc = true): Nut M3 nyloc": 2
|
"nut(M3_nut, nyloc = true): Nut M3 x 2.4mm nyloc": 2
|
||||||
},
|
},
|
||||||
"printed": {},
|
"printed": {},
|
||||||
"routed": {}
|
"routed": {}
|
||||||
|
@ -17,7 +17,7 @@ Vitamins:
|
|||||||
| | 1| | 1 4mm shielded jack socket brown
|
| | 1| | 1 4mm shielded jack socket brown
|
||||||
| | 2| | 2 4mm shielded jack socket green
|
| | 2| | 2 4mm shielded jack socket green
|
||||||
| | 1| | 1 Mains socket 13A
|
| | 1| | 1 Mains socket 13A
|
||||||
| 4| | 2| 6 Nut M3 nyloc
|
| 4| | 2| 6 Nut M3 x 2.4mm nyloc
|
||||||
| | | 2| 2 Screw M3 cs cap x 12mm
|
| | | 2| 2 Screw M3 cs cap x 12mm
|
||||||
| | 2| | 2 Screw M3 cs cap x 20mm
|
| | 2| | 2 Screw M3 cs cap x 20mm
|
||||||
| 4| | | 4 Screw M3 dome x 10mm
|
| 4| | | 4 Screw M3 dome x 10mm
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
feet_assembly:
|
feet_assembly:
|
||||||
Vitamins:
|
Vitamins:
|
||||||
4 Nut M3 nyloc
|
4 Nut M3 x 2.4mm nyloc
|
||||||
4 Screw M3 dome x 10mm
|
4 Screw M3 dome x 10mm
|
||||||
8 Washer M3 x 7mm x 0.5mm
|
8 Washer M3 x 7mm x 0.5mm
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ Vitamins:
|
|||||||
2 Wire brown 30/0.25mm strands, length 150mm - not shown
|
2 Wire brown 30/0.25mm strands, length 150mm - not shown
|
||||||
1 Wire green & yellow 30/0.25mm strands, length 150mm - not shown
|
1 Wire green & yellow 30/0.25mm strands, length 150mm - not shown
|
||||||
1 IEC inlet for ATX
|
1 IEC inlet for ATX
|
||||||
2 Nut M3 nyloc
|
2 Nut M3 x 2.4mm nyloc
|
||||||
2 Screw M3 cs cap x 12mm
|
2 Screw M3 cs cap x 12mm
|
||||||
3 Heatshrink sleeving ID 3.2mm x 15mm - not shown
|
3 Heatshrink sleeving ID 3.2mm x 15mm - not shown
|
||||||
2 Washer M3 x 7mm x 0.5mm
|
2 Washer M3 x 7mm x 0.5mm
|
||||||
|
@ -39,7 +39,7 @@ Earth leakage can be measured Canadian CSA style by disconnected the neutral lin
|
|||||||
| . | . | 3 | 5 | 8 | Heatshrink sleeving ID 3.2mm x 15mm - not shown |
|
| . | . | 3 | 5 | 8 | Heatshrink sleeving ID 3.2mm x 15mm - not shown |
|
||||||
| . | . | 1 | . | 1 | IEC inlet for ATX |
|
| . | . | 1 | . | 1 | IEC inlet for ATX |
|
||||||
| . | . | . | 1 | 1 | Mains socket 13A |
|
| . | . | . | 1 | 1 | Mains socket 13A |
|
||||||
| . | 4 | 2 | . | 6 | Nut M3 nyloc |
|
| . | 4 | 2 | . | 6 | Nut M3 x 2.4mm nyloc |
|
||||||
| . | . | 2 | . | 2 | Screw M3 cs cap x 12mm |
|
| . | . | 2 | . | 2 | Screw M3 cs cap x 12mm |
|
||||||
| . | . | . | 2 | 2 | Screw M3 cs cap x 20mm |
|
| . | . | . | 2 | 2 | Screw M3 cs cap x 20mm |
|
||||||
| . | 4 | . | . | 4 | Screw M3 dome x 10mm |
|
| . | 4 | . | . | 4 | Screw M3 dome x 10mm |
|
||||||
@ -88,7 +88,7 @@ Earth leakage can be measured Canadian CSA style by disconnected the neutral lin
|
|||||||
|--:|:----------|
|
|--:|:----------|
|
||||||
|8| Washer M3 x 7mm x 0.5mm|
|
|8| Washer M3 x 7mm x 0.5mm|
|
||||||
|4| Screw M3 dome x 10mm|
|
|4| Screw M3 dome x 10mm|
|
||||||
|4| Nut M3 nyloc|
|
|4| Nut M3 x 2.4mm nyloc|
|
||||||
|
|
||||||
|
|
||||||
### 3D Printed parts
|
### 3D Printed parts
|
||||||
@ -129,7 +129,7 @@ Earth leakage can be measured Canadian CSA style by disconnected the neutral lin
|
|||||||
|1| IEC inlet for ATX|
|
|1| IEC inlet for ATX|
|
||||||
|2| Screw M3 cs cap x 12mm|
|
|2| Screw M3 cs cap x 12mm|
|
||||||
|2| Washer M3 x 7mm x 0.5mm|
|
|2| Washer M3 x 7mm x 0.5mm|
|
||||||
|2| Nut M3 nyloc|
|
|2| Nut M3 x 2.4mm nyloc|
|
||||||
|
|
||||||
|
|
||||||
### Sub-assemblies
|
### Sub-assemblies
|
||||||
|
@ -781,12 +781,18 @@ IEC mains inlets and outlet.
|
|||||||
| ```iec_spades(type)``` | Spade type |
|
| ```iec_spades(type)``` | Spade type |
|
||||||
| ```iec_width(type)``` | Widest part including the lugs |
|
| ```iec_width(type)``` | Widest part including the lugs |
|
||||||
|
|
||||||
|
### Functions
|
||||||
|
| Function | Description |
|
||||||
|
|:--- |:--- |
|
||||||
|
| ```iec_insert_screw_length()``` | Screw length used for inserts |
|
||||||
|
|
||||||
### Modules
|
### Modules
|
||||||
| Module | Description |
|
| Module | Description |
|
||||||
|:--- |:--- |
|
|:--- |:--- |
|
||||||
| ```iec(type)``` | Draw specified IEC connector |
|
| ```iec(type)``` | Draw specified IEC connector |
|
||||||
| ```iec_assembly(type, thickness)``` | Assembly with fasteners given panel thickness |
|
| ```iec_assembly(type, thickness)``` | Assembly with fasteners given panel thickness |
|
||||||
| ```iec_holes(type, h = 100, poly = false, horizontal = false, insert = false)``` | Drill the required panel holes |
|
| ```iec_holes(type, h = 100, poly = false, horizontal = false, insert = false)``` | Drill the required panel holes |
|
||||||
|
| ```iec_inserts(type)``` | Place the inserts |
|
||||||
| ```iec_screw_positions(type)``` | Position children at the screw holes |
|
| ```iec_screw_positions(type)``` | Position children at the screw holes |
|
||||||
|
|
||||||
![iecs](tests/png/iecs.png)
|
![iecs](tests/png/iecs.png)
|
||||||
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 143 KiB |
Before Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 144 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
@ -23,9 +23,9 @@
|
|||||||
//!
|
//!
|
||||||
//! The module provides `poly_circle()`, `poly_cylinder()` and `poly_ring()` that is useful for making printed washers and pillars.
|
//! The module provides `poly_circle()`, `poly_cylinder()` and `poly_ring()` that is useful for making printed washers and pillars.
|
||||||
//
|
//
|
||||||
function sides(r) = max(round(4 * r), 3); //! Optimium number of sides for specified radius
|
function sides(r) = max(round(4 * r), 3); //! Optimium number of sides for specified radius
|
||||||
function corrected_radius(r, n = 0) = r / cos(180 / (n ? n : sides(r))); //! Adjusted radius to make flats lie on the circle
|
function corrected_radius(r, n = 0) = r / cos(180 / (n ? n : sides(r))); //! Adjusted radius to make flats lie on the circle
|
||||||
function corrected_diameter(d, n = 0) = d / cos(180 / (n ? n : sides(d / 2))); //! Adjusted diameter to make flats lie on the circle
|
function corrected_diameter(d, n = 0) = d / cos(180 / (n ? n : sides(d / 2))); //! Adjusted diameter to make flats lie on the circle
|
||||||
|
|
||||||
module poly_circle(r, sides = 0) { //! Make a circle adjusted to print the correct size
|
module poly_circle(r, sides = 0) { //! Make a circle adjusted to print the correct size
|
||||||
n = sides ? sides : sides(r);
|
n = sides ? sides : sides(r);
|
||||||
@ -38,8 +38,8 @@ module poly_cylinder(r, h, center = false, sides = 0) //! Make a cylinder adjust
|
|||||||
|
|
||||||
module poly_ring(or, ir) { //! Make a 2D ring adjusted to have the correct internal radius
|
module poly_ring(or, ir) { //! Make a 2D ring adjusted to have the correct internal radius
|
||||||
cir = corrected_radius(ir);
|
cir = corrected_radius(ir);
|
||||||
filaments = floor((or - cir) / extrusion_width);
|
filaments = (or - cir) / extrusion_width;
|
||||||
if(filaments > 3)
|
if(filaments > 3 + eps)
|
||||||
difference() {
|
difference() {
|
||||||
circle(or);
|
circle(or);
|
||||||
|
|
||||||
|
@ -46,7 +46,8 @@ function iec_depth(type) = type[16]; //! Depth of the body below the flange
|
|||||||
function iec_spades(type) = type[17]; //! Spade type
|
function iec_spades(type) = type[17]; //! Spade type
|
||||||
function iec_male(type) = type[18]; //! True for an outlet
|
function iec_male(type) = type[18]; //! True for an outlet
|
||||||
|
|
||||||
insert_overlap = 1.1; // chosen to make cap screws 10mm long.
|
insert_screw_length = 10;
|
||||||
|
function iec_insert_screw_length() = insert_screw_length; //! Screw length used for inserts
|
||||||
|
|
||||||
module iec(type) { //! Draw specified IEC connector
|
module iec(type) { //! Draw specified IEC connector
|
||||||
vitamin(str("iec(", type[0], "): ", iec_part(type)));
|
vitamin(str("iec(", type[0], "): ", iec_part(type)));
|
||||||
@ -181,18 +182,24 @@ module iec_screw_positions(type) //! Position children at the screw holes
|
|||||||
|
|
||||||
module iec_holes(type, h = 100, poly = false, horizontal = false, insert = false) { //! Drill the required panel holes
|
module iec_holes(type, h = 100, poly = false, horizontal = false, insert = false) { //! Drill the required panel holes
|
||||||
clearance = 0.2;
|
clearance = 0.2;
|
||||||
|
screw = iec_screw(type);
|
||||||
|
insert_type = screw_insert(screw);
|
||||||
|
insert_overlap = max(0, insert_screw_length + clearance - iec_flange_t(type) - insert_hole_length(insert_type));
|
||||||
|
|
||||||
iec_screw_positions(type)
|
iec_screw_positions(type)
|
||||||
if(insert)
|
if(insert)
|
||||||
insert_hole(screw_insert(iec_screw(type)), insert_overlap, horizontal = horizontal);
|
if(h)
|
||||||
|
insert_hole(insert_type, insert_overlap, horizontal = horizontal);
|
||||||
|
else
|
||||||
|
poly_circle(insert_hole_radius(insert_type));
|
||||||
else
|
else
|
||||||
if(horizontal)
|
if(horizontal)
|
||||||
teardrop_plus(r = screw_clearance_radius(iec_screw(type)), h = h);
|
teardrop_plus(r = screw_clearance_radius(screw), h = h);
|
||||||
else
|
else
|
||||||
if(poly)
|
if(poly)
|
||||||
poly_cylinder(r = screw_clearance_radius(iec_screw(type)), h = h, center = true);
|
poly_cylinder(r = screw_clearance_radius(screw), h = h, center = true);
|
||||||
else
|
else
|
||||||
drill(screw_clearance_radius(iec_screw(type)), h);
|
drill(screw_clearance_radius(screw), h);
|
||||||
|
|
||||||
extrude_if(h)
|
extrude_if(h)
|
||||||
hull()
|
hull()
|
||||||
@ -204,13 +211,20 @@ module iec_holes(type, h = 100, poly = false, horizontal = false, insert = false
|
|||||||
drill(iec_slot_r(type) + clearance / 2, 0);
|
drill(iec_slot_r(type) + clearance / 2, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
module iec_assembly(type, thickness) { //! Assembly with fasteners given panel thickness
|
module iec_inserts(type) { //! Place the inserts
|
||||||
|
insert = screw_insert(iec_screw(type));
|
||||||
|
|
||||||
|
iec_screw_positions(type)
|
||||||
|
insert(insert);
|
||||||
|
}
|
||||||
|
|
||||||
|
module iec_assembly(type, thickness) { //! Assembly with fasteners given panel thickness
|
||||||
screw = iec_screw(type);
|
screw = iec_screw(type);
|
||||||
washer = screw_washer(screw);
|
washer = screw_washer(screw);
|
||||||
nut = screw_nut(screw);
|
nut = screw_nut(screw);
|
||||||
insert = screw_insert(screw);
|
insert = screw_insert(screw);
|
||||||
screw_length = thickness ? screw_longer_than(iec_flange_t(type) + thickness + washer_thickness(washer) + nut_thickness(nut, true))
|
screw_length = thickness ? screw_longer_than(iec_flange_t(type) + thickness + washer_thickness(washer) + nut_thickness(nut, true))
|
||||||
: screw_shorter_than(iec_flange_t(type) + insert_hole_length(insert) + insert_overlap);
|
: insert_screw_length;
|
||||||
|
|
||||||
iec(type);
|
iec(type);
|
||||||
|
|
||||||
@ -222,7 +236,5 @@ module iec_assembly(type, thickness) { //! Assembly with fasteners given panel t
|
|||||||
translate_z(-thickness)
|
translate_z(-thickness)
|
||||||
vflip()
|
vflip()
|
||||||
nut_and_washer(nut, true);
|
nut_and_washer(nut, true);
|
||||||
else
|
|
||||||
insert(insert);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,12 +94,14 @@ module insert_hole(type, counterbore = 0, horizontal = false) { //! Make a hole
|
|||||||
}
|
}
|
||||||
|
|
||||||
module insert_boss(type, z, wall = 2 * extrusion_width) { //! Make a boss to take an insert
|
module insert_boss(type, z, wall = 2 * extrusion_width) { //! Make a boss to take an insert
|
||||||
difference() {
|
render(convexity = 3)
|
||||||
ir = insert_hole_radius(type);
|
difference() {
|
||||||
linear_extrude(height = z)
|
ir = insert_hole_radius(type);
|
||||||
poly_ring(corrected_radius(ir) + wall, insert_screw_diameter(type) / 2 + 0.1);
|
linear_extrude(height = z)
|
||||||
|
hull()
|
||||||
|
poly_ring(corrected_radius(ir) + wall, ir);
|
||||||
|
|
||||||
translate_z(z)
|
translate_z(z)
|
||||||
insert_hole(type, max(0, z - insert_hole_length(type) - 2 * layer_height));
|
insert_hole(type, max(0, z - insert_hole_length(type) - 2 * layer_height));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|