More eyecandy
[clinton/prusa3.git] / bushing.scad
CommitLineData
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
10use <configuration.scad>
11
12/**
13 * @id bushing
14 * @name Bushing
15 * @category Printed
16 * @id bushing
17 */
18
19
20
21module 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
44module standart_bushing(){
45
46difference(){translate(v=[0,5,8])rotate(a=[90,0,0]){
47bushing(false, 10);
48translate(v=[-7,-13,0])cube(size = [14,5,10]);
49translate(v=[-2,-13,-3])cube(size = [4,5,16]);
50translate(v=[-2,-12,-3])cube(size = [4,7.5,2]);
51translate(v=[-2,-12,11])cube(size = [4,7.5,2]);
52}
53translate(v=[-3,-1,-16])rotate(a=[45,0,0])cube(size = [6,5,16]);
54
55mirror([ 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
60module vertical_bushing(stiff, lenght){
61difference(){
62bushing(stiff, lenght);
63translate(v=[-5,0,-1]) cube(size = [10,2.5,lenght+2]);
64}
65}
66
67
68//vertical_bushing(true, 11);
69
70module z_bushings(){
71// STUFF FOR X-ENDS
72difference(){
73// Slider.
74translate([0,6.5,30])
75cube([23,17,60],center=true);
76// Slider cutout.
77translate([0,10,32.5])
78cube([17,17,70],center=true);
79}
80union(){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
102lm8uu_diameter=(lme8uu==true) ? 16 : 15;
103lm8uu_length=24;
104lm8uu_radius = lm8uu_diameter / 2;
105block_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
114module 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
127module linear_holder_base(length){
128
129difference(){
130union(){
131//main block
132translate(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);
140translate(v=[0,0,0]) cylinder(h = block_height, r=lm8uu_radius+2.5, $fn=60);
141}
142//main axis
143translate(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
146translate(v=[10,0,length/2]) cube(size = [20,14,length+4], center = true);
147//smooth entry cut
148translate(v=[12,0,length/2]) rotate(a=[0,0,45]) cube(size = [20,20,length+4], center = true);
149}
150}
151
152
153module y_linear_bearings(){
154 difference(){
155 union(){
156translate(v=[0,0,1.5]) cube(size = [26,14,3], center = true);
157translate(v=[-13,0,0])rotate(a=[0,0,30])cylinder(h = 3, r=7, $fn=6);
158translate(v=[13,0,0])rotate(a=[0,0,30])cylinder(h = 3, r=7, $fn=6);
159}
160
161
162translate(v=[-14,0,0])polyhole(m3_diameter, 10);
163translate(v=[14,0,0])polyhole(m3_diameter, 10);
164//hack
165translate(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
170cut_corners(true, true, true, true);
171
172
173
174}
175
176lm8uu_holder_length = lm8uu_length+4.5;
177lm8uu_holder_width= lm8uu_diameter+5;
178
179module lm8uu_bearing_holder(){
180translate(v=[0,14.25,4.5])rotate(a=[90,0,0])translate(v=[0,9.5,0]) rotate(a=[0,0,90]){
181
182difference(){
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
191translate(v=[-(10-5.5)/2-5.5,0,0.75]) cube(size = [10-5.5,20,1.5], center = true);
192translate(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
197module 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
203module 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
224module ziptie(){
225difference(){
226translate(v=[0,0,0]) cylinder(h = 3.9, r=lm8uu_diameter);
227translate(v=[0,0,0]) cylinder(h = 5, r=lm8uu_diameter-3, $fn=50);
228translate(v=[0,0,3]) cylinder(h = 1, r1=lm8uu_diameter-3, r2=lm8uu_diameter, $fn=50);
229}}
230
231
232z_linear_bearings();
233