z-axis: shift mounts to under parts
[clinton/prusa3.git] / box_frame / x-end-idler.scad
CommitLineData
1ddd0d1f
CE
1// PRUSA iteration3
2// X end idler
3// GNU GPL v3
4// Josef Průša <iam@josefprusa.cz> and contributors
5// http://www.reprap.org/wiki/Prusa_Mendel
6// http://prusamendel.org
7// Alterations for reprap wilson by M. Rice <mrice411@gmail.com>
8
9include <configuration.scad>
10use <x-end.scad>
be37e860
CE
11use <inc/bearing-guide.scad>
12use <y-drivetrain.scad>
1ddd0d1f 13
be37e860 14// todo:
1ddd0d1f 15
be37e860
CE
16// - restore y and z offsets. shift y with bearing_z, z with
17// idler_bearing diameter to maintain a straight belt line
1ddd0d1f
CE
18
19module x_end_idler_base(){
20 x_end_base();
21}
22
23module x_end_idler_holes(){
24 x_end_holes();
be37e860
CE
25
26 // tensioner mount
27 translate([-20, -15 - z_delta / 2, 30]) {
28 rotate([0, 90, 0]) cylinder(r=m4_diameter / 2, h=33, center=true, $fn=small_hole_segments);
29 translate([15 - 2 * single_wall_width, 0, 0]) rotate([90, 0, 90]) cylinder(r=m4_nut_diameter_horizontal / 2, h=3, $fn=6);
30 }
31 // create a notch for the X tensioner, to improve the length of
32 // travel available
33 // todo: doesn't scale with size of idler bearing correctly
34 translate (v=[x_base_back() + x_box_width/2,(-sqrt(2)*22)/2 + x_base_inside() + idler_bearing[0],x_box_height/2]) difference() {
35 rotate(a=[45,0,0]) cube(size=[x_box_width*2,22,22],center=true);
36 translate(v=[0,14,0]) cube(size=[x_box_width*2,4,8],center=true);
1ddd0d1f
CE
37 }
38}
be37e860 39
1ddd0d1f
CE
40// Final part
41module x_end_idler(){
42 mirror([0,1,0]) difference(){
43 x_end_idler_base();
44 x_end_idler_holes();
45 }
46
be37e860 47 %translate([-14 - xy_delta / 2, 25, 30.5 - (max(idler_width, 16) / 2)]) x_tensioner();
1ddd0d1f
CE
48}
49
be37e860
CE
50module x_tensioner(len=50, idler_height=max(idler_bearing[0], 16)) {
51 // todo: scal narrow_width with size of belt hole, if that becomes scalable
52 idlermount(len=len, rod=m4_diameter / 2 + 0.5, idler_height=idler_height, narrow_len=30, narrow_width=9);
53}
54
55translate([-40, 0, 4 - bushing_xy[0]]) x_tensioner();
1ddd0d1f 56
be37e860 57x_end_idler();
1ddd0d1f 58
be37e860
CE
59if (idler_bearing[3] == 1) { // bearing guides
60 translate([-39, -60 - idler_bearing[0] / 2, 4 - bushing_xy[0]]) rotate([0, 0, 55]) {
61 render() bearing_assy();
62 }
63}