ocasta

About

Username
ocasta
Joined
Visits
193
Last Active
Roles
Member

Comments

  • 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.
  • Did you try to press the "*" key? ("Display > Full Hierarchy")
  • (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"…
  • Like: input(1).sized(1.um).width(3.um).output("corner")
  • Apply a sizing and check for an overlap? https://www.klayout.de/doc-qt4/about/drc_ref_layer.html
  • 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.
  • (Quote) Note: You are probably saying "Hi" to the wrong person. This is "opticsdude001" who is asking the question, not me.
  • 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…
  • Yes, there are two modes: a viewer (optimized for viewing) and an editor (necessary for creating layouts).
  • 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.
  • There is "File > New Layout". What was the point of your message?
  • 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…
  • Any hint or pointer?
  • You need to keep the layout structure as much hierarchical as possible in order to reduce memory consumption. Do not flatten.
  • 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…