Commit | Line | Data |
---|---|---|
1873788a MR |
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; | |
ff8dfc71 MR |
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; | |
ff8dfc71 | 15 | end_w = 193.5; |
0f6fe46f | 16 | idler_wall_h = 32.6; |
1873788a MR |
17 | |
18 | yend_idler(); | |
19 | ||
20 | module 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 |
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]); | |
0f6fe46f MR |
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 | ||
ff8dfc71 MR |
68 | } |
69 | // holes for idler bolt | |
0f6fe46f MR |
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 | ||
ff8dfc71 MR |
76 | |
77 | } | |
1873788a MR |
78 | } |
79 | ||
ff8dfc71 | 80 | module endpost() |
1873788a | 81 | { |
1873788a MR |
82 | difference() { |
83 | union() { | |
84 | difference() { | |
ff8dfc71 MR |
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); | |
1873788a MR |
87 | } |
88 | ||
89 | difference() { | |
ff8dfc71 MR |
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]); | |
1873788a MR |
92 | } |
93 | } | |
94 | ||
ff8dfc71 MR |
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); | |
1873788a MR |
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 | } | |
ff8dfc71 | 109 | //#translate([193.5/2,0,0]) cylinder(r=10,h=10); |
1873788a MR |
110 | } |
111 | } | |
112 | ||
113 | module brace() { | |
ff8dfc71 | 114 | 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 | 115 | translate([193.5/2,-211.9+5,-2]) cylinder(r=223,h=50,$fn=200); |
ff8dfc71 | 116 | translate([-320,3,-2]) rotate([0,0,270]) cube([900,900,50]); |
1873788a MR |
117 | translate([-20,-1,-1]) cube([43,16,47]); |
118 | translate([193.5-22.9,-1,-1]) scale([1,1,1]) cube([43,16,47]); | |
ff8dfc71 | 119 | //translate([192.5/2-23/2+5.9,0,14.5]) cube([11.96,40,20]); |
1873788a MR |
120 | |
121 | } | |
122 | } | |
123 | ||
124 | ||
125 | ||
126 | ||
127 |