Dan Shriver tabbydan at gmail.com
Wed Jul 17 17:22:49 EDT 2019

```Nop_head: when I did my original hypDome() {code given earlier in the
thread} it looked hollow but that could be some weird artifact.  I am using
the 2018 release of OpenSCAD (not the latest one) and I see this:

[image: image.png]

For a shell with thickness I simply make a new function that assigns
coshPolygon() to a vector, then I make a second vector taking the elements
of the first vector (in reverse order) and subtracting the "thickness" from
the y value (which isn't exactly correct as it should be on an angle with
both x & y values altered).

On Wed, Jul 17, 2019 at 12:20 PM nop head <nop.head at gmail.com> wrote:

> 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]]]);
>>>
>>>
>>>
>>>
>>> --
>>>
>>> _______________________________________________
>>>
>> _______________________________________________
>>
> _______________________________________________
>
-------------- next part --------------
An HTML attachment was scrubbed...