Parcourir la source

add am8 mounting plates

Thomas Buck il y a 2 ans
Parent
révision
0f10aa42fd

+ 38
- 0
am8/bottom_corner_5mm.scad Voir le fichier

@@ -0,0 +1,38 @@
1
+$fn = 42;
2
+
3
+module prism(l, w, h) {
4
+    polyhedron(
5
+        points = [[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
6
+        faces = [[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
7
+    );
8
+}
9
+
10
+difference() {
11
+    union() {
12
+        color("green")
13
+        hull() {
14
+            cube([60, 20, 5]);
15
+            cube([20, 60, 5]);
16
+        }
17
+        
18
+        color("red")
19
+        translate([25, 7.5, 5])
20
+        cube([35, 5, 1]);
21
+        
22
+        color("red")
23
+        translate([7.5, 25, 5])
24
+        cube([5, 35, 1]);
25
+    }
26
+    
27
+    translate([20, 20 + 23, -1])
28
+    rotate([0, -90, 180])
29
+    prism(7, 23, 23);
30
+    
31
+    for (i = [10, 30, 50])
32
+    translate([i, 10, -1])
33
+    cylinder(d = 5.2, h = 8);
34
+    
35
+    for (i = [30, 50])
36
+    translate([10, i, -1])
37
+    cylinder(d = 5.2, h = 8);
38
+} 

BIN
am8/bottom_corner_5mm.stl Voir le fichier


+ 107
- 0
am8/cable_tie.scad Voir le fichier

@@ -0,0 +1,107 @@
1
+wall = 4.0;
2
+screw_dia = 5.2;
3
+screw_head = 10.0;
4
+screw_bottom = 2.0;
5
+width = 40.0;
6
+height = 25.0;
7
+screw_off_x = 10.0;
8
+screw_off_y = 10.0;
9
+screw_dist = 24.15 - 9.35;
10
+
11
+tie_off_z = 2.0;
12
+cabletie_width = 3.2;
13
+cabletie_height = 2.0;
14
+tie_wall_side = 1.0;
15
+tie_wall_top = 1.0;
16
+tie_wall = 5.0;
17
+tie_width = cabletie_width + 2 * tie_wall_side;
18
+tie_height = cabletie_height + 2 * tie_wall_top;
19
+tie_add_bottom = 2.0;
20
+
21
+$fn = 42;
22
+
23
+module cable() {
24
+    translate([-(tie_width + tie_add_bottom) / 2, -(tie_wall + tie_add_bottom) / 2, 0])
25
+    translate([tie_add_bottom / 2, tie_add_bottom / 2, 0])
26
+    difference() {
27
+        hull() {
28
+            cube([tie_width, tie_wall, tie_height + tie_off_z]);
29
+            
30
+            translate([-tie_add_bottom / 2, -tie_add_bottom / 2, 0])
31
+            cube([tie_width + tie_add_bottom, tie_wall + tie_add_bottom, 0.1]);
32
+        }
33
+        
34
+        translate([(tie_width - cabletie_width) / 2, -1, (tie_height - cabletie_height) / 2 + tie_off_z])
35
+        cube([cabletie_width, tie_wall + 2, cabletie_height]);
36
+    }
37
+}
38
+
39
+module x_tie() {
40
+    difference() {
41
+        union() {
42
+            cube([width, height, wall]);
43
+            
44
+            translate([5 + 1, 20 - 1, wall])
45
+            rotate([0, 0, -45])
46
+            cable();
47
+        }
48
+        
49
+        for (i = [0, screw_dist])
50
+        translate([width - screw_off_x - i, screw_off_y, 0]) {
51
+            translate([0, 0, -1])
52
+            cylinder(d = screw_dia, h = wall + 2);
53
+            
54
+            translate([0, 0, screw_bottom])
55
+            cylinder(d = screw_head, h = wall + 2);
56
+        }
57
+    }
58
+}
59
+
60
+rail = 20;
61
+rail_wall = 2.0;
62
+rail_h = cabletie_height + 2 * rail_wall;
63
+rail_screw = 3.2;
64
+rail_screw_head = 6.0;
65
+rail_screw_len = 3.5;
66
+
67
+module rail_tie(rot) {
68
+    difference() {
69
+        union() {
70
+            cube([rail, rail, rail_h]);
71
+            
72
+            translate([(rail - (rail / 4)) / 2, 0, rail_h])
73
+            cube([rail / 4, rail, 1]);
74
+        }
75
+        
76
+        translate([rail / 2, rail / 2, -1]) {
77
+            cylinder(d = rail_screw, h = rail_h + 3);
78
+            cylinder(d = rail_screw_head, h = rail_screw_len + 1);
79
+        }
80
+        
81
+        for (x = [1, 4])
82
+        if (rot) {
83
+            translate([-1, (rail - rail_screw) / x - cabletie_width / 2, rail_wall])
84
+            cube([rail + 2, cabletie_width, cabletie_height]);
85
+        } else {
86
+            translate([(rail - rail_screw) / x - cabletie_width / 2, -1, rail_wall])
87
+            cube([cabletie_width, rail + 2, cabletie_height]);
88
+        }
89
+    }
90
+}
91
+
92
+module rail_assembly() {
93
+    %translate([0, -50, rail_h])
94
+    cube([20, 100, 20]);
95
+    
96
+    translate([0, 10, 0])
97
+    rail_tie(0);
98
+    
99
+    translate([0, -10 - rail, 0])
100
+    rail_tie(1);
101
+}
102
+
103
+rail_assembly();
104
+
105
+//x_tie();
106
+//rail_tie(0);
107
+//rail_tie(1);

BIN
am8/cable_tie_rails.stl Voir le fichier


BIN
am8/cable_tie_x.stl Voir le fichier


+ 80
- 0
am8/mosfet_mount.scad Voir le fichier

@@ -0,0 +1,80 @@
1
+mosfet_width = 70;
2
+mosfet_height = 60;
3
+mosfet_depth = 2;
4
+
5
+mosfet_holes_x = 63;
6
+mosfet_holes_y = 53;
7
+mosfet_dia = 3.2;
8
+
9
+wall = 5.0;
10
+mosfet_wall_dist = 5.0;
11
+mosfet_mount_dist = 2.0;
12
+mount_dia = 4.2;
13
+
14
+cutout_len = 30;
15
+cutout_dist = 4;
16
+
17
+$fn = 42;
18
+
19
+module prism(l, w, h) {
20
+    polyhedron(
21
+        points = [[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
22
+        faces = [[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
23
+    );
24
+}
25
+
26
+module mosfet() {
27
+    cube([mosfet_width, mosfet_height, mosfet_depth]);
28
+    
29
+    for (x = [-1, 1])
30
+    for (y = [-1, 1])
31
+    translate([mosfet_width / 2 + x * mosfet_holes_x / 2, mosfet_height / 2 + y * mosfet_holes_y / 2, -mosfet_mount_dist - wall - 1])
32
+    cylinder(d = mosfet_dia - 0.2, h = mosfet_mount_dist + wall + 1);
33
+}
34
+
35
+module mount() {
36
+    translate([0, -wall, 0])
37
+    difference() {
38
+        union() {
39
+            cube([mosfet_width + mosfet_wall_dist + 20, wall, mosfet_height]);
40
+            
41
+            translate([mosfet_width + mosfet_wall_dist + 7.5, wall, 0])
42
+            cube([5, 1, mosfet_height]);
43
+            
44
+            for (x = [-1, 1])
45
+            for (y = [-1, 1])
46
+            translate([mosfet_width / 2 + x * mosfet_holes_x / 2, wall, mosfet_height / 2 + y * mosfet_holes_y / 2])
47
+            rotate([-90, 0, 0])
48
+            cylinder(d = 7, h = mosfet_mount_dist);
49
+        }
50
+        
51
+        for (i = [-15, 15])
52
+        translate([mosfet_width + mosfet_wall_dist + 10, -1, mosfet_height / 2 + i])
53
+        rotate([-90, 0, 0])
54
+        cylinder(d = mount_dia, h = wall + 3);
55
+        
56
+        for (x = [-1, 1])
57
+        for (y = [-1, 1])
58
+        translate([mosfet_width / 2 + x * mosfet_holes_x / 2, -1, mosfet_height / 2 + y * mosfet_holes_y / 2])
59
+        rotate([-90, 0, 0])
60
+        cylinder(d = mosfet_dia, h = wall + mosfet_mount_dist + 2);
61
+        
62
+        for (i = [0, 1, 2, 3])
63
+        translate([mosfet_width / 2, 0, mosfet_height / 2])
64
+        rotate([0, 90 * i, 0])
65
+        translate([cutout_len * sqrt(2) / 2 + cutout_dist, -1, -cutout_len * sqrt(2) / 2])
66
+        rotate([45, 0, 90])
67
+        prism(wall + 2, cutout_len, cutout_len);
68
+    }
69
+}
70
+
71
+module assembly() {
72
+    %translate([0, mosfet_mount_dist, mosfet_height])
73
+    rotate([-90, 0, 0])
74
+    mosfet();
75
+    
76
+    mount();
77
+}
78
+
79
+rotate([90, 0, 0])
80
+assembly();

BIN
am8/mosfet_mount.stl Voir le fichier


+ 85
- 0
am8/pi_mount.scad Voir le fichier

@@ -0,0 +1,85 @@
1
+pi_width = 85;
2
+pi_height = 56;
3
+pi_hole_dist_x = 58;
4
+pi_hole_dist_y = 49;
5
+pi_hole_off_x = 3.5;
6
+pi_hole_off_y = 3.5;
7
+pi_hole = 2.8;
8
+
9
+wall = 5.0;
10
+pi_wall_dist = 10;
11
+pi_mount_dist = 5.0;
12
+pi_mount_post_top = 6.3;
13
+pi_mount_post_bot = 10.0;
14
+mount_dia = 4.2;
15
+
16
+mount_width = pi_hole_dist_x + pi_wall_dist + 20 + pi_hole_off_x + pi_hole / 2 + wall;
17
+mount_height = pi_height + 5;
18
+
19
+$fn = 42;
20
+
21
+module prism(l, w, h) {
22
+    polyhedron(
23
+        points = [[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
24
+        faces = [[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
25
+    );
26
+}
27
+
28
+module cutout(l, o) {
29
+    for (r = [0, 90, 180, 270])
30
+    rotate([r + 45, 0, -90])
31
+    translate([0, -l - o, o])
32
+    prism(wall + 2, l, l);
33
+}
34
+
35
+module holes(h, d1 = pi_hole, d2 = pi_hole) {
36
+    for (x = [0, pi_hole_dist_x])
37
+    for (y = [0, pi_hole_dist_y])
38
+    translate([pi_hole_off_x + x, 0, pi_hole_off_y + y])
39
+    rotate([90, 0, 0])
40
+    cylinder(d1 = d1, d2 = d2, h = h);
41
+}
42
+
43
+module pi() {
44
+    cube([pi_width, 2.0, pi_height]);
45
+    
46
+    translate([0, 10, 0])
47
+    holes(20);
48
+}
49
+
50
+module mount() {
51
+    difference() {
52
+        union() {
53
+            cube([mount_width, wall, mount_height]);
54
+            
55
+            translate([7.5, wall, 0])
56
+            cube([5, 1, mount_height]);
57
+            
58
+            translate([20 + pi_wall_dist, pi_mount_dist + wall, (mount_height - pi_height) / 2])
59
+            holes(pi_mount_dist, pi_mount_post_top, pi_mount_post_bot);
60
+        }
61
+        
62
+        for (z = [mount_height / 4, mount_height / 4 * 3])
63
+        translate([10, -1, z])
64
+        rotate([-90, 0, 0])
65
+        cylinder(d = mount_dia, h = wall + 3);
66
+        
67
+        translate([20 + pi_wall_dist, wall + pi_mount_dist + 1, (mount_height - pi_height) / 2])
68
+        holes(wall + pi_mount_dist + 2);
69
+        
70
+        translate([63, wall + 1, 30])
71
+        cutout(30, 2);
72
+    }
73
+}
74
+
75
+module assembly() {
76
+    %cube([20, 40, 100]);
77
+    
78
+    %translate([20 + pi_wall_dist, pi_mount_dist, 20])
79
+    pi();
80
+    
81
+    translate([0, -wall, 20 - (mount_height - pi_height) / 2])
82
+    mount();
83
+}
84
+
85
+assembly();

BIN
am8/pi_mount.stl Voir le fichier


+ 237
- 0
am8/psu_mount.scad Voir le fichier

@@ -0,0 +1,237 @@
1
+
2
+psu_width = 112.7;
3
+psu_height = 49.8;
4
+psu_length = 216;
5
+psu_screw = 4.2;
6
+psu_screw_off_x = 29.5 + 3.2 / 2;
7
+psu_screw_off_y = 29.35 + 3.2 / 2;
8
+psu_screw_dist_x = 53.3 - 3.2;
9
+psu_screw_dist_y = 154.3 - 3.2;
10
+
11
+psu_wall_dist = 10;
12
+mount_wall = 5.0;
13
+mount_width = 12.0;
14
+mount_height = 70;
15
+mount_screw = 4.2;
16
+
17
+$fn = 42;
18
+
19
+module prism(l, w, h) {
20
+    polyhedron(
21
+        points = [[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
22
+        faces = [[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
23
+    );
24
+}
25
+
26
+module psu() {
27
+    cube([psu_width, psu_height, psu_length]);
28
+    
29
+    for (x = [0, psu_screw_dist_x])
30
+    for (y = [0, psu_screw_dist_y])
31
+    translate([psu_screw_off_x + x, 0, psu_screw_off_y + y])
32
+    rotate([90, 0, 0])
33
+    cylinder(d = psu_screw - 1.0, h = 10.0);
34
+}
35
+
36
+module mount_geo() {
37
+    difference() {
38
+        union() {
39
+            hull() {
40
+                translate([psu_width - psu_screw_off_x - psu_screw_dist_x - mount_width, -mount_wall, -mount_width / 2])
41
+                cube([psu_screw_dist_x + psu_screw_off_x + psu_wall_dist + mount_width, mount_wall, mount_width]);
42
+                
43
+                translate([psu_width + psu_wall_dist, -mount_wall, -mount_width / 2])
44
+                cube([20, mount_wall, mount_height]);
45
+            }
46
+            
47
+            translate([psu_width + psu_wall_dist + 7.5, 0, -mount_width / 2])
48
+            cube([5, 1, mount_height]);
49
+        }
50
+        
51
+        translate([psu_screw_off_x + 8, 1, mount_width / 2])
52
+        rotate([0, 0, -90])
53
+        prism(mount_wall + 2, psu_width - psu_screw_off_x + psu_wall_dist - 8, mount_height - mount_width - mount_wall - 8);
54
+        
55
+        for (x = [0, psu_screw_dist_x])
56
+        translate([psu_screw_off_x + x, 1, 0])
57
+        rotate([90, 0, 0])
58
+        cylinder(d = psu_screw, h = mount_wall + 2);
59
+        
60
+        for (y = [0, (mount_height - mount_width) / 2, mount_height - mount_width])
61
+        translate([psu_width + psu_wall_dist + 10, 2, y])
62
+        rotate([90, 0, 0])
63
+        cylinder(d = mount_screw, h = mount_wall + 3);
64
+    }
65
+}
66
+
67
+module mount(type) {
68
+    scale([1, 1, -1 * (type * 2 - 1)])
69
+    mount_geo();
70
+}
71
+
72
+relais_width = 50;
73
+relais_height = 26;
74
+relais_depth = 17;
75
+relais_screw = 3.2;
76
+relais_screw_dist_x = 44.8;
77
+relais_screw_dist_y = 21.1;
78
+relais_mount_off_y = 30;
79
+
80
+relais_wall_dist = relais_mount_off_y;
81
+mount_relais_wall = 5.0;
82
+mount_relais_screw = 4.2;
83
+relais_screw_off_x = (relais_width - relais_screw_dist_x) / 2;
84
+relais_screw_off_y = (relais_height - relais_screw_dist_y) / 2;
85
+mount_relais_width = relais_width + 2 * mount_relais_wall;
86
+mount_relais_width_add = (psu_width - relais_width) / 2 + mount_relais_wall + 20;
87
+mount_relais_height = relais_height + 2 * mount_relais_wall;
88
+
89
+module relais() {
90
+    cube([relais_width, 5, relais_height]);
91
+    
92
+    translate([relais_width / 2 - 5, 5, relais_height / 2 - 5])
93
+    cube([10, relais_depth - 5, 10]);
94
+    
95
+    for (x = [-1, 1])
96
+    for (y = [-1, 1])
97
+    translate([relais_width / 2 + x * relais_screw_dist_x / 2, 0, relais_height / 2 + y * relais_screw_dist_y / 2])
98
+    rotate([90, 0, 0])
99
+    cylinder(d = relais_screw, h = 10);
100
+}
101
+
102
+module cutout(l, o) {
103
+    for (r = [0, 90, 180, 270])
104
+    rotate([r + 45, 0, -90])
105
+    translate([0, -l - o, o])
106
+    prism(mount_relais_wall + 2, l, l);
107
+}
108
+
109
+module mount_relais() {
110
+    difference() {
111
+        union() {
112
+            translate([-mount_relais_wall, -mount_relais_wall, -mount_relais_wall])
113
+            cube([mount_relais_width + mount_relais_width_add, mount_relais_wall, mount_relais_height]);
114
+                
115
+            translate([mount_relais_width + mount_relais_width_add - mount_relais_wall - 12.5, 0, -mount_relais_wall])
116
+            cube([5, 1, mount_relais_height]);
117
+        }
118
+        
119
+        for (x = [-1, 1])
120
+        for (y = [-1, 1])
121
+        translate([relais_width / 2 + x * relais_screw_dist_x / 2, 1, relais_height / 2 + y * relais_screw_dist_y / 2])
122
+        rotate([90, 0, 0])
123
+        cylinder(d = relais_screw, h = 10);
124
+        
125
+        for (y = [0, mount_relais_height - mount_relais_wall * 2])
126
+        translate([mount_relais_width + mount_relais_width_add - mount_relais_wall - 10, 2, y])
127
+        rotate([90, 0, 0])
128
+        cylinder(d = mount_relais_screw, h = mount_relais_wall + 3);
129
+        
130
+        translate([24, 1, 13])
131
+        cutout(15, 2);
132
+        translate([70, 1, 13])
133
+        cutout(15, 2);
134
+    }
135
+}
136
+
137
+psu2_width = 70.25;
138
+psu2_height = 31.2;
139
+psu2_length = 39.0;
140
+psu2_screw = 3.2;
141
+psu2_screw_off_x = 5.0 - 3.2 / 2;
142
+psu2_screw_off_y = 11.6 + 3.2 / 2;
143
+psu2_screw_dist_x = 59.6 + 3.2;
144
+psu2_screw_dist_y = 0;
145
+
146
+module psu2() {
147
+    cube([psu2_width, psu2_height, psu2_length]);
148
+    
149
+    for (x = [0, psu2_screw_dist_x])
150
+    for (y = [0, psu2_screw_dist_y])
151
+    translate([psu2_screw_off_x + x, 0, psu2_screw_off_y + y])
152
+    rotate([90, 0, 0])
153
+    cylinder(d = psu2_screw - 1.0, h = 10.0);
154
+}
155
+
156
+psu2_mount_off_y = relais_mount_off_y;
157
+psu2_wall_dist = (psu_width - psu2_width) / 2 + psu_wall_dist;
158
+mount2_wall = 5.0;
159
+mount2_width = 8.0;
160
+mount2_height = 50;
161
+mount2_screw = 4.2;
162
+
163
+module mount2() {
164
+    difference() {
165
+        union() {
166
+            hull() {
167
+                translate([psu2_width - psu2_screw_off_x - psu2_screw_dist_x - mount2_width, -mount2_wall, -mount2_width / 2])
168
+                cube([psu2_screw_dist_x + psu2_screw_off_x + psu2_wall_dist + mount2_width, mount2_wall, mount2_width]);
169
+                
170
+                translate([psu2_width + psu2_wall_dist, -mount2_wall, -mount2_width / 2])
171
+                cube([20, mount2_wall, mount2_height]);
172
+            }
173
+            
174
+            translate([psu2_width + psu2_wall_dist + 7.5, 0, -mount2_width / 2])
175
+            cube([5, 1, mount2_height]);
176
+        }
177
+        
178
+        translate([psu2_screw_off_x + 8, 1, mount2_width / 2])
179
+        rotate([0, 0, -90])
180
+        prism(mount2_wall + 2, psu2_width - psu2_screw_off_x + psu2_wall_dist - 8, mount2_height - mount2_width - mount2_wall - 8 + 5);
181
+        
182
+        for (x = [0, psu2_screw_dist_x])
183
+        translate([psu2_screw_off_x + x, 1, 0])
184
+        rotate([90, 0, 0])
185
+        cylinder(d = psu2_screw, h = mount2_wall + 2);
186
+        
187
+        for (y = [0, mount2_height - mount2_width])
188
+        translate([psu2_width + psu2_wall_dist + 10, 2, y])
189
+        rotate([90, 0, 0])
190
+        cylinder(d = mount2_screw, h = mount2_wall + 3);
191
+    }
192
+}
193
+
194
+module assembly() {
195
+    %psu();
196
+    
197
+    %translate([psu_width + psu_wall_dist, 0, 0])
198
+    cube([20, 40, 400]);
199
+    
200
+    for (i = [0, 1])
201
+    translate([0, 0, psu_screw_off_y + i * psu_screw_dist_y])
202
+    mount(i);
203
+    
204
+    %translate([(psu_width - relais_width) / 2, 0, psu_length + relais_mount_off_y])
205
+    relais();
206
+    
207
+    %translate([(psu_width - psu2_width) / 2, 0, psu_length + relais_mount_off_y + relais_height + psu2_mount_off_y])
208
+    psu2();
209
+    
210
+    translate([(psu_width - psu2_width) / 2, 0, psu_length + relais_mount_off_y + relais_height + psu2_mount_off_y + psu2_screw_off_y])
211
+    mount2();
212
+    
213
+    translate([(psu_width - relais_width) / 2, 0, psu_length + relais_mount_off_y])
214
+    mount_relais();
215
+}
216
+
217
+module print() {
218
+    translate([0, 0, mount_wall])
219
+    rotate([90, 0, 0])
220
+    mount(0);
221
+    
222
+    translate([0, 40, mount_wall])
223
+    rotate([90, 0, 0])
224
+    mount(1);
225
+    
226
+    translate([-150, 40, mount2_wall])
227
+    rotate([90, 0, 0])
228
+    mount2();
229
+    
230
+    translate([-150, -30, mount_relais_wall])
231
+    rotate([90, 0, 0])
232
+    mount_relais();
233
+}
234
+
235
+//assembly();
236
+//print();
237
+mount_relais();

BIN
am8/psu_mount.stl Voir le fichier


BIN
am8/psu_mount_2.stl Voir le fichier


BIN
am8/relais_mount.stl Voir le fichier


+ 116
- 0
am8/skr_mini_mount.scad Voir le fichier

@@ -0,0 +1,116 @@
1
+pcb_width = 70.25;
2
+pcb_height = 103.75;
3
+pcb_depth = 2;
4
+
5
+pcb_holes = [
6
+    [ 32.05, 5.53 ],
7
+    [ 29.41, 37.34 ],
8
+    [ pcb_width - 3.22, 23.39 ],
9
+    [ pcb_width - 3.02, pcb_height - 18.20 ],
10
+    [ 2.56, pcb_height - 2.53 ]
11
+];
12
+hole_support_dia = 2.53 * 2; // min value of pcb_holes * 2
13
+pcb_dia = 3.2;
14
+
15
+wall = 5.0;
16
+pcb_wall_dist = 15;
17
+pcb_mount_dist = 5.0;
18
+mount_dia = 4.2;
19
+
20
+mounting_holes = [
21
+    pcb_height * 1 / 8,
22
+    pcb_height * 4 / 8,
23
+    pcb_height * 7 / 8
24
+];
25
+
26
+cutouts = [
27
+    [ 12.5, 2, 10, -30 ],
28
+    [ 12.5, 2, 35, -30 ],
29
+    [ 12.5, 2, -15, -30 ],
30
+    
31
+    [ 12.5, 2, 10, -5 ],
32
+    [ 12.5, 2, 35, -5 ],
33
+    [ 12.5, 2, -15, -5 ],
34
+    
35
+    [ 12.5, 2, 10, 30 ],
36
+    [ 12.5, 2, 35, 30 ],
37
+    [ 12.5, 2, -15, 30 ],
38
+    
39
+    /*
40
+    [ 20, 4, -5, -22.5 ],
41
+    [ 20, 4, 35, -22.5 ],
42
+    [ 25, 4, 32.5, 22.5 ],
43
+    [ 10, 4, -12.5, 35 ],
44
+    [ 10, 4, -12.5, 10 ],
45
+    */
46
+];
47
+
48
+$fn = 42;
49
+
50
+module prism(l, w, h) {
51
+    polyhedron(
52
+        points = [[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
53
+        faces = [[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
54
+    );
55
+}
56
+
57
+module holes(dia, height) {
58
+    for (h = [0 : len(pcb_holes) - 1])
59
+    translate([pcb_width - pcb_holes[h][0], pcb_holes[h][1], 0])
60
+    cylinder(d = dia, h = height);
61
+}
62
+
63
+module pcb() {
64
+    cube([pcb_width, pcb_height, pcb_depth]);
65
+    
66
+    translate([0, 0, -pcb_mount_dist - wall - 1])
67
+    holes(pcb_dia - 0.2, pcb_mount_dist + wall + 1);
68
+}
69
+
70
+module mount() {
71
+    translate([0, -wall, 0])
72
+    difference() {
73
+        union() {
74
+            cube([pcb_width + pcb_wall_dist + 20, wall, pcb_height]);
75
+            
76
+            translate([pcb_width + pcb_wall_dist + 7.5, wall, 0])
77
+            cube([5, 1, pcb_height]);
78
+            
79
+            translate([0, wall, pcb_height])
80
+            rotate([-90, 0, 0])
81
+            holes(hole_support_dia, pcb_mount_dist);
82
+        }
83
+        
84
+        for (i = mounting_holes)
85
+        translate([pcb_width + pcb_wall_dist + 10, -1, i])
86
+        rotate([-90, 0, 0])
87
+        cylinder(d = mount_dia, h = wall + 3);
88
+        
89
+        translate([0, -1, pcb_height])
90
+        rotate([-90, 0, 0])
91
+        holes(pcb_dia, wall + pcb_mount_dist + 2);
92
+        
93
+        for (c = [0 : len(cutouts) - 1])
94
+        for (i = [0, 1, 2, 3])
95
+        translate([pcb_width / 2 + cutouts[c][2], 0, pcb_height / 2 + cutouts[c][3]])
96
+        rotate([0, 90 * i, 0])
97
+        translate([cutouts[c][0] * sqrt(2) / 2 + cutouts[c][1], -1, -cutouts[c][0] * sqrt(2) / 2])
98
+        rotate([45, 0, 90])
99
+        prism(wall + 2, cutouts[c][0], cutouts[c][0]);
100
+    }
101
+}
102
+
103
+module assembly() {
104
+    %translate([0, pcb_mount_dist, pcb_height])
105
+    rotate([-90, 0, 0])
106
+    pcb();
107
+    
108
+    mount();
109
+}
110
+
111
+//translate([0, 0, pcb_height])
112
+//rotate([0, 180, 0])
113
+
114
+rotate([90, 0, 0])
115
+
116
+assembly();

BIN
am8/skr_mini_mount.stl Voir le fichier


+ 80
- 0
am8/switching_supply_mount.scad Voir le fichier

@@ -0,0 +1,80 @@
1
+mosfet_width = 60 + 3;
2
+mosfet_height = 40 + 3;
3
+mosfet_depth = 2;
4
+
5
+mosfet_holes_x = 56;
6
+mosfet_holes_y = 36;
7
+mosfet_dia = 2.2;
8
+
9
+wall = 5.0;
10
+mosfet_wall_dist = 15.0;
11
+mosfet_mount_dist = 2.0;
12
+mount_dia = 4.2;
13
+
14
+cutout_len = 20;
15
+cutout_dist = 4;
16
+
17
+$fn = 42;
18
+
19
+module prism(l, w, h) {
20
+    polyhedron(
21
+        points = [[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
22
+        faces = [[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
23
+    );
24
+}
25
+
26
+module mosfet() {
27
+    cube([mosfet_width, mosfet_height, mosfet_depth]);
28
+    
29
+    for (x = [-1, 1])
30
+    for (y = [-1, 1])
31
+    translate([mosfet_width / 2 + x * mosfet_holes_x / 2, mosfet_height / 2 + y * mosfet_holes_y / 2, -mosfet_mount_dist - wall - 1])
32
+    cylinder(d = mosfet_dia - 0.2, h = mosfet_mount_dist + wall + 1);
33
+}
34
+
35
+module mount() {
36
+    translate([0, -wall, 0])
37
+    difference() {
38
+        union() {
39
+            cube([mosfet_width + mosfet_wall_dist + 20, wall, mosfet_height]);
40
+            
41
+            translate([mosfet_width + mosfet_wall_dist + 7.5, wall, 0])
42
+            cube([5, 1, mosfet_height]);
43
+            
44
+            for (x = [-1, 1])
45
+            for (y = [-1, 1])
46
+            translate([mosfet_width / 2 + x * mosfet_holes_x / 2, wall, mosfet_height / 2 + y * mosfet_holes_y / 2])
47
+            rotate([-90, 0, 0])
48
+            cylinder(d = 7, h = mosfet_mount_dist);
49
+        }
50
+        
51
+        for (i = [-15, 15])
52
+        translate([mosfet_width + mosfet_wall_dist + 10, -1, mosfet_height / 2 + i])
53
+        rotate([-90, 0, 0])
54
+        cylinder(d = mount_dia, h = wall + 3);
55
+        
56
+        for (x = [-1, 1])
57
+        for (y = [-1, 1])
58
+        translate([mosfet_width / 2 + x * mosfet_holes_x / 2, -1, mosfet_height / 2 + y * mosfet_holes_y / 2])
59
+        rotate([-90, 0, 0])
60
+        cylinder(d = mosfet_dia, h = wall + mosfet_mount_dist + 2);
61
+        
62
+        for (i = [0, 1, 2, 3])
63
+        translate([mosfet_width / 2, 0, mosfet_height / 2])
64
+        rotate([0, 90 * i, 0])
65
+        translate([cutout_len * sqrt(2) / 2 + cutout_dist, -1, -cutout_len * sqrt(2) / 2])
66
+        rotate([45, 0, 90])
67
+        prism(wall + 2, cutout_len, cutout_len);
68
+    }
69
+}
70
+
71
+module assembly() {
72
+    %translate([0, mosfet_mount_dist, mosfet_height])
73
+    rotate([-90, 0, 0])
74
+    mosfet();
75
+    
76
+    mount();
77
+}
78
+
79
+rotate([90, 0, 0])
80
+assembly();

BIN
am8/switching_supply_mount.stl Voir le fichier


+ 44
- 0
am8/top_corner_5mm.scad Voir le fichier

@@ -0,0 +1,44 @@
1
+$fn = 42;
2
+
3
+module prism(l, w, h) {
4
+    polyhedron(
5
+        points = [[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
6
+        faces = [[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
7
+    );
8
+}
9
+
10
+difference() {
11
+    union() {
12
+        color("green")
13
+        hull() {
14
+            cube([80, 40, 5]);
15
+            cube([40, 80, 5]);
16
+        }
17
+        
18
+        color("red")
19
+        for (i = [0, 20])
20
+        translate([45, 7.5 + i, 5])
21
+        cube([35, 5, 1]);
22
+        
23
+        color("red")
24
+        for (i = [0, 20])
25
+        translate([7.5 + i, 45, 5])
26
+        cube([5, 35, 1]);
27
+    }
28
+    
29
+    translate([40, 40 + 23, -1])
30
+    rotate([0, -90, 180])
31
+    prism(7, 23, 23);
32
+    
33
+    for (i = [30, 70])
34
+    translate([i, 10, -1])
35
+    cylinder(d = 5.2, h = 8);
36
+    
37
+    for (i = [10, 70])
38
+    translate([i, 30, -1])
39
+    cylinder(d = 5.2, h = 8);
40
+    
41
+    for (i = [10, 30])
42
+    translate([i, 70, -1])
43
+    cylinder(d = 5.2, h = 8);
44
+} 

BIN
am8/top_corner_5mm.stl Voir le fichier


+ 102
- 0
am8/y_bearing_mount.scad Voir le fichier

@@ -0,0 +1,102 @@
1
+bearing_dia = 15.0;
2
+bearing_len = 23.8;
3
+mount_hole = bearing_dia + 0.4;
4
+hole_dia = 4.2;
5
+hole_dist_x = 24.0;
6
+hole_dist_y = 18.0;
7
+screw_nut = 7.75;
8
+screw_nut_off = 2.5;
9
+base_side = 5.0;
10
+base_wall = 5.0;
11
+mount_bearing_dist = 13.0;
12
+shim_width = 16.0;
13
+cutout = 5.0;
14
+top_screw_dia = 3.2;
15
+top_screw_head = 6.0;
16
+top_screw_head_off = base_side;
17
+top_screw_nut = 6.2;
18
+top_screw_nut_off = 3.0;
19
+
20
+base_width = hole_dist_x + base_side * 2;
21
+base_length = hole_dist_y + base_side * 2;
22
+
23
+$fn = 42;
24
+
25
+module bearing() {
26
+    difference() {
27
+        cylinder(d = bearing_dia, h = bearing_len);
28
+        
29
+        translate([0, 0, -1])
30
+        cylinder(d = 8.0, h = bearing_len + 2);
31
+    }
32
+}
33
+
34
+module mount() {
35
+    %translate([0, (base_length - bearing_len) / 2, bearing_dia / 2 + mount_bearing_dist])
36
+    rotate([-90, 0, 0])
37
+    bearing();
38
+    
39
+    difference() {
40
+        union() {
41
+            // base
42
+            translate([-base_width / 2, 0, 0])
43
+            cube([base_width, base_length, base_wall]);
44
+            
45
+            hull() {
46
+                // bearing outer hull
47
+                translate([0, 0, bearing_dia / 2 + mount_bearing_dist])
48
+                rotate([-90, 0, 0])
49
+                cylinder(d = mount_hole + 2 * base_side, h = base_length);
50
+                
51
+                // top clamp for screw
52
+                translate([-cutout / 2 - base_side, 0, bearing_dia + mount_bearing_dist])
53
+                cube([cutout + 2 * base_side, base_length, base_wall + 1]);
54
+            }
55
+            
56
+            // shim
57
+            translate([-shim_width / 2, 0, base_wall])
58
+            cube([shim_width, base_length, mount_bearing_dist - base_wall]);
59
+        }
60
+        
61
+        // screw holes for mounting to carriage
62
+        for (x = [-hole_dist_x / 2, hole_dist_x / 2])
63
+        for (y = [-hole_dist_y / 2, hole_dist_y / 2])
64
+        translate([x, base_length / 2 + y, -1])
65
+        cylinder(d = hole_dia, h = base_wall + 2);
66
+        
67
+        // nut holes for mounting to carriage
68
+        for (x = [-hole_dist_x / 2, hole_dist_x / 2])
69
+        for (y = [-hole_dist_y / 2, hole_dist_y / 2])
70
+        translate([x, base_length / 2 + y, screw_nut_off])
71
+        rotate([0, 0, 90])
72
+        cylinder(d = screw_nut, h = base_wall - screw_nut_off + 1, $fn = 6);
73
+        
74
+        // bearing hole
75
+        translate([0, -1, bearing_dia / 2 + mount_bearing_dist])
76
+        rotate([-90, 0, 0])
77
+        cylinder(d = mount_hole, h = base_length + 2);
78
+        
79
+        // top cutout
80
+        translate([-cutout / 2, -1, bearing_dia + mount_bearing_dist - 1])
81
+        cube([cutout, base_length + 2, base_side + 5]);
82
+        
83
+        // top screw
84
+        translate([-base_width / 2, base_length / 2, mount_bearing_dist + bearing_dia + base_wall / 2])
85
+        rotate([0, 90, 0])
86
+        cylinder(d = top_screw_dia, h = base_width);
87
+        
88
+        // top screw head
89
+        translate([cutout / 2 + top_screw_head_off, base_length / 2, mount_bearing_dist + bearing_dia + base_wall / 2])
90
+        rotate([0, 90, 0])
91
+        cylinder(d = top_screw_head, h = base_width);
92
+        
93
+        // top screw nut
94
+        translate([-cutout / 2 - top_screw_nut_off - base_width, base_length / 2, mount_bearing_dist + bearing_dia + base_wall / 2])
95
+        rotate([0, 90, 0])
96
+        rotate([0, 0, 90])
97
+        cylinder(d = top_screw_nut, h = base_width, $fn = 6);
98
+    }
99
+}
100
+
101
+rotate([90, 0, 0])
102
+mount();

BIN
am8/y_bearing_mount.stl Voir le fichier


Chargement…
Annuler
Enregistrer