web_logo.gif


Proper Interpretation of Leonov Polygons - Example

August 25, 2015

Steve DiBartolomeo
Applications Manager



An OEM client of Artwork's GBRUnion library reported a problem in interpreting the ASCII output - in particular where there are a number of LEONOV polygons mixed together with regular polygons. In order to help troubleshoot his problem I took the ASCII file and broke it into a number of smaller files.

So that I could view the ASCII data in Artwork's 3DVU program, I modified the header to meet the requirements of ASC23DI.exe. How to do this is documented in this article.

The file we are starting with is called window_clip.txt and after the header is modified it is called window_clip2.txt.

If I view the entire window_clip2.txt file in 3DVU this is what I see. (And what our client should be seeing.)

3DVU display of window_clip2.txt

But the client is not showing a correct layout. Here is what the client shows (only a partial screen shot)

client_display.gif

So what is possibly going wrong at the client?


Examing the ASCII File

If we examine the ASCII file we find that it starts with 193 regular boundaries. The file is called first_193_boundaries.txt.

If we convert that file into 3Di and view it we will see:

First 193 boundaries in the ASCII file

I don't think that the client is having any problems generating these boundaries.


If we look at the largest of the LEONOV polygons - last_big_leonov.txt (it is also the very last polygon in the ASCII file) we see:

last big leonov polygon in ascii file

My Guess

My guess after examining the client's snapshot and the structure of the database is that either

    a) the client is not handling the last large leonov correctly.

    or

    b) the client is assuming there is some interaction between the cutouts in the Leonov and any other polygons that occupy some of the cutout "space."

Recommendation

The client should download the various partial ASCII files I generated here and load them into his software. He should then compare the results to what I have shown in the document. If he sees a difference he can then check his algorithm to see where it is going wrong.