Thingiverse
openscad screw threads with linear_extrude
von speedymollusc
34
Downloads
28
Likes
0
Makes
It's always bugged me that you can't make screw threads easily with openscad's linear_extrude - and then I realized, on my bike ride home from work, that actually you can!
.
The main problem is that people usually think of a screw thread in terms of a *vertical* cross section, but openscad needs a *horizontal* cross-section for linear extrusion. But this isn't a fundamental limitation, it's a failure of imagination! So imagine cutting a screw in half with a hacksaw. Look at the shape the cut made. If you were to linearly extrude the resulting shape, with the correct twist, then you'd get the screw back, right? So we just have to figure out what the shape of that cross-section is.
.
Fortunately we can do that natively in openscad, basically by running the game backwards: make a doughnut the shape of the thread, cut it in a spiral, and look at it from above - that's your shape.
.
More rigorously: If P is the polygon you want to extrude as a thread, first of all rotatio
.
The main problem is that people usually think of a screw thread in terms of a *vertical* cross section, but openscad needs a *horizontal* cross-section for linear extrusion. But this isn't a fundamental limitation, it's a failure of imagination! So imagine cutting a screw in half with a hacksaw. Look at the shape the cut made. If you were to linearly extrude the resulting shape, with the correct twist, then you'd get the screw back, right? So we just have to figure out what the shape of that cross-section is.
.
Fortunately we can do that natively in openscad, basically by running the game backwards: make a doughnut the shape of the thread, cut it in a spiral, and look at it from above - that's your shape.
.
More rigorously: If P is the polygon you want to extrude as a thread, first of all rotatio
Hast du dieses Modell gedruckt? Einloggen und dein Make teilen!
Melde dich an, um einen Kommentar zu hinterlassen
AnmeldenNoch keine Kommentare – sei der Erste!