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
Maybe, I don't know what "cv2" is. But I think basically the same happens than in my sample. But more efficient I guess.
I you want to render multiple layers, you just need a loop. In my sample case, this line gives the layer to render:
…
Hi @CreatedByCreator,
you can turn off instance selection here:
(Image)
I Virtuoso you can apply the selection in the properties window and make it the current one. That is a useful feature I admit.
In 0.29.10 I have changed the selection of ce…
The result file is a "report database". The structure is explained here: https://www.klayout.de/rdb_format.html
For analyzing this structure, there is an API. You can use the klayout Python module to include this into your project.
The r…
Here is some code. I hope the comments are self-explaining:
# Illustration of how to use Region.rasterize# This code takes the shapes from layer 66/20 # of the current cell and rasterizes a region# 0,1 .. 80,210 (µm) with a resultion of 100nmcell …
Hi Luciano,
You mean, setting windows dimension when starting KLayout? Every Qt application supports some Qt specific options, including "-geometry". For details see here: https://doc.qt.io/qt-5/qguiapplication.html#supported-command-line…
Is there such a thing in Virtuoso? I personally have this problem more often there than in KLayout. That is because KLayout's transient selection seems more reliable and selecting objects is looking for real edges first and cell box second. But of c…
@dick_freebird Ah, yes - actually I was assuming that there is such a thing than a positive "slot" layer. That is why the check takes positive shapes.
Apart from being easier to edit, you can use arrays to create slot arrays. I am pretty …
Hi @leo_cy,
You can use PixelBuffer#pixel to get the value for a specific pixel. You can iterate over the x/y range to get the values for a range of pixels.
There is no direct way to obtain the data from PIxelBuffer as a NumPy array. Image is some…
The image rendering functions are not made for high-precision rendering. Some users tried to render layouts to monochrome images for mask making. Don't do that. Rendering is for eye only and details may not be precise to a degree you need for mask m…
So you meant hierarchy levels. You mentioned "different layers".
As a general rule, the hierarchical booleans (AND + NOT + many other operations, with the exception of XOR) use the first layer as the hierarchical guidance - the results wi…
The multiorigin feature will align the fill pattern to existing features - either original ones or residuals which are left from previous fill steps. Provided the original features are on-grid and the fill pattern is too (pattern dimensions and step…
Hi @dick_freebird,
This was the easiest solution I could come up with. There are other solutions too.
Like, if you have checked the slot width and it is constant, you may check the area of the slot to confirm the length. Or separating edges into s…
There is a simple solution under these conditions:
* The slits are rectangles
* They are oriented either 0 or 90 degree
* They have a minimum aspect ratio of c/a
All these conditions can be checked before running the actual check. The actual check…
Hi Steffen,
The booleans do not guarantee to merge the inputs by default. For example, a NOT with an empty layer can be shortcut to a copy, if you drop the merge requirement.
On the other hand, KLayout uses "merged semantics" by default …
Hi @dick_freebird,
By though of using KLayout outside the restricted zone to install the packages there. This can be a different machine not inside the restricted network.
Basically, KLayout keeps packages in a folder called "salt" insid…
Hi JSS,
No, a period check is not a typical DRC check.
However, there is a solution maybe. As a period check is basically a check between two outer edges, it can be implemented by the "enclosed" check. There is a problem though: this che…
Hi @blueman_44,
Right now, the geometry is polygon-only and I do not plan to change that. What you see in the device extractor is a significantly modified version of the original geometry - for example, it is used as a cache key, so it gets normali…
Many thanks @sekigawa for this tutorial! :)
The easiest way to do that in my experience is to download all needed packages on a device outside the restricted zone and transfer the whole "salt" folder to your device inside the restricted z…
I sorry, I think I need a little more explanation.
What exactly are you trying to do?
NetTrace is somewhat obsolete now. There is LayoutToNetlist which can turn all nets of a cell into a circuit including subcells. That is embedded into the DRC/LV…
grml .... found the issue.
So here is the story:
You can turn on noisy debugging in the netlist compare code when you set
KLAYOUT_NETLIST_COMPARE_DEBUG_NETCOMPARE=1
It shows the backtracking algorithm goes into tentative evaluation due to massiv…
Sure, but boolean operations are not trivial. So offering them as built-ins in the source spec would provide a performance issue.
It was suggested already to do the booleans in pixel space. That is fast, but would easily render nonsense results in …
Hi @Default
That function is pretty complex and there is no binding for Ruby. I can probably be coded in Ruby or Python too, but that is not trivial.
But for rotating a group of objects, you do not need to make them into a cell. You only have to a…