<p>If your math and OpenSCAD skills are superior to mine, you may be able to make use of the OpenSCAD Metric Nut, Bolt &amp; Threads Library located here:
<a href="https://www.youmagine.com/designs/openscad-metric-nut-bolt-threads-library" rel="nofollow">OpenSCAD Metric Nut, Bolt &amp; Threads Library</a></p>

<p>It uses various means to generate polygons about a radius and includes the formulae for partial revolutions. It is presumed in the design that the center of rotation for the generated polygons is constant. I looked over the code for outside thread and could easily determine the radius references.</p>

<p>With proper coding, you could generate a variable radius based on the height of the cylinder at a specific point and achieve the tapered effect you require. </p>

<p>I expect that you'd have to reduce your desired radius by a fraction, say 0.05 mm in order to embed the thread forming polygons within your tapered cylinder.</p>

<p>If you aren't a strong coder, disregard this answer.</p>

CC BY-SA 3.0
2016-06-19T19:23:57.263Z
So, no ready solution. Thanks for the comment. Will play with the library.
Larry Kosher
CC BY-SA 3.0
2016-06-18T15:00:00.997Z
2016-06-18T15:00:00.997Z
fred_dot_u
<p>I have contacted Dan Kirshner (the author of openscad threads library) and he has updated the library. Now it supports tapered threads. Thanks, Dan!</p>

<p><a href="http://dkprojects.net/openscad-threads/" rel="nofollow">Thread-drawing modules for OpenSCAD</a></p>

CC BY-SA 3.0
2016-07-05T04:51:34.380Z
2016-07-05T04:51:34.380Z
Larry Kosher
<p>Is there any simple way of creating tappered thread in OpenSCAD? I need something like 10 mm in diameter at the end, 9 at the top and the height of 10 mm.</p>

CC BY-SA 3.0
2016-06-18T19:54:35.987Z
Could you elaborate on what approach you took, what you've already tried and why it failed? That might help possible asnswers to know where to start explaining.
kamuro
CC BY-SA 3.0
2016-06-19T19:25:06.173Z
There's plenty of libraries for OpenSCAD for creating threads. Just couldn't find any for tapered thread (i.e. pipe thread).
Larry Kosher
<3d-design>
How to create tappered thread in OpenSCAD?
Larry Kosher
# How to create tappered thread in OpenSCAD?

(Asked by: username_0 on 2016-06-18)

Is there any simple way of creating tappered thread in OpenSCAD? I need something like 10 mm in diameter at the end, 9 at the top and the height of 10 mm.

**Tags:** 3d-design
> **Comments:**
> **username_1**: Could you elaborate on what approach you took, what you've already tried and why it failed? That might help possible asnswers to know where to start explaining.  
> **username_0**: There's plenty of libraries for OpenSCAD for creating threads. Just couldn't find any for tapered thread (i.e. pipe thread).  

---

## 2 answers

### Answer by username_0 on 2016-07-05. Score: 4 | Accepted answer

I have contacted Dan Kirshner (the author of openscad threads library) and he has updated the library. Now it supports tapered threads. Thanks, Dan!

[Thread-drawing modules for OpenSCAD](http://dkprojects.net/openscad-threads/)


---

### Answer by username_2 on 2016-06-18. Score: 4

If your math and OpenSCAD skills are superior to mine, you may be able to make use of the OpenSCAD Metric Nut, Bolt & Threads Library located here:
[OpenSCAD Metric Nut, Bolt & Threads Library](https://www.youmagine.com/designs/openscad-metric-nut-bolt-threads-library)

It uses various means to generate polygons about a radius and includes the formulae for partial revolutions. It is presumed in the design that the center of rotation for the generated polygons is constant. I looked over the code for outside thread and could easily determine the radius references.

With proper coding, you could generate a variable radius based on the height of the cylinder at a specific point and achieve the tapered effect you require.

I expect that you'd have to reduce your desired radius by a fraction, say 0.05 mm in order to embed the thread forming polygons within your tapered cylinder.

If you aren't a strong coder, disregard this answer.

> **Comments:**
> **username_0**: So, no ready solution. Thanks for the comment. Will play with the library.  

---

