added motor and idler sketchup model
[clinton/wilson.git] / scad / y-end-idler.scad
1 //
2 // Parametric single-piece y ends for Reprap Wilson
3 // GNU GPL v3
4 // by Martin Rice <mrice411@gmail.com>
5 //
6 include <configuration.scad>
7
8 washer_recess = 2; // recesses the washer into the end.
9 idler_offset_y = 6;
10 base_thickness = 3;
11 tie_wrap_extra = 1;
12 belt_h = 29;
13 idler_w = 10; // the gap provided for the bearing holder
14 idler_wall_t = 5;
15 end_w = 193.5;
16 idler_wall_h = 32.6;
17
18 yend_idler();
19
20 module yend_idler()
21 {
22 difference() {
23 union() {
24 // thin base under the end (optional)
25 bigbase();
26 brace();
27
28 // first corner
29 endpost();
30
31 // second corner
32 translate([end_w,0,0]) scale([-1,1,1]) endpost();
33
34 // idler mount
35 translate([end_w/2,0,0]) idler_post();
36 }
37
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]);
41
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);
48 }
49 }
50
51
52 module 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 //translate([-idler_w,-1,idler_wall_h]) rotate([0,90,0]) cylinder(r=idler_bearing_inner_d/2,h=20,$fn=20);
67
68 }
69 // holes for idler bolt
70 #translate([-12,10,belt_h]) rotate([0,90,0]) {
71 cylinder(r=idler_bearing_inner_d/2+.5,h=25);
72 translate([0,0,1]) cylinder(r=idler_bearing_inner_d,h=3);
73 translate([0,0,idler_w+idler_wall_t*2]) cylinder(r=idler_bearing_inner_d,h=3,$fn=6);
74 }
75
76
77 }
78 }
79
80 module endpost()
81 {
82 difference() {
83 union() {
84 difference() {
85 cube([23,16,height_of_post]);
86 #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);
87 }
88
89 difference() {
90 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);
91 translate([0,0,height_of_post]) cube([23,16,10]);
92 }
93 }
94
95 translate([23/2,-10,height_of_threaded ]) rotate([-90,0,0]) cylinder(r=threaded_rod_d/2+.4,h=380);
96 translate([23/2,-.1,height_of_threaded ]) rotate([-90,0,0]) cylinder(r=washer_d/2+.4,h=washer_recess);
97 translate([23/2,2.5,height_of_smooth]) rotate([-90,0,0]) cylinder(r=smooth_rod_d/2+.1,h=380);
98 }
99
100 }
101
102 module bigbase()
103 {
104 difference() {
105 intersection() {
106 cube([193.5,55,base_thickness]);
107 translate([193.5/2,-182,-1]) cylinder(r=220,h=base_thickness+2,$fn=150);
108 }
109 //#translate([193.5/2,0,0]) cylinder(r=10,h=10);
110 }
111 }
112
113 module brace() {
114 translate([193.5,17,0]) rotate([0,0,180]) difference() {
115 translate([193.5/2,-290,0]) cylinder(r=310,h=32.6,$fn=200);
116 translate([193.5/2,-211.9+5,-2]) cylinder(r=223,h=50,$fn=200);
117 translate([-320,3,-2]) rotate([0,0,270]) cube([900,900,50]);
118 #translate([-22,-1,-1]) cube([43,16,47]);
119 #translate([(end_w-22),-1,-1]) scale([1,1,1]) cube([43,16,47]);
120 //translate([192.5/2-23/2+5.9,0,14.5]) cube([11.96,40,20]);
121
122 }
123 }
124
125
126
127
128