added y ends and belt holder
[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
12 yend_idler();
13
14 module yend_idler()
15 {
16 difference() {
17 union() {
18 // thin base under the end (optional)
19 bigbase();
20 brace();
21
22 // first corner
23 endpost();
24
25 // second corner
26 translate([193.5,0,0]) scale([-1,1,1]) endpost();
27
28 // idler mount
29 translate([193.5/2+23.8/2,19.1 - idler_offset_y,0])
30 rotate([0,0,180])
31 translate([-72.5,-106.7,0])
32 rotate([0,0,0.7]) import("i3rsubidler2_fixed.stl");
33 }
34
35 translate([-1,-23/2,-1]) rotate([0,0,45]) cube([10,10,50]);
36 translate([194.5,-23/2,-1]) rotate([0,0,45]) cube([10,10,50]);
37
38 }
39 }
40
41 module endpost()
42 {
43 difference() {
44 union() {
45 difference() {
46 cube([23,16,height_of_post]);
47 translate([23/2,7,height_of_post]) rotate([-90,0,0]) cylinder(r=smooth_rod_d/2+2+tie_wrap_t,h=tie_wrap_w);
48 }
49
50 difference() {
51 translate([23/2,7,height_of_smooth]) rotate([-90,0,0]) cylinder(r=smooth_rod_d/2+2,h=tie_wrap_w);
52 translate([0,0,height_of_post]) cube([23,16,10]);
53 }
54 }
55
56 #translate([23/2,-10,height_of_threaded ]) rotate([-90,0,0]) cylinder(r=threaded_rod_d/2+.4,h=380);
57 #translate([23/2,-.1,height_of_threaded ]) rotate([-90,0,0]) cylinder(r=washer_d/2+.4,h=washer_recess);
58 #translate([23/2,2.5,height_of_smooth]) rotate([-90,0,0]) cylinder(r=smooth_rod_d/2+.1,h=380);
59 }
60
61 }
62
63 module endpostneuvo()
64 {
65 endpost_depth = 16;
66
67 tie_wrap_extragap = 7; // this moves the slots for the tie wrap out to the
68 // edge of the post so that the head of the tiewrap
69 // can be moved out of the way of the print bed.
70
71 difference() {
72 union() {
73 difference() {
74 cube([23,endpost_depth,47]);
75 translate([23/2,7,45]) rotate([-90,0,0]) cylinder(r=smooth_rod_d/2+tie_wrap_extragap+tie_wrap_t,h=tie_wrap_w);
76 }
77
78 difference() {
79 translate([23/2,7,45]) rotate([-90,0,0]) cylinder(r=smooth_rod_d/2+tie_wrap_extragap,h=tie_wrap_w);
80 translate([0,0,47]) cube([23,endpost_depth,10]);
81 }
82 }
83
84 #translate([23/2,-10,20]) rotate([-90,0,0]) cylinder(r=threaded_rod_d/2+.4,h=380);
85 #translate([23/2,-.1,20]) rotate([-90,0,0]) cylinder(r=washer_d/2+.4,h=washer_recess);
86 #translate([23/2,endpost_depth-washer_recess+.01,20]) rotate([-90,0,0]) cylinder(r=washer_d/2+.4,h=washer_recess);
87 #translate([23/2,2.5,45]) rotate([-90,0,0]) cylinder(r=smooth_rod_d/2+.1,h=380);
88 }
89
90 }
91
92 module bigbase()
93 {
94 difference() {
95 intersection() {
96 cube([193.5,55,base_thickness]);
97 translate([193.5/2,-182,-1]) cylinder(r=220,h=base_thickness+2,$fn=150);
98 }
99 #translate([193.5/2,0,0]) cylinder(r=10,h=10);
100 }
101 }
102
103 module brace() {
104 difference() { translate([193.5/2,-373.2+5,0]) cylinder(r=386,h=32.6,$fn=200);
105 translate([193.5/2,-211.9+5,-2]) cylinder(r=223,h=50,$fn=200);
106 #translate([-320,3,-2]) rotate([0,0,270]) cube([900,900,50]);
107 translate([-20,-1,-1]) cube([43,16,47]);
108 translate([193.5-22.9,-1,-1]) scale([1,1,1]) cube([43,16,47]);
109 #translate([192.5/2-23/2+5.9,0,14.5]) cube([11.96,40,20]);
110
111 }
112 }
113
114
115
116
117