Remove intersecting geometry between multiple objects

Basically, I need to take a bunch of objects and remove the parts that are intersecting, while still keeping each object solid. Sort of like this:

For that image, i used a series of booleans and duplications that would be way to difficult to perform on multiple objects. I know that the 3d printing toolbox has some features to select intersecting faces, but not do anything with them. Anyone know of a script or a way to do this in another program? Any help is appreciated. Thanks!