I use blender. You can create a planes, and place them where you want. Then you apply a boolean modifier to the object you want to split...deleting the parts you don't want relative to the plane you selected. And it makes the kept part have the surface that was on the plane, as part of it, like a solid object.
So what I do is add all the planes I want, then save the project as a blender file, so I can come back to start the process all over again.

I also subdivide the planes, and manually move vertex points so I create nut and bolt effect where the parts meet. So they come together like LEGOS.
Here is an example http://www.mediafire.com/view/j3hv5h...5/IMG_0913.JPG

Solidworks has an add on that does this automatically, but It was hell for me working with meshes with that software. It's meant for solid objects form my understanding. Converting in between formats, and turning meshes to solids, takes a load from your memory and can cause crashes. I like my models to have a smooth round surface, with high poly counts. And I couln't get it to work.