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
Exactly :)
I'm aware that currently there is little feedback. But if you want you can try the next major version's preview (representing the master branch and continuously updated): https://www.klayout.org/downloads/master/ This version has better…
No, you cannot have RBA as external module.
RBA is not the same as a Ruby module. RBA is an extension of the application and Ruby runs inside the application. The Ruby calls are routed into the application. All RBA functions are coded in C++ and th…
Very good :)
If you want to end up with properly named layers, the easiest is to do this manually once and save the layer properties as a .lyp file (or generate a .lyp if you want. It's XML). Then, instead of simply calling "add_missing_layers…
@akita11 There is no explicit "check for dogbone shapes" rule. You'll have to somehow select the respective part first.
I think there is some rule quantifying what counts as "dogbone part". Like a maximum run length. "proje…
Good question :)
Basically KLayout keeps the settings persistent which makes you choice a kind of default.
In klayoutrc the corresponding key is "edit-top-level-selection" and it's true to select top-level objects only.
Inside some init…
Very good ...
Well, once again I'm pleading for using code formatting ...
As the DRC feature is based on the RBA::Region class and the latter offers a universal "decompose_trapezoids" method, it's possible to employ the latter.
A DRC is…
@tagger5896 You can format code by indenting with four blanks or putting a line with triple backticks before or after the code. With Python this much more readable.
Specifically here I wonder where the "box_finished" functions ends.
But …
Hi Eugene,
The problem is that "on_file_open" isn't called on "on_view_created" because that already happened. So you have to explicitly call it in the "on_file_open" event handler.
Still registering this callback mak…
Very good :)
Yes, layer is the logical index. It's not related to GDS layer - a layout can have unnamed layers and layers with names only (e.g. from CIF). The layer index is a generic identifier. Think of it as a layer handle.
Matthias
Is it really difficult to use code formatting in this forum? This is hardly readable. There is a nice editor and you can use the "Code" paragraph formatting so I don't have to guess what this garbage is supposed to mean.
And "technol…
Very good!
Non-editable isn't a feature of copy_tree actually, but this means shape arrays are left compressed. This no only simplifies the work for copy_tree but also leads to a predicable and reduced memory footprint and will also make the OASIS …
@tagger5896 Basically you should not approach this problem like "a want to achieve this and that". You should rather ask yourself, what you can do with the functionality provided. Forcing your expectations on the system will not help.
The…
Hi Joanne,
I'm sorry, I don't provide support for VS 2019 right now. 2017 is the only supported platform. MSVC is always kind of special and without knowledge of C++ details I don't think you can fix the build. A single line of log is much too litt…
Very good, that's exactly how to do it :)
A remark of mine: in addition to "is_polygon" you may also allow "is_box" and "is_path" (like if iter.shape().is_polygon() or iter.shape().is_box() ...). These types can be con…
@alidumi You can basically execute all operations available on Region objects. The documentation is pretty elaborate: https://www.klayout.de/doc-qt5/code/class_TilingProcessor.html
Matthias
@TryAndTry In batch mode you cannot give a file as an argument because there is no GUI to load it into.
You also need to specify where to write the report or output layout to.
You can pass this information from the command line using variables. Th…
Hi Thomas,
the actual path to the top is important if you want to highlight all instances. I think that highlighting just one instance isn't giving much benefit.
I see that the default constructor of "ObjectInstPath" isn't explicitly lis…
I see .. anyway, I hope the previous answer wasn't wasted :)
Yes, there is such a netlist reduction step. It's called "device combination". It's described here: https://www.klayout.de/doc-qt5/manual/lvs_tweaks.html.
I introduced the &quo…
@ahmedo Thanks for providing this information
I think there is a lot of optimization potential in your script. 19MB isn't really a big file - I deal with GB-size OASIS files on a daily basis. But OASIS can have a hidden complexity: small files may …
Hi Jim,
I had to look up "stymied" in a dictionary first (I'm not a native speaker), but I hope I understand your question now :)
First of all, I need to say that the LVS compare algorithm made some progress in the 0.27 which I am curren…
@ahmedo Sorry, but I can't provide support if you don't provide details.
Here are some details you should provide:
* Where is time is spent (reading, merging, writing?)
* Memory footprint and whether maybe swapping is involved (physical memory exc…
@sebastian Thanks a lot for your assistance.
And yes, KLayout's Qt isn't pyqt. The reason is that I started with Ruby about ten years ago and qtruby (the pyqt equivalent, which AFAIK isn't maintained any longer) was not evolved. After integrating P…