Explorar el Código

Added first tablet mount tests

Thomas Buck hace 6 años
padre
commit
c8835e1918
Se han modificado 4 ficheros con 19778 adiciones y 0 borrados
  1. 4202
    0
      tablet-mount/rail-to-rail.stl
  2. 2242
    0
      tablet-mount/tablet-mount-1.stl
  3. 172
    0
      tablet-mount/tablet-mount.scad
  4. 13162
    0
      tablet-mount/tablet-mount.stl

+ 4202
- 0
tablet-mount/rail-to-rail.stl
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 2242
- 0
tablet-mount/tablet-mount-1.stl
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 172
- 0
tablet-mount/tablet-mount.scad Ver fichero

@@ -0,0 +1,172 @@
1
+tablet_width = 335;
2
+tablet_height = 223;
3
+tablet_depth = 9.0;
4
+tablet_depth_tolerance = 0.5;
5
+
6
+clamp_width = 30;
7
+clamp_height_small = 14;
8
+clamp_height_large = 20;
9
+clamp_wall = 5;
10
+
11
+clamp_bottom_dist = 200;
12
+clamp_side_dist = 40;
13
+
14
+rail_dia = 8.0;
15
+rail_hole = rail_dia + 0.4;
16
+rail_dist = 2;
17
+rail_add_len = 50;
18
+rail_clamp_width = clamp_width;
19
+rail_clamp_add_height = 4;
20
+rail_clamp_off = 20;
21
+
22
+$fn = 20;
23
+
24
+print_view = true;
25
+
26
+module clamp(height, back_height) {
27
+    cube([clamp_width, (2 * clamp_wall) + tablet_depth + tablet_depth_tolerance, clamp_wall]);
28
+    
29
+    translate([0, 0, clamp_wall])
30
+        cube([clamp_width, clamp_wall, back_height]);
31
+    
32
+    translate([0, clamp_wall + tablet_depth + tablet_depth_tolerance, clamp_wall])
33
+        cube([clamp_width, clamp_wall, height]);
34
+}
35
+
36
+module rail_clamp() {
37
+    translate([0, -clamp_wall - (rail_hole / 2) - rail_dist, 0])
38
+    difference() {
39
+        hull() {
40
+            translate([0, (clamp_wall + rail_hole + rail_dist) / 2, rail_clamp_width / 2])
41
+                cube([rail_hole + (2 * clamp_wall) + rail_clamp_add_height, clamp_wall + rail_dist, rail_clamp_width], center = true);
42
+            
43
+            cylinder(d = rail_hole + (2 * clamp_wall), h = rail_clamp_width);
44
+        }
45
+        
46
+        translate([0, 0, -1])
47
+            cylinder(d = rail_hole, h = rail_clamp_width + 2);
48
+    }
49
+}
50
+
51
+module clamp_corner() {
52
+    // bottom clamp
53
+    translate([(tablet_width - clamp_bottom_dist) / 2, 0, 0])
54
+        clamp(clamp_height_small, tablet_height / 2 - (clamp_side_dist / 2));
55
+    
56
+    // side clamp
57
+    translate([-clamp_wall, 0, clamp_wall + ((tablet_height) / 2) - (clamp_side_dist / 2)])
58
+        rotate([0, 90, 0])
59
+        clamp(clamp_height_large, (tablet_width - clamp_bottom_dist) / 2);
60
+    
61
+    // bottom rail mount
62
+    translate([(tablet_width - clamp_bottom_dist) / 2, 0, rail_clamp_off])
63
+        rotate([0, 90, 0])
64
+        rail_clamp();
65
+    
66
+    // side rail mount
67
+    translate([rail_clamp_off - 5, 0, clamp_wall + ((tablet_height) / 2) - clamp_width - (clamp_side_dist / 2)])
68
+        rail_clamp();
69
+}
70
+
71
+module rail_to_rail() {
72
+    difference() {
73
+        hull() {
74
+            translate([rail_clamp_width / 2, 0, rail_clamp_width / 2])
75
+                rotate([180, 90, 0])
76
+                rail_clamp();
77
+            
78
+            translate([0, 0, 0])
79
+                rail_clamp();
80
+        }
81
+        
82
+        translate([0, -clamp_wall - (rail_hole / 2) - rail_dist, -1])
83
+            cylinder(d = rail_hole, h = rail_clamp_width + 2);
84
+            
85
+        translate([rail_clamp_width / 2 + 1, clamp_wall + (rail_hole / 2) + rail_dist, rail_clamp_width / 2])
86
+            rotate([180, 90, 0])
87
+            cylinder(d = rail_hole, h = rail_clamp_width + 2);
88
+    }
89
+}
90
+
91
+module visualization() {
92
+    %translate([0, clamp_wall + (tablet_depth_tolerance / 2), clamp_wall])
93
+        cube([tablet_width, tablet_depth, tablet_height]);
94
+
95
+    color("yellow")
96
+    clamp_corner();
97
+    
98
+    color("green")
99
+    translate([0, 0, tablet_height + (2 * clamp_wall)])
100
+        scale([1, 1, -1])
101
+        clamp_corner();
102
+    
103
+    color("blue")
104
+    translate([tablet_width, 0, 0])
105
+        scale([-1, 1, 1])
106
+        clamp_corner();
107
+    
108
+    color("red")
109
+    translate([tablet_width, 0, tablet_height + (2 * clamp_wall)])
110
+        scale([-1, 1, -1])
111
+        clamp_corner();
112
+    
113
+    color("cyan")
114
+    translate([tablet_width / 2, -rail_clamp_off - 2.5, rail_hole / 2 + 1])
115
+        rail_to_rail();
116
+    color("cyan")
117
+    translate([tablet_width / 2, -rail_clamp_off - 2.5, tablet_height - rail_hole / 2 - rail_clamp_off])
118
+        rail_to_rail();
119
+    
120
+    // center rail
121
+    translate([tablet_width / 2, -rail_clamp_off * 3 / 2 - rail_hole / 2 + 0.5, -5])
122
+        cylinder(d = rail_dia, h = tablet_height + 20);
123
+    
124
+    // top/bottom rails
125
+    translate([(tablet_width - clamp_bottom_dist - rail_add_len) / 2, -rail_hole / 2 - rail_dist - 5, clamp_wall + rail_clamp_off - 5])
126
+        rotate([0, 90, 0])
127
+        cylinder(d = rail_dia, h = clamp_bottom_dist + rail_add_len);
128
+    translate([(tablet_width - clamp_bottom_dist - rail_add_len) / 2, -rail_hole / 2 - rail_dist - 5, tablet_height + clamp_wall - rail_clamp_off + 5])
129
+        rotate([0, 90, 0])
130
+        cylinder(d = rail_dia, h = clamp_bottom_dist + rail_add_len);
131
+    
132
+    // side rails
133
+    translate([rail_clamp_off - 5, -rail_hole / 2 - rail_dist - 5, clamp_wall + ((tablet_height - clamp_side_dist - rail_add_len) / 2) - clamp_width])
134
+        cylinder(d = rail_dia, h = clamp_side_dist + rail_add_len + (2 * clamp_width));
135
+    translate([tablet_width - rail_clamp_off + 5, -rail_hole / 2 - rail_dist - 5, clamp_wall + ((tablet_height - clamp_side_dist - rail_add_len) / 2) - clamp_width])
136
+        cylinder(d = rail_dia, h = clamp_side_dist + rail_add_len + (2 * clamp_width));
137
+}
138
+
139
+module printplate_corners() {
140
+    clamp_corner();
141
+    
142
+    //translate([0, 50, 0])
143
+    //    rotate([0, 180, 0])
144
+    //    scale([-1, 1, -1])
145
+    //    clamp_corner();
146
+    
147
+    //translate([0, 100, clamp_wall])
148
+    //    rotate([0, 90, 0])
149
+    //    scale([-1, 1, 1])
150
+    //    clamp_corner();
151
+    
152
+    //translate([0, 150, clamp_wall])
153
+    //    rotate([0, -90, 0])
154
+    //    scale([1, 1, -1])
155
+    //    clamp_corner();
156
+}
157
+
158
+module printplate_rail_to_rail() {
159
+    translate([25, 60, 0])
160
+    rotate([0, 0, -90]) {
161
+        rail_to_rail();
162
+        translate([rail_clamp_width + 10, 0, 0])
163
+            rail_to_rail();
164
+    }
165
+}
166
+
167
+if (print_view) {
168
+    printplate_corners();
169
+    //printplate_rail_to_rail();
170
+} else {
171
+    visualization();
172
+}

+ 13162
- 0
tablet-mount/tablet-mount.stl
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


Loading…
Cancelar
Guardar