浏览代码

Added simple angled Z-Axis Fan shroud

Thomas Buck 8 年前
父节点
当前提交
9686d6ab8a
共有 2 个文件被更改,包括 7650 次插入0 次删除
  1. 214
    0
      Z-Axis Fan/Z-Fan.scad
  2. 7436
    0
      Z-Axis Fan/Z-Fan.stl

+ 214
- 0
Z-Axis Fan/Z-Fan.scad 查看文件

@@ -0,0 +1,214 @@
1
+/*
2
+ * Created by:
3
+ * Thomas Buck <xythobuz@xythobuz.de> in April 2016
4
+ *
5
+ * Licensed under the Creative Commons - Attribution license.
6
+ */
7
+
8
+// -----------------------------------------------------------
9
+
10
+base_width = 33;
11
+base_height = 33;
12
+base_depth = 2;
13
+
14
+cutout_width = 16;
15
+cutout_height = 25;
16
+
17
+hole_dist_left = 3.6;
18
+hole_dist_right = 3.6;
19
+hole_dist_top = 7;
20
+hole_dist_bottom = 10;
21
+hole_size = 3;
22
+
23
+fan_width = 26;
24
+fan_diameter = 24;
25
+fan_hole = 2.8;
26
+fan_hole_dist = 2.5;
27
+
28
+fan_angle = 10;
29
+fan_x = -2;
30
+fan_y = 0;
31
+fan_z = 6;
32
+first_wall = 3;
33
+wall_size = 1.4;
34
+
35
+angled_wall_size = 0.8;
36
+rotation_add_x = -0.4;
37
+rotation_add_z = 4.55;
38
+mirror_dist_y = 6.6;
39
+
40
+$fn = 25;
41
+
42
+// -----------------------------------------------------------
43
+
44
+module base() {
45
+    difference() {
46
+        cube([base_width, base_height, base_depth]);
47
+    
48
+        translate([(base_width - cutout_width) / 2, (base_height - cutout_height) / 2, -1])
49
+            cube([cutout_width, cutout_height, base_depth + 2]);
50
+        
51
+        translate([hole_dist_left, hole_dist_bottom, -1])
52
+            cylinder(d = hole_size, h = base_depth + 2);
53
+        
54
+        translate([hole_dist_left, base_height - hole_dist_top, -1])
55
+            cylinder(d = hole_size, h = base_depth + 2);
56
+        
57
+        translate([base_width - hole_dist_right, hole_dist_bottom, -1])
58
+            cylinder(d = hole_size, h = base_depth + 2);
59
+        
60
+        translate([base_width - hole_dist_right, base_height - hole_dist_top, -1])
61
+            cylinder(d = hole_size, h = base_depth + 2);
62
+    }
63
+}
64
+
65
+module rim() {
66
+    translate([-wall_size, 0, 0])
67
+        cube([wall_size, cutout_height, first_wall]);
68
+    
69
+    translate([-wall_size, -wall_size, 0])
70
+        cube([cutout_width + (2 * wall_size), wall_size, first_wall]);
71
+    
72
+    translate([cutout_width, 0, 0])
73
+        cube([wall_size, cutout_height, first_wall]);
74
+    
75
+    translate([-wall_size, cutout_height, 0])
76
+        cube([cutout_width + (2 * wall_size), wall_size, first_wall]);
77
+}
78
+
79
+module angled() {
80
+    polyhedron(points = [
81
+        // 0: down, top left
82
+        [(base_width - cutout_width) / 2 - wall_size, (base_height - cutout_height) / 2, base_depth + first_wall],
83
+    
84
+        // 1: down, top right
85
+        [(base_width - cutout_width) / 2 + cutout_width + wall_size, (base_height - cutout_height) / 2, base_depth + first_wall],
86
+    
87
+        // 2: down, bottom right
88
+        [(base_width - cutout_width) / 2 + cutout_width + wall_size, (base_height - cutout_height) / 2 - wall_size, base_depth + first_wall],
89
+    
90
+        // 3: down, bottom left
91
+        [(base_width - cutout_width) / 2 - wall_size, (base_height - cutout_height) / 2 - wall_size, base_depth + first_wall],
92
+    
93
+        // 4: up, top left
94
+        [(base_width - fan_width) / 2 + fan_x, (base_height - fan_width) / 2 + fan_y + angled_wall_size, base_depth + fan_z],
95
+    
96
+        // 5: up, top right
97
+        [(base_width - fan_width) / 2 + fan_x + fan_width + rotation_add_x, (base_height - fan_width) / 2 + fan_y + angled_wall_size, base_depth + fan_z + rotation_add_z],
98
+    
99
+        // 6: up, bottom right
100
+        [(base_width - fan_width) / 2 + fan_x + fan_width + rotation_add_x, (base_height - fan_width) / 2 + fan_y, base_depth + fan_z + rotation_add_z],
101
+        
102
+        // 7: up, bottom left
103
+        [(base_width - fan_width) / 2 + fan_x, (base_height - fan_width) / 2 + fan_y, base_depth + fan_z]
104
+    ], faces = [
105
+        [0, 1, 2, 3], // bottom
106
+        [4, 5, 1, 0], // back
107
+        [7, 6, 5, 4], // top
108
+        [5, 6, 2, 1], // right
109
+        [6, 7, 3, 2], // front
110
+        [7, 4, 0, 3]  // left
111
+    ]);
112
+}
113
+
114
+module fan_mount() {
115
+    difference() {
116
+        cube([fan_width, fan_width, base_depth]);
117
+        
118
+        translate([fan_width / 2, fan_width / 2, -1])
119
+            cylinder(d = fan_diameter, h = base_depth + 2);
120
+        
121
+        translate([fan_hole_dist, fan_hole_dist, -1])
122
+            cylinder(d = fan_hole, h = base_depth + 2);
123
+        
124
+        translate([fan_width - fan_hole_dist, fan_hole_dist, -1])
125
+            cylinder(d = fan_hole, h = base_depth + 2);
126
+        
127
+        translate([fan_hole_dist, fan_width - fan_hole_dist, -1])
128
+            cylinder(d = fan_hole, h = base_depth + 2);
129
+        
130
+        translate([fan_width - fan_hole_dist, fan_width - fan_hole_dist, -1])
131
+            cylinder(d = fan_hole, h = base_depth + 2);
132
+    }
133
+}
134
+
135
+base();
136
+
137
+translate([(base_width - cutout_width) / 2, (base_height - cutout_height) / 2, base_depth])
138
+    rim();
139
+
140
+angled();
141
+
142
+translate([0, cutout_height + wall_size + mirror_dist_y, 0])
143
+    mirror([0, 1, 0])
144
+    angled();
145
+
146
+polyhedron(points = [
147
+    // 0: down, top left
148
+    [(base_width - cutout_width) / 2, (base_height - cutout_height) / 2 + cutout_height, base_depth + first_wall],
149
+
150
+    // 1: down, top right
151
+    [(base_width - cutout_width) / 2, (base_height - cutout_height) / 2 - wall_size, base_depth + first_wall],
152
+
153
+    // 2: down, bottom right
154
+    [(base_width - cutout_width) / 2 - wall_size, (base_height - cutout_height) / 2 - wall_size, base_depth + first_wall],
155
+
156
+    // 3: down, bottom left
157
+    [(base_width - cutout_width) / 2 - wall_size, (base_height - cutout_height) / 2 + cutout_height, base_depth + first_wall],
158
+
159
+    // 4: up, top left
160
+    [(base_width - fan_width) / 2 + fan_x + angled_wall_size, (base_height - fan_width) / 2 + fan_y + fan_width, base_depth + fan_z],
161
+
162
+    // 5: up, top right
163
+    [(base_width - fan_width) / 2 + fan_x + angled_wall_size, (base_height - fan_width) / 2 + fan_y, base_depth + fan_z],
164
+
165
+    // 6: up, bottom right
166
+    [(base_width - fan_width) / 2 + fan_x, (base_height - fan_width) / 2 + fan_y, base_depth + fan_z],
167
+    
168
+    // 7: up, bottom left
169
+    [(base_width - fan_width) / 2 + fan_x, (base_height - fan_width) / 2 + fan_y + fan_width, base_depth + fan_z]
170
+], faces = [
171
+    [0, 1, 2, 3], // bottom
172
+    [4, 5, 1, 0], // back
173
+    [7, 6, 5, 4], // top
174
+    [5, 6, 2, 1], // right
175
+    [6, 7, 3, 2], // front
176
+    [7, 4, 0, 3]  // left
177
+]);
178
+
179
+polyhedron(points = [
180
+    // 0: down, top left
181
+    [(base_width - cutout_width) / 2 + cutout_width, (base_height - cutout_height) / 2 - wall_size, base_depth + first_wall],
182
+
183
+    // 1: down, top right
184
+    [(base_width - cutout_width) / 2 + cutout_width, (base_height - cutout_height) / 2 + cutout_height, base_depth + first_wall],
185
+
186
+    // 2: down, bottom right
187
+    [(base_width - cutout_width) / 2 + cutout_width + wall_size, (base_height - cutout_height) / 2 + cutout_height, base_depth + first_wall],
188
+
189
+    // 3: down, bottom left
190
+    [(base_width - cutout_width) / 2 + cutout_width + wall_size, (base_height - cutout_height) / 2 - wall_size, base_depth + first_wall],
191
+
192
+    // 4: up, top left
193
+    [(base_width - fan_width) / 2 + fan_x + fan_width + rotation_add_x - angled_wall_size, (base_height - fan_width) / 2 + fan_y, base_depth + fan_z + rotation_add_z],
194
+
195
+    // 5: up, top right
196
+    [(base_width - fan_width) / 2 + fan_x + fan_width + rotation_add_x - angled_wall_size, (base_height - fan_width + wall_size) / 2 + fan_y + cutout_height, base_depth + fan_z + rotation_add_z],
197
+
198
+    // 6: up, bottom right
199
+    [(base_width - fan_width) / 2 + fan_x + fan_width + rotation_add_x, (base_height - fan_width + wall_size) / 2 + fan_y + cutout_height, base_depth + fan_z + rotation_add_z],
200
+    
201
+    // 7: up, bottom left
202
+    [(base_width - fan_width) / 2 + fan_x + fan_width + rotation_add_x, (base_height - fan_width) / 2 + fan_y, base_depth + fan_z + rotation_add_z]
203
+], faces = [
204
+    [0, 1, 2, 3], // bottom
205
+    [4, 5, 1, 0], // back
206
+    [7, 6, 5, 4], // top
207
+    [5, 6, 2, 1], // right
208
+    [6, 7, 3, 2], // front
209
+    [7, 4, 0, 3]  // left
210
+]);
211
+
212
+translate([(base_width - fan_width) / 2 + fan_x, (base_height - fan_width) / 2 + fan_y, base_depth + fan_z])
213
+    rotate([0, -fan_angle, 0])
214
+    fan_mount();

+ 7436
- 0
Z-Axis Fan/Z-Fan.stl
文件差异内容过多而无法显示
查看文件


正在加载...
取消
保存