浏览代码

Added slight inward angle on left Y-Axis fan holder arm

Thomas Buck 8 年前
父节点
当前提交
63fc7e3fbb
共有 2 个文件被更改,包括 4986 次插入4893 次删除
  1. 83
    46
      Y-Axis Fan/Fan Holder.scad
  2. 4903
    4847
      Y-Axis Fan/Fan Holder.stl

+ 83
- 46
Y-Axis Fan/Fan Holder.scad 查看文件

@@ -13,13 +13,6 @@
13 13
  *
14 14
  * The Fabrikator Mini V1.5 include a new bracket that prevents
15 15
  * the old design from sliding fully onto the stepper motor.
16
- * A parameter has been added (fab_mini_v15) that allows
17
- * reverting to the old behvior.
18
- *
19
- * For V1.5, a height of 25mm is suggested, as this provides
20
- * enough stability with the big cut-out. To revert to something
21
- * like the original model, set the height to 15mm (and
22
- * fab_mini_v15 to "false").
23 16
  */
24 17
 
25 18
 // -----------------------------------------------------------
@@ -37,6 +30,8 @@ fan_screw_diameter = 3; // [1:5]
37 30
 
38 31
 fan_hole_angled = "true"; // [true, false]
39 32
 
33
+arm_inward_angle_left = 2; // [0:5]
34
+
40 35
 // -----------------------------------------------------------
41 36
 
42 37
 /* [Hidden] */
@@ -62,10 +57,12 @@ fan_screw_pos = fan_screw_distance / 2;
62 57
 fan_screw_neg = -fan_screw_pos;
63 58
 
64 59
 fabrikator_mini_v15_height = 20;
65
-mid_left_cutout_height = 5;
60
+mid_left_cutout_height = 6;
66 61
 
67 62
 base_height = 5;
68 63
 
64
+arm_inward_angle_right = 0;
65
+
69 66
 // -----------------------------------------------------------
70 67
 
71 68
 module ellipse(w, l, d) {
@@ -80,57 +77,97 @@ module ellipse(w, l, d) {
80 77
         cylinder(d = w, h = d);
81 78
 }
82 79
 
83
-// -----------------------------------------------------------
80
+module left_arm() {
81
+    // bottom left arm
82
+    translate([0, 0, bottom_arm_gap])
83
+        cube([motor_depth + nub_depth, wall_size, bottom_arm_height]);
84 84
 
85
-// stepper motor
86
-%translate([nub_depth, wall_size, 0])
87
-    cube([motor_depth, motor_width, height + 1]);
85
+    // bottom left nub
86
+    translate([0, 0, bottom_arm_gap])
87
+        cube([nub_depth, wall_size + nub_size, bottom_arm_height]);
88
+
89
+    if (height > fabrikator_mini_v15_height) {
90
+        // top left arm
91
+        translate([0, 0, fabrikator_mini_v15_height + 1])
92
+            cube([motor_depth + nub_depth, wall_size, height - fabrikator_mini_v15_height - 1]);
93
+    
94
+        // top left nub
95
+        translate([0, 0, fabrikator_mini_v15_height + 1])
96
+            cube([nub_depth, wall_size + nub_size, height - fabrikator_mini_v15_height - 1]);
97
+    }
88 98
 
89
-// bottom left arm
90
-translate([0, 0, bottom_arm_gap])
91
-    cube([motor_depth + nub_depth, wall_size, bottom_arm_height]);
99
+    // left back support
100
+    translate([motor_depth + nub_depth - back_support_depth, 0, 0])
101
+        cube([back_support_depth, wall_size, height]);
92 102
 
93
-// bottom left nub
94
-translate([0, 0, bottom_arm_gap])
95
-    cube([nub_depth, wall_size + nub_size, bottom_arm_height]);
103
+    // mid left support
104
+    translate([nub_depth + mid_left_cutout, 0, 10])
105
+        cube([motor_depth - back_support_depth - mid_left_cutout, wall_size, height - fabrikator_mini_v15_height + mid_left_cutout_height]);
106
+    
107
+    if (arm_inward_angle_left != 0) {
108
+        // connecting piece for angled arm
109
+        translate([motor_depth + nub_depth - back_support_depth, 0, 0])
110
+            cube([1.5 * back_support_depth, wall_size, height]);
111
+    }
112
+}
96 113
 
97
-if (height > fabrikator_mini_v15_height) {
98
-    // top left arm
99
-    translate([0, 0, fabrikator_mini_v15_height])
100
-        cube([motor_depth + nub_depth, wall_size, height - fabrikator_mini_v15_height]);
114
+module right_arm() {
115
+    // right arm
116
+    difference() {
117
+        translate([0, motor_width + wall_size, 0])
118
+            cube([motor_depth + nub_depth, wall_size, height]);
119
+        
120
+        translate([24 - wall_size, 28, 4])
121
+            rotate([0, 0, 90])
122
+            ellipse(7, 20, 8);
123
+        
124
+        if (height > 23) {
125
+            translate([24 - wall_size, 28, 15])
126
+                rotate([0, 0, 90])
127
+                ellipse(7, 20, 8);
128
+        }
129
+    }
130
+    
131
+    // right nub
132
+    translate([0, motor_width + wall_size - nub_size, 0])
133
+        cube([nub_depth, wall_size + nub_size, height]);
101 134
     
102
-    // top left nub
103
-    translate([0, 0, fabrikator_mini_v15_height])
104
-        cube([nub_depth, wall_size + nub_size, height - fabrikator_mini_v15_height]);
135
+    if (arm_inward_angle_right != 0) {
136
+        // connecting piece for angled arm
137
+        translate([motor_depth + nub_depth - back_support_depth, motor_width + wall_size, 0])
138
+            cube([1.5 * back_support_depth, wall_size, height]);
139
+    }
105 140
 }
106 141
 
107
-// left back support
108
-translate([motor_depth + nub_depth - back_support_depth, 0, 0])
109
-    cube([back_support_depth, wall_size, height]);
142
+// -----------------------------------------------------------
110 143
 
111
-// mid left support
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]);
144
+// stepper motor
145
+%translate([nub_depth, wall_size, 0])
146
+    cube([motor_depth, motor_width, height + 1]);
114 147
 
