openscad icon indicating copy to clipboard operation
openscad copied to clipboard

New parameter "v" for rotate_extrude

Open gsohler opened this issue 1 year ago • 2 comments

The parameter "v" in rotate_extrude, similar to linear_extrude defines an extra linear direction of extruion which makes it easy to design helical screws and other fancy stuff. An extra parameter method, which defaults to "center" defines the per-point elevation depending on the rotated angle. With "center" the center of gravity is calculated on the 2 objects, wherease for setting " linear" steepnees decreases 1/x from the v axis outwards "center" looks better whereas "linear" is more natural.

image

gsohler avatar Apr 26 '24 15:04 gsohler

I understand the desire for introducing vertical offset to rotate_extrude, to allow for much simpler creation of threads and springs etc. However I'm not sure if a fully configurable vector is the way to go. I can't imagine a use case where I would want to offset anything other than perfectly vertical. Has this been a requested feature or is this simply being done to match the recent linear_extrude work?

I am starting to think that these sort of cases (linear_extrude included) would better handled via a separate affine transformation of shear. I believe that the result of a vertical offset, and then shear would give the same result, would it not?

I think the existing multmatrix module can be used with a user-constructed matrix to do this, however a builtin module with more convenient parameters would certainly be more user-friendly, reducing cognitive load to construct such a matrix.

thehans avatar Apr 30 '24 20:04 thehans

One benefit I can think of is that if we know the shear in advance, we can tessellate slightly better.

kintel avatar Apr 30 '24 21:04 kintel