Kaynağa Gözat

Parameterized Fan Holder

Thomas Buck 8 yıl önce
ebeveyn
işleme
3a68f7eea9
3 değiştirilmiş dosya ile 13867 ekleme ve 13577 silme
  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 Dosyayı Görüntüle

@@ -26,9 +26,6 @@
26 26
 
27 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 29
 // default for 25mm fan: 23
33 30
 fan_hole_diameter = 23; // [26]
34 31
 
@@ -44,13 +41,31 @@ fan_hole_angled = "true"; // [true, false]
44 41
 
45 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 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 59
 $fn = 25;
50 60
 
51 61
 fan_screw_pos = fan_screw_distance / 2;
52 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 71
 module ellipse(w, l, d) {
@@ -67,118 +82,113 @@ 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 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 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 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 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 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 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 115
 // right arm
107 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 121
         rotate([0, 0, 90])
113 122
         ellipse(7, 20, 8);
114 123
     
115 124
     if (height > 23) {
116
-        translate([22, 28, 15])
125
+        translate([24 - wall_size, 28, 15])
117 126
             rotate([0, 0, 90])
118 127
             ellipse(7, 20, 8);
119 128
     }
120 129
 }
121 130
     
122 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 135
 // back wall
127 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 141
         ellipse(7, 20, 8);
133 142
     
134 143
     if (height > 23) {
135
-        translate([25, 10, 15])
144
+        translate([25, 8 + wall_size, 15])
136 145
             ellipse(7, 20, 8);
137 146
     }
138 147
 }
139 148
 
149
+// bottom part
140 150
 difference() {
141 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 155
     // cut off angled bottom part
146 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 160
     // main fan hole
151 161
     if (fan_hole_angled == "true") {
152 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 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 170
     // fan screw holes
161 171
     for (i = [1 : 2]) {
162 172
         for (j = [1 : 2]) {
163 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 175
                 translate([(((i % 2) == 0) ? fan_screw_pos : fan_screw_neg),
166 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 181
     // big air hole
172
-    translate([8, 33, -1.8])
182
+    translate([8, 36, -1.8])
173 183
         rotate([90, 0, 0])
174
-        cylinder(d = 2, h = 34);
184
+        cylinder(d = 2, h = 40);
175 185
     
176 186
     // small air hole
177
-    translate([12, 33, -1.5])
187
+    translate([12, 36, -1.5])
178 188
         rotate([90, 0, 0])
179
-        cylinder(d = 1.5, h = 34);
189
+        cylinder(d = 1.5, h = 40);
180 190
     
181 191
     // elliptical air hole
182
-    translate([-1, 11, -3.5])
192
+    translate([-1, 9 + wall_size, -3.5])
183 193
         ellipse(2, 12, 8);
184 194
 }

+ 13806
- 0
Y-Axis Fan/Fan Holder.stl
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


+ 0
- 13526
Y-Axis Fan/Fan_Holder.stl
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


Loading…
İptal
Kaydet