Commit | Line | Data |
---|---|---|
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 | ||
9 | include <configuration.scad> | |
10 | use <x-end.scad> | |
be37e860 CE |
11 | use <inc/bearing-guide.scad> |
12 | use <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 | |
19 | module x_end_idler_base(){ | |
20 | x_end_base(); | |
21 | } | |
22 | ||
23 | module 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 |
41 | module 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 |
50 | module 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 | ||
55 | translate([-40, 0, 4 - bushing_xy[0]]) x_tensioner(); | |
1ddd0d1f | 56 | |
be37e860 | 57 | x_end_idler(); |
1ddd0d1f | 58 | |
be37e860 CE |
59 | if (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 | } |