Wed Jul 17 12:19:49 EDT 2019

```You don't get a shell, you get a 3D solid who's cross section is the 2D
shape. The problem is if that 2D shape only touches the Y axis at a single
point then the 3D shape has a pinch point there where it has zero thickness
in the Z direction.

If you want to make a shell then the 2D shape should be the cross section
of a shell and yes that is faster made in 2D before the extrude than in 3D
with a differences after.

On Wed, 17 Jul 2019 at 16:58, Dan Shriver <tabbydan at gmail.com> wrote:

> Ok, I guess I made multiple errors.
> For some reason I assumed that (if I input a curve or a line) I'd get the
> whole volume from the y axis out to the points.
> Obviously, what I actually get is just a shell of zero thickness for that
> curve or line.
>
> Is it better for me to get a full volume by adding one point to the
> polygon [0.0001, 0] and then if I want a non-zero thickness shell doing
> subtract with an offset of the solid.  Or is it better for me to make the
> polygon with twice as many points (each point has a corresponding double
> that is offset by the thickness)?  I ask because elsewhere it seemed like
> difference() {} might be something one wants to avoid in OpenSCAD for
> performance reasons.
>
>
> www.avast.com
>
> On Wed, Jul 17, 2019 at 11:19 AM Parkinbot <rudolf at digitaldocument.de>
> wrote:
>
>> So your problem is clear. You try to rotate around a single vertex and
>> get a
>> singularity.
>>
>> The following modification avoids this problem by introducing another
>> point
>> on the y axis and creating an edge on the y axis.
>>
>> function coshPolygon(multiplier, power, domain, flip, steps) =
>>     let (flipValue = flip ? cosh( ( multiplier *(pow(domain,power))) ) :
>> 0)
>>     let (result = [for(i = [0.0001: (domain / steps) : domain]) [i,
>> flipValue - cosh(  ( multiplier *(pow(i,power)))  )] ])
>>         concat(result, [[0, result[len(result)-1][1]]]);
>>
>>
>>
>>
>> --
>>
>> _______________________________________________