Matthias

Hi Jim, you can use master or any other branch, but without warranty. The usual approach (and the one favoured by GitHub) is: features are developed in branches. When they are considered stable enough they are integrated into the master (pull request). Hence the master is kind of "latest greatest", but with a certain risk of being spoiled. There are also forks from other user with their own masters and branches. Don't confuse them with the ones from the KLayout project. But eventually, when the master is considered to have a sufficient quality, a release is made by creating a release tag (https://github.com/KLayout/klayout/releases). A release is a snapshot which is then turned into Windows binaries, Linux packages, PyPI wheels etc. This this is a lengthy process and I don't want to do this too often. Matthias

About

Username
Matthias
Joined
Visits
1,513
Last Active
Roles
Member

Comments

  • Hi Chris, "global" is a relative measure in Python - actually global Variables are not provided by the Python interpreter but by the application. I need to check whether they are available within PCell code as this is a different context …
  • Hi Eugene, I fixed this issue now in the master and I'm about to release a 0.25.9 version which will contain this fix among some others. It was an issue related to a wrong C++ signature used in the Python binding. Thanks for bringing this up. Reg…
  • Oh yes ... 0.24.10 is really quite old now :-) Thanks for this feedback. Matthias
  • Very good! I vaguely remembered this solution, but wasn't sure anymore. I think the problem is because you are using a distance, right? The tiling approach has to consider this by taking enough from the neighbour tiles to catch everything that coul…
  • Hi, the option is found in "FIle/Setup", "Navigation/New Cell" page: turn off "Fit Windows to cell when cell is changed". Matthias
  • For your information: I have provided a fix in the master and will release a 0.25.9 soon which has this fix ported. After this, the kissing corners will be reported as width or space violations. Regards, Matthias
  • Oh well ... the famous "kissing corner" problem. @ocasta: Putting "raw" after "sized" works, if the polygons are not touching. In this case, the sizing would be applied individually and using raw post-size makes the s…
  • Hi Bishal, Maybe it is the complexity of the background pattern that you want to exclude. The problem is basically that the tiling algorithm will flatten this layout and compute the available area as a NOT between the boundary and the background la…
  • Hi EugeneZelenko, yes, that solution should work. I'm a bit puzzled, simply using "layer.name=..." should do the job. I'll check that. I have created a ticket for this: https://github.com/KLayout/klayout/issues/276. Matthias
  • Thanks for mentioning this. The documentation was somewhat outdated also in other respects. I have corrected it. Kind regards, Matthias
  • Hi alljust4forfun, An intro about script programming is here: https://www.klayout.de/doc-qt4/programming/introduction.html. I tried to record the steps for installing the macro and using it here: https://youtu.be/ACZjThs5asg Matthias
  • For a first version you can look here: https://github.com/KLayout/klayout/wiki/2019-04-14 Downloads for the builds are available here: https://www.klayout.org/downloads/dvb/ Currently lacking: a nice wrapper language like the DRC script, a more el…
  • Hi Chris, You can define global variables from the command line: klayout -rd name=value ... The value will always be a string. In Ruby you can do something like this in your macro: # Set $cmdline_var with:# klayout -rd cmdline_var=value ...if …
  • Very good :) I hope the example helped. Regards, Matthias
  • I'm a bit confused now ... What I can reproduce is: * If I save a layout with PCell context information and visible layers only, the hidden layers will not be inside the layout, but will appear again when I load the layout and the PCell code is ex…
  • I'm trying to understand the issue with replace_cells.lym, but I failed to reproduce it. I have attached a simple testcase with two layouts: * top.gds contains a TOP cell with two subcells A and B, each containing a text * lib.gds contains two repl…
  • Hi Nick, Basically you can use external Python modules, but on Windows they need to be binary compatible, which isn't straightforward. Linux usually isn't an issue. Matthias
  • This discussion is getting pretty philosophical. I'd like to have a sample on which we can discuss this further. As a matter of fact, you cannot access the layout objects and it will stay like this. A program architecture is based on certain interf…
  • Yes, that's what I am saying. Not synchronizing PCells with their implementation would show PCells not the way they are actually, which wouldn't be nice either. What if you had changed the PCell code? Wouldn't you expect that loading would give you …
  • Well, if I had thought that way, I had never started KLayout. There are enough GDS editors and viewers out there. Do worry about effort I'm spending. LVS is already done. Matthias
  • Hi Chris, At the risk of repeating myself: I don't know if it is feasible to implement such a feature in Python. The Python API is not equivalent to the internal API. It's provided for certain applications such a scripted layout generation, layout …
  • Yes, there is a concept. A PCell "Cell" is a template. A cell declares parameters, but does not give specific values. A PCell "Instance" is the concrete incarnation with specific parameters. So you declare parameters on a cell…
  • I think that @jheinsoo is right - "_destroy" should only be used in rare cases, when you explicitly want to release resources for a big object such as a Layout. And it looks like the script was saved with "Autorun" on, so it wil…
  • @ocasta - Oh sorry ... so my answer is to @opticsdude001 and btw thanks for answering too :-) Matthias
  • @photonicsbishal When you want to output to a different layer (here: 200, 0), you need to drop the "report" line. You can however switch dynamically: l1 = input(1, 0)# l1 goes to the browserreport("My report")l1.output("G…
  • And here is how it looks like with the default parameters (r1=1, r2=5, n=32, da=5) (Image)
  • Hi, arrays are basic features of GDS/OASIS and don't offer this option :-( Coding comes to mind: such structures are easy to generate within a PCell. If you invest some time in setting this up, you'll get a flexible solution and you can even edit …
  • Hi NMF, I have not tried to debug this issue yet - the script is pretty old already. Are you using the version from https://www.klayout.org/svn-public/klayout-resources/trunk/scripts/replace_cells.lym? Matthias
  • Hi ocasta, you can select more than one edge in "Partial" mode by dragging a selection rectangle around the edges you want to modify. You can also use Shift+drag to extend the selection. To move the selected partials by a given distance,…
  • Hi, Yes, by "Static" I meant "Static Electric". And it's nice to hear KLayout is being recommended :-) And yes, I also feel that library management is not ideal, although I think that with some configuration effort (i.e. settin…