How do I dissect a model as part of an animation?

I have a model of a piece of technical equipment where i want to show how it works. The aim is to take a cross section through the middle to reveal the interior. Is there a way to do this other than using a boolean?

Currently I have a clear cube that moves across the object and performs a boolean on that half. But this leaves me with a lot of issues (extra faces etc). Because this is an animated sequence, I can’t simply clean the final image up and because the model is very complex (many curving faces etc) it’s proving to be quite annoying.

Anyone have a good suggestion for dissecting?