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

  • @wsteffe I'm not sure if I understand correctly. A .lyp file is only required to display layout. If you read a DXF file you will find a number of layers with the layer names from the DXF file in the Layout object. A DXF file will read "named&q…
  • @sebastian No you cannot do that. A cell cannot live without a Layout object. The layout object provides the context (layers, database unit, cell name space etc.) for the cell. A cell cannot exist without this connection. You can basically create s…
  • @steidlej I cannot confirm this isn't working anymore. This is a pretty basic feature and it's working fine for me. If the function returns nil, this may also indicate the cell name is not correct. The cells from your library - are those PCells? Ma…
  • Well ... I guess there is much confusion about the concepts here. First of all, a LayerView is only needed to display a layout. "layers" in the LayoutView context describe how the layers are displayed (colors etc.), which layers are show…
  • @TryAndTry DRC decks are basically Ruby code. Layer are only Ruby variables. You can basically use Ruby features to organize your code (classes, procedures etc.). But as this needs some level of planning beyond linear code, I have created a lean f…
  • @wsteffe The pymod is not working like the built-in Python interpreter. Those are entirely different things. First of all, the pymods are separated into different modules. "pya" was already taken, so these modules are "klayout.db&quo…
  • Here is some code I found in an older discussion. It produces a clip from the rectangle -1mm, -1mm to +1mm, +1mm (for database unit 0.001µm). Please note that the rectangle coordinates must be given in database units: layout = RBA::CellView::active…
  • @Ming Why such an old version? I strongly recommend switching to a new one. I understand your question that you actually want to modify the instances - i.e. to move it someplace else, right? The code is roughly like that: ly = pya.CellView.active…
  • This can be done in DRC scripts. DRC scripts can produce output to new layers or to the input layer. For example to run an AND between layer 1/0 and 2/0, oversize the result by 100nm and store the result in a new layer 10/0 you can use this script: …
  • Yes, that is basically possible. You can attach some criterion to a DeviceClass which tell the comparer whether devices are considered equal or not. If you skip a parameter in that definition it is not compared. See here for details and a code samp…
  • Hi @DanieleIQM, I think your code will work, if you replace this line: for inst in ly.cell(chip_cell_index).each_inst(): by: for inst in ly.top_cell().each_inst(): However, I have a different proposal to make. PCell instances a…
  • I am sorry, I do not fully understand. So you want a clip of all shapes inside that area? There is a specific method for that: Layout#clip Matthias
  • Yes it is and this is noted: https://github.com/KLayout/klayout/issues/1079 :) Best regards, Matthias
  • @ravn You're right, "coerce_parameters_impl" is the only place to manipulate parameters. That is an architectural decision and it required as parameters for example are essential for caching layouts. So if the system was allowed to change …
  • Yes, exactly. With 0.01nm GDS files can only represent -2 to 2cm of area. So four 5mm blocks exceed the available dimension space. Flatten does not help. It's an intrinsic limit of the coordinate arithmetic with default 32bit coordinates. KLayout …
  • That will be LayoutView#save_image_with_options (https://www.klayout.de/doc-qt5/code/class_LayoutView.html#method191) :)
  • No worries about bugging me :) Regarding the problem, here is the proper solution: pya.CellView.active().layout().set_property(1, "Waaa!")`` The explanation is that: pya.Application.instance().main_window().current_view() gives you the …
  • This is not Python. This is a DRC script. So I assume the script should go into the DRC section, not into "Python scripts". That is not related to your new hardware. Matthias
  • Hi Laurent, you can already do something like this: (Image) This will read all layers, then specialize for layer 2/0 and 3/0 to map to 1002/0 and 1003/0 and finally unmap 6/0. Note that "Read all layers" is turned OFF so that 6/0 is n…
  • Hi Eugene, "annotations_changed" is not a Qt signal, that's why "sender()" does not work. But you can add your own arguments using this scheme: ... self.__current_view.on_annotations_changed = lambda: self.annotations_ch…
  • That may sound somewhat funny, but I do not see your mail adress :) But I'm curious. Maybe you can send me a mail to contact "at" klayout.de ? I will get back to you then. Matthias
  • @wishalpha Such things may happen if you exceed the coordinate limits of GDS or you are using extreme scale factors. So please check: * Do your cell instances used scale factors? * What is your database unit and overall layout dimensions? For a d…
  • Hi @ravn, the method is "set_property" (https://www.klayout.de/doc-qt5/code/class_Layout.html#k_127), not "setProperty". Honestly I don't know what "setProperty" does. Is that a Python thing maybe? So this works for m…
  • Hi Demis, the topic has been discussed in this forum already a couple of times. Basically for reasons of the architecture, it is impossible to generate a PCell (in a library) that instantiates a cell from the current layout. A library is a self-co…
  • Hi Robert, As I mentioned, GDS cannot store name keys. It can only store numeric keys. So ```setProperty(1, "Something")` should work. I do not know if the GDS file/cell level properties are understood by any other program than KLayout. …
  • I see. Do worry if I am sceptical - but I am curious about your application. And thanks for considering FOSS! Matthias
  • Hi @nishtha50376, First of all, you can format source code here by putting a single line with triple backticks before and after the code. This makes it easier to read. Regarding your question: the UI accepts micrometer units. It is automatically c…
  • Hi Hosam, Debugging on Windows is a pain and without access to your system, I can only guess what is the problem. The message you see is generated by Qt, not from KLayout. Unless there is a Qt specific debug option I do not think you can get more …
  • Yes, I can reproduce the problem. Thanks for reporting. It only happens if the handle is exactly only bounding box of the cell. Looks like it's a problem with "insideness" of points exactly at the boundary of the box. I have created a ti…
  • Oh well, maybe :) I'm not aware of any compatibility issues, but maybe it's a graphic driver thing or similar. I guess only the cell name isn't painted. Data is still there. Matthias