Commit | Line | Data |
---|---|---|
2159eed1 VAH |
1 | // PRUSA iteration3 |
2 | // Bushing/bearing housings | |
d3618a65 | 3 | // GNU GPL v3 |
2159eed1 VAH |
4 | // Josef Průša <josefprusa@me.com> |
5 | // Václav 'ax' Hůla <axtheb@gmail.com> | |
d3618a65 NZ |
6 | // http://www.reprap.org/wiki/Prusa_Mendel |
7 | // http://github.com/prusajr/PrusaMendel | |
8 | ||
e5d97a09 | 9 | include <configuration.scad> |
d3618a65 NZ |
10 | |
11 | /** | |
12 | * @id bushing | |
13 | * @name Bushing | |
14 | * @category Printed | |
15 | * @id bushing | |
e5d97a09 | 16 | */ |
d3618a65 | 17 | |
2fc35ca2 | 18 | // Linear bearing options |
7c194fdd VAH |
19 | lm8uu_diameter=(bearing_type==1) ? 16 : 15; |
20 | lm8uu_length=(bearing_type==1) ? 25 : 24; | |
2fc35ca2 VAH |
21 | lm8uu_radius = lm8uu_diameter / 2; |
22 | block_height = 2*lm8uu_length+17; | |
23 | ||
24 | // basic building blocks, housings for 1 bushing/bearing | |
25 | // at [0,0] there is center of the smooth rod, pointing in Z | |
d3618a65 | 26 | |
e5d97a09 VAH |
27 | module linear_bushing_square(h=11) { |
28 | translate([0,0,h/2]) { | |
29 | difference(){ | |
30 | union(){ | |
4bf15d1b VAH |
31 | translate([-10.5/2,0,0]) cube([10.5,13.8,h], center = true); |
32 | cube([13.8,13.8,h], center = true); | |
3ade0448 | 33 | } |
4bf15d1b | 34 | cube([9,9,h+0.02], center = true); |
e5d97a09 VAH |
35 | } |
36 | } | |
37 | } | |
38 | ||
e5d97a09 VAH |
39 | module linear_bushing_round(h=11) { |
40 | difference(){ | |
41 | union(){ | |
2159eed1 | 42 | translate([-10.5/2,0,h/2]) cube([10.5,13.8,h], center = true); |
e5d97a09 VAH |
43 | cylinder(r=7.5, h=h); |
44 | } | |
45 | translate([0,0,-0.01]) cylinder(r=5.1, h=h+0.02); | |
46 | } | |
47 | } | |
48 | ||
49 | module linear_bushing_bronze(h=11) { | |
50 | difference(){ | |
51 | union(){ | |
2159eed1 VAH |
52 | translate([-10.5/2,0,h/2]) cube([10.5,13.8,h], center = true); |
53 | cylinder(r=10.7, h=h); | |
e5d97a09 VAH |
54 | } |
55 | translate([0,0,-0.01]) cylinder(r=8.1, h=h+0.02); | |
56 | } | |
57 | } | |
58 | ||
2fc35ca2 VAH |
59 | // select right bushing and cut it at angle, so it can be printed upside down |
60 | module linear_bushing_long(h=30){ | |
e5d97a09 VAH |
61 | intersection(){ |
62 | if (bushing_type == 0) { | |
2fc35ca2 | 63 | linear_bushing_square(h); |
e5d97a09 VAH |
64 | } |
65 | if (bushing_type == 1) { | |
2fc35ca2 | 66 | linear_bushing_round(h); |
e5d97a09 VAH |
67 | } |
68 | if (bushing_type == 2) { | |
2fc35ca2 | 69 | linear_bushing_bronze(h); |
e5d97a09 VAH |
70 | } |
71 | if (bushing_type == 2) { | |
72 | translate([0, 0, 0]) rotate([0,-55,0]) cube([30, 40, 80], center=true); | |
73 | } else { | |
74 | translate([0, 0, -4]) rotate([0,-45,0]) cube([30, 40, 80], center=true); | |
75 | } | |
2fc35ca2 VAH |
76 | } |
77 | } | |
e5d97a09 | 78 | |
2fc35ca2 | 79 | module linear_bushing(h=65){ |
2159eed1 | 80 | translate([-9.5,0,h/2]) cube([2,13.8,h], center=true); |
2fc35ca2 VAH |
81 | linear_bushing_long(h); |
82 | if (h>30) { | |
83 | translate([0,0,h]) mirror([0,0,1]) linear_bushing_long(30); | |
e5d97a09 VAH |
84 | } |
85 | } | |
86 | ||
2fc35ca2 VAH |
87 | //this is for Z axis |
88 | module bushing_negative(h=65){ | |
89 | if (bearing_choice == 1) { | |
90 | if (bushing_type == 0) { | |
4bf15d1b | 91 | translate([0,0,h/2]) cube([9,9,h+0.02], center = true); |
2fc35ca2 VAH |
92 | } |
93 | if (bushing_type == 1) { | |
94 | translate([0,0,-0.01]) cylinder(r=5.1, h=h+0.02); | |
95 | } | |
96 | if (bushing_type == 2) { | |
97 | translate([0,0,-0.01]) cylinder(r=8.1, h=h+0.02); | |
98 | } | |
99 | } else { | |
100 | translate([0,0,-0.01]) cylinder(r=lm8uu_radius+0.4, h=h+0.02); | |
101 | } | |
e5d97a09 | 102 | |
2fc35ca2 | 103 | } |
e5d97a09 | 104 | |
2fc35ca2 VAH |
105 | module firm_foot(){ |
106 | difference(){ | |
107 | union() { | |
108 | translate([0,13,0]) cube_fillet([3,18,20], top=[11,0,0,0], center=true); | |
109 | } | |
110 | translate([1.5,14,0]) rotate([0,-90,0]) screw(); | |
e5d97a09 | 111 | } |
d3618a65 NZ |
112 | } |
113 | ||
2fc35ca2 | 114 | module spring_foot(){ |
d3618a65 | 115 | |
2fc35ca2 VAH |
116 | difference(){ |
117 | union() { | |
118 | translate([0,34,0]) cube_fillet([3,14,20], top=[11,0,0,0], center=true); | |
119 | translate([7,28,0]) cube_fillet([16,3,20], center=true); | |
120 | translate([7,14,0]) cube_fillet([16,3,20], center=true); | |
121 | translate([12,21,0]) intersection() { | |
122 | difference(){ | |
123 | cylinder(r=8.5,h=20, center=true); | |
124 | cylinder(r=5.5,h=21, center=true); | |
125 | } | |
126 | translate([5,0,0]) cube([10,30,20], center=true); | |
127 | } | |
128 | translate([0,10,0]) cube_fillet([3,10,20], vertical=[0,3,0,0], center=true); | |
129 | } | |
130 | translate([1.5,34,0]) rotate([0,-90,0]) screw(); | |
131 | } | |
132 | } | |
133 | ||
134 | module y_bearing(float=false){ | |
135 | if (bearing_choice == 2) { | |
136 | linear_bearing(lm8uu_length+4); | |
137 | } else { | |
138 | linear_bushing_long(20); | |
139 | } | |
140 | translate([-9,0,10]) { | |
141 | if (float) { | |
142 | spring_foot(); | |
143 | mirror([0,1,0]) spring_foot(); | |
144 | } else { | |
145 | firm_foot(); | |
146 | mirror([0,1,0]) firm_foot(); | |
147 | } | |
148 | } | |
149 | } | |
d3618a65 NZ |
150 | |
151 | ||
cf659153 VAH |
152 | module linear_bearing(h=0, fillet=false){ |
153 | linear_holder_base((h > lm8uu_length+4)? h : lm8uu_length+4, fillet); | |
154 | translate([-(3)/2-lm8uu_radius+2,0,1]) cube([3,18,2], center = true); | |
155 | translate([-(3)/2-lm8uu_radius+2,0,((h > lm8uu_length+4)? h : lm8uu_length+4)-1]) cube([3,18,2], center = true); | |
2fc35ca2 | 156 | if ( (h-4)/2 > lm8uu_length){ |
cf659153 | 157 | translate([-(3)/2-lm8uu_radius+2,0,h/2]) cube([3,18, (h-4)-2*lm8uu_length], center = true); |
2fc35ca2 VAH |
158 | } |
159 | } | |
160 | ||
2159eed1 | 161 | module linear_holder_base(length, fillet=false){ |
d3618a65 | 162 | |
e5d97a09 VAH |
163 | difference(){ |
164 | union(){ | |
165 | //main block | |
4bf15d1b | 166 | translate([-10.5/2,0,length/2]) cube([10.5,lm8uu_diameter+5,length], center = true); |
3ade0448 | 167 | translate([0,0,0]) cylinder(h = length, r=lm8uu_radius+2.5, $fn=60); |
e5d97a09 VAH |
168 | } |
169 | //main axis | |
3ade0448 | 170 | translate([0,0,-2]) cylinder(h = length+4, r=(lm8uu_diameter+0.8)/2, $fn=50); |
e5d97a09 VAH |
171 | // not needed for zip tie |
172 | //main cut | |
4bf15d1b | 173 | translate([10,0,length/2]) cube([20,14,length+4], center = true); |
e5d97a09 | 174 | //smooth entry cut |
4bf15d1b | 175 | translate([12,0,length/2]) rotate([0,0,45]) cube([20,20,length+4], center = true); |
2159eed1 | 176 | if (fillet) { |
cf659153 | 177 | translate([0,0,length/2 ]) cube_negative_fillet([21,lm8uu_diameter+5,length], vertical=[0,3,3,0]); |
2159eed1 | 178 | } |
e5d97a09 | 179 | } |
d3618a65 NZ |
180 | } |
181 | ||
d3618a65 | 182 | |
2fc35ca2 VAH |
183 | %cylinder(r=4, h=90); |
184 | y_bearing(); | |
185 | translate([0,46,0]) y_bearing(); | |
186 | translate ([-30,23,0]) mirror([1,0,0]) y_bearing(true); |