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
Seems like your DRC is running in tiled mode (so basically flat) and runs out of memory.
Some recommendations:
* make sure, the DRC uses "forget" on layers it does not need any longer, so memory is freed
* use deep (hierarchical) mode
I…
Yes, I think that's okay.
You can skip the first merge here:
# was: shapes_to_render = pya.Region(cell.begin_shapes_rec_touching(layer, box_to_render)).merged()# can be: shapes_to_render = pya.Region(cell.begin_shapes_rec_touching(layer, box…
There is a kind of workaround using the "unround" feature provided by "extract_rad":
report("Radius check, maybe")l1 = input(1, 0)inp = l1.mergedur = polygonsur_error = polygons# Applies "unrounding" - see &…
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…