Not signed in (Sign In)

Vanilla 1.1.4 is a product of Lussumo. More Information: Documentation, Community Support.

    • CommentAuthorvikasg
    • CommentTimeMar 23rd 2018 edited
     

    Hi,

    I am running a DRC code checking for a separation between two shapes on two different layers:

    lay1.separation(lay2, 4.45.um, projection).output("lay1 separation to lay2", "lay1 separation to lay2 - 4.45um")
    

    I get an error marker with and the following edge pairs:

    lay1 separation to lay2 - 4.45um

    edge-pair: (700,-0.7;699.998,-0.7)/(700,-5.15;700.004,-5.15)

    However, (-0.7) - (-5.15) = 4.45 and so I am not sure why these edges are flagging.

    Any help would be appreciated.

    Thanks,

    Vikas

    • CommentAuthorMatthias
    • CommentTimeMar 24th 2018
     

    Hi Vikas,

    they don't event project ... I tried to reproduce the issue with two rectangles (0,-0.7,700,0) and (700,-6,1400,-5.15), but I could not find a way to get this error.

    Can you give the two polygons involved in this check?

    Thanks,

    Matthias

    • CommentAuthorvikasg
    • CommentTimeMar 25th 2018
     

    Hi Matthias,

    I can place the GDS and code on Dropbox. Is there any way to send you the link privately or do I need to post it in the forum?

    Thanks,

    Vikas

    • CommentAuthorMatthias
    • CommentTimeMar 25th 2018 edited
     

    Hi Vikas,

    you can send GDS and/or code to the mail address listed on the "Contact" page. Another channel is to [submit a GitHub issue here: https://github.com/klayoutmatthias/klayout/issues.

    Please don't send confidential data. Although I won't disclose a test case if you ask me to, I can't give warranties beyond a promise.

    In doubt, you can try to reduce the test case to the polygons which allow reproducing the issue.

    Thanks,

    Matthias

    • CommentAuthorvikasg
    • CommentTimeMar 27th 2018
     

    Thanks Matthias. Let put together a package for you.

    • CommentAuthorMatthias
    • CommentTimeMar 28th 2018
     

    Hi Vikas,

    thanks for the test data. I have an explanation. I have tried to provide an image for a better description:

    Graphics

    The image shows an exaggerated view of the situation. The arrows indicate that there are actually positions where the distance is less than 4.45. Even if the edges are 4.45 apart vertically, their projected distance is less. I little, but sufficient to create this marker.

    There are actually three interactions to consider:

    • The green line projects a little on the red line. Since the distance is less than 4.45, this part is flagged as the first edge of the edge pair marker
    • In the opposite way, the red line projects a little on the green one rendering the second edge of the edge pair marker.
    • Basically the blue and green line should also render a distance rule violation, although the violation is probably below the detection limit.

    So the situation is a kind of border case. In a strict mathematical sense, the whole right side should be flagged as a violation. Practically, the results in such a case are difficult to predict. But my conclusion is that the violation is not entirely off-topic.

    Kind regards,

    Matthias