115
-// right arm
116 148
 difference() {
117
-    translate([0, motor_width + wall_size, 0])
118
-        cube([motor_depth + nub_depth, wall_size, height]);
119
-    
120
-    translate([24 - wall_size, 28, 4])
121
-        rotate([0, 0, 90])
122
-        ellipse(7, 20, 8);
149
+    // left arm
150
+    translate([0, 27 * sin(arm_inward_angle_left / 1.5), 0])
151
+        rotate([0, 0, -(arm_inward_angle_left / 1.5)])
152
+        left_arm();
123 153
     
124
-    if (height > 23) {
125
-        translate([24 - wall_size, 28, 15])
126
-            rotate([0, 0, 90])
127
-            ellipse(7, 20, 8);
154
+    // cut off small ledge
155
+    translate([0, -1, -base_height])
156
+        cube([motor_depth + nub_depth + wall_size, 1, motor_width + base_height + wall_size]);
157
+}
158
+
159
+difference() {
160
+    // right arm
161
+    translate([35 * sin(arm_inward_angle_right / 1.5), -27 * sin(arm_inward_angle_right / 1.5), 0])
162
+        rotate([0, 0, arm_inward_angle_right / 1.5])
163
+        right_arm();
164
+
165
+    if (arm_inward_angle_right != 0) {
166
+        // cut off small ledge
167
+        translate([0, motor_width + (2 * wall_size), -base_height])
168
+            cube([motor_depth + nub_depth + wall_size, 1, motor_width + base_height + wall_size]);
128 169
     }
129 170
 }
130
-    
131
-// right nub
132
-translate([0, motor_width + wall_size - nub_size, 0])
133
-    cube([nub_depth, wall_size + nub_size, height]);
134 171
 
135 172
 // back wall
136 173
 difference() {

+ 4903
- 4847
Y-Axis Fan/Fan Holder.stl
文件差异内容过多而无法显示
查看文件


正在加载...
取消
保存