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

Comments

  • Hi Mattseng, both pieces of code look fine to me. Some tools impose restrictions on the way arrays are created, hence using "-ax" for the array pitch may create some issues when using GDS2. But those tools are rare now and I don't think …
  • Hi, are you familiar with mask layout procedures in general? Basically, every polygon (box, path ...) is "filled" on a mask. The stipple is only provided for visualization - if multiple layers are overlapping the stipple pattern helps to…
  • Hi Post, first of all, 0.23.2 is not the latest version - but lacking hardware to fully support the Mac platform I am depending on the Mac community to provide binaries. But I don't think the problem is related to that version. There are some con…
  • Hi Mattseng, You have to open the file before the loop and put the loop into the block after the open :-) To write the values, there are many ways to do that in Ruby. Here's some "Rubyish" way: values = [ nc, nr, lc+kr, lr, kc, 5000*nc+…
  • Hi, "top_cell" just means the cell where you want to put the PCell into. That may be a "top" cell (means this cell is not called itself), but this can also be a child cell somewhere in the tree. You can take the current cell: …
  • Hi mattseng, I conducted some experiments on your code and my findings are that the text cells are a major contribution. You can bring that down by using the letter-by-letter approach. Specifically, in the initialization code you create cells with…
  • Hi beginner :-) Thanks for the feedback. Let me warn you about PCell's and scripting: right now, the PCell API is not quite simple and I recognized that as a weakness of the design. I will update that in the next major release and provide a simpli…
  • Hi rellachs, thanks for the hint about the missing "site-packages". I'll add that to the final version too. I simple forgot that. My reasoning was that having an external installation allows to check the new packages before cross-referen…
  • Thank you :-) 14G is still a lot, but I think that is what it takes. Maybe it's possible to reduce that - I guess the sample above is not representative, so I'll have to do a little guessing. Here are some thoughts: * Cells (not instances) create …
  • Hello, Here is the Python code for the script in the other thread: DISCLAIMER: I have not tested with the released eval version yet, but with a development snapshot of mine. EDIT: I noticed that I messed up the threads - the other one is called &…
  • Hi, There is some basic documentation in the "Resources" part of this site referring to the evaluation version: http://www.klayout.de/python_preview.html. This gives some sample already for creating a layout. Regarding the PCell instant…
  • Hi, I had a look at that problem and I can confirm the runtimes. The reason seems to be the PCell cache which grows due to many PCell instances with different texts. It's not optimized for a huge number of variants and I will try to solve that iss…
  • Hi, something is going wrong here. It should not take that long and take that much memory. I'll have a look. Matthias
  • Hi rellachs, This forum supports Markdown formatting - see http://daringfireball.net/projects/markdown/syntax for details about the syntax. Regarding the issues with Python: First of all, KLayout integrates Python which is something different fro…
  • Hi, I think the main problem is the big chunk of code you will generate in this setup. I don't know precisely the variables in your scheme, so I can only guess what the Excel sheet will do. But I'd suggest to put as much computation in the script …
  • Hi tyanata, that is not a menu function. It's a PCell. PCells are placed like ordinary cells (choose BASIC library and cell TEXT when placing that cell). You can configure the text and the parameters on the "PCell" tab of the cell instanc…
  • Hi, the solution depends in the system you are working with: On Linux: just install the numpy package. Done. On Windows: * The evaluation binary is built against Python 3.4.2 with Visual Studio Express 2010. Fortunately that is a pretty common c…
  • Hi, There is not straightforward "cut" function, but you can use "erase" background combination mode to draw a thin line across your shape. This line will then be subtracted from your shape basically creating two separate parts.…
  • Hi Laurent, you're right - my mistake. You could also apply the idea of using the edge versions without the shielding and without the interacting: M1.space(0.23,euclidian).output("M1_space", "Min. Metal1 spacing : 0.23um")Mbig…
  • Hi ks, the path to polygon conversion using the points is just half the truth. Emulating what the DXF reader does is far more complex - the issues are hole resolution, orientation normalization and such. Here is a script which basically does what …
  • No, there is no such feature. And I don't know anybody who needs it, apart from the DXF users. And for them there is the reader option. Give me a thousand "likes" and I'll be motivated enough to implement it ... Matthias
  • Hi Laurent, The separation won't work because of shielding. "Shielding" means that the measurement functions won't look through objects in the path of the distance measurement. Shielding is only effective for polygon layers and in your ca…
  • Hi tyanata, you mean a text generator? Maybe you want to have a look into the TEXT PCell - this one generates a text. It does not precisely have the parameters you as for, but it features a bias option which allows to adjust the final line width t…
  • Hi, one way to solve the problem, thanks :-) To convert a path or box to a polygon, you can use "Edit/Selection/Merge Shapes". The main functionality of that function is to join overlapping shapes into one polygon. But a side effect is t…
  • Hi rellachs, There is a tiny switch which makes a big difference for you: if you check "Select Top Level Objects" in the "View" menu, you'll notice that the tool behaves rather differently. Let me explain: if you have cells and…
  • Hello, yes, surely. The sample is just a demo. "ly" is the layout object and instead of using a fresh one you can use the currently loaded one: cv = RBA::CellView::actively = cv.layout top = cv.cell... Matthias
  • Hi Ben, your approach is valid, but true hierarchical processing is a fairly complex topic and in general cannot be solved efficiently while maintaining the hierarchy. you approach will work in certain configurations but you will not be able to co…
  • Hi Yulia, there is no immediate way, but you can script something: report("My DRC")# inject a new method into the layer class:# layer.limit(n) will reduce the number of elements# in the data to a maximum of nclass DRC::DRCLayer def limi…
  • Hi Illia, That means you have really big structures and KLayout runs out of memory. I guess that on a 32bit installation, KLayout will be able to handle structures as big as several 10M equivalent of rectangles. If you want to go further, you'll h…
  • Hi Illia, Such a function is not available, at least not directly. But it can be scripted. Here is a script which employs area and perimeter to approximate a length measure. It is precise for "thin" wires: # Computes the path length of…