Greetings to the list. I am attempting to create a helical looped form from a cylinder using linear_extrude. Though it appears semicylindrical in a perspective orthogonal view, in a side view the cylinder appears flat. Is their any way to fill out this twisted circle? I realize linear_extrude says it should not be used to generate helical windings. Is there another module or command I should be using? All help is appreciated. _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
The more I learn, the more I get curious about.

I'm not sure exactly what you're trying to describe, but I fished around my archive and found this that might help inspire you
On 09/12/17 01:10, John Sprockets
wrote:
_______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org 
In reply to this post by Still_learning
On 20171209 02:10, John Sprockets wrote:
> Greetings to the list. > > I am attempting to create a helical looped form from a cylinder using > linear_extrude. You mean extruding along a helical path? You cannot do that with linear extrude. That would be a sweep operation, which isn't a core feature in OpenSCAD. People have made sweep functionality as .scad scripts though, so perhaps you could use it (I don't have a reference). Carsten Arnholm _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org 
Carsten,
"you cannot do that" is a very rigid phrase. We had some discussion about this theme before and there were solutions, at least to some extend (helical angle). Have a look here: http://forum.openscad.org/howtomakethegroovemorewidthtp20154p20170.html The *only* practical problem is that you have to find (and calculate) the proper projection of the helical shape to the XY  axis which is not a simple task. Concerning the sweep approach, there are many helical structures like threadings that will not be sweepable due to inherent selfintersection. (We have discussed that theme before.) Ι have published a threading libray that deals with it in a tricky way by extruding and unioning two half sweeps: https://www.thingiverse.com/thing:1659079 cacb wrote > You mean extruding along a helical path? You cannot do that with linear > extrude. That would be a sweep operation, which isn't a core feature in > OpenSCAD. People have made sweep functionality as .scad scripts though, > so perhaps you could use it (I don't have a reference).  Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org 
In reply to this post by cacb
Pardon my ignorance of geometry, but could somebody explain why the
obvious use of linear_extrude *isn't* a helix?
Is the problem that if you want some particular vertical crosssection of the object to have a particular shape you have to generate the horizontal crosssection, and that's hard? (e.g. to generate a circular crosssection you'd need something sort of kidneybean shaped) _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org 
I’m unclear if this is quite what the original poster wants, but the BOSL library has, as part of its BOSL/paths.scad library, a module to sweep a polyline (array of 2D points) perpendicularly along a helical path: extrude_2dpath_along_spiral(polyline, h, r, twist=360); It makes a polygon directly, though it won’t deal with self intersection.
You can find BOSL at: Revar
_______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org 
In reply to this post by JordanBrown
The twisted linear_extrude follows a helicoidal path indeed but its sweep is done by translating the initial 2D shape without rotations. So the orthogonal section of the result is not the linear_extrude shape. And yes, If you deform appropriately the 2D shape to be extruded you may get the expected result.
20171209 21:43 GMT02:00 Jordan Brown <[hidden email]>:
_______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org 
You might be interesed in the helical coil implementation using linear_extrude that I came up with a while ago: Explanation of how it works is in the description, with a graphic showing the steps. Hans On Sat, Dec 9, 2017 at 7:33 PM, Ronaldo Persiano <[hidden email]> wrote:
_______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org 
In reply to this post by RevarBat
I’m unclear if this is quite what the original poster wants The easiest way to describe what I want to achieve would be comparable to taking a dowel and wrapping a length of round wire around it. The wire remains round and bent into a helical configuration. The wire is the cylinder (circle with defined radius). The overall length of the helix is the "height" The number of revolutions is governed by "twist" Sorry for the delay in getting back to the list.  The more I learn, the more I get curious about.  Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
The more I learn, the more I get curious about.

It was clear to me. What you want is called a sweep which is not a builtin operation in OpenSCAD. There is many codes to do this and they usually do it either by the lengthy union of short cylinders or using polyhedron primitive which is a lot faster. The referred extrude_2dpath_along_spiral of BSOL library uses polyhedron and may solve your problem. I have never use it though. 20171212 20:45 GMT02:00 Still_learning <[hidden email]>:
_______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org 
Thanks for the referral on "extrude_2d_path..."
I will check it out.  The more I learn, the more I get curious about.  Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
The more I learn, the more I get curious about.

@ Still_learning: this is a fully functional sweep code with a small
footprint. Note that it is essential to avoid selfintersection. Try out by uncommenting each of the 3 example calls. @ JordanBrown: Test the code. If this was the default behaviour of linear_extrude when a twist parameter is given, linear_extrude could easily run into trouble. The current implementation of linear_extrude is failsafe by specification. use <Naca_sweep.scad> // https://www.thingiverse.com/thing:900137 // helix(); // default // helix(r=10, R=40, windings = 2, h=50); cube(100); // no self intersection // helix(r=10, R=40, windings = 2, h=30); cube(100); // selfintersection!!! F6: CGAL complains module helix(r=4, R=40, windings=5, h=150, M=40, N=40) { M_ = ceil(M*windings); // slices slope = atan(h/windings/2/R/PI); sweep(trajectory()); // function trajectory() = // prepare data for sweep() [for (i=[0:M_]) let(w = 360*windings/M_*i) Rz_(w, T_(R, 0, h/M_*i, Rx_(slope90, vec3D(circle2D()))))]; function circle2D() = // polygon for cross section [for (i=[0:N]) let(w = 360/N*i) r*[sin(w), cos(w)]]; }  Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org 
Thanks Parkinbot!
Great stuff. Exactly what I was looking for.  The more I learn, the more I get curious about.  Sent from: http://forum.openscad.org/ _______________________________________________ OpenSCAD mailing list [hidden email] http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
The more I learn, the more I get curious about.

Free forum by Nabble  Edit this page 