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 @barlow,
The LVS is basically name agnostic and does a topological match. It finds - correctly - that the topology matches. What it also finds is, that what is called "A" in the schematic is called "B" in the layout and vice …
Hi @JSS,
for the second problem, I propose this solution (caution: needs 0.29.x version):
# see belowbad_corner_edge_pairs = l1.corners(0.0 .. 59.9, as_edge_pairs) + l1.corners(60.1 .. 180.0, as_edge_pairs)all_corners = l1.corners(as_dots)# needs …
Hi @JSS,
Of course, width also works on trapezoids. However, as there are corners with angle < 90 degree, and that formally qualifies as a width violation (the edges are facing each other):
(Image)
together with the intended violation:
You…
Hi @JSS,
The first question is easy: that is the definition of "enclosing":
l2.enclosing(l1, 0.5).output("l2 is enclosing l1 by at least 500nm")
which gives:
(Image)
The second question is difficult. There is no function to…
Hi @PavelSmirnov,
yes, you're right. Push failed because of an outdated token :(
I have fixed that. You need to uninstall and re-install the package.
Best regards and thanks for the notice,
Matthias
I don't have a simple solution to this problem.
That is a feature for the future, for example by sending the results of a "Search" query to the selection.
Matthias
Hi @srooks10,
thanks for this nice problem description.
This is a bug of the reader. It should turn the empty string into a generic device, which is does not. This issue is probably easy to fix.
I have created a ticket for this problem: https://g…
Hi @JSS,
thanks for the picture. This makes things easier to discuss.
Here is my solution (needs version 0.29.0):
report("Discussion 2500")l1 = input(1, 0)l2 = input(2, 0)coincident_edges = (l1.edges & l2.edges)# needs 0.29.0:error …
Hi Vincent,
DXF does not really support filled polygons (except through hatches). All that KLayout does is trying to stitch the lines. There are different strategies you can find on the "DXF" page in the "File/Reader Options" di…
Very good :)
I have released version 1.8 for the benefit of other users. But I have also frozen development except for maintenance. The project feels like having opened Pandora's Box.
I wish you better luck with your implementation :)
Matthias
I guess you are using some flow. Please consult the flow documentation.
Basically you can view the report with klayout <layout-file.gds> -mn <lvs report file>.
Matthias
Hi @Ege_Bey,
0.27.13 is already pretty old. So you never used 0.28, I assume.
What OS and which Python version are you on? I assume there is no support for your OS/Python combination and pip tries to build from sources. This fails if you do not ha…
Hi @PavelSmirnov,
Sorry for missing the issue in the XSection repo. I am not really active there - I personally consider the XSection thing some toy tool. It is hard to believe what people actually use it for.
But you're right. Batch mode needs th…
The more elaborate solution is to load into two separate layouts and merge:
ly1 = pya.Layout()ly1.read("file1.gds")ly2 = pya.Layout()ly2.read("file2.gds")# merge ly2's top cell into ly1's top cell# NOTE: "move_tree" wi…
I think security features are not responsible here.
Basically, when you run a binary, it is always built against a certain version of a library. When KLayout calls functions from another library, it will do so under the assumption that these functi…
Hi @Default,
You mean the PCell drawing code decides itself, what the parameter value is?
In short: don't do such a thing.
KLayout's design is based on the assumption that same parameters mean same layout. This is the basis for caching and persis…
Hi @tgustafson,
I would call it a bug in the old version to accept illegal GDS files. Basically the results are unpredicable, and it is very easy to spoil your design this way. KLayout may show you a layout this way, but once you submit it to manuf…
My opinion as well! Thanks @StefanThiede.
Technically, GDS references cells by name. So if two cells carry the same name you cannot decide which cell is targeted when a cell is instantiated.
The GDS reader initially joined cells with the same name…
Yes, exactly.
Hidden parameters are a way to store information persistently (i.e. inside GDS files). That is the only way to store information generated inside PCells. Everything else is "write only".
Matthias
Hi @sekigawa,
That is interesting, but it is kind of unintended ... I need to check myself why this is working. It may depend heavily on Python internals which is not good as it would change with other Python versions :(
Thanks,
Matthias
Hi @Peter123,
I am sorry, but that is not supported natively.
Unlike Unix, on Windows, a link (*.lnk) is not handled by the file system, but by the shell. A "lnk" file is a binary file, nothing more, so an application needs to be coded i…
Wow ... with cars! :)
I actually consider adding an option to "corners" so that you can say "take angle left or right", i.e. "corners(90.degree, both)". That may make thing easier. Right now, you need to check both 90 …
Hi @jiunnweiyeh,
This script changes what layer are displayed, not the layers themselves.
So you need to change both the layer number of the layer displayed and the layer number in the database:
mw = RBA::Application::instance.main_windowview = R…
Hi @Default,
thanks for the test case.
So to rephrase the problem: you want to find edges connected to an edge with length 1.0µm and forming angles other than 90 degree with that edge.
So like these corners:
(Image)
Right?
In order to find th…
So you mean you installed KLayout on some CentOS 7 on some local machine, simply from the RPM and it will crash on exit?
I mean that is exactly what I did, but with VirtualBox and starting with a plain CentOS 7 installation with Gnome. I don't see …