Refactored z axis
[clinton/prusa3.git] / y-axis-corner.scad
1 // PRUSA Mendel
2 // Frame vertex
3 // GNU GPL v3
4 // Greg Frost
5 // http://www.reprap.org/wiki/Prusa_Mendel
6 // http://github.com/prusajr/PrusaMendel
7
8
9 include <configuration.scad>
10
11 module nutrod(){
12 rotate([0,90,0]){
13 //translate(v = [0,0,-0.1]) nut(m8_nut_diameter,6.7,false);
14 translate(v = [-7.5/2,0,7/2-1.5]) cube(size = [7.5,15,7], center=true);
15 translate(v = [0,0,-1.5]) cylinder(h = 7, r=7.5);
16 cylinder(h = 270, r=4.4, $fn=30);
17 }
18 }
19
20 /*
21 20 mm betwenn the front threaded rods
22 25 mm between the side threaded and smooth rod
23 */
24 module leftfront(thru = true){
25 // translate so the rod is on x = 0
26 translate(v = [-11,0,0])
27
28 difference(){
29 intersection(){
30 cube(size = [22,22,50.5]);
31 translate(v = [11,11,25]) rotate([0,0,45]) cube(size = [27,27,55], center=true);
32 }
33
34 translate(v = [-1,11,65]) rotate([0,45,0]) cube(size = [30,30,30], center=true);
35 translate(v = [23,11,65]) rotate([0,45,0]) cube(size = [30,30,30], center=true);
36 translate(v = [10,-4,65]) rotate([45,0,0]) cube(size = [30,30,30], center=true);
37
38
39
40 translate(v = [0,11,10]) rotate([0,0,0]) nutrod();
41
42 translate(v = [14,0,20]) rotate([0,0,90]) rotate([00,0,0]) nutrod();
43
44 translate(v = [0,11,30]) rotate([0,0,0]) nutrod();
45
46 if(thru==false){
47 translate(v = [11,17,45+2.05]) rotate([0,0,0]) #cube(size = [8.2,30,4.1], center=true);
48 translate(v = [11,2,45]) #rotate([0,90,90]) cylinder(h = 270, r=4.1);
49 }else{
50 translate(v = [11,17-5,45+2.05]) rotate([0,0,0]) #cube(size = [8.2,30,4.1], center=true);
51 translate(v = [11,2-5,45]) #rotate([0,90,90]) cylinder(h = 270, r=4.1);
52 }
53
54 }
55 }
56
57 //leftfront positioned for printing
58 module leftfrontprint(){
59 rotate([0,0,0])leftfront();
60 }
61
62 module motorholder(){
63 difference(){
64 union(){
65 // Motor holding part
66 translate(v = [29,-21+50,0])
67 {
68 //#cube(size = [42,42,2], center=true);
69 difference(){
70 union(){
71 translate(v = [-21+4.5,0,5]) cube(size = [9,31,10], center=true);
72 translate(v = [-15.5,-15.5,0]) cylinder(h = 10, r=5.5);
73 translate(v = [-15.5,+15.5,0]) cylinder(h = 10, r=5.5);
74 // Parts joining part
75 translate(v = [-29,-21,0]) cube(size = [14,30,10]);
76 }
77 translate(v = [-15.5,-15.5,-1]) cylinder(h = 10, r=1.7);
78 translate(v = [-15.5,+15.5,-1]) cylinder(h = 10, r=1.7);
79 // holes for heads
80 translate(v = [-15.5,-15.5,7]) cylinder(h = 7, r=3.5);
81 translate(v = [-15.5,+15.5,7]) cylinder(h = 7, r=3.5);
82 // Motor mounting holes
83 }
84 }
85
86 // Front holding part
87 translate(v = [0,10,0]) cylinder(h = 10, r=8);
88 translate(v = [0,20,5])cube(size = [16,20,10], center=true);
89 translate(v = [0,30,0])cylinder(h = 10, r=8);
90 }
91 translate(v = [0,10,-1]) cylinder(h = 12, r=4.5);
92 translate(v = [0,30,-1])cylinder(h = 12, r=4.5);
93 }
94
95
96
97
98 //translate(v = [0,25,0])#cube(size = [22,50,1], center=true);
99 }
100
101 module idlermount(){
102 difference(){
103 union(){
104 translate(v = [0,0,0]) cylinder(h = 19, r=8);
105 translate(v = [0,20,0])cylinder(h = 19, r=8);
106 translate(v = [0,10,9.5])cube(size = [16,20,19], center=true);
107 translate(v = [-4,10,9.5])cube(size = [8,16+20,19], center=true);
108 }
109 translate(v = [0,0,-1]) cylinder(h = 120, r=2.5);
110 translate(v = [0,20,-1])cylinder(h = 25, r=4.5);
111
112 translate(v = [0,0,4])cylinder(h = 11, r=12);
113 }
114 }
115
116 module idler(){
117 difference(){
118 union(){
119 translate(v = [0,10,2.5])cube(size = [17,20,16], center=true);
120 }
121 translate(v = [0,0,-1]) cylinder(h = 20, r=4.5, $fn=15);
122 }
123
124 }
125 //motorholder();
126 //translate(v = [30,15,0]) idlermount();
127 //translate(v = [10,15,0]) idlermount();
128 //translate(v = [-15,15,0]) idler();
129 //motorholder();
130 //idlermount();
131 print = 1;
132 if(print==1){
133 leftfrontprint();
134 translate(v = [25,0,0]) mirror([1,0,0]) leftfrontprint();
135 translate(v = [12,2,28]) rotate([0,0,0]) cube(size = [10,4,1], center=true);
136
137 translate(v = [0,25,0]) {leftfrontprint();
138 translate(v = [25,0,0]) mirror([1,0,0]) leftfrontprint();
139 translate(v = [12,2,28]) rotate([0,0,0]) cube(size = [10,4,1], center=true);}
140 }
141 if(print==2){
142
143 motorholder();
144 // drawing corners
145 leftfront();
146 translate(v = [160,0,0]) mirror([1,0,0]) leftfront();
147 translate(v = [0,350,0]) mirror([0,1,0]){
148 leftfront();
149 translate(v = [160,0,0]) mirror([1,0,0]) leftfront();
150 // back bottom threaded rod
151 translate(v = [0,10,10]) rotate([0,90,0]) cylinder(h = 160, r=4);
152
153 // back top threaded rod
154 translate(v = [0,10,30]) rotate([0,90,0]) cylinder(h = 160, r=4);
155 }
156
157 // front bottom threaded rod
158 translate(v = [0,10,10]) rotate([0,90,0]) cylinder(h = 160, r=4);
159
160 // front top threaded rod
161 translate(v = [0,10,30]) rotate([0,90,0]) cylinder(h = 160, r=4);
162
163 // left top rod
164 translate(v = [0,0,45]) rotate([0,90,90]) cylinder(h = 350, r=4);
165 //left bottom rod
166 translate(v = [3,0,20]) rotate([0,90,90]) cylinder(h = 350, r=4);
167
168 // right top rod
169 translate(v = [160,0,45]) rotate([0,90,90]) cylinder(h = 350, r=4);
170 //right bottom rod
171 translate(v = [160-3,0,20]) rotate([0,90,90]) cylinder(h = 350, r=4);
172 }