It looks like you're new here. If you want to get involved, click one of these buttons!
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:
*-------------------------------* | | *-------------------------------* **** **** **** **** **** **** *-------------------------------* | | *-------------------------------*
(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
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
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