]> www.fi.muni.cz Git - things.git/blobdiff - pulley-elliptical.scad
switch holder.scad
[things.git] / pulley-elliptical.scad
index 0329f10566242482b546ffdac399565585bef451..66b3f1bb780c6f7efa5876e10afd2e10be8a6091 100644 (file)
@@ -6,6 +6,14 @@ d_x = 25;              // inner diameter in the X axis
 y_scale = 0.5;         // scale y/x
 height = 2.5;           // height of the rim
 
+slot_w = 1.5;
+side_hole_d = 2.0;
+
+thin_wall = 1;
+lever_l = 45;
+lever_h = 15.5;
+foam_h = 3;
+
 module half(d_x, y_scale, height) {
        hull($fn = 128) {
                scale([1, (d_x*y_scale+height)/(d_x+height), 1])
@@ -22,14 +30,25 @@ module pulley(d_x, y_scale, height, center_hole_d) {
                        half(d_x, y_scale, height);
                        translate([0, 0, height]) scale([1, 1, -1])
                                half(d_x, y_scale, height);
+                       // lever
+                       hull() {
+                               translate([-lever_h, 0, 0])
+                                       cube([lever_h, eps, thin_wall]);
+                               translate([-foam_h, -lever_l, 0])
+                                       cube([foam_h, eps, thin_wall]);
+                       }
                }
                translate([0, 0, -eps])
                        cylinder(r = center_hole_d/2, h = height + 2*eps);
+               translate([-slot_w/2, d_x*y_scale/2, -eps])
+                       cube([slot_w, height, height + 2*eps]);
+               translate([0, center_hole_d/2 + (d_x*y_scale/2-center_hole_d/2)/2, -eps])
+                       cylinder(r = side_hole_d/2, h = height + 2*eps);
        }
 }
 
-pulley(d_x = 15, y_scale = 0.5, height=2.5, center_hole_d = 3);
+pulley(d_x = 30, y_scale = 0.4, height=3, center_hole_d = 2.5);
 
-translate([0, 20, 0])
-pulley(d_x = 30, y_scale = 0.5, height=2.5, center_hole_d = 5);
+// translate([0, 20, 0])
+// pulley(d_x = 35, y_scale = 0.4, height=2.5, center_hole_d = 8);