It looks like you're new here. If you want to get involved, click one of these buttons!
Hi @Matthias ,
I tried to use "separation" drc for edges but result got is unexpected( not flagged):
input2.output("input2") input1.output("input1") input1.separation(input2, 0.081,projection).output("space less 81nm")
In this case i expected drc will be flagged.
Can you help me show my mistake here?.
Thank you so much!
dai
Comments
Hello @dai,
There is one important thing about edges: their orientation matters.
I have prepared a sample:
This is the code:
with this result (red is 1/0, blue is 2/0):
I have marked the edges with arrows to indicate their orientation.
Only the shown orientation will give you the desired separation result. So when I use:
I get this result:
The idea is that edges basically carry the information about the features they are enclosing. As KLayout uses clockwise polygon orientation, "right" of the edge is "inside" and "left" is outside. The separation check is actually not a separation check between edges, but a separation check between the polygons they were originally enclosing.
There are other variants for edge-to-edge checks too: width, enclosing and enclosed. All of them apply to a different relative orientation of the involved edges.
But I understand it's only about distance of unoriented edges in your case, or can you (by the way you generate the edges) impose a certain relative orientation?
Maybe I should add a "non-orientated separation" feature too.
Matthias
Thank you, @Matthias
I have extended the edge to tiny polygon(i know it is not good solution but it can resolve my issue) and apply space DRC to them
Here is the way i created the edges,
i also attached the layout here.
thanks
dai
I see. I admit I cannot predict the orientation of the edges after they go through these operations. There are rules, but one gets lost after a couple of operations.
Your solution is a fair workaround as of now. I think this is motivation for a non-oriented space or separation check between edges. I have created a ticket for this feature: https://github.com/KLayout/klayout/issues/1101
Matthias
Thank you, @Matthias
dai