formatting
[clinton/wilson.git] / scad / x-end.scad
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