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 @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…
@gvidasgsasic Please don't hijack old discussions. This thread is almost 4 yours old and there has been a lot of development in the DRC area.
Please open a new discussion and supply a little more information such as a sample layout and screenshots.…
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…