Moving edges of "non-simple" polygon

edited April 2015 in Ruby Scripting

There is a strange error that doesn't let you drag edges or vertices on a "non-simple" (has holes) polygon.

Steps to reproduce the problem:

  1. Draw approximately the following four boxes (ascii art because I cannot upload a gds). The hollow boxes are layer 1 and the asterisk-filled boxes are layer 2.

    *-------------------------------*
    |                               |
    *-------------------------------*
    
    ****                         ****
    ****                         ****
    ****                         ****
    
    *-------------------------------*
    |                               |
    *-------------------------------*

(The boxes are not touching)

2: [This is working]: Grow the boxes by an amount that is enough to merge them and still leave a hole in the center, using Edit > Layer > Size on each layer, then Edit > Layer > Boolean to "Or" them together onto the same output layer. Note that a simple polygon is the result. Then, try to move an edge using Partial tool. It works with no issues.

3: [This is not working]: Grow the boxes by an amount that is enough to merge them and still leave a hole in the center, using the following script. Note that a non-simple polygon (has holes) is the result. Then, try to move an edge using Partial tool. It says "Internal error: edtPartialService.cc:459 p.holes () == 0 was not true" and doesn't let you move the edge.

The script:

lay1 = 1
lay2 = 2
lay3 = 3
size = 10.um

in1 = input(lay1).sized(size)
in2 = input(lay2).sized(size)
(in1 | in2).output(lay3)

No big deal as, for now, I just manually convert any "non-simple" polygons to simple polygons after running such a script. But just raising the issue!

David

Comments

  • edited November -1

    Hi David,

    thanks for mentioning this.

    Actually, polygons with holes are supported, but can neither be drawn, nor saved (they will be converted into simple polygons). So there are somewhat exotic.

    That's why editing of such polygons may have some weaknesses. I bet there are more issues than partial editing.

    But thanks for mentioning that issue. I'll have a look whether that is easy to fix.

    Best regards,

    Matthias

  • edited November -1

    Thanks Matthias.

    The easiest fix might be to just make DRC-based boolean operations convert "non-simple" polygon outputs to simple polygons, prior to outputting on the layout.

    Because the only known (known to me) case where this appears is related to the output of the boolean operation in DRC.

    Just a thought

    David

Sign In or Register to comment.