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; | |
565cd57b | 11 | pushfit_d = 8.15; |
618f5b83 | 12 | hex_nut_r = 4.75; |
90c10a06 | 13 | |
68868634 CE |
14 | module nut_trap_base () { |
15 | cube(size=[7.8,20,8],center=true); | |
16 | translate ([2,0,0]) cylinder(h=8,r=12.5,$fn=50,center=true); | |
17 | } | |
18 | ||
19 | module nut_trap () { | |
20 | union() { | |
21 | // center post of brass nut | |
22 | cylinder(h=12,r=5.45,$fn=50,center=true); | |
23 | // holes for m3 screws in brass nut | |
24 | #translate(v=[8,0,0]) cylinder(h=12,r=1.8,$fn=20,center=true); | |
25 | #rotate([0,0,90]) translate(v=[8,0,0]) cylinder(h=12,r=1.8,$fn=20,center=true); | |
26 | #rotate([0,0,180]) translate(v=[8,0,0]) cylinder(h=12,r=1.8,$fn=20,center=true); | |
27 | #rotate([0,0,270]) translate(v=[8,0,0]) cylinder(h=12,r=1.8,$fn=20,center=true); | |
28 | } | |
29 | } | |
30 | ||
90c10a06 MR |
31 | module x_end_base(){ |
32 | // Main block | |
33 | height = 58; | |
34 | translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true); | |
35 | // Bearing holder | |
36 | vertical_bearing_base(); | |
37 | //Nut trap | |
68868634 | 38 | translate(v=[-2-2,-17,4]) nut_trap_base (); |
90c10a06 | 39 | // Cube |
68868634 | 40 | // #translate(v=[-2-2,-17,4]) cube(size = [8,16,8], center = true); |
90c10a06 | 41 | // Hexagon |
68868634 | 42 | // #translate(v=[0,-17,0]) rotate([0,0,30]) cylinder(h = 8, r=8, $fn = 6); |
90c10a06 MR |
43 | } |
44 | ||
45 | module x_end_holes(){ | |
46 | vertical_bearing_holes(); | |
618f5b83 MR |
47 | // Belt hole |
48 | translate(v=[-1,0,0]){ | |
49 | // Stress relief | |
50 | translate(v=[-5.5-10+1.5,-10-1,30]) cube(size = [20,1,28], center = true); | |
51 | difference(){ | |
90c10a06 MR |
52 | translate(v=[-5.5-10+1.5,-10,30]) cube(size = [10,46,28], center = true); |
53 | ||
90c10a06 MR |
54 | // Nice edges |
55 | translate(v=[-5.5-10+1.5,-10,30+23]) rotate([0,45,0]) cube(size = [10,46,28], center = true); | |
56 | translate(v=[-5.5-10+1.5,-10,30+23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true); | |
57 | translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true); | |
58 | translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true); | |
59 | ||
60 | } | |
61 | } | |
62 | ||
63 | ||
64 | ||
65 | // Bottom pushfit rod | |
66 | translate(v=[-15,-41.5,6]) rotate(a=[-90,0,0]) pushfit_rod(pushfit_d,50); | |
67 | // Top pushfit rod | |
68 | translate(v=[-15,-41.5,rod_distance+6]) rotate(a=[-90,0,0]) pushfit_rod(pushfit_d,50); | |
69 | // Nut trap | |
68868634 CE |
70 | translate(v=[0,-17,3]) nut_trap (); |
71 | // #translate(v=[0,-17,-0.5]) cylinder(h = 4, r1=3.4, r2=2.9, $fn=25); | |
72 | // translate(v=[0,-17,3]) rotate([0,0,30]) cylinder(h = 10, r=hex_nut_r, $fn = 6); | |
90c10a06 MR |
73 | } |
74 | ||
75 | ||
76 | // Final prototype | |
77 | module x_end_plain(){ | |
78 | difference(){ | |
79 | x_end_base(); | |
80 | x_end_holes(); | |
81 | } | |
82 | } | |
83 | ||
84 | x_end_plain(); | |
85 | ||
86 | ||
87 | module pushfit_rod(diameter,length){ | |
0f2032d7 MR |
88 | translate([0,-0.3,0]) cylinder(h = length, r=diameter/2, $fn=30); |
89 | translate([0,0.3,0]) cylinder(h = length, r=diameter/2, $fn=30); | |
90 | // difference(){ | |
91 | // translate(v=[0,-diameter/2.85,length/2]) rotate([0,0,45]) cube(size = [diameter/2,diameter/2,length], center = true); | |
92 | // translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true); | |
93 | // } | |
94 | ||
90c10a06 MR |
95 | } |
96 |