Huge file won't boolean V7

Hi All

I’m at a complete loss. I have a huge file I’ve been working on for a number of weeks (aprox. 350mb).
There are 2 parts I’m attempting to boolean with no luck. The objects are not bad objects, they are both closed polysurfaces ( one with about 20,000 surfaces) that I have had to rework after flowing the original object along several curves
and then fix the open edges that resulted from the flow and then boolean the multiple units into one part. They are both closed and intersect creating closed curves. I cannot boolean them or intersect ,split, delete and join the parts as the intersections will not split all the parts. I cannot upload the file here but I am hoping someone may have some insight as to why. I’m also wondering how I can shrink the size of this file when it’s completed, if ever.

Cheers

Hi Paul - please run What and Check on both objects and copy/paste the results here.

-Pascal

Rhino polysurface object is valid.

Rhino polysurface object is valid.

polysurface

ID: 13ae7faa-644f-4903-a35a-5f4547535146 (46697)
Object name: (not named)
Layer name: Layer 05
Render Material:
source = from layer
index = -1

Geometry:
Valid polysurface.
closed solid polysurface with 20597 surfaces.
Edge Tally:
3867 seam edges
3659 singular edges
57512 manifold edges
= 65038 total edges
Edge Tolerances: 0.000 to 0.023
median = 0.000 average = 0.000
Vertex Tolerances: 0.000 to 0.018
median = 0.000 average = 0.000
Render mesh: 20597 meshes 3246973 vertices 3340705 polygons
Created with fast meshing parameters.
Adaptive SubD meshing density = 256 mesh quads per SubD quad.
Analysis mesh: none present

polysurface

ID: adfbb51d-bfa2-406a-b632-45a96158d7b5 (51071)
Object name: (not named)
Layer name: Layer 08
Render Material:
source = from layer
index = -1

Geometry:
Valid polysurface.
closed solid polysurface with 965 surfaces.
Edge Tally:
668 seam edges
8 singular edges
2921 manifold edges
= 3597 total edges
Edge Tolerances: 0.000 to 0.001
median = 0.000 average = 0.000
Vertex Tolerances: 0.000 to 0.000
median = 0.000 average = 0.000
Render mesh: 965 meshes 74827 vertices 85171 polygons
Created with fast meshing parameters.
Adaptive SubD meshing density = 256 mesh quads per SubD quad.
Analysis mesh: none present

I also had changed the absolute tolerance to .00001

A solid with 20K surfaces? What did you do - convert to NURBS from a mesh?

Generally not recommended to go over 0.0001 but the problem is most likely the intersection with the 20K face polysurface. If you run Intersect with the two objects, what do you get? A closed curve or not?

This is very possibly contributing as well. These are way larger than tolerance.

-Pascal

@Helvetosaur
I actually constructed an object with a very detailed surface of around 3000 surfaces and then copied with the flow command into different positions. those copies were then booleaned together into a a closed polysurface.

And yes the intersection produces only closed curves.

@pascal
Can you explain what you are referring to a little more? I don’t have a good understanding of those tolerances. Is there anything I can do at this point?

Hi Paul - if you were to explode the object and RebuildEdges, the resulting surface edges would jump back onto the underlying surfaces to their more ‘natural’ positions the the result could not be joined without naked edges - the Boolean operation wants in the areas of intersection edges to be truly within tolerance, and not pulled away.

I do not know if that is the problem in your massive object but it seems possible, it is also possible that Flow has folded surfaces so that the intersection is a loop in one or more places.

-Pascal

Thanks Pascal

If there were issues with flowing the objects would i have had issues Booleaning them all together? I do know that it did create naked edges in the resulting objects that were also bad objects. It was very time consuming getting it closed without creating a bad object.

Two questions:
Is there anything i can do to get it Booleaned?
How can I reduce the size of this file if I want to get it printed. I have been told the overlapping parts can be printed even if they don’t form 1 solid surface as long as the objects are closed.
Do you have any knowledge regarding that idea?

Cheers

https://wiki.mcneel.com/rhino/booleanfaq

As per the above article, Boolean operations are just a series of automations of maual ones. So you can try manually by splitting the objects with your intersection curves, deleting the pieces not needed and joining.

What’s likely to happen is one or more of the objects will refuse to split. That will show you where the problem is. If the objects can’t be split, they can’t be Booleaned. The most likely cause of a split failing is either a bad object (or one with out of tolerance edges) or a bad split curve - which could also be self-intersecting if the surfaces have folds - as Pascal points out above . Without seeing the file it’s impossible to say.

If you Explode your object, then run RebuildEdges and then Join, I suspect you will end up with an object that has naked edges. You will need to be able to fix these in order to make the split/Boolean possible.

For 3D printing, you do not need NURBS surfaces, you need meshes. So the ‘file size’ for printing is (somewhat) independent of the Rhino file size - it will depend on your meshing parameters. You will need a mesh fine enough to print the small details, but not finer than the 3D printer’s resolution. Many 3D printer software packages include some automatic repair routines and also will accept overlapping volumes if the meshes are good.

I would use the mesh command to create the meshes inside Rhino, then check those to see if they are good, closed and look correct. Turn on flat shading to see the facetting. Then I would export the meshes as .stl for 3D printing.

https://wiki.mcneel.com/rhino/meshfaq
https://wiki.mcneel.com/rhino/3dprinting

2 Likes

Helvetosaur.
Thanks for your guidance.
It appears you don’t sleep either. Lol

Nah, I’m just in a different time zone, probably…

Well it looks like I cannot produce a good mesh from these nurb surfaces and my file size jumped from 500+ to 700+ when I created an stl from the nurbs surfaces. Un fortunately the place where I print cannot handle files larger than 64gb or 1,000,000 faces. Any suggestions?

Sounds incredibly detailed to produce that many triangles… Well, actually million polys is not all that big by today’s standards though, I have had far more than that with some of the terrain meshes I’ve worked with and I’ve been able to mill and 3D print them. 64Gb is however huge.

I don’t really know how to help you here - are you sure your level of detail is not far too fine for 3D printing?

That’s a good question. How can I tell? I’ve printed the objects smaller in size in a jewelry printer. These are enlarged a little and a lot.

Hi Paul - if the Boolean operation is still the nub of the problem, please try this command, and assuming it all works SaveAs or export the resulting geometry and post it or send to tech@mcneel.com, with a link back here in your comments. Run it once, and then select the reduced object from the command and run it again - when done, the result should be the intersection parts of the two inputs. Do not Save the file - the other faces are deleted by this test command - use SaveAs or Export.

testGetIntersectingComponent

-Pascal

Hi Pascal
So let’s see if I did this correctly because I am not ending up with just the intersecting areas.
I split part A with part B then split the reduced part A with part B. Is that correct?

Split A with B, then B with what is left of A… - the command is a test command and will not autocomplete, btw, you need to type the whole thing.

-Pascal

I tried that too. Ill email the file to you now. But it didn’t choose the intersections either. There is a lot of leftover material. It’s still 65Gb large.