In case you don’t know what OpenSCAD is, it is a piece of software and a scriptiing language which allow you to programatically create 3D models for milling or printing. This is useful as you can define parameters that are user definable that actually change the way the final model renders. For example, a hose cuff needs various parameters such as, diameter, pitch, thread depth, screw length, extension, and wall thickness. These attributes contribute to the final model which can be printed and fitted to the end of a hose. By using OpenSCAD (which I am still learning) I hope that I can release a model on Thingiverse that can be 3D printed at home or through a local service bureau allowing you to use any size hose you wish for your vacuum cleaner.
This is how far I have gotten so far, but it I am having trouble with OpenSCAD’s inability to extrude a 2D surface with the plane facing along the extrusion path rather than flat on the floor, meaning there is little depth to the thread, and no control over diameter, examples included with the program seem to use a half toroid to resolve this but that seems messy.