-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstepper_holder.scad
More file actions
44 lines (37 loc) · 1.34 KB
/
stepper_holder.scad
File metadata and controls
44 lines (37 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
use <utils.scad>;
use <screws.scad>;
// holder for mounting nema 17
// @param size total size
module nema17_holder(size) {
// parameters
z_plus = 0.1; // how much thicker to make cutouts in z
nema17_size = [43, 43, size[2]];
screws = ["M3", 15.5, 15.5, 0.25];
gap = nema17_size[0]/2 - screws[1]; // this cal only works with square profile
// assemble
difference() {
xy_center_cube(size);
// screw holes
for(x=[-1, 1])
for(y=[-1, 1])
translate([x*screws[1], y*screws[2], 0])
machine_screw(screws[0], size[2], tolerance = screws[3], z_plus = z_plus);
// nema cut out
translate([0, 0, -z_plus])
resize([0, 0, nema17_size[2] + 2*z_plus])
difference() {
xy_center_cube(nema17_size);
for(x=[-1, 1])
for(y=[-1, 1]) {
translate([x*screws[1], y*screws[2], -z_plus])
cylinder(size[2]+2*z_plus, d=6, center=false, $fn = 30);
translate([x*screws[1] + x*gap/2, y*screws[2] + y*gap/2, -z_plus])
xy_center_cube([gap, 2*gap, size[2]+2*z_plus]);
translate([x*screws[1] + x*gap/2, y*screws[2] + y*gap/2, -z_plus])
xy_center_cube([2*gap, gap, size[2]+2*z_plus]);
}
}
}
}
color("green") nema17_holder([50, 50, 5]);
translate([0, 0, -30]) nema17_holder([60, 80, 10]);