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,515
Last Active
Roles
Member

Comments

  • Hi David, thanks again for pointing that out. I'd like to mention another way: you can load both layouts. Then you select all layers of the second layout (those with "@2"), group them (Layer list right click and choose "Group")…
    in Mirroring Comment by Matthias April 2015
  • Hi friendfx, Regarding the properties dialogs and the selection invalidation: it's true, the dialogs do a little more - they update the selection to reflect the new situation. But right now, the selection cannot be modified inside a script, so tha…
  • Hi friendfx, yes, the version string is a display topic. It's not updated currently by the snapshot cronjob. I'll fix that. Thanks for pointing that out. Matthias
  • Hi David, The layout file contains the current layout, so it's always possible to recover the layout. The PCells are stored as normal copies and if KLayout does not find the PCell corresponding to a cell if will just keep the normal cell, hence con…
  • Hi, when you execute the script directly when loading it, you will not find a layout since that is loaded after the script. But there is a far easier solution: you can instantiate a layout without user interface and directly manipulate the content…
  • Hi all, well, I guess there is some explanation required :-( "cell.change_pcell_parameters(inst, ...)" will adjust the PCell parameters if the instance within cell, not of the instance of the cell. That is an important difference: the ce…
  • Hi friendfx, See my comments about the build in the other post. I don't know the reason for the build fail but we should be able to solve that. Regarding the choice of the language: there is a constant fight between Ruby and Python factions. Pytho…
  • Hi David, You're right. I am more surprised that the same issue does not occur in normal mode. Apparently I was coding smarter there ... Thanks, Matthias
  • Hi friendfx, thanks for the build script patch - I'll include that in the snapshot. The build issues are strange. The message indicates that there is something wrong with the Qt bindings feature. The feature seems to be halfway enabled - the refer…
  • Hi friendfx, sorry for the late reply ... I'm simply too overloaded currently. For PCell's the concept of a layer is a very different one. A PCell parameter has to be something abstract, since it's valid across instances of an layout. Layer index…
  • Hi all, thanks for providing the test case. I was able to reproduce the issue and I have to confirm it's annoying. I was not aware of the possibility to integrate so much Ruby code into the application's vital events, so I was not testing the inter…
  • Hi David, I like this feature too. And recently Cadence appears to have added something similar as well :-) I can reproduce the issue. I consider that a bug - what is invisible should not be selectable. Thanks for mentioning this. Matthias
  • Hi David, thanks again :-) I wonder whether the code above ever worked. Maybe it was a typo and nobody noticed. "cellview" is the right method, not "cv_index". Matthias
  • Hi both of you :-) I'm running Ubuntu 12.06LTS right now (I will surely switch to 14.x sooner or later). There should not be a big difference, 12.06LTS is well maintained and the Qt version is quite a recent one. Actually, the Macro Editor Window …
  • Hi D, I don't know the precise requirements, but height may be measurable in terms of edge length - long vertical edges mean large height. My best guess is to try with "with_length" and "with_angle" to select long vertical edges…
  • Hi mprott, have you made sure that you configured multiple threads in the XOR dialog for your quad core too? I am using multithreaded XOR myself many times with multiple cores and so far I have not found any issues with cores not being utilized. A…
  • Hi David, thanks :-) For the snapping - maybe it's also possible to snap an edge such that at least one vertex ends on a grid in absolute snap mode. Maybe that is a good definition for "absolute match" too. Matthias
  • Hi covalent, A more efficient way to traverse the shapes of a hierarchy of cells is to use the RecursiveShapeIterator object: # print the polygon-like objects as seen from the initial cell "cell"iter = cell.begin_shapes_rec(layer)while !…
  • Hi, what I do in these cases is to use rulers for marking those positions. Rulers can be configured in various ways and you can defined new ruler classes. You can use that feature to set up a "pointer" style ruler which shows the target …
  • Hi David, Thanks for mentioning this (and taking care of so much other things by the way :-) ). There is a specific reason for the relative snapping of an edge: snapping of an edge makes sense if the edge is horizontal or vertical, but for the gen…
  • Hi all, sorry for that late reply, but I have little time left for support currently. I was able to reproduce the issue with a modified version of the code. It took a little debugging but I found the root cause: the flatten function will treat the…
  • Nice images, by the way. You're going for the world record for the smallest bridge ever build, are you :-) Matthias
    in You rock! Comment by Matthias March 2015
  • Hi covalent, I'm afraid, I can't confirm that. The cell#flatten function is basically identical with the "flatten" menu function from the cell list. * "cell.flatten(true)" is equal to the UI function with "all levels"…
  • Hello, thanks for these value comments, David! And sure, the constructor can be added. My list of TODO items is growing longer every day ... Matthias
  • You're welcome :-) Thanks for pointing out the CIF issues. Matthias
    in You rock! Comment by Matthias March 2015
  • Hi Theo, it is actually intended: the program tries to identify a layout file with a technology. When you load it again it will use the same technology than you had before. The reasoning is that if you use multiple technologies, you would like to a…
  • Hi all, I understand that you want to position the polygon by entering a numerical position. There is "Edit/Move By" which will move the selected relative to the current position. I think I could add "Move To" which does the sa…
  • A brief comment of mine: I'd like to discourage the use of the D-shape types because they inherit the numerical issues involved with floating-point values. Plus you should be aware of potential overflow issues when transforming the double types to i…
  • Hi David, Oh yes .. the Qt part of the documentation is a mess. The reason is that this method is defined by the base class, QAbstractItemView. You'll find it there. The Qt documentation was intended as a cross-reference. It's generated automatic…
  • Hi David, QTreeView and QFileSystemModel are part of QT's model/view framework. In order to use that you'll have to become familiar with that (see for example http://qt-project.org/doc/qt-4.8/model-view-programming.html. I have no experience with …