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 @sebastian,
I don't think you want to treat a whole cell as a single device. Devices and subcircuits are not the same thing.
I'm not sure I understand what's your goal: to verify the cell's integrity or to simplify extraction?
If it's about ce…
Better: there is a video on YouTube: https://youtu.be/N2HR9Y5m8Uw
No sound, but I hope it shows some details. I'm not sure why the quality isn't good consistently, but I understand YouTube is playing some tricks depending on the number of video vie…
Hi Mikhail,
basically the DBU your PCell code works with does not have to be the target DBU. So if you set up a PCell library, it will use it's own local layout object which provides the context. This layout can have any DBU you desire. By default …
See my reply to the last discussion along this line.
region.merge()
With BRACKETS, for heavens sake! This is Python. One reason why I hate it.
Matthias
You mean something like
Caught the following exception:'builtin_function_or_method' object has no attribute 'clear_layer' (Class AttributeError)
This is a Python beginner's error. It happens when you are trying to call a function and forget the br…
1.) If by "merge" you mean "lump together", you can just insert all polygons into the same cell/shapes container
2.) If by "merge" you mean "join polygons into one" ("union"), the easiest way to ach…
Hi,
the version you can obtain with (Python):
pya.Application.instance().version()
Regarding the GPG key, RPMs are not signed currently due to a shift in the build strategy. I don't want to distribute my private key to open servers. You should bu…
Hi @tagger5896,
I think the difference is that inside KLayout the interpreter stays alive. It lives inside the application and isn't just started with a script and shut down afterwards again. So if you add something to the path, it stays there unt…
Side note: I have tried to create 3d data with DXF but could not make it load into a specific 3d simulation tool (a 3d EM simulator in my case). DXF offers extrusion which should in general create 3d models, but all I got was thin shells if I got so…
@MoBe
We there is nothing special about multi-layer layouts.
Whenever in a script something like this is done:
...l1 = layout.layer(1, 0)...
it means a new layer is created. In this case with GDS layer 1, datatype 0. "l1" is a variable…
Hi Eugene,
I see the point.
It's somewhat redundant as then there is a layoutview title and a cellview title. I think the layout view title (if set) should still have priority to maintain backward compatibility.
I think there already is something…
@EugeneZelenko
I just discovered that the titles are already included in the session files:
<view> <title>xyz</title> <active-cellview-index>0</active-cellview-index>...</view>
maybe this helps?
Matthias
@tagger5896 Thanks for your "Get X/Y" code above.
You should put these line
GetXYOnMouseClickPluginFactory.instance = GetXYOnMouseClickPluginFactory()
at the end. Because with a layout open it's executed immediately and at this point th…
@EugeneZelenko The patch is quite heavy and likely to create conflicts. It was somewhat time consuming to test as it involves additional build runs. I'm already running 29 parallel continuous builds and my resources are limited. I'd prefer to focus …
Maybe you should check here before you continue: https://www.klayout.de/forum/discussion/comment/7260#Comment_7260
There is some more:
* Plugin API: https://www.klayout.de/doc-qt5/programming/application_api.html#k_11
* Plugin example: https://www…
Well, no. I'm sorry. The shape sequence is not related to the order of creation. The shape container is not an ordered one.
The shapes are sorted internally for quick region lookup and this order my even change during the lifetime of the shape cont…
Hi Frank,
a general comment first: names and layer/datatype numbers are contrary definitions. A layer inside the database is either numbered or named or both. In any case, a layer is primarily identified by layer/datatype number and if there is non…
Hi,
KLayout provides netlist extraction from a layout as the basis for the LVS feature. So I understand you want to reimplement the same by other means.
I'd seriously consider whether you really want to reimplement something which is there already…
Well, you can simply keep the new shapes (Shape objects) in a Ruby array or other object ...
Are you going to manipulate them or what's the plan?
Matthias
Hi @kita11,
No, "enclosing" is actually already is a check. "a.enclosing(b, 1.0.um)" requires "a" edges to be "in front of" "b" edges be not less than 1 micrometers. In addition, only edges satisfyi…
Hi Eugene,
thanks for the debugging. It's strange I don't see this in my case. I'll need to check.
The title tags in session files are actually worth considering. That makes sense. I have created a ticket for this: https://github.com/KLayout/klayo…