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:
https://github.com/syvwlch/Thingiverse-Projects/tree/master/Threaded%20Library
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.
UPDATE:
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
LeadNut-Cut.stl | 153.9KB | |
LeadNut_fixed.stl | 64.7KB | |
LeadScrew-Cut.stl | 188.1KB | |
LeadScrew_fixed.stl | 90.7KB | |
Thread_Library.scad | 11.1KB | |
Tread_Test.scad | 2.0KB |