You can create such structure very easily with Klayout.
Create two boxes and apply "round corners". Then subtract one box to the other.
See the "Selection" menu.
(Quote)
No, this depends on the DRM of the foundry. I wrote my previous remark after checking that such "kissing corner" pattern was indeed present on MPW wafers made by a certain foundry in Belgium.
That sounds good! However, I would add this comment: "touching corners" are legal patterns, they can be accepted by mask shops. They should not necessarily be thought as illegal.
@Matthias: When two shapes are touching at only one corner point...
* Is it normal that layer.merged gives one unique single shape?
* Is it normal that layer.merged(2) gives nothing?
Or better: input(1).raw.sized(1.um).merged(2).output("corner")
@Matthias: The documentation mentions the example layer.sized(300.nm).raw.merged(2), but am I right to say that this example is wrong? In the example of the "corner"…
Klayout has a full documentation that you should read for finding such answers: https://www.klayout.de/doc-qt4/programming/index.html
Basically, in your case: press F5, go to "Ruby > [Local]", create a new general macro by clicking on t…
Just a comment: Do you really need to program this? If programming is not necessary, you can consider using the user interface with "File > Reader Options" and a layer mapping description.
What you mean by "thickness of a polygon" is not very clear.
If the polygon is made of a hull with holes inside, you could create these two objects separately, then "size" the holes by the desired amount, and subtract the holes t…
You probably need to read about the functions layer.polygons() and layer.output() in the documentation: https://www.klayout.de/doc-qt4/about/drc_ref_layer.html
Note: Your second graphical example is very different from your first graphical example, …
Hello Mathias,
* I was already using the solution that you advise. Indeed, as mentioned in my last post, I use "instances of ...THE_CELL" in the Search/Replace tool.
* My point is that this query it is very slow compared to my script. Sin…
If I understand your message correctly, you advise to use the query "instances of ...THE_CELL".
This is already what you advised in the link that you mentioned above, isn't it?
(Quote)
Yes I do have evidences. I extracted a part of a desi…
Hello,
I wrote a script that should meet your need. You can study it and use it for your purpose.
See: https://www.klayout.de/forum/discussion/992/accumulated-postion-of-an-instance
Olivier
Hello,
The link that you provided advises to use a LayoutQuery. This is a good solution in some cases, but it often happens that this type of search is inefficient, in the sense that it takes ages and full cpu power to obtain a result. In order to h…
I am not sure if an "auto-router" can be "basic" in any way.
However, you can look at the KiCad project, where they use an open-source auto-router (I believe it is https://github.com/freerouting/freerouting).
After more testing, I think that problems 1 and 2 are caused by the same bug. The bug is that in a query like below, the last item.data() unduly returns None. So if there is only one cell instance matching the query, I get result = [None], which is…
For problem 1, I add the information that my cell 'Square*(200*nm)' is instantiated as an array.
It seems that in result, one output is replaced by None.
Thank you very much. I start to understand better. Let me ask something more...
How can I know the accumulated positions of all the instances of a given Cell in the full layout?
* is it possible to populate the selection programmatically? How?
* or…
If you want to make an array, you'd better build a "CellInstArray".
If you really want to emulate the "Make array", then you should probably duplicate the shapes and translate them (Shape.dup() and Shape.transform()).
Disclaimer:…
Maybe what I wrote was not very clear, but I can say it in a different way: you can create arrays by two different methods, either with "Edit > Selection > Make array" or with a cell by clicking on "Array Instance" in the c…
You should first read through the documentation, and get familiar with the API: https://www.klayout.de/doc-qt5/programming/database_api.html
Note that "Make Array" does not produce an "Array Instance".
* "Make Array" w…
FWIW, I agree.
I also would be interested by an improved "Adjust origin" function, where the user could point and click for setting the desired origin.
I indeed send the two files, and I explain the people how to load the "lyp" file.
"Perhaps KLayout could automatically look for a *.lyp file with the same base filename as the CAD file, and load it automatically"
This may alrea…