]> www.fi.muni.cz Git - things.git/commitdiff
generic pulley
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Wed, 7 Mar 2018 14:49:15 +0000 (15:49 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Wed, 7 Mar 2018 14:49:15 +0000 (15:49 +0100)
pulley.scad [new file with mode: 0644]

diff --git a/pulley.scad b/pulley.scad
new file mode 100644 (file)
index 0000000..92c0584
--- /dev/null
@@ -0,0 +1,48 @@
+infty = 100;
+eps = 0.01;
+
+diameter = 25;
+thick = 2.5;
+base_thick = 1.5;
+d_minus = thick; // cca 45 deg
+
+center_hole_d = 3.5;
+side_holes = 5;
+side_hole_d = 5;
+
+cut_hole_d = 2;
+cut_slot = 1;
+
+module body() {
+       cylinder(r1 = diameter/2, r2 = diameter/2-d_minus/2, h = thick/2 + eps);
+       translate([0, 0, thick/2-eps])
+               cylinder(r2 = diameter/2, r1 = diameter/2-d_minus/2, h = thick/2 + eps);
+}
+
+difference() {
+       body($fn = 128);
+       translate([0, 0, -eps])
+               cylinder(r = center_hole_d/2, h = thick + 2*eps, $fn = 128);
+       if (side_holes > 0) 
+       for (angle = [0:360/side_holes:360]) rotate([0, 0, angle+180/side_holes])
+               translate([diameter/3 - d_minus + center_hole_d/2, 0, -eps])
+                       cylinder(r = side_hole_d/2, h = thick + 2*eps, $fn=128);
+       if (base_thick)
+               difference() {
+                       translate([0, 0, base_thick])
+                               cylinder(
+                                       r1 = center_hole_d/2 + base_thick,
+                                       r2 = diameter/2-d_minus/2,
+                                       h = thick-base_thick+eps, $fn = 128);
+                       translate([0, 0, base_thick-eps])
+                               cylinder(r1 = center_hole_d/2 + base_thick,
+                                       r2 = center_hole_d/2 + base_thick/2,
+                                       h = thick - base_thick + eps, $fn = 128);
+               }
+       if (cut_hole_d) {
+               translate([diameter/3-cut_hole_d/2, 0, -eps])
+                       cylinder(r = cut_hole_d/2, h = thick + 2*eps, $fn =128);
+               translate([diameter/2-d_minus/2, -cut_slot/2, -eps])
+                       cube([diameter/2, cut_slot, thick + 2*eps]);
+       }
+}