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

  • Very good :) I tried to correlate your problem with some fixes I made in between. There are some general bug fixes which might explain the problem, but it's hard to say if the issue is really solved. Let me know if you encounter the problem again.…
  • Hi, first of all, the system saves the last settings. In order to get the default values you need to make the system forget the parameters. You can reset the parameters by switching to a different library and back for example. Is this what you're…
  • Hi, Please attach the full log. Or at least the linker call. Without, it's hard to say which options are missing or set incorrectly. Basically the missing symbol should be pulled from libpython3.6m.so. In my case at least it is. Regards, Matthias
  • Hi chhung, The first code is already pretty short. Basically it should not take more than a few seconds even for 100k cells. A small optimization is possible by omitting the string interpolation (puts(x) instead of puts("#{x}")) I assum…
  • Have you tried "Show properties also" in File/Setup -> Display/Texts? (Image) Matthias
  • That should not be done in DRC. Inside DRC, hierarchy manipulations should be avoided currently. You can create a marker layer with a rectangle in every place you want to create a via at and in a separate script analyse these markers to create inst…
  • On no ... please please please use MarkDown! I can't read this. A single line with triple backticks, before and after code. And I assume It's related to the other post of yours (https://www.klayout.de/forum/discussion/1527). Please see my comments…
  • Thanks for this list. Ubuntu 20.04LTS is going to be officially rolled out with 20.04.1 which will come 23rd of July. By then I'll provide packages for Ubuntu 20. Matthias
  • Hi, Please format your code using Markdown ... a line with three backticks before and after your code. By "marged" you mean "merged"? The "extents" for computing "cont_find_mid_ex" from a dot-like layer (ed…
  • There is no AND operation between two polygons. Reason: in the generic case, the output of a boolean operation will not be a single polygon. Use the Region class instead: diff = pya.Region(circle) & pya.Region(box) Matthias
  • Hi chhung, yes, your observation is correct. For fixing it, the code needs to be patched. It always uses "int" for coordinates. I have created a ticket for this: https://github.com/KLayout/klayout/issues/554. There is a PR already with t…
  • Hi, the usual approach to implement this check is to incrementally size the areas of the taps in steps smaller the minimum well distance and during this, mask with the well area. Repeat this until the total amount of sizing is equal to the required…
  • Hi Austin, It's not "is_top" itself, but the fact that you're manipulating the cell tree while iterating. "clear" would basically also delete child cell instances, so this counts as manipulation. Every manipulation means "i…
  • Hi Robert, I can't confirm this yet. Could you provide a test case? And there is issue tracker on GitHub: https://github.com/KLayout/klayout/issues Regards, Matthias
  • Well ... usually they say what they are going to do with it ... :)
  • Hi, Although semiconductor features are 3d finally, they are produced in a lithographic patterning process. This process is controlled by photomasks which are two-dimensional objects. Hence a semiconductor design is always done in multiple layers (…
  • Hi Thomas, the cross section script is very limited unfortunately. It is based on very simply geometrical operations and "line of sight" is definitely beyond the capabilities of this scheme. I feel the current version is already explorin…
  • You shouldn't call the file ".lydrc". This suffix is reserved for XML-style scripts. ".drc" is the right suffix for plain text files. Matthias
  • Hi Itamar, it's difficult to debug without an actual testcase. The (single net) tracer works incrementally, adding new additional shapes at each time. There may be cases in which this is not efficient and only a few shapes are added in each iterati…
  • Sure, thanks (for the kudos and the typo note) :) I have edited the code above. Regards, Matthias
  • My answer is maybe. Please try to understand one thing: KLayout only embeds Python. It is not the same thing than the Python executable. And the Python people do a good job making life hard for us embedders. Specifically on Windows. KLayout behaves…
    in pip install Comment by Matthias May 2020
  • The second parameter to "QImage#save" should either be omitted or set to an empty string. 0 is a misleading because in C++ it's a "(const char *)0". There is no such thing in Python, but an empty string serves the same purpose. …
  • It's KLAYOUT_PYTHONPATH, because PYTHONPATH is set by some installers and interferes with KLayout. KLayout reads "KLAYOUT_PYTHONPATH" therefore. But if you include binary packages, you're likely to fail if these packages are not compatibl…
  • MainWindow.status_bar isn't an official API attribute. The mechanism is a catchall feature built into QObject for dynamic language binding. When a method can't be found, QObject looks for a child object with this name and returns a reference to it.…
  • In the Qt API this is an "int", not a bool. And it's not an enum, hence the Qt translation script does not recognize it as an QDialog::DialogCode enum and omits definitions for the latter. Matthias
  • I think this question has been answered here: https://www.klayout.de/forum/discussion/1512/pya-does-not-support-classes-like-application-or-layoutview-for-some-reason#latest
  • Hi Robert, thanks for sharing this. You can also modify the layer info to achieve this results if you want to swap layer/datatype for all cells globally: for li in ly.layer_indexes(): info = ly.get_info(li) ( info.layer, info.datatype ) = ( inf…
  • The problem was actually that shielding failed because of the very narrow nature of the (undesired) initial space violation. You can find the details here: https://github.com/KLayout/klayout/issues/548 Thank you all for your contributions. Matthias
  • Because this question is asked quite often ... Here is the idea: You can basically run a DRC script in batch mode this way: klayout -b -r your.drc In the script you need to tell KLayout where to read the layout from and where to write the report:…
  • I have replied to the other post with a similar answer ...