Project mesh on surface (or clip face with rotation) Is there a way I can "project" a mesh on another mesh's surface?
I know clipping, but it doesn't align the faces that are touching and doing it manually can be very time consuming.

Is there an integrated function or addon to do such a thing?
In case not, can somebody please point me in the right direction to write a py script? (I regularly code in python, just never wrote anything for blender)

Here's a real-world example to explain things graphically:

I want to go from this



to this
To place cube onto the surface of torus in this case, you should:

Enable Snap during transform tool with Shift + Tab. Turn on Face snapping mode, along with Align rotation with the snapping target. Switch snapping part onto the target to Median:


Grab your object (cube) to the desired place. Switch Transformation orietnation to Normal (with Alt + space). Turn off snapping and grab your cube along normals so it moves out of the base mesh surface (in my case it was Z axis):