Commit | Line | Data |
---|---|---|
2159eed1 VAH |
1 | // PRUSA iteration3 |
2 | // X ends | |
3 | // GNU GPL v3 | |
dba99e69 | 4 | // Josef Průša <josefprusa@me.com> |
3b7acad1 | 5 | // Václav 'ax' Hůla <axtheb@gmail.com> |
2159eed1 VAH |
6 | // http://www.reprap.org/wiki/Prusa_Mendel |
7 | // http://github.com/prusajr/PrusaMendel | |
8 | ||
2fc35ca2 | 9 | include <configuration.scad> |
d3618a65 | 10 | use <bushing.scad> |
a97a50ea | 11 | xaxis_rod_distance = 45; |
d3618a65 NZ |
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(){ | |
f7c38069 | 23 | translate([-13.75,-15,26]) cube_fillet([17.5,12,52], center = true, vertical=[0,0,3,1.5], top=[0,3,6,3]); |
79b4b60a VAH |
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 | 39 | //smooth rod caps |
f7c38069 VAH |
40 | translate([-22, -10, 0]) cube([17, 2, 15]); |
41 | translate([-22, -10, 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(){ | |
d58250e9 | 50 | #translate([-13.75-0.5,-10+len/2,30]) cube_fillet([18.5,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 { |
ca311b6f | 57 | linear_bearing(60); |
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 |
dba99e69 JG |
68 | |
69 | translate([0,17,-1]) cylinder(h = 4, r=2.75); | |
c7eb29ba | 70 | //nut slid in |
dba99e69 | 71 | translate([5,17,4]) cube([9.2*2,9.2*sqrt(3/4),4.1], center = true); |
d3618a65 | 72 | |
dba99e69 | 73 | translate([0,17,6.5]) cylinder(h = 4, r=2.75); |
c7eb29ba VAH |
74 | } |
75 | } | |
d3618a65 | 76 | |
c7eb29ba | 77 | // belt hole |
79b4b60a | 78 | translate([-5.5-10+1.5,22-9,30]) cube([10,55,32], center = true); |
d3618a65 | 79 | |
c7eb29ba | 80 | if(thru == true){ |
6c4710cd JG |
81 | translate([-14,-11,6]) rotate([-90,0,0]) pushfit_rod(8.2,50); |
82 | translate([-14,-11,xaxis_rod_distance+6]) rotate([-90,0,0]) pushfit_rod(8.2,50); | |
c7eb29ba | 83 | } else { |
6c4710cd JG |
84 | translate([-14,-7,6]) rotate([-90,0,0]) pushfit_rod(8.25,50); |
85 | translate([-14,-7,xaxis_rod_distance+6]) rotate([-90,0,0]) pushfit_rod(8.25,50); | |
c7eb29ba | 86 | } |
d3618a65 | 87 | |
d3618a65 | 88 | |
c7eb29ba | 89 | } |
d3618a65 | 90 | |
c7eb29ba | 91 | //threaded rod |
6c4710cd | 92 | #translate([0,17,0]) %cylinder(h = 70, r=2.5+0.2); |
d3618a65 | 93 | |
d3618a65 | 94 | } |
79b4b60a VAH |
95 | |
96 | ||
97 | module x_end_idler(){ | |
98 | difference() { | |
99 | x_end_base(len=42+idler_size_inner_r); | |
100 | // idler hole | |
101 | 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); | |
102 | if (bearing_type == 0) | |
103 | translate([-9,17+6+idler_size_inner_r,30.25-3]) { | |
104 | rotate([0,-90,0]) cylinder(h = 10, r=idler_size/2+4, $fn=30); | |
105 | translate([-5,10,0]) cube([10,20,idler_size+8], center=true); | |
106 | } | |
107 | } | |
108 | } | |
109 | ||
3ade0448 VAH |
110 | mirror([0,0,0]) x_end_idler(thru=true); |
111 | // translate([40,40,0]) x_end_idler(thru=false); | |
79b4b60a | 112 | translate([40,0,0]) x_end_motor(); |
d3618a65 | 113 | |
c7eb29ba VAH |
114 | module pushfit_rod(diameter,length){ |
115 | cylinder(h = length, r=diameter/2, $fn=30); | |
4bf15d1b | 116 | translate([0,-diameter/4,length/2]) cube([diameter,diameter/2,length], center = true); |
d3618a65 | 117 | |
4bf15d1b | 118 | translate([0,-diameter/2-1.2,length/2]) cube([diameter,1,length], center = true); |
d3618a65 | 119 | } |