Commit | Line | Data |
---|---|---|
2159eed1 VAH |
1 | // PRUSA iteration3 |
2 | // X ends | |
3 | // GNU GPL v3 | |
4 | // Josef Průša <josefprusa@me.com> | |
5 | // Václav 'ax' Hůla <axtheb@gmail.com> | |
6 | // http://www.reprap.org/wiki/Prusa_Mendel | |
7 | // http://github.com/prusajr/PrusaMendel | |
8 | ||
2fc35ca2 | 9 | include <configuration.scad> |
d3618a65 NZ |
10 | use <bushing.scad> |
11 | rod_distance = 45; | |
12 | ||
13 | module x_end_motor(){ | |
79b4b60a | 14 | mirror([0,1,0]) { |
d3618a65 | 15 | |
79b4b60a VAH |
16 | x_end_base([3,3,0,0], thru=false); |
17 | /// motor dummy | |
18 | //%translate([21-5,-21-11,25]) cube([42,42,42], center = true); | |
c7eb29ba VAH |
19 | |
20 | ||
79b4b60a VAH |
21 | difference(){ |
22 | union(){ | |
23 | translate([-13.5,-15,26]) cube_fillet([17,12,52], center = true, vertical=[0,0,3,1.5], top=[0,3,6,3]); | |
24 | translate([-10,-34,9]) intersection(){ | |
25 | cube_fillet([10,37,18], center = true, vertical=[0,0,0,0], top=[0,3,5,3]); | |
26 | translate([-10/2,10,-26]) rotate([45,0,0]) cube_fillet([10,60,60], radius=2); | |
27 | } | |
28 | translate([-15, -32, 30.25]) rotate([90, 0, 0]) rotate([0, 90, 0]) nema17(places=[1,0,1,1], h=10); | |
82e9f136 | 29 | } |
c7eb29ba | 30 | |
79b4b60a VAH |
31 | // motor screw holes |
32 | translate([21-5,-21-11,30.25]){ | |
33 | // belt hole | |
34 | translate([-30,11,0]) cube([10,26,20], center = true); | |
35 | //motor mounting holes | |
36 | translate([-29, 0, 0]) rotate([0, 0, 0]) rotate([0, 90, 0]) nema17(places=[1,1,0,1], holes=true, shadow=5, $fn=7, h=8); | |
37 | } | |
c7eb29ba | 38 | } |
79b4b60a VAH |
39 | //smooth rod caps |
40 | translate([-22, -10.5, 0]) cube([17, 2, 15]); | |
41 | translate([-22, -10.5, 45]) cube([17, 2, 10]); | |
c7eb29ba | 42 | } |
d3618a65 NZ |
43 | } |
44 | ||
d3618a65 | 45 | |
79b4b60a | 46 | module x_end_base(vfillet=[3,3,3,3], thru=true, len=40){ |
c7eb29ba VAH |
47 | difference(){ |
48 | union(){ | |
49 | difference(){ | |
79b4b60a | 50 | translate([-4.5-10+2-1,-10+len/2,30]) cube_fillet([15+2,len,60], center = true, vertical=vfillet, top=[5,3,5,3]); |
2fc35ca2 VAH |
51 | bushing_negative(60); |
52 | } | |
53 | //rotate([0,0,0]) translate([0,-9.5,0]) | |
2fc35ca2 | 54 | if (bearing_choice == 1) { |
8721adac | 55 | linear_bushing(60); |
2fc35ca2 | 56 | } else { |
8721adac | 57 | linear_bearing(65); |
c7eb29ba | 58 | } |
c7eb29ba VAH |
59 | // Nut trap |
60 | difference(){ | |
8721adac | 61 | if ((bearing_choice != 1) || (bushing_type == 2)) { |
4bf15d1b | 62 | translate([-2,17.5,4]) cube_fillet([16,18,8], center = true, vertical=[3,0,0,0]); |
2fc35ca2 | 63 | } else { |
4bf15d1b | 64 | translate([-2,17.5,4]) cube_fillet([16,18,8], center = true, vertical=[3,0,0,3]); |
2fc35ca2 | 65 | } |
d3618a65 | 66 | |
c7eb29ba | 67 | //bottom hole |
3ade0448 | 68 | translate([0,17,-1]) cylinder(h = 4, r=2.45); |
c7eb29ba | 69 | //nut slid in |
4bf15d1b | 70 | translate([5,17,4]) cube([21,9.5,4.1], center = true); |
d3618a65 | 71 | |
3ade0448 | 72 | translate([0,17,6.5]) cylinder(h = 4, r=2.45); |
c7eb29ba VAH |
73 | } |
74 | } | |
d3618a65 | 75 | |
c7eb29ba | 76 | // belt hole |
79b4b60a | 77 | translate([-5.5-10+1.5,22-9,30]) cube([10,55,32], center = true); |
d3618a65 | 78 | |
c7eb29ba | 79 | if(thru == true){ |
3ade0448 VAH |
80 | translate([-14,-11,6]) rotate([-90,0,0]) pushfit_rod(8,50); |
81 | translate([-14,-11,rod_distance+6]) rotate([-90,0,0]) pushfit_rod(8,50); | |
c7eb29ba | 82 | } else { |
3ade0448 VAH |
83 | translate([-14,-7,6]) rotate([-90,0,0]) pushfit_rod(8,50); |
84 | translate([-14,-7,rod_distance+6]) rotate([-90,0,0]) pushfit_rod(8,50); | |
c7eb29ba | 85 | } |
d3618a65 | 86 | |
d3618a65 | 87 | |
c7eb29ba | 88 | } |
d3618a65 | 89 | |
c7eb29ba | 90 | //threaded rod |
3ade0448 | 91 | translate([0,17,0]) %cylinder(h = 70, r=2.5); |
d3618a65 | 92 | |
d3618a65 | 93 | } |
79b4b60a VAH |
94 | |
95 | ||
96 | module x_end_idler(){ | |
97 | difference() { | |
98 | x_end_base(len=42+idler_size_inner_r); | |
99 | // idler hole | |
100 | translate([0,17+6+idler_size_inner_r,30.25-((bearing_type==0)? 3 : 0)]) rotate([0,-90,0]) cylinder(h = 80, r=idler_size_inner_r-0.2, $fn=30); | |
101 | if (bearing_type == 0) | |
102 | translate([-9,17+6+idler_size_inner_r,30.25-3]) { | |
103 | rotate([0,-90,0]) cylinder(h = 10, r=idler_size/2+4, $fn=30); | |
104 | translate([-5,10,0]) cube([10,20,idler_size+8], center=true); | |
105 | } | |
106 | } | |
107 | } | |
108 | ||
3ade0448 VAH |
109 | mirror([0,0,0]) x_end_idler(thru=true); |
110 | // translate([40,40,0]) x_end_idler(thru=false); | |
79b4b60a | 111 | translate([40,0,0]) x_end_motor(); |
d3618a65 | 112 | |
c7eb29ba VAH |
113 | module pushfit_rod(diameter,length){ |
114 | cylinder(h = length, r=diameter/2, $fn=30); | |
4bf15d1b | 115 | translate([0,-diameter/4,length/2]) cube([diameter,diameter/2,length], center = true); |
d3618a65 | 116 | |
4bf15d1b | 117 | translate([0,-diameter/2-1.2,length/2]) cube([diameter,1,length], center = true); |
d3618a65 | 118 | } |