-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathplate_x.scad
116 lines (100 loc) · 4.13 KB
/
plate_x.scad
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
include <config.scad>;
module backplate() {
$fn=64;
motor_top = 27;
roller_top = dist+sep-ex+x_rail;
render() difference() {
offset(dist) offset(-dist)
polygon([
[-carriage[0]/2, 0], [carriage[0]/2,0],
//edge inset
[ carriage[0]/2, 1.5*dist],
[ carriage[0]/2-dist, 2.5*dist],
[ carriage[0]/2-1.2*dist, roller_top-1.5*dist],
[ carriage[0]/2, roller_top-dist/2],
[ carriage[0]/2-dist/4, roller_top+.75*dist],
[ carriage[0]/2-1.5*dist, roller_top+1.75*dist],
[ dist/2+42.3/2, roller_top+dist+motor_top+42.3/2],
[-dist/2-42.3/2, roller_top+dist+motor_top+42.3/2],
[-carriage[0]/2+1.5*dist, roller_top+1.75*dist],
[-carriage[0]/2+dist/4, roller_top+.75*dist],
//edge inset
[-carriage[0]/2, roller_top-dist/2],
[-carriage[0]/2+1.2*dist, roller_top-1.5*dist],
[-carriage[0]/2+dist, 2.5*dist],
[-carriage[0]/2, 1.5*dist],
]);
//rollers
translate([-carriage[0]/2+dist,dist]) circle(r=ecc_rad);
translate([ carriage[0]/2-dist,dist]) circle(r=ecc_rad);
translate([-carriage[0]/2+dist,roller_top]) circle(r=reg_rad);
translate([ carriage[0]/2-dist,roller_top]) circle(r=reg_rad);
//center cutout
/*offset(dist) offset(-dist) polygon([
[ carriage[0]/2-2.5*dist, 2*dist],
[ carriage[0]/2-2.7*dist, roller_top-dist],
[-carriage[0]/2+2.7*dist, roller_top-dist],
[-carriage[0]/2+2.5*dist, 2*dist],
]);*/
//translate([0, roller_top+motor_top]) rotate([0,0,90]) nema23();
translate([0, roller_top+motor_top]) rotate([0,0,90]) nema17();
}
}
module frontplate() {
$fn=64;
roller_top = dist+sep-ex+x_rail;
mid = (roller_top+dist)/2;
zsep = sep-ex+z_rail;
render() difference() {
offset(dist) offset(-dist)
polygon([
[-carriage[0]/2, 0],
//bottom inset
[-carriage[0]/2+3*dist,0],
[-10,dist],
[ 10,dist],
[ carriage[0]/2-3*dist,0],
[carriage[0]/2,0],
//edge inset
[ carriage[0]/2, 1.5*dist],
[ carriage[0]/2-dist, 2.5*dist],
[ carriage[0]/2-1.2*dist, roller_top-1.5*dist],
[ carriage[0]/2, roller_top-dist/2],
[ carriage[0]/2-dist/4, roller_top+dist],
//top inset
[-carriage[0]/2+3*dist,roller_top+dist],
[-10,roller_top],
[ 10,roller_top],
[ carriage[0]/2-3*dist,roller_top+dist],
[-carriage[0]/2+dist/4, roller_top+dist],
//edge inset
[-carriage[0]/2, roller_top-dist/2],
[-carriage[0]/2+1.2*dist, roller_top-1.5*dist],
[-carriage[0]/2+dist, 2.5*dist],
[-carriage[0]/2, 1.5*dist],
]);
//rollers
translate([-carriage[0]/2+dist,dist]) circle(r=ecc_rad);
translate([ carriage[0]/2-dist,dist]) circle(r=ecc_rad);
translate([-carriage[0]/2+dist,roller_top]) circle(r=reg_rad);
translate([ carriage[0]/2-dist,roller_top]) circle(r=reg_rad);
//acme block mount
translate([-10, mid]) circle(r=reg_rad);
translate([ 10, mid]) circle(r=reg_rad);
//Z rollers
translate([0,mid]) {
translate([ zsep/2,-spacer_sep]) circle(r=ecc_rad);
translate([ zsep/2, spacer_sep]) circle(r=ecc_rad);
//translate([ zsep/2,-10]) circle(r=reg_rad);
//translate([ zsep/2,10]) circle(r=reg_rad);
//translate([ zsep/2,0]) circle(r=ecc_rad);
//translate([-zsep/2,0]) circle(r=reg_rad);
//translate([-zsep/2, 10]) circle(r=reg_rad);
//translate([-zsep/2,-10]) circle(r=reg_rad);
translate([-zsep/2, spacer_sep]) circle(r=reg_rad);
translate([-zsep/2,-spacer_sep]) circle(r=reg_rad);
}
}
}
translate([0,-100]) frontplate();
backplate();