Non-manifold when union() or hull() a torus created with rotate_extrude()

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Non-manifold when union() or hull() a torus created with rotate_extrude()

QuackingPlums
I was investigating ways of filleting cylinders to make "cup" shapes and thought I would be clever by hulling a torus with a regular cylinder, but I consistently get a "non manifold" error when slicing the output.

Here is my code:

fillet_radius = 5;
inner_r = 30;
outer_r = inner_r+5;
cup_height = 70;

difference()
{
        // outer cup
        cylinder(h=cup_height, r=outer_r);

        // inner cavity
        translate([0, 0, fillet_radius])
                Cup(cup_height, inner_r, fillet_radius);
}

module Cup(height, radius, fillet_radius)
{
        translate([0, 0, fillet_radius])
                hull()
                {
                        Ring_torus(R = radius-fillet_radius, r = fillet_radius);
                        cylinder(h = height-fillet_radius, r = radius);
                }
}

module Ring_torus(R, r)
{
        rotate_extrude()
                translate([R, 0, 0])
                        circle(r);
}

I have tried unioning the various parts before hulling, and also replacing the hull with unions of cylinders (one large one, one small one, and a ring torus to bridge the two) but the error persists.

I've tried adding fudge factors in case there's a problem at the toroidal 'equator' but it doesn't help.

Interestingly, the problem doesn't occur if I don't union or hull the torus with a cylinder. Is there a winding issue with objects created with rotate_extrude() that only manifests when unioned with another object?
tp3
Reply | Threaded
Open this post in threaded view
|

Re: Non-manifold when union() or hull() a torus created with rotate_extrude()

tp3
On 12/09/2014 12:23 PM, QuackingPlums wrote:
> I was investigating ways of filleting cylinders to make "cup" shapes and
> thought I would be clever by hulling a torus with a regular cylinder, but I
> consistently get a "non manifold" error when slicing the output.
>
I can't see any problems with the latest dev-snapshot on Linux. The exported
STL looks good in NetFabb.

ciao,
   Torsten.


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
-- Torsten
Reply | Threaded
Open this post in threaded view
|

Re: Non-manifold when union() or hull() a torus created with rotate_extrude()

QuackingPlums
Weird - got an email reply from Marius but it didn't show up on nabble.

kintel wrote
> but I consistently get a "non manifold" error when slicing the output.
>
I quickly tested your file and opened it in Slic3r. Everything looks fine there (using OpenSCAD-2014.12.07 on Mac an the latest Slic3r).

Could you specify which version of OpenSCAD, which OS as well as where you get non-manifold errors reported?

-Marius
I'm still on the 11.05 snapshot of OpenSCAD on OSX - I'll update it later and try again. I haven't tried running it through netfabb so I'll do that too.
It sounds like Slic3r might be my problem - I tend to use whichever version that is bundled with Repetier Host, and I have been a little lax in updating this across all of my machines lately (I use a combination of OSX and Windows).
Reply | Threaded
Open this post in threaded view
|

Re: Non-manifold when union() or hull() a torus created with rotate_extrude()

MichaelAtOz
Administrator
God works in mysterious ways...  ;)
Admin - email* me if you need anything,
or if I've done something stupid...
* click on my MichaelAtOz label, there is a link to email me.

Unless specifically shown otherwise above, my contribution is in the Public Domain; to the extent possible under law, I have waived all copyright and related or neighbouring rights to this work.
Obviously inclusion of works of previous authors is not included in the above.


The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ time is running out!
Reply | Threaded
Open this post in threaded view
|

Re: Non-manifold when union() or hull() a torus created with rotate_extrude()

Bananapeel
In reply to this post by QuackingPlums
I read that one on nabble, it must have been deleted.