added image of assembled x belt tensioner
[clinton/wilson.git] / scad / belt-guide-624-uni.scad
1 //
2 // Parametric sleeve-style belt guide for 624, 623 bearings and their ilk.
3 // mrice
4
5 layer_height = 0.3;
6 hotend_width = 0.5;
7
8 wall= hotend_width*3;
9 clearence= hotend_width/2;
10
11 // for 624 bearings:
12 bearing_d = 13;
13 bearing_h = 5;
14 bearing_inside_d = 4;
15 belt_w = 7;
16
17 // for 623 bearings:
18 //bearing_d = 10;
19 //bearing_h = 4;
20 //bearing_inside_d = 3; // hole diameter of the bearing
21
22 //guide_outer_d = bearing_d + 12;
23 flange_h = 3*layer_height;
24 //flange_d = 21;
25
26 hole_for_inner = bearing_d/2+(2*clearence);
27 r_for_inner = hole_for_inner + (2*hotend_width);
28 hole_for_outer = r_for_inner+clearence;
29 r_for_outer = hole_for_outer + (hotend_width*2);
30
31 flange_d = 2*r_for_outer + (6*hotend_width);
32
33 module belt_guide_base(a) {
34 if(a) {
35 cylinder(r=r_for_outer, h=belt_w+flange_h, $fn=50);
36 }
37 else {
38 cylinder(r=r_for_inner, h=belt_w+flange_h, $fn=50);
39 }
40 // outer flange
41 cylinder(r=flange_d/2, h=flange_h, $fn=50);
42 }
43
44 module belt_guide_holes(a){
45 // hole for the bearing:
46 if(a) {
47 #translate([0,0,flange_h+(1-a)*(belt_w-bearing_h-layer_height)]) cylinder(r=hole_for_outer, h=bearing_h+10, $fn=50);
48 }
49 else {
50 #translate([0,0,flange_h+(1-a)*(belt_w-bearing_h-layer_height)]) cylinder(r=hole_for_inner, h=bearing_h+10, $fn=50);
51 }
52 // hole for the rod through:
53 translate([0,0,-1]) cylinder(r=bearing_d/2-wall, h=10, $fn=50);
54 }
55
56 // Final part
57 module belt_guide(){
58 difference(){
59 belt_guide_base(0);
60 belt_guide_holes(0);
61 }
62 }
63
64 module belt_guide_sleeve() {
65 difference(){
66 belt_guide_base(1);
67 belt_guide_holes(1);
68 }
69 }
70
71 belt_guide();
72
73 translate([flange_d+5,0,0]) belt_guide_sleeve();