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

  • @demis Please don't try making a system doing things it was not designed for. I'd advise you to look in a different direction. Instead of a PCell you can provide a script which is executed in order to manipulate the layout you have loaded and which…
  • What do you mean by "in my klayout macro, There are codes read from such file stream"? Please show some code which tells me what you are doing. Matthias
  • Okay, so maybe you need to explain to me what you mean. I do not understand the details. So "Codes that must show in the Libraries" means script code that is supposed to be executed on startup, but isn't? So you have a specific file that …
  • Thanks for mentioning this. I usually don't mess with data that is not owned by me, but if required, I can patch the database. Matthias
  • Basically, running a macro should update the library list. But I need to be more specific: it may be important which file to execute and there are two buttons for running macros. First, you need to execute the file which actually installs the libr…
  • Oh yes ... DXF does not really have the concept of a polygon (except HATCH which also is not really a polygon or at least not a useful object). DXF represents polygons by their outlines, either as a single closed polyline or multiple segments. A fi…
  • @ashkan If your code is in ".klayout" that is WRONG. It needs to go into "KLayout" instead of ".klayout" on Windows. More specifically, %HOME%\KLayout or c:\users\matthias\KLayout in my case (sorry, Markdown swallowed a…
  • I see and thanks for the test case. The problem is not upon checking, it's upon reading the Spice file. Unfortunately there is not the "one" Spice specification. There are multiple flavours and in this specific case, there is an ambiguity…
  • @dick_freebird No, I'm sorry, there is not undocumented feature that does that :) At least not as of now. I know the basic problem as the "must connect" feature in some (same?) brand X tool which basically means that devices within a certa…
  • Hi @atork, are you using the command properly? Here is an example taken from KLayout's test data repo: # Hierarchical antenna checksource($drc_test_source, $drc_test_top)target($drc_test_target)deepdiff = input(2, 0)poly = input(3, 0)contact = in…
  • @demis A PCell can generate polygons, but I PCell can only instantiate cells from other libraries, not from the client layout (the one you uses the PCell in). So if "cell to instantiate" comes from some library that is fine. If it is suppo…
  • @wsteffe At least the good news is that there is a solution :) The "bad_alloc" message means the system is not able to give the requested memory to the application. I still do not understand the original issue. I tried your initial scrip…
  • Sorry for the naming - "W" was intended to be "well" because my reasoning was that a cap/resistor would normally be biased against some isolation well (or substrate). I agree with Jim - the Spice syntax (if there is something l…
  • @kevin No, KLayout is not a Python interpreter and the command line belongs to it :) But you can define variables from the command line which you can access inside your script, e.g. $ klayout ... -r script.py -rd myvar=valuein script.py:# "my…
  • It's strange, the error should be less likely to happen if the keep the clear. But maybe that is a coincidence. There is a general problem here which is hierarchy. You will need not only to clear the layer from the cell c, but also in the child cel…
  • @wsteffe A zero-width path is written as a POLYLINE with width 0. It's a special case of a path with non-zero width which is also written as a POLYLINE with constant width. I don't know how such an object is extruded though. Matthias
  • Hi Amro, I think you refer to this post, which was basically about the same question: https://www.klayout.de/forum/discussion/comment/7990#Comment_7990 Maybe you can give me some more details - what was the message you got and how did you model th…
  • Hi Amro, basically it should not be a problem to do netlist extraction in a DRC deck. With other tools there are connectivity based DRC rules that basically do the same. Once I implement them I'd base them on a extracted netlist as well. An extract…
  • Hi Laurent, The "modern" way is to use "text layers". To input a text layer, you use "labels" in the same way you would use "input". But "labels" generates a text layer instead of a polygon layer. …
    in with_text Comment by Matthias May 2022
  • Very good! Even though the search feature of this forum isn't always useful :)
  • You can draw a path with zero width. This is a valid feature and is equivalent to a line. Such paths however vanish on "area aware" functions such as boolean operations. Matthias
  • @chaoscrum No worries, no stupid questions exist :) 1.) Yes, this "sample" (or rather recipe) creates a layout entirely. No interaction needed. 2.) Sorry, my fault. The functions should be "create_cell" to create a cell. I have …
  • It's sufficient to use ".drc" suffix for the file. KLayout will automatically detect such files are using DRC notation. Matthias
  • @atork That is a difficult one. I know this scheme as "must connect" which is not a feature supported by KLayout currently in a native way. This feature has to cluster all devices inside a connected region and check each of these clusters…
  • @ashkan There is no difference between Windows and Ubuntu in that respect. There is one difference though: On Windows, KLayout keeps its configuration in "c:\users\\KLayout" while on Ubuntu the folder is "/home//.klayout" (lower…
  • Hi Laurent, this brief description is taken from "strm2xxx": --lefdef-map Specifies to use a layer map file Use this option to turn off pattern-based layer mapping and to use an expli…
  • @EugeneZelenko In headless mode there is no user interface, hence there are not UI-related objects like MainWindow and LayoutView. On Linux I solve the problem by running klayout in a virtual XServer environment using xvfb-run klayout -z ... For …
  • The feature is called "Import Layout". See here for details: https://www.klayout.de/doc-qt5/manual/import_layout.html#k_1 Matthias
  • @chaoscrum These are too few details and I will not provide a ready-to-use solution, but I can give your the bits and pieces for you do solve your problem. First thing is you need to define the parts. I assume you can define the part's geometries t…
  • This is a DRC script, isn't it? This is a DRC statement: bumplayer=input(154,1) If you're in DRC, why not just doing: x1=-12596.05000x2=12596.05000y1=-14673.14500y2=14673.14500clip(x1, y1, x2, y2)input(154, 1).output(94, 0) ?