<div dir="ltr">If you're asking me to post my source here it is:<div><br></div><div>Notes:</div><div>1) coshPolygon is corrected to start at 0.0001 not 0 as it was originally</div><div>2) If you use coshPolygon2 OpenSCAD helpfully spits out a message saying not to have points on both sides of the Y axis.  I was suggesting that maybe instead of the cryptic exception I got a message saying "Do not have any points X=0" would be nice.  I am seeing that people are saying if you have two points X = 0 with different Y values that would work, but that seems like a weird case (as people mention zero thickness)</div><div>3) if you make one hypDome things are fine (with coshPolygon starting at x=0 as it did originally).  However, multiple overlapping, or overlapping another object causes the cryptic exception</div><div><br></div><div>---------------------------------------------</div><div><br>function echoit5(y,x) = echo(y,x) x; //debug<br><br>function cosh(x) = (exp(x) + exp(-x))/2;<br><br>function coshPolygon(multiplier, power, domain, flip, steps) = <br>    let (flipValue = flip ? cosh( ( multiplier *(pow(domain,power))) ) : 0)<br>    [ for(i = [0.0001: (domain / steps) : domain]) [i, flipValue - cosh(  ( multiplier *(pow(i,power)))  )] ];<br>        <br>function coshPolygon2(multiplier, power, domain, flip, steps) = <br>    [ for(i = [-domain: (2 * domain / steps) : domain]) [i, cosh(  ( multiplier *(pow(i,power)))  )] ];<br><br>module hypDome(multiplier = 1, power = 1, domain = 2, flip = true, steps = 10, facets = 20) {<br>    rotate_extrude($fn = facets) {<br>        polygon(echoit5("raw polygon",coshPolygon(multiplier, power, domain, flip, steps)));<br>    }<br>}<br><br>scale([8,8,1]) {<br>hypDome(1,1,5,true,10, 20);<br>}<br></div></div><div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br>
<table style="border-top:1px solid #d3d4de">
        <tr>
        <td style="width:55px;padding-top:13px"><a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon" target="_blank"><img src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif" alt="" width="46" height="29" style="width: 46px; height: 29px;"></a></td>
                <td style="width:470px;padding-top:12px;color:#41424e;font-size:13px;font-family:Arial,Helvetica,sans-serif;line-height:18px">Virus-free. <a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link" target="_blank" style="color:#4453ea">www.avast.com</a>
                </td>
        </tr>
</table><a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1"></a></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jul 17, 2019 at 10:00 AM Carsten Arnholm <<a href="mailto:arnholm@arnholm.org">arnholm@arnholm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 17.07.2019 15:23, nop head wrote:<br>
> How does it differ from the OP's?<br>
<br>
We might perhaps know if the source is posted.<br>
<br>
The claim that touching the Y-axis in a single point is causing <br>
assertion when used in rotate_extrude can be tested:<br>
<br>
rotate_extrude(){<br>
   polygon([ [0,0],[2,-2], [2,2] ]);<br>
}<br>
<br>
This works fine in OpenSCAD 2019.03.31 and it can be exported <br>
successfully to various formats, including OFF (sing1.off, vertices=15 <br>
faces=28) and STL (sing1.stl, vertices=84 faces=28).<br>
<br>
The assertion occurs in OpenSCAD if you try to union with a cube:<br>
<br>
rotate_extrude(){<br>
   polygon([ [0,0],[2,-2], [2,2] ]);<br>
}<br>
cube(1);<br>
<br>
Or this way, it also gives an assertion<br>
<br>
import("./sing1.stl");<br>
cube(1);<br>
<br>
<br>
Now, if you import the OpenSCAD-generated model into AngelCAD <br>
(OFF-version) and union it with a cube as above and save it as test2.off:<br>
<br>
// AngelCAD code.<br>
shape@ main_shape()<br>
{<br>
    polyhedron p("./sing1.off");<br>
    return p + cube(1);<br>
}<br>
<br>
In this case there is no problem, it works fine as shown in enclosed PNG <br>
image, and<br>
<br>
===<br>
<br>
$ polyfix test2.off<br>
<br>
Parameters:<br>
   input_file = test2.off<br>
<br>
<br>
polyhedron 0 ================= volume=29.4181, dtol=0.01, atol=1e-06, <br>
maxiter=10<br>
iteration 0: vertices=20 faces=38<br>
              total changes=0<br>
              no warnings<br>
<br>
Summary:<br>
              polyhedron 0: vertices=20 faces=38 : no warnings<br>
<br>
====<br>
<br>
<br>
Therefore, the problem seen in OpenSCAD is not really in rotate_extrude, <br>
but how the model is interpreted when subject to union using CGAL. The <br>
same union using Carve works fine as should be expected.<br>
<br>
<br>
Carsten Arnholm<br>
_______________________________________________<br>
OpenSCAD mailing list<br>
<a href="mailto:Discuss@lists.openscad.org" target="_blank">Discuss@lists.openscad.org</a><br>
<a href="http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org" rel="noreferrer" target="_blank">http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org</a><br>
</blockquote></div>