Parametric timing pulley
by Erik, published
Description
You can configure it to fit the belt that you're using. The pulley can be fixed to a threaded shaft with a nut. On one side the nut (the setting for an M8 hex nut is configured for you already) will sink into the pulley. If you tighten a nut on the other side as well it will be very well fixed.
Another option is to use a set screw. You just specify the diameter of the screw and it will create a hub with a (capped) teardrop hole.
The STL file included works well with the Synchroflex(R) timing belt,1500Lx10Wmm from RS (order code 474-5892), spliced in half (to 5 mm width). This way you'll have a very good belt driven system for about 4 euros per meter. The belt comes as a closed loop, but you may need to glue it to get it to the right length.
Please share your settings in the discussion when you've tested it in combination with a commercial belt!
Tags
Give a Shout Out
Instructions
// //////////////////////////////
// USER PARAMETERS
// //////////////////////////////
// Pulley properties
shaftDiameter = 8; // the shaft at the center, will be subtracted from the pulley. Better be too small than too wide.
hubDiameter = 22; // if the hub or timing pulley is big enough to fit a nut, this will be embedded.
hubHeight = 8; // the hub is the thick cylinder connected to the pulley to allow a set screw to go through or as a collar for a nut.
flanges = 2; // the rims that keep the belt from going anywhere
hubSetScewDiameter = 0; // use either a set screw or nut on a shaft. Set to 0 to not use a set screw.
numTeeth = 20; // this value together with the pitch determines the pulley diameter
toothType = 3; // 1 = slightly rounded, 2 = oval sharp, 3 = square. For square, set the toothWith a little low.
// Belt properties:
pitch = 5; // distance between the teeth
beltWidth = 4; // the width/height of the belt. The (vertical) size of the pulley is adapted to this.
beltThickness = 0.65; // thickness of the part excluding the notch depth!
notchDepth = 1.8; // make it slightly bigger than actual, there's an outward curvature in the inner solid part of the pulley
toothWidth = 1.4; // Teeth of the PULLEY, that is.
Comments
You must be logged in to post a comment.
There seems to be an issue with the setscrews... they are too long and so 3 of them makes 6 holes through the hub. I think the difference() { part should be:
cylinder(h = hubHeight, r = hubDiameter/2, center =false);
for(rotZ=[1:numSetScrews])
rotate([0,0,360*(rotZ/numSetScrews)]) translate([shaftDiameter,0,hubHeight/2]) rotate([0,hubSetScrewAngle,0])
teardrop(hubSetScewDiameter/2, hubDiameter/2,true);
specifically, the teardrop height should
be half the hubDiameter and then the hole has to be translated out to the shaftDiameter. Oh... I added hubSetScrewAngle as a parameter, normally set to 90, for my own weird application :-[ that can just be hardcoded as 90.
and when I say translate([shaftDiameter,0,hubHeight/2]), I of course mean translate([shaftDiameter/2,0,hubHeight/2]) :-[
sure... off course the supplier indeed has a datasheet for it... how dumb of me!! =P
Thanks man!
by the way, I attached a picture of it with the dimensions... Apart from pitch (which is 3mm aparently), could you indicate to me what are the other values I need to use in your script according to the description in the picture?
I'm still a bit confused with what should I use as to
othWidth, notchdepth and beltThickness...
thanks man!
I'm assuming that T3 might be 3mm pitch, but you should look it up... the supplier will also have a datasheet, I guess.
May I ask a question? I switched to T3 instead of T5 belts on my X and Y axis and I'm getting a much better resolution since it. Since then, I'm looking on some T3 specs to print Z pulleys, but I can't find the right numbers...
Would you known, by any chance, what numbers for pitch and depth would work for a T3 belt?
They're MXL. This is a standardized type of tooth profile. Pitch is 0.08".
http://www.econobelt.com/Q460/...
Make sure your belts are nice and tight, this way printing such mechanical items will result in very round items. A slight bit of backlash in a printed pulley will cause problems of variable tensions (and resistance) during printing. Your motor will stall at moments where tension is the highest. T
his is what was a big challenge with my RepRap. I ended up writing code for backlash compensation:
http://blog.erikdebruijn.nl/?s...
&
amp;serendipity%5BsearchTerm%5D=backlash
&
amp;serendipity%5BsearchButton%5D=%3E
With an Ultimaker it should be much easier to get very low backlash, so software compensation probably isn't helpful anymore.
Curious what you'll find :)
Hi Erik,
nice script, i'm curious what the type of timingbelt/pulleys are used in the Ultimaker.
Do you have info about them (typenr or specs ?)
I wanna give it a try to replace the originals.
I'm using version 2 and I don't think anything is changing when I tell it to include a set screw. Do I need a "teardrop.scad" file for that module to work?
Change the
&
lt;teardrop.scad
&
gt;
to:
include
&
lt;MCAD/teardrop.scad
&
gt;
Okay, I found the teardrop file at the bottom of the script, so now that's included. Of course, it's upside down. Wouldn't it print better if it lays down the hub first and prints the teeth on top of that?
I was trying to figure out why it wasn't including a gap for a captive nut to match the set screw, but now I think the hex nut is only for a nut on the shaft, not one on the set screw...although it's called 'setscrew' in the script. Is that correct?
erik,
I'm having trouble getting room for an embedded nut with this. I bet it's really obvious only I can't find it. Thanks
Hey Erik, (again)
I've used your script as the basis for a laser-cuttable version here: http://www.thingiverse.com/thi...
If you have a laser cutter handy I'm hoping it will be able to turn out much more precise gears then the RepRap can print ATM.
This is my first attempt at OpenSCAD so please excuse any nubishness :)
PS. parametric pulleys are working well on my Z-driven, it's actually a set of non-parametric ones i'm having to replace with the laser-cut version :P
Umm, not to bash an awesome script on an incredibly small point of contention but in the code the line:
PI = 3.15159265;
should be replaced with:
PI = 3.14159265;
but seriously, this script is very nice.
Good spot :)
Daniel Tammet would be horrified seeing that!
Actually this should be a constant available in OpenSCAD. Perhaps it already is in the newer versions, I don't know...
Thanks for your nice comment. I think the script is a bit underrated because I see many non-parametric pulleys pop up that could be generated by this script. Anyway, the script has been very useful to myself, so the investment paid of anyway.
The detail and accuracy is mostly due to the setup of the machine, such as orifice size and accuracy of the control. But shiny yellow plastic also helps, which has little to do with the machine nor model. The parametric stuff is only a way to get at a specific model for printing, it's output is no different than what people are designing, but it's more a way in which the source code to making an object is completely available and designed in a way to offer degrees of freedom where they are useful.
The printed part looks great, is that because off parametric stuff?


how hard is it to cut the belt in half?