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

  • 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
  • I don't recall to be honest. I think that was simply what today is the XSection package. I'm afraid there is no simply way to define the steps for a technology. XSection is already too simplistic in my perception. Maybe this presentation of mine gi…
  • Very good ... but please use Markdown to format your code. A single line with triple backticks before and after your code does the job. Matthias
  • Yes there is. But it's not a single "get_mouse_click" function, but rather an API. You'll need to create a "Plugin", register it and wrap your function into the core of the plugin. You will find some documentation about this con…
  • The formal way of adding undo to any script of yours is the following: view = pya.LayoutView.current()view.transaction("Description of your operation")try: ly = pya.CellView.active().layout() ... your code: do anything on layout "l…
  • Ok, I need to say that was a first shot :) I understand that Qt borrows parts of the styling from the underlying system. On Windows that's probably tab widgets and similar. I guess the way to do that properly is to use Qt style sheets rather simply…
  • Hi Alex, signals and slots are concepts Qt introduced for supporting dynamic code paths in C++, which is a (extremely) static language. You do not need signals and slots and dynamic languages like Python. Just use instance method objects, lambdas …