update y ends
[clinton/wilson.git] / scad / y-end-idler.scad
CommitLineData
1873788a
MR
1//
2// Parametric single-piece y ends for Reprap Wilson
3// GNU GPL v3
4// by Martin Rice <mrice411@gmail.com>
5//
6include <configuration.scad>
7
8washer_recess = 2; // recesses the washer into the end.
9idler_offset_y = 6;
10base_thickness = 3;
ff8dfc71
MR
11tie_wrap_extra = 1;
12belt_h = 29;
13idler_w = 10; // the gap provided for the bearing holder
14idler_wall_t = 5;
15idler_bearing_inside_d = 3;
16end_w = 193.5;
1873788a
MR
17
18yend_idler();
19
20module yend_idler()
21{
22 difference() {
23 union() {
ff8dfc71
MR
24 // thin base under the end (optional)
25 bigbase();
26 brace();
1873788a 27
ff8dfc71
MR
28 // first corner
29 endpost();
1873788a 30
ff8dfc71
MR
31 // second corner
32 translate([end_w,0,0]) scale([-1,1,1]) endpost();
1873788a 33
ff8dfc71
MR
34 // idler mount
35 translate([end_w/2,0,0]) idler_post();
1873788a
MR
36 }
37
ff8dfc71
MR
38 // bevels on outer corners
39 translate([-1,-23/2,-1]) rotate([0,0,45]) cube([10,10,50]);
40 translate([end_w+1,-23/2,-1]) rotate([0,0,45]) cube([10,10,50]);
1873788a 41
ff8dfc71
MR
42 // cutout for idler
43 #translate([end_w/2,0,0]) translate([-idler_wall_t,10,belt_h]) rotate([0,90,0]) cylinder(r=10+4,h=idler_w);
44
45 // slots for attaching end to table surface if desired
46 #translate([end_w/2-end_w/4,20,0]) cube(size=[4,10,10],center=true);
47 #translate([end_w/2+end_w/4,20,0]) cube(size=[4,10,10],center=true);
1873788a
MR
48 }
49}
50
1873788a 51
ff8dfc71
MR
52module idler_post()
53{
54 difference() {
55 union() {
56 translate([idler_w/2,0,0]) {
57 cube(size=[idler_wall_t,20,belt_h]);
58 translate([0,10,belt_h]) rotate([0,90,0]) cylinder(r=10,h=idler_wall_t);
59 }
60 translate([-idler_w/2-idler_wall_t,0,0]) {
61 cube(size=[idler_wall_t,20,belt_h]);
62 translate([0,10,belt_h]) rotate([0,90,0]) cylinder(r=10,h=idler_wall_t);
63 }
64 translate([-idler_w,0,0]) cube(size=[idler_wall_t * 2 + idler_w,20,belt_h/2]);
65 }
66 // holes for idler bolt
67 #translate([-12,10,belt_h]) rotate([0,90,0]) cylinder(r=idler_bearing_inside_d/2+.5,h=25);
68
69 }
1873788a
MR
70}
71
ff8dfc71 72module endpost()
1873788a 73{
1873788a
MR
74 difference() {
75 union() {
76 difference() {
ff8dfc71
MR
77 cube([23,16,height_of_post]);
78 #translate([23/2,7,height_of_post]) rotate([-90,0,0]) cylinder(r=smooth_rod_d/2+2+tie_wrap_t+tie_wrap_extra,h=tie_wrap_w);
1873788a
MR
79 }
80
81 difference() {
ff8dfc71
MR
82 translate([23/2,7,height_of_post]) rotate([-90,0,0]) cylinder(r=smooth_rod_d/2+2+tie_wrap_extra,h=tie_wrap_w);
83 translate([0,0,height_of_post]) cube([23,16,10]);
1873788a
MR
84 }
85 }
86
ff8dfc71
MR
87 translate([23/2,-10,height_of_threaded ]) rotate([-90,0,0]) cylinder(r=threaded_rod_d/2+.4,h=380);
88 translate([23/2,-.1,height_of_threaded ]) rotate([-90,0,0]) cylinder(r=washer_d/2+.4,h=washer_recess);
89 translate([23/2,2.5,height_of_smooth]) rotate([-90,0,0]) cylinder(r=smooth_rod_d/2+.1,h=380);
1873788a
MR
90 }
91
92}
93
94module bigbase()
95{
96 difference() {
97 intersection() {
98 cube([193.5,55,base_thickness]);
99 translate([193.5/2,-182,-1]) cylinder(r=220,h=base_thickness+2,$fn=150);
100 }
ff8dfc71 101 //#translate([193.5/2,0,0]) cylinder(r=10,h=10);
1873788a
MR
102}
103}
104
105module brace() {
ff8dfc71 106 translate([193.5,17,0]) rotate([0,0,180]) difference() { translate([193.5/2,-290,0]) cylinder(r=310,h=32.6,$fn=200);
1873788a 107 translate([193.5/2,-211.9+5,-2]) cylinder(r=223,h=50,$fn=200);
ff8dfc71 108 translate([-320,3,-2]) rotate([0,0,270]) cube([900,900,50]);
1873788a
MR
109 translate([-20,-1,-1]) cube([43,16,47]);
110 translate([193.5-22.9,-1,-1]) scale([1,1,1]) cube([43,16,47]);
ff8dfc71 111 //translate([192.5/2-23/2+5.9,0,14.5]) cube([11.96,40,20]);
1873788a
MR
112
113}
114}
115
116
117
118
119