ocasta

About

Username
ocasta
Joined
Visits
252
Last Active
Roles
Member

Comments

  • Thank you for pointing to the description of the expressions: https://www.klayout.de/doc-qt5/about/expressions.html. I think I had not read that page before. It may be useful to add that link in the documentation of the TilingProcessor. For the oth…
  • For the second point, I wrote the function below. def write_GSF(filename, img, title=""): """Write Image to Gwyddion's GSF file.""" Nx, Ny = img.width(), img.height() dx, dy = img.pixel_width, img.p…
  • Hello @Matthias, Thank you for your script above, the one that produces a density Image. Would it be possible to explain the line below? tp.queue("_tile && (var d = to_f(input.area(_tile.bbox)) / to_f(_tile.bbox.area);_output(res, d))&…
  • ChatGPT is not clear to me: Regions do not represent the shapes as they were initially defined... my example above demonstrates exactly the contrary. If I decipher your answer, it seems that Regions should be considered in undefined state if the de…
  • Isn't it the cell that was visible at the time of saving the file? Can you check? (I didn't).
  • Thank you very much! Your made me understand my problem: I was blind to the fact that the cell created was not selected! I thus completed my script with an equivalent of what you wrote: cv.cell_name = cell.namelv = cv.view()lv.add_missing_layers()…
  • Oh, I only came back today on this post ! => I just created the ticket https://github.com/KLayout/klayout/issues/2170
  • 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…