added small_hole_segments to bushing and x-carriage as well
[clinton/prusa3.git] / box_frame / x-carriage.scad
CommitLineData
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
7// http://github.com/prusajr/PrusaMendel
8
9include <configuration.scad>
10use <bushing.scad>
88f30890
VAH
11// mounting plate
12use <extras/groovemount.scad>
2159eed1 13
ad345632 14
ccb73da3
VAH
15//Use 30 for single extruder, 50 for wades, 80 for dual extruders (moved to config file)
16//carriage_l_base = 80;
c9d4aabe
VAH
17//check if we need to extend carriage to fit bearings
18carriage_l_real = max(adjust_bushing_len(bushing_xy, carriage_l_base, layer_height * 9), adjust_bushing_len(bushing_carriage, carriage_l_base, layer_height * 9));
19// if the carriage was extended, we want to increase carriage_hole_to_side
20carriage_hole_to_side = max(3, ((carriage_l_real - carriage_l_base) / 2));
21carriage_l = carriage_l_base + 2 * carriage_hole_to_side;
2159eed1 22
ad345632
VAH
23bushing_carriage_len = adjust_bushing_len(bushing_carriage, 21, layer_height * 9);
24
88f30890
VAH
25module x_carriage(){
26 mirror([1,0,0]) {
27 difference() {
28 union() {
29 //upper bearing
c9d4aabe 30 rotate([0, 0, 90]) linear(bushing_carriage);
88f30890 31 //lower bearing
c9d4aabe 32 translate([xaxis_rod_distance,0,0]) rotate([0, 0, 90]) linear(bushing_xy, carriage_l);
d3618a65 33
ccb73da3 34 //This block moves with varying bearing thickness to ensure the front side is flat
c9d4aabe
VAH
35 translate([0, -bushing_foot_len(bushing_xy), 0]) {
36 // main plate
81d18889 37 translate([4, -1, 0]) cube_fillet([xaxis_rod_distance + 4, 6, carriage_l], radius=2);
c9d4aabe 38 translate([-8, -1, 0]) cube_fillet([xaxis_rod_distance + 16, 6, bushing_carriage_len + 3], radius=2);
88f30890 39 }
d3618a65 40
88f30890 41 translate([45/2,0,0]){
d3618a65 42
ccb73da3 43 //fill the space where the belt is, as it will be substracted at later point and we want it stiff here.
c9d4aabe
VAH
44 //belt smooth side
45 translate([-13.5 - belt_thickness, -8.5, 0]) cube_fillet([5, 15, carriage_l], vertical = [2, 2, 0, 0]);
46 //belt teethed side, with cutouts for belt ends.
88f30890 47 difference(){
81d18889
VAH
48 union() {
49 translate([-3, -1, carriage_l/2]) cube_fillet([11, 16, carriage_l], vertical = [2, 2, 0, 0], center = true);
50 translate([-13, -10, 0]) cube([8, 10, carriage_l]);
51 }
c9d4aabe
VAH
52 translate([-3.5, 0, 70]) cube([13, 10, 8], center = true);
53 translate([-3.5, 0, 43]) cube([13, 10, 8], center = true);
54 translate([-3.5, 0, 18]) cube([13, 10, 8], center = true);
88f30890
VAH
55 }
56
57 }
58 }
c9d4aabe 59 //Ensure upper bearing can be inserted cleanly
81d18889 60 rotate([0, 0, 90]) {
58279f58 61 linear_negative(bushing_carriage, carriage_l);
f88c1104 62 }
c9d4aabe 63 //Same for lower bearing
81d18889 64 translate([xaxis_rod_distance, 0, 0]) rotate([0, 0, 90]) {
f88c1104
VAH
65 linear_negative(bushing_xy, carriage_l);
66 }
5ea6ab38 67 // extruder mounts
c9d4aabe 68 translate([20, -2, carriage_hole_to_side]) {
0ae9e1f0 69 rotate([90, 0, 0]) cylinder(r=1.8, h=32, center=true,$fn=small_hole_segments);
81d18889 70 translate([0, 7, 0]) rotate([90, 60, 0]) cylinder(r=3.4, h=5, $fn=6, center=true);
88f30890 71 }
c9d4aabe 72 translate([20, -2, carriage_hole_to_side + 30]) {
0ae9e1f0 73 rotate([90, 0, 0]) cylinder(r=1.8, h=32, center=true,$fn=small_hole_segments);
81d18889 74 translate([0, 7, 0]) rotate([90, 60, 0]) cylinder(r=3.4, h=5, $fn=6, center=true);
2159eed1 75 }
c9d4aabe
VAH
76 if (carriage_l >= 50 + 2 * carriage_hole_to_side) {
77 translate([20, -2, carriage_hole_to_side + 30 + 20]) {
0ae9e1f0 78 rotate([90, 0, 0]) cylinder(r=1.8, h=32, center=true,$fn=small_hole_segments);
81d18889 79 translate([0, 7, 0]) rotate([90, 60, 0]) cylinder(r=3.4, h=5, $fn=6, center=true);
c9d4aabe 80 }
eb7e175e 81 }
c9d4aabe 82 if (carriage_l >= 80 + 2 * carriage_hole_to_side) {
81d18889 83 translate([20, -2, carriage_hole_to_side + 30 + 20 + 30]) {
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);
c9d4aabe
VAH
86 }
87 }
88 //belt insert
89 translate([-8.5 + 45 / 2, 0, 0]) mirror([1, 0, 0]) {
90 belt(carriage_l, 5);
91 %belt(carriage_l);
9d36b130 92 }
9d36b130
NZ
93 }
94 }
95}
96
88f30890 97x_carriage();