August 30, 2020

Varying pitch screw mechanism

I put together a mostly-3D-printed prototype of the variable-pitch screw idea.  Although it looked like it would work in CAD, I wanted to get a feel for the mechanism in real-life before designing anything around it:

The mechanism combines a cylindrical cam with linear motion constraint all on the same cylinder.

The main pieces besides the screw are shown below.  On the left is the linear constraint mechanism, which has 6 rollers in it.  In the center is the "nut" which has two cam followers pointing radially inwards.  The cam followers engage with the spiral slot around the screw.  On the right and left of the nut are bearings which take the thrust load from the screw, and constrain the nut.  On the right is a cap, which just supports one of the nut bearings.  It threads on to the linear mechanism, sandwiching the nut.

wow, blogger has alt text now

A better view of how the linear motion constraint works.  3 V-grooves go down the length of the screw.  6 plastic rollers on bearings ride in the V-grooves, preventing the screw from rotating or tilting:

The V-grooves are shallow enough that they don't interfere with the spiral cam slot:

Here's a cross section of the linear motion constraint.  There are 4 rollers per V-groove, and the rollers are carefully spaced such that 2 spaced far apart from each other are always engaged with the V-groove, even while one or two other roller is jumping over spiral slot.

Below you can see the makeshift cam followers inside the nut.  Each cam follower is a dowel pin pressed into a pair of flanged bearings.  For a "real" version of this I'll need to come up with something less janky, but this was good enough to check that the mechanism actually worked.

The linear constraint rollers were machined on the Tiny Lathe.  I used a diamond needle file to hand-grind a form tool out of an HSS blank.  The whole roller profile was turned in one pass by plunging the form tool in a set depth.  The bore for the bearings was also done in one pass, by offsetting the tailstock to one side, and boring it out with a ballnose end mill in the drill chuck.  Delrin is soft enough that you can get away with stuff like this.

Here's a picture of the form tool next to one of the rollers in the assembly:

The screw CAD was generated by creating a CSV of coordinates in MATLAB, importing it as a spline into SolidWorks, and sweep-cutting a small-diameter cylinder through a hollow tube, following the spline.  Kind of a finicky process, but it works.  If I decided to change the profile later on, I can replace the spline points with new set, and most of the dependent features are able to regenerate.


  1. This is neat, have been waiting for this. Liking the details and your way of making it!

  2. So I get the idea in concept - maximal transmission of kinetic energy from rotational to translational - but it's not obvious what the application would be, given that it doesn't appear to be reversible. Maybe for a linear impulse scenario (think single-shot jackhammer)? Given your robotics background, I'd presume that it's for an actuator of some sort, but assuming that'd be the application I'm drawing a blank trying to come up with any practical applications for it. Looking forward to my impending illumination ;)

    1. Jumping! (and landing, it is equally well-suited to that)
      Yeah, I have been intentionally kind of vague so far.

  3. Hah, excellent! I figured the vagueness was intentional, but curiosity got the best of me ;) Excited to see the final application. Where did you get the parts 3D printed? They look quite high quality, especially some of the looks-like-press-fit bearing axles.

    1. HP MJF printer at work. It's awesome. If I'd had to order them, I'd probably have gone to Shapeways and gotten them SLS or MJF printed.

  4. Amazing print quality, can you share the make/model/material of the SLA printer you're using? Thanks for continuing to update the blog, very inspiring work all around.