Non-regularized Boolean Operations

I have been investigating OpenCascade for non-manifold boolean operations. I have a couple cases that I'm struggling to get working and would appreciate any advice on how to accomplish what I want or a clearer explanation of OpenCascade's capabilities. I've read https://dev.opencascade.org/content/non-regularized-boolean-operations, but as it is 25 years old I'd like to know what the current state of the software is. I have attached a .step file of an example case which consists of two identical cubes, where one cube is offset by the side length. In other words, the cubes touch at a face.

  1. I would like to perform a non-regularized union operation. In short, this operation should unify shapes of the same dimension if they share the same boundary locations, but should not delete lower-level topologies that are embedded in the shape. The split operation in OCCT accomplishes this if the volume of the overlap is nonzero, but it does not yield the desired result for the attached example. The result of the operation should have 11 faces, where the two touching faces have been combined into a single face that is in the BRep of both volumes.

  2. In attempting to build my own function to accomplish #1, I attempted to take the intersection of the example. I would expect the intersection to be a square face. Instead, the intersection is empty. What is going on with this? Is there a way to get the behavior that I expect?

Thanks in advance!

Attachments: