How can you align two vertices relative to a global coordinate when you want to preserve the orientation of the edges that contain them? I want to move a vertex A along an edge A1 in such a way so that the vertex has the same Z global coordinate as another vertex B which is in another edge B1. B1 and A1 are not parallel.

I tried using the Normal coordinate system to move A along A1, but snapping to B only considers the current (Normal in this case) coordinate system so it didn't work as desired.

Then I tried snapping the 3D cursor to an endpoint of A1 and scaling A (with the 3D cursor as pivot), but snapping to B did not work as expected (I'm not sure why).

The only solution I was able to come up with was to duplicate the edge and snap A to B in the global coordinate system, then while moving on the XY plane snapping to the duplicated edge. Far from being practical.

Here is a picture of what I'm trying to achieve:


I want the selected vertex to move only along the green axis but I want to snap to the vertex in the red circle relative to the global Z.

Is there a better way to achieve this?
I would also like to know the answer :)

However, as a workaround for this specific case the knife tool K in combination with angle constrain C is very handy: