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 Clemens,
unfortunately forum entries become outdated over time, so things may look a bit confusing. In general, old solutions still work, but there may be easier ways now. I wish those entries would age like paper becoming yellow and torn, but t…
Hi Andy,
Reading two GDS files into one sounds like a simple thing but in fact it's a very coarse way of merging layouts. In the worst case, both GDS files use the same name for their top cell. In this case, the layouts of both cells will be merged…
Hi Clemens,
Although the message is kind of cryptic, I can tell a little bit from that.
Basically it says that some object was stored in a string representation and this object does not support deserialization.
It looks as if some PCell parameter…
Hi John,
how about running the DRC in a separate step, i.e.
klayout -b -r your.drc# or:strmrun -r your.drc
And afterwards opening the layout plus the report:
klayout your.gds -m your.lyrdb
Here is a sample for "your.drc":
source(&quo…
Thanks for sending the valgrind log.
I was able to track down the issue - apparently KLayout deletes a QMenu which belongs to the multi input context plugin.
I can trigger the bug on my installation when adding this line to ~/.config/Trolltech.con…
Hi Theo,
maybe there is a relation to https://www.klayout.de/forum/discussion/comment/4820 ... there seems to be an issue with the input method plugins and KLayout. I'm investigating this.
Matthias
Hi OSMAN,
Just decrease the maximum hierarchy level until you see the instance you want to move as a box. You can pick it then.
Or enable "Select top level objects only" from the "View" menu. This will make only top level "…
Hi Clemens,
0.26 is far from stable, although I don't think it should crash. But without further details I can't say whether it's the intermediate build or a real issue. BTW: I switched everything under development to master branch. 0.25 is the lat…
Hi Laurent,
in general it's not safe to iterate a collection (instances) while manipulating it (implicitly done in 'flatten').
Hence this is the code I'd recommend. It's collecting the instances to delete in a first pass and then doing the flatten…
Hi Clemens,
PyPI does not allow me to update files once released. As the pymod module is still undergoing development, I don't want to flood their repository with small updates and only occasionally increase the dev version. I have updated now to d…
Hi Clemens,
the issue is actually already fixed (https://github.com/klayoutmatthias/klayout/issues/197). With the latest pymod branch, you can now generate layouts with PCells with the standalone Python module. At least with my sample code it works…
Hi Clemens,
looks like there is an issue in the standalone modules when reimplementing C++ interfaces in Python.
Here is code which works in the application:
# --------------------------------------------------------# Library definitionclass Tes…
Hi Jonathan,
you can capture mouse events in a "plugin". Below is a small piece of code illustrating how this works. Basically you create a plugin to implement a new mode. If selecting this mode by clicking on the respective tool bar entr…
Hi Luis,
I don't see this issue even with many windows open. The only reason I imagine is a poor network connection for the file access. KLayout by default checks whether the time stamp of the file loaded has changed and offers to reload them. If t…
Hi jonathan,
what arguments would you like to see? clicked doesn't have arguments, so binding a function with arguments to it does not make sense.
If you have a signal with a value, simply bind to a function which expects a value:
def test(state)…
Hi,
if you want 0.1nm resolution you have to use a database unit small enough. Go to "File/Reader Options", chose the "DXF" page and enter "0.0001" into "Database unit".
Matthias
Hi jonathan,
that's simple. It's:
pya.QPushButton("ok....",dialog).clicked = test
(not the missing brackets after "test").
You want to bind the function itself, not the result of the function call (which is "None" a…
Hi jonathan,
the LayoutView's "get_config_names" will only deliver the names of the configuration variables which have been set for this view only. Normally, you'll set configuration variables on the Application object (and get their name…
Hi Theo,
it looks like this is the default configuration for CentOS7, right? Did you build it yourself, or is that installed from the RPM?
I don't have CentOS7 on a desktop, but I can run it inside a minimal CentOS7 Docker container.
This is what…
Hi William,
there is, yes. The script which generates these declarations is in scripts/mkqtdecl.sh. But that's not straightforward. It's not generalized yet, so it works on two baseline Qt versions, namely 4.6.3 and 5.5.1 which have to be installed…
Hi Dion,
unfortunately not. It used to be configurable previously, but that turned out to create too much interference with the other widgets that use the navigation keys.
But you can basically tie a mini-macro to a key using the "macro prope…
Hi eric,
use "Polygon#ellipse" to create a polygon representing a circle or ellipse:
# circle with radius 100, 50 points:pya.Polygon.ellipse(pya.Box(-100, -100, 100, 100), 50)
the round-ended, single-point path trick is an attempt to fo…
Hi Theo,
I'm not seeing this. What is the compiler/OS/Python/Ruby/Qt combination you're using?
You can check, whether that's an issue with a specific macro installed in your system. Please rename your "~/.klayout" folder to something els…
Hi William,
KLayout doesn't use pyqt. Signals can be bound directly to methods, so in fact no slots need to be defined.
It's as simple as this:
self.pushbutton_one.clicked = self.clicked
Matthias