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

Comments

  • There is such a feature already. Simply click into the cell list and start typing :) If you have bound keys to certain function, you may not want to trigger those. Hence you can type a slash ("/") to enter the search box. Wildcards can b…
  • The LVS deck from the example does not include the device combination step. You can add this by using netlist.combine_devices before "compare". This is basically the idea that @dick_freebird mentioned in the last post: this is the "…
  • An easy way to remove empty cells is to save with empty cells disabled: opt = pya.SaveLayoutOptions()opt.no_empty_cells = Truely.write("layout.gds", opt) If you want to do that explicitly, why not using "is_empty" on the Cell? …
  • Hi @BarDesigner and @dick_freebird, The MOS3 device is suitable only for specific geometries which are resembling a planar MOS transistor: (Image) (https://www.klayout.de/doc-qt5/manual/lvs_device_extractors.html). So there must be some drain a…
  • You should be super careful to not simply duplicate concepts from SVRF. They may be patented features and SVRF is protected by the NDA clause you have signed together with the Calibre license agreement. I personally will not commit to anything that …
  • Not currently. Certain flavors of OASIS (strict mode) basically allow seeking to specific cells and allow collecting cells and their sub-hierarchy without need for loading the whole layout. I have not implemented this option yet however. Matthias
  • You basically need a way to convert TTF glyphs into polygons. Qt provides such a way via QFont and QRegion. Assuming the font is installed in your system this should be possible, but I have not tried myself yet. Maybe there are other ways (via fontc…
  • Hi Florian, the above script is Ruby, but actually it is DRC language. So it looks differently by intention :) The Python code is basically correct. The DeepShapeStore thing is what is used internally by DRC and it actually works, but needs a spec…
  • That's like this (disclaimer: not tested): ly = RBY::Layout::new()ly.read("path/to/file.gds")org_top = ly.top_cell()new_top = ly.create_cell("NEW_TOP")[ 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0 ].each do |a| new_top.inser…
  • Hi Lida, I see. That is actually a problem with the measurement function - it uses a length approximation which is only valid for single paths. Specifically, it computes the length and width from area and perimeter. Your application is something t…
  • Hi Mikhail, it is definitely not an easy task and you will need support to achieve this. There are several engines (flat and hierarchical) and the concepts are not trivial. I'd like to know what you're planning. What specifically are you trying to…
  • The "reload" feature is already there: (Image) Matthias
  • Hello @Rumtreiber, "Fonts" in KLayout are not TrueType fonts. Fonts are GDS (or other layout) files delivering a cell per character. For details please see the class description: https://www.klayout.de/doc-qt5/code/class_TextGenerator.htm…
  • Hi, when you have a GDS file, it already has a top cell (usually). So you can do that (Python): ly = pya.Layout()ly.read("path/to/file.gds")org_top = ly.top_cell()new_top = ly.create_cell("NEW_TOP")for a in [ 10.0, 20.0, 30.0,…
  • Hi Mikhail, please consider the DRC features as a kind of tool kit. You will find generic tools, but you have to use your intuition to use them to combine them into complex features. If I understand your request correctly, the following code shoul…
  • This was 2011! The post is definitely outdated. Please consider using DRC functions for that purpose. It's basically doing the same, but on a much higher level. Matthias
  • I'm not short of feature requests :) I'll check the options there are for the refresh button, but please don't rush me. You can use the master builds in between. There are too many topics ongoing that need finishing before I can consider the 0.28 v…
  • That is a crash and pretty unspecific. It happens when some memory corruption happens inside the tool. What did you do to reproduce the problem? Matthias
  • You really mean your resistor has a length of more than a meter? I assume there is an integer overflow. I need to check this. 64bit KLayout is not the same than 64bit coordinate KLayout. 64bit coordinates enable a virtually unlimited coordinate spa…
  • Yes, I can reproduce the issue, but only if the layout contains layers not listed in the .lyp and the new layer isn't either. I have created a ticket: https://github.com/KLayout/klayout/issues/1144 As a workaround it seems to work if you first cre…
  • No, sorry that is not done yet. Es well as the fancy multipart rulers - still on my TODO list which magically does not get shorter :) Matthias
  • Hi Scott, this post is pretty outdated. I'd recommend using DRC for this purpose. For the above example: active = input(2, 0)poly = input(3, 0)gates = active & polygates.output(10, 0)gate_ends = active.sized(10.nm) & gatesgate_ends.output…
  • No worries. Thanks for the feedback :)
  • Well thanks for that discussion... but I guess this is simply a bug :( I have created a ticket: https://github.com/KLayout/klayout/issues/1143 In general I'd not recommend going higher than 1nm. A DBU implies a grid, but using a too coarse value w…
  • I recall there was a bug in the configuration scheme of LEF/DEF once. What is the KLayout version you're using? Matthias
  • Software doesn't simply stop working. It does not rust or break down. The feature is functional - there is at least one test among the ~2000 unit tests running on a regular basis on >10 platforms checking exactly that feature. I cannot debug you…
  • Thanks for this discussion. To me the request looks like what the "clip tool" does (Edit/Utilities/Clip Tool). Is that the solution maybe? Matthias
  • Hi Jim, I recall I once created the "separate inside/outside" function for cutting. This does not remove the shapes you've drawn. Here is how it works: * two layers (red/yellow) (Image) * First select red shapes (drag rectangle), th…
  • No, I'm sorry. The message is not printed by Python, hence you cannot redirect stdout this way. Currently there is no way to redirect or suppress log output from Python. You can only run the DXF reader is a separate process and redirect that proces…
  • Looks like I hit the nail on the head! :) Thanks, Matthias