Is there any tool/software that I could use out of the box for snapping different 3d meshes together (even manually in an interactive mode but not really time consuming, considering that I would have to do that for a couple of hundred pieces)?
For example imagine that I have the following pieces:

Which they should be snapped as follows:

Then I've tried to use some existing tools/software like vedo, Meshlab, etc... for manually putting the pieces together but as you can see the output is not perfect plus it will take forever to find the best positioning (transformation matrices).

Thus, I was wondering if there is any tool/software that you are aware and that I could specify even manually (by marking, or with a scribble) which side of piece with which other side on another piece should be snapped and then I guess by adjusting some options would help to get a better positioning.
It is a bit tricky because not always the two boundaries match exactly as you can see below:

But if there is anything that you are aware and possibly would help me I would be grateful.
Thanks.