Ok, once you have an involute gear library AND a trapezoid thread library, you can easily make the simplest of worm drives, i.e. the non-throated kind.
Like all worm drives, the gear advances by one tooth for each revolution of the screw but with non-throated ones, there is only a single point of contact at any one time, and so torque and wear capabilities are limited.
As I pointed out in the comments, AFAIK a trapezoidal profile for the worm screw is all you need to match the worm gear's involute.
To make them mesh, all I did was to make sure that:
- the pitch is the same (distance from crest to crest),
- the pressure angle of the gear is equal to the angle of the sides of the screw profile,
- the distance between screw and gear is equal to the gear's radial pitch plus the screw's mid-profile radius, and
- the twist on the gear is equal to the gear's pitch radius divided by the screw's mid profile radius, with a sign depending on the screw's handedness.
This openSCAD script is a demo of the trapezoid thread library but also uses the MCAD involute gears library. It will only work if both of these are in the same directory or in your libraries directory.
It is ready for animation, and I have added a GIF of the animation in the comments below.
This code is in the same repository as the library: