Commit | Line | Data |
---|---|---|
d3618a65 NZ |
1 | // PRUSA Mendel |
2 | // Bushings | |
3 | // GNU GPL v3 | |
4 | // Josef Průša | |
5 | // josefprusa@me.com | |
6 | // prusadjs.cz | |
7 | // http://www.reprap.org/wiki/Prusa_Mendel | |
8 | // http://github.com/prusajr/PrusaMendel | |
9 | ||
10 | use <configuration.scad> | |
11 | ||
12 | /** | |
13 | * @id bushing | |
14 | * @name Bushing | |
15 | * @category Printed | |
16 | * @id bushing | |
17 | */ | |
18 | ||
19 | ||
20 | ||
21 | module bushing(stiff, lenght=11){ | |
22 | difference(){ | |
23 | union(){ | |
24 | translate(v=[-7.5,-8,0])cube(size = [15,8,lenght]); | |
25 | cylinder(h = lenght, r=7.5); | |
26 | } | |
27 | //cutout inside | |
28 | //Opening | |
29 | rotate(a=[0,0,45]) translate(v=[1,1,-1]) cube(size = [16,16,lenght+2]); | |
30 | //Cutouts to make it more bendy | |
31 | if(stiff){ | |
32 | translate(v=[-4.8,-6,-1]) cube(size = [0.8,6,lenght+2]); | |
33 | translate(v=[4,-6,-1]) cube(size = [0.8,6,lenght+2]); | |
34 | }else{ | |
35 | translate(v=[-4.8,-8,-1]) cube(size = [0.8,8,lenght+2]); | |
36 | translate(v=[4,-8,-1]) cube(size = [0.8,8,lenght+2]); | |
37 | } | |
38 | translate(v=[0,5,(lenght+2)/2]) cube(size = [7,8,lenght+2], center=true); | |
39 | translate(v=[0,0,-1]) cylinder(h = lenght+2, r=5); | |
40 | } | |
41 | } | |
42 | ||
43 | ||
44 | module standart_bushing(){ | |
45 | ||
46 | difference(){translate(v=[0,5,8])rotate(a=[90,0,0]){ | |
47 | bushing(false, 10); | |
48 | translate(v=[-7,-13,0])cube(size = [14,5,10]); | |
49 | translate(v=[-2,-13,-3])cube(size = [4,5,16]); | |
50 | translate(v=[-2,-12,-3])cube(size = [4,7.5,2]); | |
51 | translate(v=[-2,-12,11])cube(size = [4,7.5,2]); | |
52 | } | |
53 | translate(v=[-3,-1,-16])rotate(a=[45,0,0])cube(size = [6,5,16]); | |
54 | ||
55 | mirror([ 0, 1, 0 ]) translate(v=[-3,-1,-16])rotate(a=[45,0,0])cube(size = [6,5,16]);} | |
56 | } | |
57 | ||
58 | ||
59 | // Includes small cutouts for better prints | |
60 | module vertical_bushing(stiff, lenght){ | |
61 | difference(){ | |
62 | bushing(stiff, lenght); | |
63 | translate(v=[-5,0,-1]) cube(size = [10,2.5,lenght+2]); | |
64 | } | |
65 | } | |
66 | ||
67 | ||
68 | //vertical_bushing(true, 11); | |
69 | ||
70 | module z_bushings(){ | |
71 | // STUFF FOR X-ENDS | |
72 | difference(){ | |
73 | // Slider. | |
74 | translate([0,6.5,30]) | |
75 | cube([23,17,60],center=true); | |
76 | // Slider cutout. | |
77 | translate([0,10,32.5]) | |
78 | cube([17,17,70],center=true); | |
79 | } | |
80 | union(){translate([0,9.5,0])vertical_bushing(true,13); | |
81 | //translate([0,4,0.5])cube(size = [8,2,1], center = true); | |
82 | //translate([0,4,12.5])cube(size = [8,2,1], center = true); | |
83 | translate([0,9.5,48])vertical_bushing(true,13); | |
84 | //translate([0,4,48+0.5])cube(size = [8,2,1], center = true); | |
85 | //translate([0,4,48+12.5])cube(size = [8,2,1], center = true); | |
86 | translate([0,9.5,32]) | |
87 | { | |
88 | difference() | |
89 | { | |
90 | bushing(true,16); | |
91 | translate([0,3,2]) | |
92 | rotate([45,0,0]) | |
93 | cube([16,30,16], center=true); | |
94 | } | |
95 | } | |
96 | } | |
97 | } | |
98 | ||
99 | ||
100 | // Linear bushing options | |
101 | ||
d3618a65 NZ |
102 | lm8uu_diameter=(lme8uu==true) ? 16 : 15; |
103 | lm8uu_length=24; | |
104 | lm8uu_radius = lm8uu_diameter / 2; | |
105 | block_height = 2*lm8uu_length+17; | |
106 | ||
107 | ||
108 | ||
109 | //z_bushings(); | |
110 | // | |
111 | //linear_holder_base(60); | |
112 | //cut_corners(true, false, true, false); | |
113 | ||
114 | module cut_corners(lf,lb,rf,rb){ | |
115 | difference(){ | |
116 | lm8uu_bearing_holder(); | |
117 | if(lf) translate(v=[(10)-3,(-28.5/2)+3,0]) rotate(a=[0,0,45]) rotate(a=[35,0,0]) translate(v=[0,-5,0]) cube(size = [20,10,20], center = true); | |
118 | if(lb)translate(v=[(-10)+3,(-28.5/2)+3,0]) rotate(a=[0,0,-45]) rotate(a=[35,0,0]) translate(v=[0,-5,0]) cube(size = [20,10,20], center = true); | |
119 | mirror([ 0, 1, 0 ]){ | |
120 | if(rf)translate(v=[(10)-3,(-28.5/2)+3,0]) rotate(a=[0,0,45]) rotate(a=[35,0,0]) translate(v=[0,-5,0]) cube(size = [20,10,20], center = true); | |
121 | if(rb)translate(v=[(-10)+3,(-28.5/2)+3,0]) rotate(a=[0,0,-45]) rotate(a=[35,0,0]) translate(v=[0,-5,0]) cube(size = [20,10,20], center = true); | |
122 | } | |
123 | } | |
124 | //lm8uu_bearing_holder(); | |
125 | } | |
126 | ||
127 | module linear_holder_base(length){ | |
128 | ||
129 | difference(){ | |
130 | union(){ | |
131 | //main block | |
132 | translate(v=[-(lm8uu_radius+2.5)/2,0,block_height/2]) cube(size = [lm8uu_radius+2.5,lm8uu_diameter+5,block_height], center = true); | |
133 | //translate(v=[-5,0,length/2]) cube(size = [10,20,length], center = true); | |
134 | ||
135 | //holder for main block in x-end | |
136 | // leaving it out now | |
137 | //translate(v=[0,0,0]) cylinder(h = length, r=10, $fn=60); | |
138 | ||
139 | //translate(v=[-5,0,15.8/2]) cube(size = [12,23,15.8], center = true); | |
140 | translate(v=[0,0,0]) cylinder(h = block_height, r=lm8uu_radius+2.5, $fn=60); | |
141 | } | |
142 | //main axis | |
143 | translate(v=[0,0,-2]) cylinder(h = length+4, r=(lm8uu_diameter+0.8)/2, $fn=50); | |
144 | // not needed for zip tie | |
145 | //main cut | |
146 | translate(v=[10,0,length/2]) cube(size = [20,14,length+4], center = true); | |
147 | //smooth entry cut | |
148 | translate(v=[12,0,length/2]) rotate(a=[0,0,45]) cube(size = [20,20,length+4], center = true); | |
149 | } | |
150 | } | |
151 | ||
152 | ||
153 | module y_linear_bearings(){ | |
154 | difference(){ | |
155 | union(){ | |
156 | translate(v=[0,0,1.5]) cube(size = [26,14,3], center = true); | |
157 | translate(v=[-13,0,0])rotate(a=[0,0,30])cylinder(h = 3, r=7, $fn=6); | |
158 | translate(v=[13,0,0])rotate(a=[0,0,30])cylinder(h = 3, r=7, $fn=6); | |
159 | } | |
160 | ||
161 | ||
162 | translate(v=[-14,0,0])polyhole(m3_diameter, 10); | |
163 | translate(v=[14,0,0])polyhole(m3_diameter, 10); | |
164 | //hack | |
165 | translate(v=[0,14.25,4.5]) rotate(a=[90,0,0]) translate(v=[0,9.5,0]) rotate(a=[0,0,90]){ | |
166 | translate(v=[0,0,lm8uu_length/2+0.5]) ziptie(); | |
167 | } | |
168 | } | |
169 | ||
170 | cut_corners(true, true, true, true); | |
171 | ||
172 | ||
173 | ||
174 | } | |
175 | ||
176 | lm8uu_holder_length = lm8uu_length+4.5; | |
177 | lm8uu_holder_width= lm8uu_diameter+5; | |
178 | ||
179 | module lm8uu_bearing_holder(){ | |
180 | translate(v=[0,14.25,4.5])rotate(a=[90,0,0])translate(v=[0,9.5,0]) rotate(a=[0,0,90]){ | |
181 | ||
182 | difference(){ | |
183 | union(){ | |
184 | linear_holder_base(lm8uu_length+4.5); | |
185 | translate(v=[-10-2,0,lm8uu_holder_length/2]) cube(size = [4,20,lm8uu_holder_length], center = true); | |
186 | } | |
187 | translate(v=[0,0,12.5]) ziptie(); | |
188 | } | |
189 | ||
190 | ||
191 | translate(v=[-(10-5.5)/2-5.5,0,0.75]) cube(size = [10-5.5,20,1.5], center = true); | |
192 | translate(v=[-(10-5.5)/2-5.5,0,lm8uu_length+3.75]) cube(size = [10-5.5,20,1.5], center = true); | |
193 | ||
194 | } | |
195 | } | |
196 | ||
197 | module lm8uu_bearing_cut() | |
198 | { | |
199 | translate([-lm8uu_holder_width/2,-lm8uu_holder_length/2,-5])cube([lm8uu_holder_width,lm8uu_holder_length,20]); | |
200 | } | |
201 | ||
202 | ||
203 | module z_linear_bearings(){ | |
204 | ||
205 | translate(v=[0,9.5,0]) rotate(a=[0,0,90]){ | |
206 | //difference(){ | |
207 | linear_holder_base(65); | |
208 | // translate(v=[0,0,14.5+2]) ziptie(); | |
209 | // translate(v=[0,0,block_height-(12+2)-5]) ziptie(); | |
210 | //} | |
211 | ||
212 | //x-end adapter | |
213 | //difference(){ | |
214 | // translate(v=[-6,0,15.8/2]) cube(size = [10,23,15.8], center = true); | |
215 | // translate(v=[0,0,-2]) cylinder(h = 20, r=7.9, $fn=50); | |
216 | //} | |
217 | translate(v=[-(10-5.5)/2-lm8uu_radius+2,0,0+1]) cube(size = [10-5.5,20,2], center = true); | |
218 | //translate(v=[-(10-5.5)/2-lm8uu_radius+2,0,lm8uu_length+4.0]) cube(size = [10-5.5,20,2], center = true); | |
219 | //translate(v=[-(10-5.5)/2-lm8uu_radius+2,0,64-lm8uu_length-3]) cube(size = [10-5.5,20,2], center = true); | |
220 | translate(v=[-(10-5.5)/2-lm8uu_radius+2,0,64]) cube(size = [10-5.5,20,2], center = true); | |
221 | } | |
222 | } | |
223 | ||
224 | module ziptie(){ | |
225 | difference(){ | |
226 | translate(v=[0,0,0]) cylinder(h = 3.9, r=lm8uu_diameter); | |
227 | translate(v=[0,0,0]) cylinder(h = 5, r=lm8uu_diameter-3, $fn=50); | |
228 | translate(v=[0,0,3]) cylinder(h = 1, r1=lm8uu_diameter-3, r2=lm8uu_diameter, $fn=50); | |
229 | }} | |
230 | ||
231 | ||
232 | z_linear_bearings(); | |
233 |