by syvwlch, published
This is the Thing page for the Screw Library I am working on. I could be talked into releasing it as Public Domain, but have left it as CC-BY-SA for now, at least until it's fully stabilized.
The latest code is available on GitHub here:
Currently, the library allows you to create a threaded rod with a trapezoidal profile, like the Acme or metric lead screws that are so common in CNC machines.
The trapezoidThread module creates the rod along Z, centered in X and Y, but not in Z. Same logic as cylinders with center=false.
The parameters are the following:
length // axial length of the threaded rod // used to calculate how many turns to create // the rod is NOT trimmed to this length!!!
pitch // axial distance from crest to crest
pitchRadius // radial distance from center to mid-profile
threadHeightToPitch // ratio between profile height and pitch // default value is 0.5
profileRatio // ratio between raised profile and pitch // default value is 0.5
threadAngle // angle between the two faces of the thread, in degrees // std value for Acme is 29 or for metric lead screw is 30 // default value is 30
RH // true if thread winds clockwise along shaft // i.e.follows the Right Hand Rule // default value is true
clearance // radial clearance, normalized to thread height // default value is 0.1
backlash // axial clearance, normalized to pitch // default value is 0.1
stepsPerTurn // number of facets to create per turn // default value is 24
You can create a triangular profile thread by setting profileRatio to zero, but that is cumbersome. I will create a separate module for that and add it to this page, later.
I have added a trapezoidThreadNegativeSpace module to create a negative space of a thread with the proper clearances to screw on, as long as you give it the same parameters. It can add two chamfered holes at the entries. It takes the following parameters on top of the ones needed for trapezoidThread:
length // thickness of the part to be drilled out by this object
countersunk // depth of the 45 degree chamfers, normalized to pitch // default value is zero, no chamfer
I have also added a trapezoidNut module which uses the above negative space module to create a hexagonal lead nut with the right clearances to screw onto any thread that shares the same parameters. It takes the following additional parameters:
radius // outer radius of the nut
Recent Commentsview all
Liked Byview all
Give a Shout Out
Obviously, the intent is not to print threaded rod. :-)
Rather, this should allow you to subtract threaded rod from an object to make it a lead nut.
To create two meshing threaded rods like in the demo images, they need to have different handedness (RH) but the same pitch, pitch radius and threadHeightToPitch. Their profileRatios must be complementary (sum up to 1) and they must be separated by a distance of twice their pitch radius.
Have fun with it and don't be shy about reporting bugs or requesting changes or extensions.