Browse Source

Parameterized Fan Holder

Thomas Buck 8 years ago
parent
commit
3a68f7eea9
3 changed files with 13867 additions and 13577 deletions
  1. 61
    51
      Y-Axis Fan/Fan Holder.scad
  2. 13806
    0
      Y-Axis Fan/Fan Holder.stl
  3. 0
    13526
      Y-Axis Fan/Fan_Holder.stl

Y-Axis Fan/Fan_Holder.scad → Y-Axis Fan/Fan Holder.scad View File

26
 
26
 
27
 height = 25; // [14:26]
27
 height = 25; // [14:26]
28
 
28
 
29
-// cut-out for new part in Fabrikator Mini V1.5
30
-fab_mini_v15 = "true"; // [true, false]
31
-
32
 // default for 25mm fan: 23
29
 // default for 25mm fan: 23
33
 fan_hole_diameter = 23; // [26]
30
 fan_hole_diameter = 23; // [26]
34
 
31
 
44
 
41
 
45
 /* [Hidden] */
42
 /* [Hidden] */
46
 
43
 
44
+bottom_arm_height = 2;
45
+bottom_arm_gap = 8;
46
+
47
+back_support_depth = 2;
48
+mid_left_cutout = 9;
49
+
50
+wall_size = 3;
47
 fan_angle = 10;
51
 fan_angle = 10;
48
 
52
 
53
+nub_size = 1;
54
+nub_depth = 1;
55
+
56
+motor_width = 28.5;
57
+motor_depth = 27;
58
+
49
 $fn = 25;
59
 $fn = 25;
50
 
60
 
51
 fan_screw_pos = fan_screw_distance / 2;
61
 fan_screw_pos = fan_screw_distance / 2;
52
 fan_screw_neg = -fan_screw_pos;
62
 fan_screw_neg = -fan_screw_pos;
53
 
63
 
64
+fabrikator_mini_v15_height = 20;
65
+mid_left_cutout_height = 5;
66
+
67
+base_height = 5;
68
+
54
 // -----------------------------------------------------------
69
 // -----------------------------------------------------------
55
 
70
 
