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

  • Right :-) GDS basically allows these vectors to by any vectors, so you can create "sheared" arrays too. However, some (legacy) systems are constrained to ROW and COLUMN being real row and columns when they import GDS. Cadence used to be …
  • Hi, You must be a lucky person if such a thing is your absolute nightmare ... I'd rather worry about these: https://en.wikipedia.org/wiki/Global_catastrophic_risk But basically: there is no such thing as binary compatibility between Linux distribu…
  • Hmm, difficult. A weak hope is that it's related to Qt's style. you can try "klayout -style=gtk+ ..." or "klayout -style=windows ...". There are more options built into Qt which control the way Qt renders widgets. I assume the …
  • Hi, You can edit the key bindings in "~/.klayout/klayoutrc" - the line with "". But that's a pretty long long. Basically you can distribute key bindings a different ways: * Providing a default "klayoutrc" with the ap…
  • Hi, you should not need to migrate stored things. They are more or less independent. "less", because a new version may not be compatible entirely. So some scripts may not work the way they did before (although I am trying hard to keep thi…
  • Hi, The search feature isn't google. It's based on keywords. And "separate" is the name of the menu item, but not the name of the API function. Please don't expect too much consistency. Most of these texts get created way after midnight …
  • You're right. Thanks for that suggestion. BTW: I have added variables recently so you can basically pass the box into the query without the string substitution. That's a bit faster and avoids string-to-double conversion issues (accuracy limits, spe…
  • I'm sorry, but I can't reproduce an issue with text selection and move. * Without anything selected I can chose "Move" mode, click on the text, move it and then click again to place it. * If the text is selected I can move it, but I still…
  • I just noticed that on the DVB branch there is only a DEB package for Ubuntu 16. Maybe that makes a difference. There is also a master build which is basically in sync with dvb and has a Ubuntu 18 DEB package: http://www.klayout.org/downloads/master…
  • Thanks ... I'll try that myself. I'll set up Ubuntu 18 from a fresh docker image and take a look. Kind regards, Matthias
  • Well, yes ... In some interpretations of GDS (including KLayout) and in particular in OASIS, texts aren't drawing objects but rather points with a label attached. In OASIS (at least in the standard flavour), texts don't even have a size, no justifi…
  • Cool :-) I just saw another post where someone complained about the performance of queries (not specifically in this context). If you're happy with that I think that is fine. The query is not smart enough to do a region search and shortcut evaluati…
  • Thanks for this line. It's actually the intended use model ... however this takes me to the next question. I assume that "mydrcrules.lydrc" does something with the layout (e.g. perform boolean operations). I guess the .lydrc file also con…
  • Hi Jim, that's strange. I don't think this is related. The drop-down menu should show the predefined ruler types (The "templates" you set up with "Edit/Rulers and annotations setup"). While this is configurable and basically it …
  • Very good and thanks for this feedback :-) Matthias
  • I see. I think this is related to the stream plugins then. For a brief explanation: KLayout loads the stream format dynamically from shared objects found next to the "db" library in a directory called "db_plugins". This directo…
  • Is this Windows? And then, what's the command you're using? "klayout myfile.gds" should give you exactly the file you saved, provided this "klayout" is the same binary. Matthias
  • Maybe you can answer my question first: labels or text PCell? Using TTF fonts for text PCells isn't usual as these fonts aren't design rule clean for sure.
  • I have not observed missing rulers and I there are many W10 and Linux installations I am watching ... on Mac there was (once) an issue with high-res displays which caused a similar problem. But this should be fixed. On W10 high-resolution display a…
  • You mean for labels? Or for the text PCell? For labels: no. For text PCells: if your manage to convert TTF (for example) to a GDS font library. Matthias
  • Hi, I think this is a different issue. What's the filename you give to Layout.write? It needs to be "gds2", "oas", "cif" or similar to be recognizable. If you want a specific format, use a "SaveLayoutOptions"…
  • Hi Alessandro, stupid question: how can you "open" a layout in headless mode? "headless" to me means: without display ... Matthias
  • Hi, there is no built-in function to get the min area, but you can script it: report("discussion_1278")layer = input(43, 0)# compute min areamin_area = nillayer.data.each_merged do |poly| area_in_dbu = poly.area * dbu * dbu if min_area…
  • Hi Don, No need to apologize. The script isn't wrong :) It's just that layers are not automatically shown. The "layer list" is actually a configurable view and not a plain list. To make it show the new layers, right-click the layer list…
  • Maybe here is a solution: * Open "Edit/Search and Replace" * Select the "Custom" page * Enter "shapes from instances of ..* where shape.layer==<80/0>" * Hit "Execute" The you should get a list in the r…
  • Hi Andrew, without knowing the details of your production environment: you can basically use: engine = DRC::DRCEngine::newengine.source($layout_file)engine.instance_eval(drc_script, '') # the script without "source" because "engin…
  • Hi, That's possible by creating a new C++ derivative of the GDS reader, but as this counts as "derived work" in the GPL sense, the code needs to be GPL too which itself provides licensing issues if the methods exposed by this code are pro…
  • Hi jpk, I see your point. Internally there is such a thing, but not on the script level. It's a method called "skip_instance" which you can call to jump to the next instance. I have not considered yet to expose it to Python because I cou…
  • Hi, thanks for your nice feedback :-) Regarding the path issue: maybe DRC is not the right framework for this purpose. Actually DRC only knows polygons and edges and everything will be converted into these objects when passing through the DRC engi…
  • Hi jpk, you can create a RecursiveShapeIterator from a cell with a search box. This will then return only the shapes within this box (seen from the initial cell) and only traverse the subcell instances inside this box. Is this what you are looking…