Make It With MoI

 From:  Michael Gibson
4388.162 In reply to 4388.160 
Hi Franz, thanks for posting the example.

So actually in that case there even though you've got an open surface object and not both solid volumes, since the open surface is sticking all the way through the solid and making a well defined closed intersection curve with it, it is actually supposed to be ok to use in a boolean union like that. But there is a bug in boolean union that is preventing it from working 100% properly, I think it's something that I can fix up for the next v3 beta release.

In the meantime, the boolean union will actually make all the pieces you need, you will just need to manually discard one piece and then join the other pieces together to glue things into a solid.

Here are the steps - select both the objects in your moulinex2.3dm that you posted above, then run Construct > Boolean > Union.

This will calculate a result but it will be fragmented into some pieces. There is one piece that you need to delete manually. To do that select this piece here:



You actually want to keep that piece, but it's in the way so you will need to hide it to more easily get at the actual piece you need to delete which is underneath it.

So push Edit > Hide - that will hide that selected object (if you push Edit > Hide with something selected, if you push it with nothing selected it shows all the hidden objects). So after hiding it you will see this:



That's not actually one single object, it's 2 different objects in separate pieces - select this one here:



And then delete that one. You will see a result like this:




Now show that piece that was hidden earlier, and now you have the proper 2 pieces to make up your solid - select the 2 pieces and use Edit > Join and they will be glued together into a solid.

The bug is that boolean union is supposed to automatically delete pieces like that which are forming a sort of "interior cell wall" between 2 solid regions. But the code that is doing that is getting confused by the "seam edge" of the closed surface and not recognizing it as being a piece fully bounded by all non-manifold edges. Once I fix the bug and take seam edges into account the union calculation should then get the proper result and automatically remove that interior piece as part of the boolean and you won't need to do any extra steps here.

Thanks for posting the file, sometimes the reason why things don't work as expected is because it's a bug that needs to be fixed and it really helps to have the example to work with to find out what's going on!

It is however not necessarily a bad idea to form solids for each piece that you are using to do the booleans - when each part is a solid you know it's a closed object and the booleans will be a little more bulletproof as far as giving you the expected results when the pieces involved are all solids initially.

- Michael