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