56
 module ellipse(w, l, d) {
71
 module ellipse(w, l, d) {
67
 
82
 
68
 // -----------------------------------------------------------
83
 // -----------------------------------------------------------
69
 
84
 
85
+// stepper motor
86
+%translate([nub_depth, wall_size, 0])
87
+    cube([motor_depth, motor_width, height + 1]);
88
+
70
 // bottom left arm
89
 // bottom left arm
71
-if (fab_mini_v15 == "true") {
72
-    translate([0, 0, 8])
73
-        cube([30, 2, 2]);
74
-} else {
75
-    translate([0, 0, 8])
76
-        cube([30, 2, height - 8]);
77
-}
90
+translate([0, 0, bottom_arm_gap])
91
+    cube([motor_depth + nub_depth, wall_size, bottom_arm_height]);
78
 
92
 
79
 // bottom left nub
93
 // bottom left nub
80
-if (fab_mini_v15 == "true") {
81
-    translate([0, 0, 8])
82
-        cube([1, 3, 2]);
83
-} else {
84
-    translate([0, 0, 8])
85
-        cube([1, 3, height - 8]);
86
-}
94
+translate([0, 0, bottom_arm_gap])
95
+    cube([nub_depth, wall_size + nub_size, bottom_arm_height]);
87
 
96
 
88
-if (height > 20) {
97
+if (height > fabrikator_mini_v15_height) {
89
     // top left arm
98
     // top left arm
90
-    translate([0, 0, 20])
91
-        cube([30, 2, height - 20]);
99
+    translate([0, 0, fabrikator_mini_v15_height])
100
+        cube([motor_depth + nub_depth, wall_size, height - fabrikator_mini_v15_height]);
92
     
101
     
93
     // top left nub
102
     // top left nub
94
-    translate([0, 0, 20])
95
-        cube([1, 3, height - 20]);
103
+    translate([0, 0, fabrikator_mini_v15_height])
104
+        cube([nub_depth, wall_size + nub_size, height - fabrikator_mini_v15_height]);
96
 }
105
 }
97
 
106
 
98
 // left back support
107
 // left back support
99
-translate([26, 0, 0])
100
-    cube([4, 2, height]);
108
+translate([motor_depth + nub_depth - back_support_depth, 0, 0])
109
+    cube([back_support_depth, wall_size, height]);
101
 
110
 
102
 // mid left support
111
 // mid left support
103
-translate([15, 0, 10])
104
-    cube([11, 2, height - 10]);
112
+translate([nub_depth + mid_left_cutout, 0, 10])
113
+    cube([motor_depth - back_support_depth - mid_left_cutout, wall_size, height - fabrikator_mini_v15_height + mid_left_cutout_height]);
105
 
114
 
106
 // right arm
115
 // right arm
107
 difference() {
116
 difference() {
108
-    translate([0, 30.5, 0])
109
-        cube([30, 2, height]);
117
+    translate([0, motor_width + wall_size, 0])
118
+        cube([motor_depth + nub_depth, wall_size, height]);
110
     
119
     
111
-    translate([22, 28, 4])
120
+    translate([24 - wall_size, 28, 4])
112
         rotate([0, 0, 90])
121
         rotate([0, 0, 90])
113
         ellipse(7, 20, 8);
122
         ellipse(7, 20, 8);
114
     
123
     
115
     if (height > 23) {
124
     if (height > 23) {
116
-        translate([22, 28, 15])
125
+        translate([24 - wall_size, 28, 15])
117
             rotate([0, 0, 90])
126
             rotate([0, 0, 90])
118
             ellipse(7, 20, 8);
127
             ellipse(7, 20, 8);
119
     }
128
     }
120
 }
129
 }
121
     
130
     
122
 // right nub
131
 // right nub
123
-translate([0, 29.5, 0])
124
-    cube([1, 3, height]);
132
+translate([0, motor_width + wall_size - nub_size, 0])
133
+    cube([nub_depth, wall_size + nub_size, height]);
125
 
134
 
126
 // back wall
135
 // back wall
127
 difference() {
136
 difference() {
128
-    translate([28, 0, 0])
129
-        cube([2, 32, height]);
137
+    translate([motor_depth + nub_depth, 0, 0])
138
+        cube([wall_size, motor_width + (2 * wall_size), height]);
130
     
139
     
131
-    translate([25, 10, 4])
140
+    translate([25, 8 + wall_size, 4])
132
         ellipse(7, 20, 8);
141
         ellipse(7, 20, 8);
133
     
142
     
134
     if (height > 23) {
143
     if (height > 23) {
135
-        translate([25, 10, 15])
144
+        translate([25, 8 + wall_size, 15])
136
             ellipse(7, 20, 8);
145
             ellipse(7, 20, 8);
137
     }
146
     }
138
 }
147
 }
139
 
148
 
149
+// bottom part
140
 difference() {
150
 difference() {
141
     // base
151
     // base
142
-    translate([0, 0, -5])
143
-        cube([30, 32.5, 5]);
152
+    translate([0, 0, -base_height])
153
+        cube([motor_depth + nub_depth + wall_size, motor_width + (2 * wall_size), base_height]);
144
     
154
     
145
     // cut off angled bottom part
155
     // cut off angled bottom part
146
     rotate([0, -fan_angle, 0])
156
     rotate([0, -fan_angle, 0])
147
-        translate([-2, -1, -11])
148
-        cube([34, 34, 6]);
157
+        translate([-base_height, -(base_height / 2), -(3 * base_height)])
158
+        cube([motor_depth * 1.5, motor_width + (2 * wall_size) + base_height, (2 * base_height)]);
149
     
159
     
150
     // main fan hole
160
     // main fan hole
151
     if (fan_hole_angled == "true") {
161
     if (fan_hole_angled == "true") {
152
         rotate([0, -fan_angle, 0])
162
         rotate([0, -fan_angle, 0])
153
-            translate([14.5, 16, -7])
154
-            cylinder(d = fan_hole_diameter, h = 10);
163
+            translate([nub_depth + (motor_depth / 2), wall_size + (motor_width / 2), -(base_height * 1.5)])
164
+            cylinder(d = fan_hole_diameter, h = (2 * base_height));
155
     } else {
165
     } else {
156
-        translate([14.5, 16, -7])
157
-        cylinder(d = fan_hole_diameter, h = 10);
166
+        translate([nub_depth + (motor_depth / 2), wall_size + (motor_width / 2), -(base_height * 1.5)])
167
+        cylinder(d = fan_hole_diameter, h = (2 * base_height));
158
     }
168
     }
159
     
169
     
160
     // fan screw holes
170
     // fan screw holes
161
     for (i = [1 : 2]) {
171
     for (i = [1 : 2]) {
162
         for (j = [1 : 2]) {
172
         for (j = [1 : 2]) {
163
             rotate([0, -fan_angle, 0])
173
             rotate([0, -fan_angle, 0])
164
-                translate([14.5, 16, -7])
174
+                translate([nub_depth + (motor_depth / 2), wall_size + (motor_width / 2), -(base_height * 1.5)])
165
                 translate([(((i % 2) == 0) ? fan_screw_pos : fan_screw_neg),
175
                 translate([(((i % 2) == 0) ? fan_screw_pos : fan_screw_neg),
166
                     (((j % 2) == 0) ? fan_screw_pos : fan_screw_neg), 0])
176
                     (((j % 2) == 0) ? fan_screw_pos : fan_screw_neg), 0])
167
-                cylinder(d = fan_screw_diameter, h = 10);
177
+                cylinder(d = fan_screw_diameter, h = (2 * base_height));
168
         }
178
         }
169
     }
179
     }
170
     
180
     
171
     // big air hole
181
     // big air hole
172
-    translate([8, 33, -1.8])
182
+    translate([8, 36, -1.8])
173
         rotate([90, 0, 0])
183
         rotate([90, 0, 0])
174
-        cylinder(d = 2, h = 34);
184
+        cylinder(d = 2, h = 40);
175
     
185
     
176
     // small air hole
186
     // small air hole
177
-    translate([12, 33, -1.5])
187
+    translate([12, 36, -1.5])
178
         rotate([90, 0, 0])
188
         rotate([90, 0, 0])
179
-        cylinder(d = 1.5, h = 34);
189
+        cylinder(d = 1.5, h = 40);
180
     
190
     
181
     // elliptical air hole
191
     // elliptical air hole
182
-    translate([-1, 11, -3.5])
192
+    translate([-1, 9 + wall_size, -3.5])
183
         ellipse(2, 12, 8);
193
         ellipse(2, 12, 8);
184
 }
194
 }

+ 13806
- 0
Y-Axis Fan/Fan Holder.stl
File diff suppressed because it is too large
View File


+ 0
- 13526
Y-Axis Fan/Fan_Holder.stl
File diff suppressed because it is too large
View File


Loading…
Cancel
Save