Commit | Line | Data |
---|---|---|
2159eed1 VAH |
1 | // PRUSA iteration3 |
2 | // X carriage | |
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 | |
8e93419f | 7 | // http://github.com/josefprusa/Prusa3 |
2159eed1 | 8 | |
65a72cd5 T |
9 | // ThingDoc entry |
10 | /** | |
11 | * @id xCarriage | |
12 | * @name X Axis Extruder Carriage | |
13 | * @category Printed | |
14 | */ | |
2159eed1 VAH |
15 | |
16 | include <configuration.scad> | |
17 | use <bushing.scad> | |
88f30890 VAH |
18 | // mounting plate |
19 | use <extras/groovemount.scad> | |
2159eed1 | 20 | |
ad345632 | 21 | |
ccb73da3 VAH |
22 | //Use 30 for single extruder, 50 for wades, 80 for dual extruders (moved to config file) |
23 | //carriage_l_base = 80; | |
c9d4aabe | 24 | //check if we need to extend carriage to fit bearings |
9e4aaf5a VAH |
25 | carriage_l_adjusted = max(adjust_bushing_len(bushing_xy, carriage_l_base, layer_height * 9), adjust_bushing_len(bushing_carriage, carriage_l_base, layer_height * 9)); |
26 | //For bearings 30mm long or shorter enforce double len | |
27 | carriage_l_real = max((bushing_xy[2] > 30 ? carriage_l_adjusted : (2 * bushing_xy[2] + 6)), carriage_l_adjusted); | |
c9d4aabe VAH |
28 | // if the carriage was extended, we want to increase carriage_hole_to_side |
29 | carriage_hole_to_side = max(3, ((carriage_l_real - carriage_l_base) / 2)); | |
9e4aaf5a | 30 | echo(carriage_hole_to_side); |
c9d4aabe | 31 | carriage_l = carriage_l_base + 2 * carriage_hole_to_side; |
2159eed1 | 32 | |
9e4aaf5a | 33 | |
ad345632 VAH |
34 | bushing_carriage_len = adjust_bushing_len(bushing_carriage, 21, layer_height * 9); |
35 | ||
88f30890 VAH |
36 | module x_carriage(){ |
37 | mirror([1,0,0]) { | |
38 | difference() { | |
39 | union() { | |
40 | //upper bearing | |
c9d4aabe | 41 | rotate([0, 0, 90]) linear(bushing_carriage); |
88f30890 | 42 | //lower bearing |
c9d4aabe | 43 | translate([xaxis_rod_distance,0,0]) rotate([0, 0, 90]) linear(bushing_xy, carriage_l); |
d3618a65 | 44 | |
ccb73da3 | 45 | //This block moves with varying bearing thickness to ensure the front side is flat |
c9d4aabe VAH |
46 | translate([0, -bushing_foot_len(bushing_xy), 0]) { |
47 | // main plate | |
81d18889 | 48 | translate([4, -1, 0]) cube_fillet([xaxis_rod_distance + 4, 6, carriage_l], radius=2); |
c9d4aabe | 49 | translate([-8, -1, 0]) cube_fillet([xaxis_rod_distance + 16, 6, bushing_carriage_len + 3], radius=2); |
88f30890 | 50 | } |
d3618a65 | 51 | |
88f30890 | 52 | translate([45/2,0,0]){ |
d3618a65 | 53 | |
ccb73da3 | 54 | //fill the space where the belt is, as it will be substracted at later point and we want it stiff here. |
c9d4aabe VAH |
55 | //belt smooth side |
56 | translate([-13.5 - belt_thickness, -8.5, 0]) cube_fillet([5, 15, carriage_l], vertical = [2, 2, 0, 0]); | |
57 | //belt teethed side, with cutouts for belt ends. | |
88f30890 | 58 | difference(){ |
81d18889 VAH |
59 | union() { |
60 | translate([-3, -1, carriage_l/2]) cube_fillet([11, 16, carriage_l], vertical = [2, 2, 0, 0], center = true); | |
61 | translate([-13, -10, 0]) cube([8, 10, carriage_l]); | |
62 | } | |
9e4aaf5a VAH |
63 | translate([-3.5, 0, 67 + carriage_hole_to_side]) cube([13, 10, 8], center = true); |
64 | translate([-3.5, 0, 40 + carriage_hole_to_side]) cube([13, 10, 8], center = true); | |
65 | translate([-3.5, 0, 15 + carriage_hole_to_side]) cube([13, 10, 8], center = true); | |
66 | if (carriage_l_base == 30) { | |
67 | //more space for belt ends, as there is only one cutout | |
815fe4ec | 68 | translate([-3.5, 0, 15 + carriage_hole_to_side]) cube([13, 10, 14], center = true); |
9e4aaf5a | 69 | } |
88f30890 VAH |
70 | } |
71 | ||
72 | } | |
73 | } | |
c9d4aabe | 74 | //Ensure upper bearing can be inserted cleanly |
81d18889 | 75 | rotate([0, 0, 90]) { |
58279f58 | 76 | linear_negative(bushing_carriage, carriage_l); |
f88c1104 | 77 | } |
c9d4aabe | 78 | //Same for lower bearing |
81d18889 | 79 | translate([xaxis_rod_distance, 0, 0]) rotate([0, 0, 90]) { |
f88c1104 VAH |
80 | linear_negative(bushing_xy, carriage_l); |
81 | } | |
5ea6ab38 | 82 | // extruder mounts |
c9d4aabe | 83 | translate([20, -2, carriage_hole_to_side]) { |
0ae9e1f0 | 84 | rotate([90, 0, 0]) cylinder(r=1.8, h=32, center=true,$fn=small_hole_segments); |
81d18889 | 85 | translate([0, 7, 0]) rotate([90, 60, 0]) cylinder(r=3.4, h=5, $fn=6, center=true); |
88f30890 | 86 | } |
c9d4aabe | 87 | translate([20, -2, carriage_hole_to_side + 30]) { |
0ae9e1f0 | 88 | rotate([90, 0, 0]) cylinder(r=1.8, h=32, center=true,$fn=small_hole_segments); |
81d18889 | 89 | translate([0, 7, 0]) rotate([90, 60, 0]) cylinder(r=3.4, h=5, $fn=6, center=true); |
2159eed1 | 90 | } |
c9d4aabe VAH |
91 | if (carriage_l >= 50 + 2 * carriage_hole_to_side) { |
92 | translate([20, -2, carriage_hole_to_side + 30 + 20]) { | |
0ae9e1f0 | 93 | rotate([90, 0, 0]) cylinder(r=1.8, h=32, center=true,$fn=small_hole_segments); |
81d18889 | 94 | translate([0, 7, 0]) rotate([90, 60, 0]) cylinder(r=3.4, h=5, $fn=6, center=true); |
c9d4aabe | 95 | } |
eb7e175e | 96 | } |
c9d4aabe | 97 | if (carriage_l >= 80 + 2 * carriage_hole_to_side) { |
81d18889 | 98 | translate([20, -2, carriage_hole_to_side + 30 + 20 + 30]) { |
0ae9e1f0 | 99 | rotate([90, 0, 0]) cylinder(r=1.8, h=32, center=true,$fn=small_hole_segments); |
81d18889 | 100 | translate([0, 7, 0]) rotate([90, 60, 0]) cylinder(r=3.4, h=5, $fn=6, center=true); |
c9d4aabe VAH |
101 | } |
102 | } | |
103 | //belt insert | |
104 | translate([-8.5 + 45 / 2, 0, 0]) mirror([1, 0, 0]) { | |
105 | belt(carriage_l, 5); | |
106 | %belt(carriage_l); | |
9d36b130 | 107 | } |
9d36b130 NZ |
108 | } |
109 | } | |
110 | } | |
111 | ||
88f30890 | 112 | x_carriage(); |