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 Masaki,
thanks :-)
regarding the topics:
1.) thanks for mentioning this. There is a similar issue on Linux when the built-in Python path of the library you link against does not match it's installation path. In that case the file system encodi…
yes, that's exactly, how it is meant :-)
Please note that in general the selection can contain layers from different layouts if there is more than one layout loaded into the view. You'll find different values of c.current.cellview then, so you shou…
Hi Stefan,
thanks for this hint.
I thinks you can even safely switch to -O2 in general. I have done some testing on gcc 4.8.4 on an i7 / 64bit and there are no notable differences between -O3 and -O2.
Maybe it's the more recent compiler or the be…
Hi chhung,
Version 0.24 supports hashes in some places hence the difference.
I guess the build issue is because of the old Ruby version - the oldest one I have been testing on was 1.8.7 where the HASH_SIZE macro is defined.
I strongly recommend g…
Hi David,
thanks for the comments about the relative vs. absolute mode. However, in the "apply all" code, the nature of the input is not available, so I cannot evaluate the way the value is entered.
I guess the best solution is to provid…
Hi all,
I am not aware of a bug that causes duplication of shapes. Maybe that was a side effect of another bug (writer or reader?).
Anyway, the functionality you ask for isn't straightforward to implement and there is some serious business in the …
Hello,
there is no concept of "invalid cells" currently, so you cannot prevent editing of cells.
If cells are imported from a library, they are locked from editing. But I understand that you want to protect certain cells within your layo…
Hi all,
thanks for your feedback!
Here are my comments:
1.) Watch expressions (david): the watch window is only shown when in a breakpoint or the execution is interrupted. In that window you can add watch expressions by right-clicking and chosing…
Hi WaveGuy,
Since version 0.23 there is a much more powerful framework integrated into KLayout (the DRC framework). The functionality is pretty similar, so it should be possible to rewrite layer_proc scripts to DRC scripts. For a description of DRC…
Hi Michael,
There are two options: either you export the technologies in the technology manager to .lyt files, or you take the value of the "technology-data" element in klayoutrc. The latter is basically a concatenation of the same inform…
Hi Kazz,
thanks for the test ... if the optimization does not make a difference, then I think we can rule out a compiler bug.
Just one more hypothesis: something writes the wrong memory and overwrites the contents of the iterators. Even more scary…
Hi Thomas,
For detection of identical cells there probably is a scriptable solution although I think there are several issues with that approach. The tasks you describe becomes very complex in the end if you consider the variety of possible hierarc…
Hi Simon,
It's a fancy feature, I see :-)
Basically that is possible. But it's not a low hanging fruit.
The reason is that KLayout keeps the layer information in bit planes internally and will combine the bit planes for generating the view. That …
Hi all,
I'm deeply impressed by your analysis!
However, I'm a bit scared. Basically the "reuse_vector_const_iterator" default constructor clearly says it will initialize the members to 0, so the content must be well initialized and m_fro…
Hi Michael,
Thanks! You're not alone ... popularity is both a gift and a burden :-)
Regarding your issue: that is a known problem and I tried to give a recipe to work around that issue: http://klayout.de/doc/about/technology_manager.html (see &quo…
Hi,
"Shape" is a geometrical shape taken from the layout database. In order to work with the ShapeProcessor, you'll need a layout database (RBA::Layout).
Since you have basic objects already (RBA::Box, RBA::Polygon etc.), the tool you lo…
Hi Alex,
The density map approach is based on the TilingProcessor class which has been created exactly for these kind of applications.
Basically, KLayout can load really huge layouts. But for processing them, advanced algorithms are required. The …
Oh sorry - the "Python eval" does not have it.
The current 0.24 does. I'm referring to the snapshot (http://www.klayout.de/build.html), but I'm aware not everybody likes to compile applications, specifically not on Windows.
I'm quite clo…
Hi Mattseng,
If I understand your problem correctly, you want to create a single instance of a cell containing a shape on layer 10 and an array instance of a cell containing shapes on other layers.
You cannot use the same cell for that (unit cell)…
Hi all,
thanks for that interesting discussion!
Maybe "density maps" are what you are looking for. Here is an interesting discussion regarding that: http://klayout.de/forum/comments.php?DiscussionID=476.
Matthias
Hi Dave,
I'm able to trigger a "got a click" message with the following code on my 0.24 working version:
include RBAOK_SYM = QDialogButtonBox::Okclass C < QDialog attr_reader :btn_box def initialize @btn_box = QDialogButt…
Hi Shoval,
@David: thanks for mentioning this solution!
A lean solution capable of producing big images is the screenshot script: http://www.klayout.de/useful_scripts.html#screenshot.lym.
If you're on a 64bit system, you can produce images of up …
Hi Dave,
I think you already guessed right that qApp is interfering with KLayout's internal QCoreApplication object. Before the ruby interpreter is shut down, KLayout will delete QApplication instance and that makes $qApp being deleted too.
Just a…
Hi Dave,
it's an ugly feature of the Ruby to C++ interface that I have to tell Ruby if an object's ownership is being transferred. I basically have to declare every method which is known to take this ownership. Only by doing so, Ruby can be told to…
Hi Dave,
Initially I have tried to include a UI test framework into KLayout. I basically recorded all events and tried to play them back. While doing so I learned that it's pretty important to really mimic the events with all their followers ("…
Hi Su,
it's kind of difficult to give the formula in simple form here.
If you look at the source code you'll find the computation in dbMatrix.cc, lines 631 and following.
The computation boils down to solving a linear equation system with 8 varia…
Hi all,
sorry folks ... a was wrong.
QFormBuilder will only generate "QTableWidget_Native" objects, never "QTableWidget" objects. In other words: you cannot overwrite the key event handler, since there is not derived class. You…
Hi m1a2tank,
There is no "centers" feature yet. But unlike Calibre you can access the objects inside your layers while the DRC script runs. This happens through the "data" method which returns a RBA::Region object.
This allows …
Hi David,
Regarding 1.): you can't save them to GDS or the other layout formats, but the "sessions" are supposed to handle that. Sessions keep all the setup, including rulers, images, views, layer properties and so forth. All except the l…