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, published

Printable rack: Modular, parametric ,for rack&pinion system for Reprap by ckaos Feb 2, 2011
0 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

21025Views 4698Downloads Found in 3D Printer Parts


This is an OpenScad script to generate modular and parametric racks, for a printable rack & pinion system for Reprap 3d printers, as a replacement for belts or threaded rods.
More info here : http://www.kaosat.net/?p=1670
Please note that this is an experimental , work in progress version

Edit 07/01/11:
-Added the herringbone version , in wich you can set the center angle (see schematic), that script can also generate the straight teeth with an angle of 0
-this version is cleaned up and optimized, and much faster to compile so please use this one preferably
-i haven't printed this one yet, and i am not 100% if all is ok

Edit 04/01/11:
-just a short video of a very very basic "platform" movement test : http://www.youtube.com/watch?v=8_KtJL7Gmto
-for testing simplicity, the motor is on top , but would ideally be underneath the platform
-i will try to have the herringbone version finished by next week


Please don't use the attached stl file , as it is just an example, you will need to use the OpenScad (http://www.openscad.org/) script to generate the stl files
For usage instructions please see info in the openscad file
I used this http://www.thingiverse.com/thing:3575 very nice script to generate the pinions

More from 3D Printer Parts

view more

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App
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.