I still plan to try LDraw/MLCad, just haven’t got there yet
Before attempting big projects I suggest that you wait for SnapCAD: during development of SnapCAD we made a few changes to the library (for more details see warning here) so models created with the old library will need some rework in SnapCAD.
LDCad does support snapping, but I couldn’t get it to recognize custom (VEX) parts (according to the log, it parsed them, I just can’t find them in the bins).
The good thing is that LDCad and SnapCAD can share the same parts library and generate models that are fully compatible… Indeed LDCad doesn’t support snapping of VEX parts “out of the box”, but as LDCad specifications are public, it’s quite feasible to add VEX parts support in LDCad. I have already done very promising experiments…
I also have SR3D next on the list, as it has advanced snapping features, but haven’t got to that one yet.
Sadly, Sergio Reano, the author of SR3D builder, passed away ealier this year. So while the program is still available and working, no future improvements and bug fixes can be expected.
But “snapping” can also mean better physical models, moving one part with a gear does turn the gears throughout the rest of the model, for example.
This kind of physical simulation needs more than mere snapping. SR3D builder had some capabilities there. LDCad also has some animation features but it relies on LUA scripts. Very powerful but rather involved…