Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Printable rack: Modular, parametric ,for rack&pinion system for Reprap

by ckaos Feb 2, 2011
Download All Files

Thing Apps Enabled

Please Login to Comment

Simple rack and pinion code for reusing in other projects
by sasa

First thanks for the scripts-

I got very confused when trying to marry up this rack (http://www.thingiverse.com/thing:6011)http://www.thingiverse.com/thi...
and pinions (http://www.thingiverse.com/thing:3575)http://www.thingiverse.com/thi... and eventually came to the conclusions that
there were errors and bodges in both sets of scripts.

The rack has the "multiplier" bodge (*20) in it. The pinion has a very odd and incorrect definition
of the circular_pitch. Correcting both makes it easy and intuitive to make matching rack and pinions.

(1) the CP in 3575 should be in units of length (ie the distance between teeth defined on the pitch
radius) but in this script it is in units of degrees/radianslength (ie you need to enter a number
bigger than the actual distance you want). Fixing this makes everything a lot easier.

    pitch_diameter  =  number_of_teeth * circular_pitch / pi;
    addendum = cp/pi;
    dedendum = addendum*1.1;
    ... // a few more trivial fixes below

(2) the *20 multiplier bodge in the rack script (6011) - I didn't get to the bottom of this but if the script
is rewritten using the correct CP then it isn't necessary.

module rack(width,thickness,cp,N){
a = 1.0cp/pi; // addendum
d = 1.1
cp/pi; // dedendum
... // more fixes below but you get the idea

Personally I'd drop the diametrial_pitch options - this is much hard to understand than the CP which is
in simple mm/tooth units. Anyone who cares can just use CP=pi/DP.

Printable rack: Modular, parametric ,for rack&pinion system for Reprap
by ckaos
Parametric Involute Bevel and Spur Gears

I have been playing with this one for a few days, trying to figure out how to scale the rack and corresponding gear using the diametralPitch constant. The demo gear module at the bottom defines the circular pitch as a constant 300. In order to scale the corresponding gear properly, you must replace the 300 with (180/diametralPitch*multiplier). The multiplier is defined on the 8th line of the rack module. I chose to define it move it up top with the other constants and pass it to each module from there.

I am trying the rack herringbone scad file and the module demo_gear is calling an undefined module gear.

how do you print gears from the simple and for the herringbone track?

I added on top:


then I was able to print the gear that matches the rack.


where did you put that? i just copy and pasted what you have there and it would not work.

Suppose I want to make rack that is not in a straight line - a ring with teeth facing up, or a ring with teeth facing inward. However, I also want to print it in pieces because the ring is too large for the makerbot. Can your openscad script understand the curvature and break it into appropriately sized segments?

I'm having trouble determining the correct diametral pitch. I've generated a spur gear with the recommended script above but now I can't seem to generate the corresponding rack- maybe you could include an example where you generate both the rack and pinion. Thanks.

Was waiting for this.. (not sure why I missed it)...

Do we know what parameters to put in to make it work with the zillions of Rhys Herringbone extruder gears I've printed?


Damn you :-P I wanted to do this first :-D

Nice job tho ;-) Keep us posted with results

Haha thanks a lot prusajr :)

Well, this is just one of many possible printable rack options !

(big fan of your work on reprap by the way !)


I get this message when running "rack simple.scad" (F5):

Parsing design (AST generation)...
Compiling design (CSG Tree generation)...
Compilation finished.
Compiling design (CSG Products generation)...
ERROR: CSG generation failed! (no top level object found)

Hello Gerard!

My bad, it seems there was a bad character in one of the links at the start of the file, corrected and re-uploaded , should be ok now :)

OK, it's perfect now. Thanks.