This is an openscad script to generate a pulley for strings and ropes. It uses a 608 ZZ bearing (the cheapest and most common ones, used for skateboards and rollers, about $1-2 on ebay).
With the source, you can tweak most of the properties, or use another kind of bearings.
The groove cover, attachment leg and top housing are optional.
I use these to lift bags of bird seed in my garage, out of reach of mices!
The pulley is to be screwed or nailed to a support on its own axis. However, the optional top cover makes it possible to hang it. The last picture show how I reinforced one that lifted about 50Kg.
-- Either --
Use one of the provided set, eg:
You'll find diameters of 3mm, 4mm or 3(leg)+4.8mm(axis), and optional top covers. The latter was for my own use with a big axis screw (4.8mm) and a smaller cover attachment hole (3mm).
-- Or --
Download the small and free openscad (www.openscad.org) if you don't have it yet. Open the scad file with openscad, and tune the source code on the left of the screen:
1) Measure "nail_d" as your nail or screw diameter, and fix it in the source (default here is 4.2mm). This nail is the pulley axis, so chose one strong and long enough!
2) You can have a "leg" to prevent the cover from rotating, even though it should not occur if your nail/screw is tight and your string/rope is thin enough not to pull the cover when moving. Set cover_leg_inner_d to the size of a secondary screw (hole diameter), and cover_leg_outer_d for the leg width. The hole is 3mm by default. Set cover_leg_outer_d to zero to hide the leg.
3) Set cover_angular_size to zero to disable the cover, else set it to an angle that will match your pulley usage. Eg. specify 170Â° for a U-turn or 80Â° for a right-angle...
4) you may want to change the pulley diameter, "pulley_cable_d". Make sure to be larger than the bearing diameter though!
4) On the end of the script, comment the combined view "show(...)", and uncomment the different parts of the pulley, only one after another.
You need at least two parts: pulley() and cover_bottom().
Finally, cover-top() is optional. It may be useful when you want to hang the pulley by the leg hole (the result will be less robust than securing the pulley by its axis of course, but I added some very thin longitudinal tubes for the slicers to make it more solid).
After enabling a part, press F5 (refresh) followed by F6 (render), and Design/Export as STL.
How to mount the bearing into the bottom part?
Either use a vice, with two pieces of hardwood for example to make sure you you not damage the plastic and that the force is applied correctly.
Or you can use a screw, big washers and nuts as illustrated by the provided picture. Screw slowly after making sure the bearing is very flat against its casing. Use another bearing to push it further in place.
Last resort is a hammer and two pieces of wood. I do not recommend it though as you can damage the bearing casing without seeing it!
Tolerance and printing
If your printer is not properly calibrated, you may tweak "brg_tightness" in the source code. Positive values make a tighter fit, negative values give some free play. This settings impacts both the inner and outer of the bearing (in the correct direction of course).
Default is zero tolerance, and it worked fine on my printer.
Finally, I printed the pulleys with 0.2mm layers, 0.4mm nozzle, 60mm/s and 100% infill. I think it took about 30 minutes at all to print the pulley and bottom part.