For a replacement part (water pump) I need a 5/8"-18 screw.
Does anyone know a library to produce UNF screws? Everything I found so far was focused on the generation of metric screws.
The only difference between modern imperial and metric threads is numbers. Plug in the right numbers and you'll get the right sizes.
i.e. major diameter in metric is (5/8)*25.4, and pitch in metric is 25.4/18. Plug those into a "metric" generator and you'll get an imperial size.
I've used Dan Kirshner's OpenSCAD threads module with good results for both imperial and metric threads. It's really compact and easy to use:https://www.thingiverse.com/thing:1938150http://dkprojects.net/openscad-threads/
Thank you. Will have a look next time!
I've had this script kicking around for a little while.
For the diameters and thread values, you can use the decimal value or fraction values.
In your case the diameter can be 0.625 or 5/8.
Pitch will be 1/18 or 0.05556.
If you want to use the thread in a metric environment. Multiply the diameter and pitch by 25.4.
diameter= 25.4 * 5/8;
pitch= 25.4 * 1/18;
I've found the "threading.scad" part of the BOSL library to produce a wide range of screw threads well.
I'm not expert, and it doesn't define UNF threads itself, but if you know the characteristics of the thread profile, I'd bet you can produce the threads you want with this library.
Edit: I looked up the threads on Wikipedia, and checked threading.scad and I think it'll do what you want.
Just look at the trapezoidal_threaded_rod() module and I think you are golden.
If you struggle, and I'm awake :-) I'll try to help more.
Thank you. I was hoping to find some specialized solutions because it's always tedious to figure out which value is which.
According to https://en.wikipedia.org/wiki/Unified_Thread_Standard this should be (added some open questions):
l=14, // my personal requirement
thread_angle=15, // What's this? I only found 60° for the profile's shape and θ = 30°.
thread_depth=undef, // How is that measured? Is this H or 5H/8? (see wiki picture)
profile=undef, // "... if not a symmetric trapezoidal form", which symmetry? The wiki picture is horizontally symmetric but not vertically
Additionally the external thread is not flat but rounded in its concavities which cannot be represented by trapezoidal_threaded_rod(). I'll have to see if this has any relevance in practice.
I'd probably try making an inch or so of d=15.85, pitch=1.4111, with the rest defaulted and check the fit.
Chances are a lot of the finer details aren't going to resolve well enough to matter if we're talking about 3D printing the part.
(the screw was actually a 5/8"-19)
It was required to set
the default is neither correct for UNF nor ISO.
Now it fits perfectly