Procedural gears with geometry nodes (CC0)

Hi all !

I wanted to 3D print accurate involute spur gears while being able to adjust the parameters after the fact, and I couldn’t find an open-source geometry nodes system for that…

So I made my own ! It’s not super tidy but it’s public domain so feel free to use it directly, or as a base for other types of gears. If there is enough interest I may implement other types of gears or package it into a nice addon.

Any feedback appreciated !

7 Likes

Welcome :tada:

…and what an introduction to the community !!

I’m not sure if this will help you in any way, given your progress, but here are my old experiences in this direction.
As a result, as I remember, I never brought the idea to the end (a function of the index and the number of points, as well as the profile settings, to get a 2d location of a curve point for subsequent profiling (gear_profile_point(point_index, tot_points, gear_settings{radiuse, ...})))
involute test 1-1-1.blend (1.8 MB)

After a quick look at your project, have you thought of something like this?

fixed link!

Wow, nice ! I’m sure we used similar equations although I can’t figure it out from the wolfram alpha link.

As I recall the main issue was to implement this loop https://github.com/heartworm/py_gear_gen/blob/master/involute_gear.py#L112 that breaks early when theta reaches a threshold.

I couldn’t find an analytical solution for this, so I ended up doing the computations for every phi between 0 and pi, then just select the points that are out of bounds and delete them with “delete geometry”…

I guess this means that the algorithm is in O(n²) if n is the number of tooth, although this wasn’t an issue in practice.

According to the link, the analytical formula of the factor for X in the involute formula (in the range of X from 0 to 1) for jumping under the radius from 1 to x

I’m not sure, but it seems that the local formatting damaged the hiper link, I hope I fixed it.

Since @mathers also mentioned some alternatives on the blog and i was remembering that there was also some gear thing for 2.79 already… IDK anymore if it was this one:

It works in 3.1.2 and but not anymore in 3.3.2-LTS (did’t tried any 3.2? and didn’t investagte the needed changes)…

But is it only for initial generation like the built-in addon for bolts, or you change the mesh parameters down the line ?

No no … old style… but because there is a discussion about formular… i mentioned it… :wink: