Custom Onshape feature script builds gears automatically

Oct 26, 2026 Last reply: 3 days ago 4 Replies
Jump to replies (4)

The usual route to a printable gear in CAD is a long session of sketching tooth profiles by hand, and that kind of default modeling eats time fast. ChandraAwesome's GearLab takes a different path: a custom FeatureScript built for Onshape that automates the whole gear design process. Instead of drawing complex gears from scratch, the user fills in a dialogue box and the script does the rest, which should speed up any gear-heavy modeling workflow considerably.



The build itself is a custom feature for Onshape with configurable parameters exposed through a GearLab dialogue box. There are two modes, Manual and Inherit from Parent Gear. The numbers on offer cover the usual suspects: 24 teeth, module 2, a 20 degree pressure angle, a 15 degree helix angle, 20 mm face width and an 8 mm bore. The script then generates 3D gear bodies straight from those settings.



Several details stand out. It handles spur, bevel, helical and worm types, plus internal configurations, planetary setups and aligned face gear pairs. It can compute a mating child gear automatically and align it to a parent body, and it can display coordinate axes and pitch cone surfaces for checking geometry. Setting helix and bevel angles to zero yields a plain spur gear. In one demonstration the module went from 5 mm to 8 mm on the fly and a shaft angle of 90 degrees was set. The maker also notes the tool helps with gear alignments.



It is not finished business, though. The spur gear script sticks to spur and helical work and cannot produce beveled ones, the face width field apparently needs dividing by the module to hit a desired width, and there is no backlash input at the moment. Those are the rough edges to watch while the rest of the tool clearly works.



Project by ChandraAwesome. Watch it on their YouTube channel:

formatting link


Picking the Inherit from Parent Gear mode as the smart bit here. Entering matching tooth counts twice invites typos, and a mismatched pair is useless, so letting the child pull its numbers from the parent seems like a genuinely clever shortcut. The trade-off is that everything hangs on the parent being set up correctly in the first place.

Question about the width handling: when typing in a face width, does the value have to be divided by the module before it means anything? I want to know whether the number entered is the true measured width or some scaled figure that needs converting afterwards.

Yes: the width has to be divided by the module to reach the desired width, so the number typed into the field is not the final figure. Anyone using the tool needs to do that scaling by hand for now, which is easy to miss on a first pass.

A concrete improvement would be adding a backlash input to the dialogue box, maybe defaulting to 0.2 mm. Printed gears generally need a little clearance to mesh smoothly, and having the script handle that in one place would save everyone modeling a separate offset step afterwards.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required