Commit | Line | Data |
---|---|---|
28159e2f DR |
1 | // PRUSA iteration3 |
2 | // Complete printer visualisation | |
3 | // GNU GPL v3 | |
4 | // Greg Frost | |
5 | // http://www.reprap.org/wiki/Prusa_Mendel | |
6 | // http://github.com/prusajr/PrusaMendel | |
7 | ||
8 | include <../configuration.scad> | |
9 | use <../y-drivetrain.scad> | |
10 | use <../y-axis-corner.scad> | |
11 | use <../z-axis.scad> | |
12 | use <../x-end.scad> | |
13 | use <../x-carriage.scad> | |
14 | use <../y-axis-bracket.scad> | |
15 | use <../bushing.scad> | |
eff6608e | 16 | use <../inc/bearing-guide.scad> |
28159e2f DR |
17 | module ybeltholder() { |
18 | include <../y-belt-holder.scad> | |
19 | } | |
20 | module bearing_guide() { | |
087f3a14 VAH |
21 | bearing_guide_inner(); |
22 | translate([0,0,7+0.9*2])rotate([0,180,0])bearing_guide_outer(); | |
28159e2f DR |
23 | } |
24 | ||
25 | ||
26 | //-------------------------------------------------------------------------------------------------------------------------------- | |
27 | // screws, nuts, etc | |
28 | //-------------------------------------------------------------------------------------------------------------------------------- | |
29 | // wood (flat) screw | |
30 | module screw(depth=board_thickness*1.5){ | |
31 | module arrow(radiusmax=4, thickness=1, initialgap=0.5, radiusmin=0.5, depth=4) { | |
32 | union() { | |
33 | hull() { | |
34 | translate([0,0,initialgap/2-0.25])cube(size=[radiusmax,thickness,initialgap+0.5], center=true); | |
35 | translate([0,0,depth])cube(size=[radiusmin,radiusmin,radiusmin], center=true); | |
36 | } | |
37 | rotate([0,0,90]) hull() { | |
38 | translate([0,0,initialgap/2-0.25])cube(size=[radiusmax,thickness,initialgap+0.5], center=true); | |
39 | translate([0,0,depth])cube(size=[radiusmin,radiusmin,radiusmin], center=true); | |
40 | } | |
41 | } | |
42 | } | |
43 | ||
44 | color([1,1,0]) | |
45 | difference() { | |
46 | union() { | |
47 | cylinder(r1=4,r2=3.5/2,h=4); | |
48 | cylinder(r1=3.5/2,r2=3.5/2,h=depth-2); | |
49 | translate([0,0,depth-2])cylinder(r1=3.5/2,r2=0,h=2); | |
50 | } | |
51 | arrow(); | |
52 | } | |
53 | } | |
54 | module M3screw(depth=10) { | |
55 | difference() { | |
56 | union() { | |
57 | cylinder(r=1.5, h=2+depth); | |
58 | cylinder(r=2.5, h=2); | |
59 | } | |
60 | cube(size=[6,1,2],center=true); | |
61 | } | |
62 | } | |
63 | // M3 nut | |
64 | module M3nut(){ | |
65 | color("silver") | |
66 | difference(){ | |
67 | translate([0,0,2])cylinder(r=6/2,h=2.5,$fn=6); | |
68 | translate([0,0,-1])cylinder(r=3/2,h=12,$fn=10); | |
69 | } | |
70 | } | |
71 | // M8 nut + washer | |
72 | module nutwasher(){ | |
73 | color("silver") | |
74 | difference(){ | |
75 | union(){ | |
76 | translate([0,0,2])cylinder(r=15/2,h=7,$fn=6); | |
77 | translate([0,0,0.5])cylinder(r=8.5,h=1); | |
78 | } | |
79 | translate([0,0,-1])cylinder(r=8/2,h=12); | |
80 | } | |
81 | } | |
82 | //-------------------------------------------------------------------------------------------------------------------------------- | |
83 | ||
84 | ||
85 | ||
86 | ||
87 | ||
88 | ||
89 | ||
90 | ||
91 | ||
92 | //-------------------------------------------------------------------------------------------------------------------------------- | |
93 | // Y axis | |
94 | //-------------------------------------------------------------------------------------------------------------------------------- | |
95 | // y motor mount | |
96 | translate([56-yrodseparation/2,-y_smooth_rod_length/2+9,board_thickness-12]) | |
97 | { | |
98 | rotate([0,90,0]) rotate([0,0,90]) motorholder(); | |
99 | translate([10,0,30])rotate([0,90,0])nutwasher(); | |
100 | translate([0,0,30])rotate([0,90,180])nutwasher(); | |
101 | translate([10,0,10])rotate([0,90,0])nutwasher(); | |
102 | translate([0,0,10])rotate([0,90,180])nutwasher(); | |
103 | } | |
104 | ||
105 | // y idler mount | |
106 | translate([70-yrodseparation/2,y_smooth_rod_length/2-9,30 + board_thickness-12]) | |
107 | { | |
108 | translate([0,0-33,-8]) | |
109 | rotate([0,-90,0]) idlermount(); | |
110 | translate([0,0,0])rotate([0,90,0])nutwasher(); | |
111 | translate([-20,0,0])rotate([0,90,180])nutwasher(); | |
112 | // bearing guide | |
113 | translate([-5,-33+8,-8+8]) | |
114 | rotate([0,-90,0]) bearing_guide(); | |
115 | } | |
116 | ||
117 | yrodseparation=140; | |
118 | ||
119 | module yfront() | |
120 | { | |
121 | // corners | |
087f3a14 VAH |
122 | render(convexity=2) leftfront(); |
123 | translate([yrodseparation,0,0]) mirror([1,0,0]) render(convexity=2) leftfront(); | |
28159e2f DR |
124 | |
125 | // front bottom threaded rod | |
126 | color("Aqua") | |
127 | translate([-20,9,10]) rotate([0,90,0]) cylinder(h = yrodseparation+40, r=4); | |
128 | ||
129 | translate([yrodseparation+11,9,10])rotate([0,90,0])nutwasher(); | |
130 | translate([yrodseparation-11,9,10])rotate([0,90,180])nutwasher(); | |
131 | ||
132 | translate([-11,9,10])rotate([0,90,180])nutwasher(); | |
133 | translate([11,9,10])rotate([0,90,0])nutwasher(); | |
134 | ||
135 | // front top threaded rod | |
136 | color("Aqua") | |
137 | translate([-20,9,30]) rotate([0,90,0]) cylinder(h = yrodseparation+40, r=4); | |
138 | ||
139 | translate([-11,9,30])rotate([0,90,180])nutwasher(); | |
140 | translate([11,9,30])rotate([0,90,0])nutwasher(); | |
141 | ||
142 | translate([yrodseparation-11,9,30])rotate([0,90,180])nutwasher(); | |
143 | translate([yrodseparation+11,9,30])rotate([0,90,0])nutwasher(); | |
144 | } | |
145 | ||
146 | translate([-yrodseparation/2,-y_smooth_rod_length/2,board_thickness-12]) | |
147 | { | |
148 | yfront(); | |
149 | translate([0,y_smooth_rod_length,0]) | |
150 | mirror([0,1,0]) | |
151 | yfront(); | |
152 | } | |
153 | ||
154 | module yside() | |
155 | { | |
156 | translate([-yrodseparation/2,0]) | |
157 | { | |
158 | // left top rod | |
159 | color("MediumBlue") | |
fecd3f75 | 160 | translate([0,0,3+board_thickness + 30]) rotate([0,90,90]) cylinder(h = y_smooth_rod_length, r=bushing_xy[0],center=true); |
28159e2f DR |
161 | //left bottom rod |
162 | color("Aqua") | |
fecd3f75 | 163 | translate([0,0,3+board_thickness+4+1]) rotate([0,90,90]) cylinder(h = y_smooth_rod_length+22, r=y_threaded_rod_long_r ,center=true); |
28159e2f DR |
164 | |
165 | ||
166 | // middle nuts | |
167 | // 100=default wood plank width (see pl function below) | |
e5452246 DR |
168 | translate([0,board_thickness-4-3,8+board_thickness])rotate([0,-90,90])nutwasher(); |
169 | translate([0,board_thickness+100-4+3,8+board_thickness])rotate([0,90,90])nutwasher(); | |
28159e2f DR |
170 | |
171 | ||
172 | ||
173 | // back nuts | |
174 | translate([0,y_smooth_rod_length/2+2,8+board_thickness])rotate([0,90,90])nutwasher(); | |
175 | translate([0,y_smooth_rod_length/2+2-22,8+board_thickness])rotate([0,90,-90])nutwasher(); | |
176 | // front nuts | |
177 | translate([0,-y_smooth_rod_length/2-2,8+board_thickness])rotate([0,90,-90])nutwasher(); | |
178 | translate([0,-y_smooth_rod_length/2-2+22,8+board_thickness])rotate([0,90,90])nutwasher(); | |
179 | } | |
180 | } | |
181 | ||
182 | yside(); | |
183 | translate([yrodseparation,0,0])yside(); | |
184 | ||
185 | // heat bed | |
186 | heatbed_height=board_thickness; | |
187 | color("Lime",0.25) | |
188 | translate([0,0,58-3+heatbed_height/2+5]) cube([bed_x_size,bed_y_size,heatbed_height], center=true); | |
189 | ||
190 | ||
191 | // Y belt holder | |
192 | translate([-yrodseparation/2+60.5 , 0, 58-3+5-2.8]) rotate([0,90,-90]) ybeltholder(); | |
193 | translate([-yrodseparation/2+60.5+12, -5, 58-3+0-2.8-1]) screw(heatbed_height/2+8); | |
194 | translate([-yrodseparation/2+60.5-12, -5, 58-3+0-2.8-1]) screw(heatbed_height/2+8); | |
195 | translate([-yrodseparation/2+60.5 ,-5-35, 58-3+0-2.8-1]) screw(heatbed_height/2+8); | |
196 | ||
197 | ||
198 | // bushings | |
087f3a14 | 199 | render(convexity=3) translate([yrodseparation/2 , -bed_y_size/4-10 , 50 -0.5]) rotate([0,90,90]) y_bearing(); |
28159e2f DR |
200 | translate([yrodseparation/2+14, -bed_y_size/4-10+10, 50+6.5-0.5-5]) screw(heatbed_height/2+8); |
201 | translate([yrodseparation/2-14, -bed_y_size/4-10+10, 50+6.5-0.5-5]) screw(heatbed_height/2+8); | |
202 | ||
087f3a14 | 203 | render(convexity=3) mirror([0,1,0])translate([yrodseparation/2 , -bed_y_size/4-10 , 50 -0.5]) rotate([0,90,90]) y_bearing(); |
28159e2f DR |
204 | mirror([0,1,0])translate([yrodseparation/2+14, -bed_y_size/4-10+10, 50+6.5-0.5-5]) screw(heatbed_height/2+8); |
205 | mirror([0,1,0])translate([yrodseparation/2-14, -bed_y_size/4-10+10, 50+6.5-0.5-5]) screw(heatbed_height/2+8); | |
206 | ||
087f3a14 | 207 | render(convexity=3) translate([-yrodseparation/2 , -10 , 50 -0.5]) rotate([0,90,90]) y_bearing(); |
28159e2f DR |
208 | translate([-yrodseparation/2+14, -10+10, 50+6.5-0.5-5]) screw(heatbed_height/2+8); |
209 | translate([-yrodseparation/2-14, -10+10, 50+6.5-0.5-5]) screw(heatbed_height/2+8); | |
210 | ||
211 | //-------------------------------------------------------------------------------------------------------------------------------- | |
212 | ||
213 | ||
214 | ||
215 | ||
216 | ||
217 | ||
218 | ||
219 | ||
220 | //-------------------------------------------------------------------------------------------------------------------------------- | |
221 | // Z axis | |
222 | //-------------------------------------------------------------------------------------------------------------------------------- | |
223 | board_sides=120; | |
224 | board_w=bed_x_size+10+2*board_sides; | |
225 | ||
226 | //// aluminum XZ board | |
227 | //translate([0,board_thickness/2,150]) | |
228 | //%difference() | |
229 | //{ | |
230 | // cube([board_w,board_thickness,300],true); | |
231 | // translate([0,0,-15]) | |
232 | // cube([bed_x_size+10,board_thickness+2,200],true); | |
233 | //} | |
234 | ||
235 | ||
236 | // Z motor mounts | |
087f3a14 VAH |
237 | translate([-board_w/2-5+12-board_thickness,12-board_thickness,50]) |
238 | rotate(-90) mirror([0, 0, 1]) | |
239 | render(convexity=3) zmotorholder(); | |
28159e2f | 240 | |
087f3a14 | 241 | translate([-board_w/2-5+12-board_thickness-1, board_thickness / 2, 39]) |
28159e2f DR |
242 | rotate([-90,0,-90]) |
243 | screw(25); | |
087f3a14 | 244 | translate([-board_w/2-5+12-board_thickness+30,12-board_thickness-15,41]) |
28159e2f DR |
245 | rotate([-90,0,0]) |
246 | screw(25); | |
247 | translate([-board_w/2-5+12-board_thickness+10.5,12-board_thickness-10.5,42+7]) | |
248 | rotate([180,0,0]) | |
249 | M3screw(); | |
250 | translate([-board_w/2-5+12-board_thickness+41.5,12-board_thickness-10.5,42+7]) | |
251 | rotate([180,0,0]) | |
252 | M3screw(); | |
253 | translate([-board_w/2-5+12-board_thickness+10.5,12-board_thickness-10.5-31,42+7]) | |
254 | rotate([180,0,0]) | |
255 | M3screw(); | |
256 | ||
257 | ||
087f3a14 VAH |
258 | translate([board_w/2+5-12+board_thickness,12-board_thickness,50]) |
259 | rotate(-90) mirror([0, 0, 1]) | |
28159e2f | 260 | mirror([0,1,0]) |
087f3a14 | 261 | render(convexity=3) zmotorholder(); |
28159e2f | 262 | |
087f3a14 | 263 | translate([board_w/2+5-12+board_thickness+1, board_thickness / 2, 39]) |
28159e2f DR |
264 | rotate([90,0,-90]) |
265 | screw(25); | |
087f3a14 | 266 | translate([board_w/2+5-12+board_thickness-30,12-board_thickness-15,41]) |
28159e2f DR |
267 | rotate([-90,0,0]) |
268 | screw(25); | |
269 | translate([board_w/2+5-12+board_thickness-10.5,12-board_thickness-10.5,42+7]) | |
270 | rotate([180,0,0]) | |
271 | M3screw(); | |
272 | translate([board_w/2+5-12+board_thickness-41.5,12-board_thickness-10.5,42+7]) | |
273 | rotate([180,0,0]) | |
274 | M3screw(); | |
275 | translate([board_w/2+5-12+board_thickness-10.5,12-board_thickness-10.5-31,42+7]) | |
276 | rotate([180,0,0]) | |
277 | M3screw(); | |
278 | ||
279 | ||
280 | ||
281 | // Z rod mounts | |
282 | //translate([-board_w/2-5,0,260]) | |
283 | translate([-board_w/2-5+12-board_thickness,12-board_thickness,430]) | |
284 | rotate(-90) | |
087f3a14 | 285 | render(convexity=3) zrodholder(); |
28159e2f | 286 | |
087f3a14 | 287 | translate([-board_w/2-5+12-board_thickness-1, board_thickness / 2, 430+7.5]) |
28159e2f DR |
288 | rotate([0,90,0]) |
289 | screw(25); | |
290 | translate([-board_w/2-5+12-board_thickness-1+34,12-board_thickness+8-23,430+6.5]) | |
291 | rotate([-90,90,0]) | |
292 | screw(25); | |
293 | ||
294 | ||
295 | //translate([board_w/2+5,0,260]) | |
296 | translate([board_w/2+5-12+board_thickness,12-board_thickness,430]) | |
297 | rotate(-90) | |
298 | mirror([0,1,0]) | |
087f3a14 | 299 | render(convexity=3) zrodholder(); |
28159e2f | 300 | |
087f3a14 | 301 | translate([board_w/2+5-12+board_thickness+1, board_thickness / 2, 430+7.5]) |
28159e2f DR |
302 | rotate([0,-90,0]) |
303 | mirror([0,1,0]) | |
304 | screw(25); | |
305 | translate([board_w/2+5-12+board_thickness+1-34,12-board_thickness+8-23,430+6.5]) | |
306 | rotate([-90,90,0]) | |
307 | mirror([0,1,0]) | |
308 | screw(25); | |
309 | ||
310 | // Z rods | |
311 | module z_rods() | |
312 | { | |
313 | color("MediumBlue") | |
fecd3f75 | 314 | translate([board_w/2-4-12+board_thickness,-26+12-board_thickness,42])cylinder(h=z_smooth_rod_length,r=bushing_z[0]); |
087f3a14 | 315 | echo (z_smooth_rod_length); |
28159e2f DR |
316 | color("Aqua") |
317 | translate([board_w/2-4-12+board_thickness-17,-26+12-board_thickness,56])cylinder(h = 390, r=2.5); | |
318 | } | |
319 | ||
320 | z_rods(); | |
321 | mirror([1,0,0])z_rods(); | |
322 | //-------------------------------------------------------------------------------------------------------------------------------- | |
323 | ||
324 | ||
325 | ||
326 | ||
327 | ||
328 | ||
329 | ||
330 | ||
331 | ||
332 | ||
333 | //-------------------------------------------------------------------------------------------------------------------------------- | |
334 | // X axis | |
335 | //-------------------------------------------------------------------------------------------------------------------------------- | |
336 | ||
337 | // move the x-axis up 20cm (for visualization only) | |
338 | x_axis_height=200; | |
339 | x_smooth_rod_length=450+board_thickness*2+10; | |
340 | ||
341 | // X ends | |
342 | translate([-board_w/2+4+12-board_thickness,-26+12-board_thickness,140+ x_axis_height]) | |
343 | rotate([0,0,90]) | |
344 | //rotate([0,180,0]) | |
087f3a14 | 345 | render(convexity=4) x_end_motor(); |
28159e2f DR |
346 | |
347 | translate([board_w/2-4-12+board_thickness,-26+12-board_thickness,140 + x_axis_height]) | |
348 | rotate(90) | |
349 | //rotate([0,180,0]) | |
087f3a14 | 350 | render(convexity=4) x_end_idler(); |
28159e2f DR |
351 | |
352 | // bearing guide | |
353 | translate([board_w/2-4-12+board_thickness-27,-26+12-board_thickness-9-(10-(7+0.9*2))/2,140 + x_axis_height+27]) | |
354 | rotate([90,0,0]) | |
355 | bearing_guide(); | |
356 | ||
357 | // X rods | |
358 | for(i=[0:1]) | |
359 | color("MediumBlue") | |
360 | translate([1.5,-12+12-board_thickness-28,-3+149+i*45 + x_axis_height])rotate([0,90,0])cylinder(h=x_smooth_rod_length,r=4,center=true); | |
361 | ||
362 | // X carriage | |
363 | translate([0,-12+12-board_thickness-28,-3+149 + x_axis_height]) | |
364 | rotate([0,90,0]) | |
365 | translate([-45,0,75]) | |
366 | rotate([0,180,0]) | |
087f3a14 | 367 | render(convexity=3) x_carriage(); |
28159e2f DR |
368 | |
369 | // small nuts | |
370 | translate([0,-12+12-board_thickness-28,-3+149 + x_axis_height]) | |
371 | rotate([0,90,0]) | |
372 | translate([-45+20,0+9,75-3]) | |
373 | rotate([90,0,0]) | |
374 | M3nut(); | |
375 | ||
376 | translate([0,-12+12-board_thickness-28,-3+149 + x_axis_height]) | |
377 | rotate([0,90,0]) | |
378 | translate([-45+20,0+9,75-33]) | |
379 | rotate([90,0,0]) | |
380 | M3nut(); | |
381 | ||
382 | translate([0,-12+12-board_thickness-28,-3+149 + x_axis_height]) | |
383 | rotate([0,90,0]) | |
384 | translate([-45+20,0+9,75-53]) | |
385 | rotate([90,0,0]) | |
386 | M3nut(); | |
387 | ||
388 | translate([0,-12+12-board_thickness-28,-3+149 + x_axis_height]) | |
389 | rotate([0,90,0]) | |
390 | translate([-45+20,0+9,75-83]) | |
391 | rotate([90,0,0]) | |
392 | M3nut(); | |
393 | ||
394 | // belt clamp | |
395 | translate([0-28,-12+12-board_thickness-28-10,-3+149 + x_axis_height-7]) | |
396 | rotate([0,90,0]) | |
397 | translate([-45,0,75]) | |
398 | rotate([0,90,0]) | |
399 | x_beltclamp(); | |
400 | ||
401 | // belt clamp | |
402 | translate([0-28-30,-12+12-board_thickness-28-10,-3+149 + x_axis_height-7]) | |
403 | rotate([0,90,0]) | |
404 | translate([-45,0,75]) | |
405 | rotate([0,90,0]) | |
406 | x_beltclamp(); | |
407 | ||
408 | //-------------------------------------------------------------------------------------------------------------------------------- | |
409 | ||
410 | ||
411 | ||
412 | ||
413 | ||
414 | ||
415 | ||
416 | ||
417 | ||
418 | ||
419 | ||
420 | ||
421 | ||
422 | ||
423 | ||
424 | ||
425 | ||
426 | ||
427 | ||
428 | ||
429 | ||
430 | ||
431 | //-------------------------------------------------------------------------------------------------------------------------------- | |
432 | // Frame (box style) | |
433 | //-------------------------------------------------------------------------------------------------------------------------------- | |
434 | module pl(x=100,y=100,z=board_thickness){ | |
435 | cube([x,y,z]); | |
436 | } | |
437 | module p3bscorner(){ | |
438 | translate([ board_thickness*1.5+3,-0.5-board_thickness,board_thickness/2])rotate([-90,0,0])screw(); | |
439 | translate([450-board_thickness*1.5 ,-0.5-board_thickness,board_thickness/2])rotate([-90,0,0])screw(); | |
440 | translate([450/2 ,-0.5-board_thickness,board_thickness/2])rotate([-90,0,0])screw(); | |
441 | color([0.5,0.5,0.5,0.8])pl(x=450); | |
442 | color([0.5,0.5,0.6,0.8])rotate([90,0,0])pl(x=450); | |
443 | } | |
444 | module p3bsgantry(){ | |
445 | separation=10; | |
446 | translate([450-separation,-100-separation ,board_thickness*2+1])mirror([0,0,1])screw(); | |
447 | translate([450-separation, 100+separation+50,board_thickness*2+1])mirror([0,0,1])screw(); | |
448 | translate([350+separation,-100-separation ,board_thickness*2+1])mirror([0,0,1])screw(); | |
449 | translate([350+separation, 100+separation+50,board_thickness*2+1])mirror([0,0,1])screw(); | |
450 | ||
451 | translate([350+separation,-200+separation ,board_thickness*2+1])mirror([0,0,1])screw(); | |
452 | translate([350+separation, 200-separation+50,board_thickness*2+1])mirror([0,0,1])screw(); | |
453 | color([0.5,0.5,0.6,0.9])translate([450,-200,board_thickness])rotate([0,0,90])pl(x=450); | |
454 | translate([0,-200,0])color([0,0,0,0.3])p3bscorner(); | |
455 | translate([0, 250,0])color([0,0,0,0.3])mirror([0,1,0])p3bscorner(); | |
456 | } | |
457 | module boxframe(top=false){ | |
458 | translate([300-board_thickness ,-200.5-board_thickness,board_thickness/2+3])rotate([-90,0, 0])screw(); | |
459 | translate([200+board_thickness+board_thickness/2 ,-200.5-board_thickness,board_thickness/2+3])rotate([-90,0, 0])screw(); | |
460 | translate([300-board_thickness , 250.5+board_thickness,board_thickness/2+3])rotate([ 90,0, 0])screw(); | |
461 | translate([200+board_thickness+board_thickness/2 , 250.5+board_thickness,board_thickness/2+3])rotate([ 90,0, 0])screw(); | |
462 | translate([300.5+board_thickness ,-200+board_thickness ,board_thickness/2+3])rotate([ 90,0,-90])screw(); | |
463 | translate([300.5+board_thickness ,-100-board_thickness ,board_thickness/2+3])rotate([ 90,0,-90])screw(); | |
464 | translate([300.5+board_thickness , 250-board_thickness ,board_thickness/2+3])rotate([ 90,0,-90])screw(); | |
465 | translate([300.5+board_thickness , 150+board_thickness ,board_thickness/2+3])rotate([ 90,0,-90])screw(); | |
466 | ||
467 | // 3mm separation for the screw heads at the bottom of the structure | |
468 | //translate([300,-180,0])rotate([0,0,90])color([1,0,0,0.35])pl(x=400,z=3); | |
469 | translate([300,-200,3])rotate([0,0,90])color([0,0,1,0.55])pl(x=450); | |
470 | ||
471 | translate([300+board_thickness,0])rotate([0,-90,0])color([0,0,0,0.4])p3bsgantry(); | |
472 | if(top){ | |
473 | translate([200+board_thickness+board_thickness/2,-200-board_thickness/2,450+board_thickness+1])mirror([0,0,1])screw(); | |
474 | translate([200+board_thickness+board_thickness/2, 250+board_thickness/2,450+board_thickness+1])mirror([0,0,1])screw(); | |
475 | translate([300-board_thickness-board_thickness/2,-200-board_thickness/2,450+board_thickness+1])mirror([0,0,1])screw(); | |
476 | translate([300-board_thickness-board_thickness/2, 250+board_thickness/2,450+board_thickness+1])mirror([0,0,1])screw(); | |
477 | translate([300+board_thickness/2 ,-150 ,450+board_thickness+1])mirror([0,0,1])screw(); | |
478 | translate([300+board_thickness/2 , 200 ,450+board_thickness+1])mirror([0,0,1])screw(); | |
479 | translate([300+board_thickness,-200-board_thickness,450])rotate([0,0,90])color([0,0,1,0.55])pl(x=450+board_thickness*2); | |
480 | } | |
481 | } | |
482 | ||
483 | ||
484 | translate([-25,312,0])rotate([0,0,-90])color([0,0,0,0.4]) | |
485 | boxframe(true); | |
486 | // floor | |
487 | //color([0.8,0.8,0.2,0.35])translate([0,0,-100])cube([800,800,200],true); | |
488 | //-------------------------------------------------------------------------------------------------------------------------------- | |
489 | ||
490 | ||
491 | ||
492 | ||
493 | ||
494 | ||
495 | ||
496 | ||
497 | //-------------------------------------------------------------------------------------------------------------------------------- | |
498 | // Parts to fix Y axis to the frame | |
499 | //-------------------------------------------------------------------------------------------------------------------------------- | |
500 | // y brackets, used to fix the threaded rods of the y axis to the wooden XZ frame. | |
501 | translate([-bracket_width(12)/2 +yrodseparation/2,-3+12 ,board_thickness+3]) yrodbracket(12, 3, 3); | |
502 | translate([-bracket_width(12)/2 -yrodseparation/2,-3+12 ,board_thickness+3]) yrodbracket(12, 3, 3); | |
503 | translate([ bracket_width(12)/2 +yrodseparation/2, 3+12+100,board_thickness+3])rotate([0,0,180]) yrodbracket(12, 3, 3); | |
504 | translate([ bracket_width(12)/2 -yrodseparation/2, 3+12+100,board_thickness+3])rotate([0,0,180]) yrodbracket(12, 3, 3); | |
505 | //-------------------------------------------------------------------------------------------------------------------------------- | |
506 | translate([-bracket_width(12)/2+6+yrodseparation/2,12+3+3 ,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
507 | translate([ bracket_width(12)/2-6+yrodseparation/2,12+3+3 ,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
508 | translate([-bracket_width(12)/2+6+yrodseparation/2,12+3+3+12 ,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
509 | translate([ bracket_width(12)/2-6+yrodseparation/2,12+3+3+12 ,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
510 | ||
511 | translate([-bracket_width(12)/2+6-yrodseparation/2,12+3+3 ,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
512 | translate([ bracket_width(12)/2-6-yrodseparation/2,12+3+3 ,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
513 | translate([-bracket_width(12)/2+6-yrodseparation/2,12+3+3+12 ,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
514 | translate([ bracket_width(12)/2-6-yrodseparation/2,12+3+3+12 ,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
515 | ||
516 | translate([-bracket_width(12)/2+6+yrodseparation/2,-12+3+3+100,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
517 | translate([ bracket_width(12)/2-6+yrodseparation/2,-12+3+3+100,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
518 | translate([-bracket_width(12)/2+6+yrodseparation/2, 3+3+100,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
519 | translate([ bracket_width(12)/2-6+yrodseparation/2, 3+3+100,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
520 | ||
521 | translate([-bracket_width(12)/2+6-yrodseparation/2,-12+3+3+100,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
522 | translate([ bracket_width(12)/2-6-yrodseparation/2,-12+3+3+100,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
523 | translate([-bracket_width(12)/2+6-yrodseparation/2, 3+3+100,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
524 | translate([ bracket_width(12)/2-6-yrodseparation/2, 3+3+100,board_thickness+bracket_height(3)+0.5])rotate([180,0,0])screw(); | |
e5452246 | 525 | |
28159e2f | 526 | //-------------------------------------------------------------------------------------------------------------------------------- |