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

  • Hello, what precisely do you mean by "path result"? You can basically have the output as "edges". An edge is a line connecting two points. Edge output of a boolean operation means, the contour of the output polygons will be reso…
  • Hi Michael, use tiles: tiles(1000, 1000) This will split your layout into tiles of 1000x1000µm and run the operations on these tiles only. That takes only as much memory as a single tile needs. Plus you can utilize multiple cores: threads(16) t…
  • Hi, My example was Python, hence the "self". For a discussion of how to call a PCell inside another one, please see: https://www.klayout.de/forum/discussion/comment/5948#Comment_5948 This problem has been addressed a couple of times her…
  • Hi Jim, Regarding 1: I wonder why no one has asked this before ... Actually there is a way to include files, but it's slightly clumsy currently. It should be as simple as this: include "include_me.drc" However, it's not. Ruby, like mo…
  • Very good :) I hope it does what it's supposed to. Matthias
  • Hi Freda, GDS can't represent holes and cannot write polygons with more than 8191 points. So maybe GDS isn't the right format to use at all? Have you tried DXF? Matthias
  • Hi Jim, well, the main issue is the non-scaling font (which I personally use a lot). This means that one cannot assign a fixed dimension to a text which itself means the database (which does not know about the zoom factor) can't store that and so t…
  • Wow! thanks a lot. That's almost too much to digest :) My initial trigger was the HEMT FET discussion in this forum. This one is a symmetric device, but I'd need a JFET model simply to be able to print it to SPICE. I think I get an impression of t…
  • Hi, such a discussion is far easier if you paste script code to show what you've done. On the other hand, I'd just try a DRC script. Here is a sample: geo = input(1, 0)# inner radius, outer radius, number of points/full circlerounded = geo.rounde…
  • I did not solve, just suggest a solution path.
  • Hi Freda, It's quite usual in layouts to have touching polygons forming bigger connected regions. These polygons don't act individually but form virtual bigger polygons. That's called "merged semantics" in KLayout (or "clean" mo…
  • You mean you have imported into KLayout, not Cadence, right? I have never seen such a thing, I'm sorry. Maybe there is an empty string (label without text) inside your file, but technically that's just empty, not "null". I'd be able to h…
  • There was another post recently where I tried to explain the background of this problem as well: https://www.klayout.de/forum/discussion/1589/f2-cuts-off-some-text-features#latest I guess I need to think up a smarter way of handling texts with resp…
  • Snap to grid is a good suggestion, could be used for partial mode too. Snapping of paths is kind of difficult. In the general case I'd say snapping should be applied to the vertices. If path width is a multiple of twice the grid and the extensions …
  • Hi Laurent, These lines layer_info = LayerInfo.new(15,0) layer_index = lv.layer(layer_info) need to be written as: layer_info = RBA::LayerInfo.new(15,0) layer_index = cv.layout.layer(layer_info) LayoutInfo needs to be qualified with the R…
  • I see ... Maybe there is a basic thing I need to explain: unlike Cadence for example, KLayout does not assign a box to a text but just the text's origin. So eventually, a text is just a dot and the text's bounding box is also just a dot. When you p…
  • Hi Dave, I see your point. First problem is that KLayout currently only has MOS device, no FET. If you can live with the implications, you can try to go ahead. The problem is basically to map your problem to the (symmetric) MOSFET device template…
  • Hi, if you're using the 64bit version, there is no file size limit but you'll need some memory. For GDS, the memory requirements are roughly 2..3x GDS file size more or less independent of the mode. For OASIS, the memory requirements may be quite …
  • Hi Marko, I'm not saying I'm not going to add a feature to switch off the wheel mode, but I can't anticipate what Apple will come up with their next hardware fashion. Just don't expect Apple support to be a good as Windows and Linux support. Matth…
  • Looks like cp_index isn't a valid cell index. I can't help with so little knowledge about your code. Give me a full code example which reproduces the problem. Matthias
  • For other readers here is the code for scale_and_snap Laurent refers to. It's based on the Layout#scale_and_snap function: # Usage:## klayout -b -r scale_and_snap.rb \# -rd input=<input-layout> \# -rd output=<output-layout> \# -rd…
  • Hi Scott, well, it would be a lot of luck to find exactly your script out there :) Here is a working Python script example which basically does what you need. The list is taken from an array, but with a little bit of Python skill it should be easy…
  • Hi Marko, that can be done, but frankly I'm a bit tired of working around Apple's "special" system. I'm not an Apple user, so I'm not really aware of usability issues there. Talking seriously: I start thinking that Apple supports needs a…
  • If you don't give me a full working example, I can just guess. If you can't send your code you should try to boil down the issue to a simple example. So I'm guessing that's because of different Python versions. First of all you should drop "n…
  • @Ege_Bey Thanks for the post - this is actually correct. "Topological sort not true" errors happen when the hierarchy is recursive (infinite). Such a hierarchy is not permitted. I admit the wording can be improved. Regards, Matthias
  • DRC's length is an edge selector, not a measurement tool. DRC is based on layer operations, not numerical measurements. You can use "layer.perimeter" to derive the total length of all edges if this is what you want. Matthias
  • Hi, The problem is writing to OASIS - I see your file name is "oas_file", so I assume this is the case. OASIS is a special format which benefits extremely from shape compression (array detection, repetition detection etc.). The format is…
  • Hi, The code isn't complete so I can just guess. Basically it's correct - apart from a small enhancement: you don't need to translate the parameters to a list. You can directly pass the hash. Here is some working example: import pyaclass PCell157…
  • Sure :) I have created a ticket: https://github.com/KLayout/klayout/issues/603 So far the solution is to put the cell at 0,0 with the specified position, then switching to "Select top level objects only", select all and use "Edit / …
  • Very good! A role model user :) At the risk of frustrating you: you actually have been very close to the simple solution: the recursive iterator has a method called "trans()" which gives you the transformation from the current to the init…