4 wall = 0.6; // minimum wall
5 d_x = 25; // inner diameter in the X axis
6 y_scale = 0.5; // scale y/x
7 height = 2.5; // height of the rim
12 module half(d_x, y_scale, height) {
14 scale([1, (d_x*y_scale+height)/(d_x+height), 1])
15 cylinder(r = d_x/2 + height/2, h = eps);
16 translate([0, 0, height/2])
17 scale([1, y_scale, 1])
18 cylinder(r = d_x/2, h = eps);
22 module pulley(d_x, y_scale, height, center_hole_d) {
25 half(d_x, y_scale, height);
26 translate([0, 0, height]) scale([1, 1, -1])
27 half(d_x, y_scale, height);
29 translate([0, 0, -eps])
30 cylinder(r = center_hole_d/2, h = height + 2*eps);
31 translate([-slot_w/2, d_x*y_scale/2, -eps])
32 cube([slot_w, height, height + 2*eps]);
33 // translate([0, center_hole_d/2 + (d_x*y_scale/2-center_hole_d/2)/2, -eps])
34 // cylinder(r = side_hole_d/2, h = height + 2*eps);
38 pulley(d_x = 6, y_scale = 2.5, height=2.5, center_hole_d = 2.5);
41 pulley(d_x = 35, y_scale = 0.4, height=2.5, center_hole_d = 8);