Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
95c4359421 | ||
|
bcff26a27b | ||
|
07b00fabe0 | ||
|
8ed0f3c1af | ||
|
0e8e387d35 | ||
|
0c17620adb |
BIN
libtest.png
Before Width: | Height: | Size: 776 KiB After Width: | Height: | Size: 782 KiB |
19
readme.md
@@ -3020,15 +3020,16 @@ NEMA stepper motor model.
|
||||
### Vitamins
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 24 | ```screw(M3_pan_screw, 8)``` | Screw M3 pan x 8mm |
|
||||
| 4 | ```ring_terminal(M3_ringterm)``` | Ring terminal 3mm |
|
||||
| 15 | ```screw(M3_pan_screw, 8)``` | Screw M3 pan x 8mm |
|
||||
| 1 | ```NEMA(NEMA14)``` | Stepper motor NEMA14 x 36mm |
|
||||
| 1 | ```NEMA(NEMA16)``` | Stepper motor NEMA16 x 19.2mm |
|
||||
| 1 | ```NEMA(NEMA17S)``` | Stepper motor NEMA17 x 34mm |
|
||||
| 1 | ```NEMA(NEMA17M)``` | Stepper motor NEMA17 x 40mm |
|
||||
| 1 | ```NEMA(NEMA17)``` | Stepper motor NEMA17 x 47mm |
|
||||
| 1 | ```NEMA(NEMA23)``` | Stepper motor NEMA22 x 51.2mm |
|
||||
| 24 | ```washer(M3_washer)``` | Washer M3 x 7mm x 0.5mm |
|
||||
| 24 | ```star_washer(M3_washer)``` | Washer star M3 x 0.5mm |
|
||||
| 11 | ```washer(M3_washer)``` | Washer M3 x 7mm x 0.5mm |
|
||||
| 15 | ```star_washer(M3_washer)``` | Washer star M3 x 0.5mm |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
@@ -4333,23 +4334,25 @@ The stl and assembly must be given a name and parameterless wrappers for the stl
|
||||
### Vitamins
|
||||
| Qty | Module call | BOM entry |
|
||||
| ---:|:--- |:---|
|
||||
| 4 | ```insert(F1BM3)``` | Heatfit insert M3 |
|
||||
| 4 | ```screw(M3_cap_screw, 10)``` | Screw M3 cap x 10mm |
|
||||
| 4 | ```washer(M3_washer)``` | Washer M3 x 7mm x 0.5mm |
|
||||
| 4 | ```star_washer(M3_washer)``` | Washer star M3 x 0.5mm |
|
||||
| 2 | ```ziptie(small_ziptie, 3)``` | Ziptie 2.5mm x 100mm min length |
|
||||
| 6 | ```insert(F1BM3)``` | Heatfit insert M3 |
|
||||
| 6 | ```screw(M3_cap_screw, 10)``` | Screw M3 cap x 10mm |
|
||||
| 6 | ```washer(M3_washer)``` | Washer M3 x 7mm x 0.5mm |
|
||||
| 6 | ```star_washer(M3_washer)``` | Washer star M3 x 0.5mm |
|
||||
| 3 | ```ziptie(small_ziptie, 3)``` | Ziptie 2.5mm x 100mm min length |
|
||||
|
||||
### Printed
|
||||
| Qty | Filename |
|
||||
| ---:|:--- |
|
||||
| 1 | psu_shroud_PD_150_12.stl |
|
||||
| 1 | psu_shroud_S_250_48.stl |
|
||||
| 1 | psu_shroud_S_300_12.stl |
|
||||
|
||||
### Assemblies
|
||||
| Qty | Name |
|
||||
| ---:|:--- |
|
||||
| 1 | psu_shroud_PD_150_12_assembly |
|
||||
| 1 | psu_shroud_S_250_48_assembly |
|
||||
| 1 | psu_shroud_S_300_12_assembly |
|
||||
|
||||
|
||||
<a href="#top">Top</a>
|
||||
|
@@ -71,9 +71,10 @@ def bom_to_assemblies(bom_dir, bounds_map):
|
||||
#
|
||||
# Remove the main assembly if it is a shell
|
||||
#
|
||||
ass = flat_bom[-1]
|
||||
if len(ass["assemblies"]) < 2 and not ass["vitamins"] and not ass["printed"] and not ass["routed"]:
|
||||
flat_bom = flat_bom[:-1]
|
||||
if flat_bom:
|
||||
ass = flat_bom[-1]
|
||||
if len(ass["assemblies"]) < 2 and not ass["vitamins"] and not ass["printed"] and not ass["routed"]:
|
||||
flat_bom = flat_bom[:-1]
|
||||
return [assembly["name"] for assembly in flat_bom]
|
||||
|
||||
def eop(print_mode, doc_file, last = False, first = False):
|
||||
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 201 KiB After Width: | Height: | Size: 214 KiB |
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 84 KiB |
@@ -27,8 +27,10 @@ module stepper_motors()
|
||||
rotate(180)
|
||||
NEMA(stepper_motors[$i]);
|
||||
|
||||
NEMA_screws(stepper_motors[$i], M3_pan_screw);
|
||||
translate_z(4)
|
||||
NEMA_screws(stepper_motors[$i], M3_pan_screw, n = $i, earth = $i > 4 ? undef : $i - 1);
|
||||
}
|
||||
|
||||
if($preview)
|
||||
stepper_motors();
|
||||
let($show_threads = 1)
|
||||
stepper_motors();
|
||||
|
@@ -70,7 +70,6 @@ function extrusion_corner_bracket_side_thickness(type) = type[3]; //! Thicknes
|
||||
function extrusion_corner_bracket_hole_offset(type) = type[4]; //! Hole offset from corner
|
||||
|
||||
module extrusion_corner_bracket(type) { //! Corner bracket for extrusion
|
||||
echo(type=type);
|
||||
vitamin(str("extrusion_corner_bracket(", type[0], "): Extrusion corner bracket ", type[1].z));
|
||||
|
||||
eSize = extrusion_corner_bracket_size(type).z;
|
||||
|
@@ -259,23 +259,26 @@ module psu(type) { //! Draw a power supply
|
||||
square(16, center = true);
|
||||
}
|
||||
|
||||
// earth strap
|
||||
tab_w = w / 2 + cutout[2].x;
|
||||
color("silver")
|
||||
translate([-l / 2, w / 2 - tab_w, z])
|
||||
cube([left, tab_w - bt, lt]);
|
||||
|
||||
// Earth pilar and screw
|
||||
earth_inset = 4.5;
|
||||
earth_d = 5;
|
||||
translate([-l / 2 + earth_inset, w / 2 - tab_w / 2]) {
|
||||
// if the cutout is too wide, then don't draw earth strap, pillar and screw
|
||||
if (tab_w - bt > 0) {
|
||||
// earth strap
|
||||
color("silver")
|
||||
cylinder(d = earth_d, h = z - pcb_thickness);
|
||||
translate([-l / 2, w / 2 - tab_w, z])
|
||||
cube([left, tab_w - bt, lt]);
|
||||
|
||||
translate_z(z + lt)
|
||||
not_on_bom() no_explode()
|
||||
spring_washer(M3_washer)
|
||||
screw(M3_pan_screw, 8);
|
||||
// Earth pillar and screw
|
||||
earth_inset = 4.5;
|
||||
earth_d = 5;
|
||||
translate([-l / 2 + earth_inset, w / 2 - tab_w / 2]) {
|
||||
color("silver")
|
||||
cylinder(d = earth_d, h = z - pcb_thickness);
|
||||
|
||||
translate_z(z + lt)
|
||||
not_on_bom() no_explode()
|
||||
spring_washer(M3_washer)
|
||||
screw(M3_pan_screw, 8);
|
||||
}
|
||||
}
|
||||
|
||||
// terminal block
|
||||
|
@@ -83,15 +83,76 @@ KY240W =
|
||||
// This PSU, and ones very like it, are sold by LulzBot, and various sellers on eBay.
|
||||
// The screw layout specified here uses the inner set of screw-mounts on the PSU, which are M4.
|
||||
// The outer set don't appear to be M3, even though the datasheet claims they are.
|
||||
S_300_12 =
|
||||
["S_300_12", "S-300-12", 215, 115, 50, M4_cap_screw, M4_clearance_radius, false, 0, 0, [],
|
||||
[ [[[ 215 / 2 - 32.5, 115 / 2 - 82.5],
|
||||
[ 215 / 2 - 32.5, 115 / 2 - 32.5],
|
||||
[ 215 / 2 - 182.5, 115 / 2 - 82.5],
|
||||
[ 215 / 2 - 182.5, 115 / 2 - 32.5]]]
|
||||
S_300_12 = [
|
||||
"S_300_12",
|
||||
"S-300-12",// part name
|
||||
215, 115, 50,// length, width, height
|
||||
M4_cap_screw, M4_clearance_radius,// screw type and clearance
|
||||
false,// true if ATX style
|
||||
13,// terminals bay depth
|
||||
0,// heatsink bay depth
|
||||
[// terminals
|
||||
9,// count
|
||||
18,// y offset
|
||||
st_terminals
|
||||
],
|
||||
// faces
|
||||
[
|
||||
[// f_bottom, bottom
|
||||
[// holes
|
||||
[215/2 - 32.5, 115/2 - 82.5], [215/2 - 32.5, 115/2 - 32.5], [215/2 - 182.5, 115/2 - 82.5], [215/2 - 182.5, 115/2 - 32.5]
|
||||
],
|
||||
1.5,// thickness
|
||||
[],// cutouts
|
||||
false,// grill
|
||||
[],[],[]// fan, iec, rocker
|
||||
],
|
||||
[]
|
||||
];
|
||||
[// f_top, top
|
||||
[],// holes
|
||||
0.5,// thickness
|
||||
[],// coutouts
|
||||
false,// grill
|
||||
[215/2 - 47.5, 115/2 - 37.5, fan50x15]
|
||||
],
|
||||
[// f_left, front (terminals) after rotation
|
||||
[],// holes
|
||||
0.5,// thickness
|
||||
[// cutouts
|
||||
[
|
||||
[-56, -25], [-56, -17],
|
||||
[-60, -17], [-60, 0],
|
||||
[115/2, 0], [115/2, -25]
|
||||
]
|
||||
],
|
||||
false,// grill
|
||||
],
|
||||
[// f_right, back after rotation
|
||||
[], // holes
|
||||
1.5,// thickness
|
||||
[],// cutouts
|
||||
false,// grill
|
||||
],
|
||||
[// f_front, right after rotation
|
||||
[// holes, offset from center
|
||||
[215/2 - 32.5,-15], [215/2 - 182.5,-15],
|
||||
[215/2 - 32.5, 10], [215/2 - 182.5, 10]
|
||||
],
|
||||
1.5,// thickness
|
||||
[],// cutouts
|
||||
false,// grill
|
||||
],
|
||||
[// f_back, left after rotation
|
||||
[// holes, offset from center
|
||||
[215/2 - 32.5, 15], [215/2 - 182.5, 15]
|
||||
],
|
||||
1.5,// thickness
|
||||
[],// cutouts
|
||||
false,// grill
|
||||
],
|
||||
],
|
||||
// accessories to add to BOM
|
||||
[]
|
||||
];
|
||||
|
||||
External =
|
||||
["External", "X Box", 0, 0, 0, false, false, false, 0, 0, [],
|
||||
@@ -102,3 +163,4 @@ External =
|
||||
psus = [PD_150_12, S_250_48, ATX500, KY240W, S_300_12];
|
||||
|
||||
use <psu.scad>
|
||||
|
||||
|
@@ -26,6 +26,7 @@ include <screws.scad>
|
||||
use <washer.scad>
|
||||
include <ring_terminals.scad>
|
||||
use <../utils/tube.scad>
|
||||
use <../utils/thread.scad>
|
||||
use <rod.scad>
|
||||
|
||||
function NEMA_width(type) = type[1]; //! Width of the square face
|
||||
@@ -60,6 +61,7 @@ module NEMA(type, shaft_angle = 0) { //! Draw specified NEMA stepper motor
|
||||
shaft_rad = NEMA_shaft_dia(type) / 2;
|
||||
cap = 8;
|
||||
vitamin(str("NEMA(", type[0], "): Stepper motor NEMA", round(NEMA_width(type) / 2.54), " x ", length, "mm"));
|
||||
thread_d = 3; // Is this always the case?
|
||||
|
||||
union() {
|
||||
color(stepper_body_colour) // black laminations
|
||||
@@ -75,7 +77,7 @@ module NEMA(type, shaft_angle = 0) { //! Draw specified NEMA stepper motor
|
||||
tube(or = boss_rad, ir = shaft_rad + 2, h = boss_height * 2); // raised boss
|
||||
|
||||
for(end = [-1, 1])
|
||||
translate_z(-length / 2 + end * (length - cap) / 2)
|
||||
translate_z(-length / 2 + end * (length - cap) / 2) {
|
||||
linear_extrude(height = cap, center = true)
|
||||
difference() {
|
||||
intersection() {
|
||||
@@ -85,9 +87,14 @@ module NEMA(type, shaft_angle = 0) { //! Draw specified NEMA stepper motor
|
||||
if(end > 0)
|
||||
for(x = NEMA_holes(type), y = NEMA_holes(type))
|
||||
translate([x, y])
|
||||
circle(r = 3/2);
|
||||
circle(d = thread_d);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(show_threads)
|
||||
for(x = NEMA_holes(type), y = NEMA_holes(type))
|
||||
translate([x, y, -cap / 2])
|
||||
female_metric_thread(thread_d, metric_coarse_pitch(thread_d), cap, colour = stepper_cap_colour);
|
||||
|
||||
shaft = NEMA_shaft_length(type);
|
||||
translate_z(-5)
|
||||
@@ -112,7 +119,7 @@ module NEMA(type, shaft_angle = 0) { //! Draw specified NEMA stepper motor
|
||||
module NEMA_screw_positions(type, n = 4) { //! Positions children at the screw holes
|
||||
pitch = NEMA_hole_pitch(type);
|
||||
|
||||
for($i = [0 : n - 1])
|
||||
for($i = [0 : 1 : min(n - 1, 4)])
|
||||
rotate($i * 90)
|
||||
translate([pitch / 2, pitch / 2])
|
||||
rotate($i * -90)
|
||||
|