Why no duplicats. And how to apply SolidUnion

vox_to_solid.3dm (4.3 MB)
Hi everyone,

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?

Thx

Hi,

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:


Is that what you want?

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!)

Look forward to hearing from you.

Regards
Jeremy

Hi Jeremy,

thx for checking out.

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.

Am I “just” stumbling over a beloved Mac bug?

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.

It may well be Mac specific…

As with @jeremy5, the current version of V8 unions your closed polysurfaces here no problem. Maybe post your SystemInfo here?

@jeremy5 maybe try this geometry. Is this one still working on your system?

vox_to_solid.3dm (18.6 MB)

Structures like this will pretty much always fail because they produce non-manifold edges…

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.

Just in case. I’m running MacBook Air, M1 8GB, Sonoma 14.5.

Do you have an idea how to still united voxel based on this kind of geometry?

regards

thx for checking

@jeremy5
@Helvetosaur

Non-manifold edge: BooleanUnion creates, Trim > Join does not create was the info that i missed. thx

Wishing you both a happy 2025!

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.