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
Hi @jiunnweiyeh,
No, currently you cannot select cells for overwriting. I consider that extremely dangerous as you need to be sure both cells are identical or otherwise you will get weird results.
When you combine layout files by script, you can l…
Very good! :)
But actually, when you map a layout to a pixel array without semi-filled pixels, you do introduce some layout distortion. That is inevitable. Either you accept to have a line overlapping pixels or you need to have perfectly aligned la…
Hi Giovanni,
yes, that is intended.
Actually, when you create a Region with a recursive shape iterator, it becomes a special kind of Region called an "original layer region". It is not a replica of the layer, but represents the actual la…
Hi Nguyen,
You can capture the parts intruding the marked area using such a DRC code:
report("Discussion 2656")inp = input(1, 0)inp.drc(primary.sized(0.08, 0.11) & foreign).output("Errors")
This will give you these markers…
Update: I would be specifically interested in a quality convex decomposition that guarantees rectangular pieces when possible, ideally maximizing the aspect ratios of the pieces. Another thing I am interested in is an algorithm that finds the maximu…
Hi @gyger,
That is actually very interesting. You seem to have done some research and maybe you can share some publication links? You can also send information privately through the contact mail address if you wish.
I found this nice overview page…
Hi @nguyenajt,
Are there any additional warranties? Your code suggests so. Like: is the horizontal distance always 21nm? Is the orientation always long side vertically?
Matthias
Hi @JSS,
what do you mean by "design grid accuracy"?
The "ongrid" check will report all polygon vertexes whose x or y coordinate is not a multiple of the grid value. Paths are converted to polygons, so the path outline is check…
Hi @gyger,
the first version is actually the better one IMHO as it blends nicely into the DRC scheme. But it is not efficient as it uses a loop over the polygons. The second version is faster, but does a "decompose_trapezoids" which is no…
Hi @illyjustfine,
I am releasing 0.29.11 version right now. There was a bug that may have triggered this issue (https://github.com/KLayout/klayout/issues/1955).
Can you try with 0.29.11 version?
Thanks,
Matthias
Hi @leo_cy,
I don't know what's in your file, so I can't say. The problem may also due to issues when the core tries to locate the stream reader plugins. Building the C++ system is not straightforward. You have to use the build script to do things …
No worries.
I can reproduce the problem with your testcase. I will need to debug the problem. The "trace all nets" feature does it correctly, but not the point-and-click tool.
I have created a ticket to track this problem: https://github…
Hi @Flyingmyd,
@dick_freebird is right - the layout is not aligned with the grid you're using.
Let me demonstrate what happens by using grayscale values:
rgb = int(math.floor(a * 255.0 / (pixel_size_dbu.x * pixel_size_dbu.y) + 0.5)) * 0x1…
Hi Adam,
I'd be interested in the actual layouts you used and the stack details. You can attache GDS files to forum entries if you wrap then in a .zip archive.
I could not readily reproduce the issue with this layout of mine:
(Image)
I simply u…
Inside the application, your current directory is the one that Windows gave to the application when it started it. That may be the installation path or whatever.
Just use a full path when opening the file.
Matthias
No, that does not sound familiar. The message can have manifold reasons. Usually that happens if shapes or instances get removed while some code is still accessing them.
I don't have the "MyLib" library you're using. If you're providing c…
That is simple:
pya.MainWindow.instance().load_layout("your.gds", 1)
The "1" is for "open in a new panel". You can use 0 to replace the current panel with the new layout or 2 to add the layout to the current panel.
M…
Hi @Rocky_Tseng,
I don't know what to reply here. If the question is "is it possible to ...", then my answer is: sure, but try yourself. I personally don't think that approach has a lot of potential. First, the quad trees are not balanced…
@BigPanda To the perfect explanation of @sekigawa I can only add that in your original sample all the parameters are very small values. If you use Path, the coordinates are in database units - so they are integers and as the database unit is typica…
Hi @sekigawa,
thanks for this elaborate analysis, as usual! :)
There is a related discussion here: https://www.klayout.de/forum/discussion/2630/how-to-use-the-rasterize-function-to-render-a-specified-area-of-a-gds-file#latest
I have repeatedly ma…
I'm not sure, this feature is also new to me.
Is that just a temporary thing - you set when you try to do some fancy partial selection - or are these protections stored somewhere for permanent protection?
Matthias
Hi @tomas2004,
I'm afraid there isn't much more documentation than the provided one - apart from the code, which of course is also documentation. That's Open Source :)
Your data mapping is basically correct and 0 should show up a blue. Maybe you c…
Thanks for this discussion :)
Point is, that DRC/LVS is pretty useless with the Python module alone as that not only misses Qt, but also does not feature Ruby, which is needed to execute DRC/LVS scripts. The typical runtime for that case is the KLa…
Hi @davidcook,
I should write a book, I guess :)
I gave a talk once about optimization of DRC decks, specifically with respect to performance. Maybe that is helpful: https://wiki.f-si.org/index.php?title=Learning_from_GF180_PDK:_Best_practices_for…
I should not reply to posts that start with "Why is ...", because I do not like to justify myself.
The actual answer should be: "Because it is the way it is, and if you don't like it, fix it". After all, this is open source!
B…