Commit | Line | Data |
---|---|---|
90c10a06 MR |
1 | // PRUSA iteration3 |
2 | // X end prototype | |
3 | // GNU GPL v3 | |
4 | // Josef Průša <iam@josefprusa.cz> and contributors | |
5 | // http://www.reprap.org/wiki/Prusa_Mendel | |
6 | // http://prusamendel.org | |
7 | ||
8 | use <bearing.scad> | |
9 | ||
10 | rod_distance = 45; | |
11 | pushfit_d = 8.2; | |
12 | ||
13 | module x_end_base(){ | |
14 | // Main block | |
15 | height = 58; | |
16 | translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true); | |
17 | // Bearing holder | |
18 | vertical_bearing_base(); | |
19 | //Nut trap | |
20 | // Cube | |
21 | translate(v=[-2-2,-17,4]) cube(size = [8,16,8], center = true); | |
22 | // Hexagon | |
23 | translate(v=[0,-17,0]) rotate([0,0,30]) cylinder(h = 8, r=8, $fn = 6); | |
24 | } | |
25 | ||
26 | module x_end_holes(){ | |
27 | vertical_bearing_holes(); | |
28 | // Belt hole | |
29 | translate(v=[-1,0,0]){ | |
30 | // Stress relief | |
31 | translate(v=[-5.5-10+1.5,-10-1,30]) cube(size = [20,1,28], center = true); | |
32 | difference(){ | |
33 | translate(v=[-5.5-10+1.5,-10,30]) cube(size = [10,46,28], center = true); | |
34 | ||
35 | ||
36 | ||
37 | // Nice edges | |
38 | translate(v=[-5.5-10+1.5,-10,30+23]) rotate([0,45,0]) cube(size = [10,46,28], center = true); | |
39 | translate(v=[-5.5-10+1.5,-10,30+23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true); | |
40 | translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true); | |
41 | translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true); | |
42 | ||
43 | } | |
44 | } | |
45 | ||
46 | ||
47 | ||
48 | // Bottom pushfit rod | |
49 | translate(v=[-15,-41.5,6]) rotate(a=[-90,0,0]) pushfit_rod(pushfit_d,50); | |
50 | // Top pushfit rod | |
51 | translate(v=[-15,-41.5,rod_distance+6]) rotate(a=[-90,0,0]) pushfit_rod(pushfit_d,50); | |
52 | // Nut trap | |
53 | translate(v=[0,-17,-0.5]) cylinder(h = 4, r1=3.3, r2=2.8, $fn=25); | |
54 | translate(v=[0,-17,3]) rotate([0,0,30]) cylinder(h = 10, r=4.5, $fn = 6); | |
55 | } | |
56 | ||
57 | ||
58 | // Final prototype | |
59 | module x_end_plain(){ | |
60 | difference(){ | |
61 | x_end_base(); | |
62 | x_end_holes(); | |
63 | } | |
64 | } | |
65 | ||
66 | x_end_plain(); | |
67 | ||
68 | ||
69 | module pushfit_rod(diameter,length){ | |
70 | cylinder(h = length, r=diameter/2, $fn=30); | |
71 | difference(){ | |
72 | translate(v=[0,-diameter/2.85,length/2]) rotate([0,0,45]) cube(size = [diameter/2,diameter/2,length], center = true); | |
73 | translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true); | |
74 | } | |
75 | //translate(v=[0,-diameter/2-2,length/2]) cube(size = [diameter,1,length], center = true); | |
76 | } | |
77 |