Odd Boolean result

As a test I wanted to create a ring with my hallmark showing inside by doing a boolean difference between the ring and the hallmark.

I have a 3D model of my hallmark. To get it inside the ring I created a surface on the inside surface of the ring with the approximate dimensions of the hallmark. I created the surface by using “Surface from network of curves”. I then did Flow Along Surface, and chose the created small surface as the target surface. (I had tried to do this without having created the small surface, but then the hallmark gets stretched in all directions and fills the entire inside surface of the ring). I then moved the hallmark model outward a little bit and did a boolean difference. The result does not look right. This is what it looks like.

When I do a boolean difference with the individual sections of the hallmark, everything looks fine until I get to the letter A.

When I try to do the same thing on the outside of the ring the boolean difference works just fine. Here I used Flow Along Curve, after having created a curve slightly below the outside surface of the ring. With flow along curve the object does not get stretched as with flow along surface.

Why does the boolean difference work on the outside of the ring, but not on the inside?

I have uploaded the file so you can take a look at what may be causing this.

Logo inside ring test.3dm (734.8 KB)

Look for loops in the intersection curves. In this case there is at least one loop, on the intersection between the ring and the letter A - Bending the letter causes a self intersection.

-Pascal