right before the New Year, I’m trying to get my last task done. I have a group of voxelized solids, and I want to unify those voxels into one solid, rebuilding the voxelized shape. However, it’s not working. At some point, I always end up creating non-manifold geometry.
After exploding the geometry, I discovered that my surfaces are not recognized as duplicate geometries, even though they are identical in side length and position. Maybe that’s normal, and I just never thought about it.
In any case, I can’t seem to get rid of the “inner” surfaces, nor can I create a solid through SolidUnion.
Hopefully, someone can give me a hint on how to create a solid out of these voxels?
I’m not understanding what you mean by your references to voxels in the context of your illustration, perhaps you could assist by defining the terminology.
The stack of closed polysurfaces on the right will union without problem; giving this:
The stack of planar surfaces on the left is not suitable for unioning. If you want to create a single closed polysurface similar to the result above, why are you starting from all these separate (and in some cases, duplicated) surfaces? Is it because you work this way in some other software and you expect Rhino to work the same way? (it doesn’t!)
My task seems fairly simple, but still I can’t do a boolean union of the right stack. This is why I started to deconstruct the solids to check if my basic geometry is false.
How did you create the union? I’m working on Rhino 8 Mac. And here I can’t simply execute boolean union with my given geometry.
It’s only working when I use a multi step process. But that seems odd and is not suitable. Since my process is automated in a python script processing geometries with hundreds of voxel.
I’m running Rhino 8.15 on Windows. I just selected the stack and ran union. If you select the text dot and look in the Properties panel you will see an explanation of what choked Rhino.
This one won’t union because the red block only connects edge to edge. The rest should union.
Edit: No it won’t - you have a couple more edge to edge connections.
I recall there was some discussion of this boolean “edge case” (weak pun intended) some months back on Discourse but I don’t recall the outcome. Where there is an underlying support structure - as in @Helvetosaur’s example below - this is a manufacturable item and there should be a way to complete the boolean. With the red block though, it should remain a separate piece because it isn’t manufacturable as a single unit.
Something that appears to be happening here is that in booleaning many blocks at once Rhino is creating (what it thinks are?) non-manifold edges at intermediate steps - probably depending on the order in which it selects blocks.
A strategy to get around this is to restrict the union to one or two rows at a time, then union the rows. For me, that is getting past errors that an attempted union of larger portions throws up.