Question: I am using Debug.Assert in a .NET Core 2.0 C# console application and surprised to find out that it only silently shows "DEBUG ASSERTION FAILS" in the output window without breaking into the debugger or showing any message box at all.

How can I bring this common behavior back in .NET Core 2.0?

Answer: 
Note that for **infinite** rectangular "tube" you can reduce problem to 2D case: just project all points and edges onto the plane, perpendicular to tube.

Now you have to look for intersection of polylines (polygons) with rectangle (axis-aligned if you use points on generatrices of tube as base point and vectors) - this task is definitely simpler. 

If your shapes are convex, polygons are convex too and SAT-method (Separating Axis Theorem) is very good (of course this is not true for links between shapes, they should be treated separately).
Continuing MBo's answer, you can find the useful outline of the B shapes by taking the (2D) convexhull of the vertices, which is a convex polygon.

<http://www.algorithmist.com/index.php/Monotone_Chain_Convex_Hull>

Then apply the Sutherland-Hodgman clipping algorithm and see if a non-empty intersection remains.

<https://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm>