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 @ryanke,
This will not work they way you think. "copy_tree" is available as C++ code, but it's not MT-safe. In general, reading is, writing isn't. So, there is not multithreaded "copy_tree".
Please think of KLayout as a swis…
Hi @ryanke,
you cannot ignore Python's GIL. It needs to be there, at least if you run the application.
Free-threaded Python may be possible with the KLayout Python module, but I have never tried myself. You're entering unknown territory here. Pyth…
Hi @Ryan,
yes, I meant coding the generation of the shapes in C++ is much faster than in Python. I was referring to that.
Writing does not benefit from that, as the OASIS writer is already coded in C++.
Matthias
Hi @EugeneZelenko,
first of all it's not as simple, because the shapes can be selected inside the hierarchy - if you select a shape in one cell instance, but not in another, what is the copy supposed to do then?
But your code is wrong, because &qu…
Hi,
you can also get a list of cells using this simple query in "Edit/Search and Replace":
(Image)
The "Export" menu in the top right offers a way to export the list to the clipboard or as CSV.
Matthias
Hi @klxdzh,
There is different settings available to achieve different results. In order to get support, you should supply a sample file and explain what results you intend to get.
A very basic issue of DXF is that is does not really feature "…
Hi @ckarnstedt,
this isn't the right place for this question, as this forum is not about the open PDKs.
From what I know, these open PDKs currently need GDSFactory 7.x and will not work with later versions. The KLayout PCells apparently are in &qu…
Hi @aarush,
In which way are the results different? Do you get an error?
Maybe it's best to attach a test case. You cannot attach GDS directly, but you can attach .zip archives.
Matthias
So you want center positions of instances, not shapes?
Please try:
select path_dtrans*instance.dbbox.center from instances of $(CellView.active.cell.name)..abc*
Matthias
No, that is wrong.
A region is already a full layer - you must not iterate over the cells.
You will need to start from a top cell instead.
This should work better:
cell = layout.top_cell() for idx in layout.layer_indexes(): …
Hi @aarush,
your code is Python acting directly on the shapes, not DRC.
You should not use a recursive shape iterator from every cell, as it will dive down in the hierarchy. Instead just iterate the shapes of the individual cell:
for …
Hi @"Vincent Lin"
I think you're right. What I meant is ".pyc" - this is bytecode that Python generates itself. ".pyd" is a compiled version (essentially a DLL) which is generated by Cython.
MSYS is a rolling release,…
Hi @Weiling_Zheng,
I don't fully understand what you are looking for, but here is a query that gives you the "flat" bounding box centers of all shapes on layer 1/0 from the top cell of the layout and all cells below:
select path_dtrans*s…
or you cycle through the selection: just continue clicking until you see the right instance shown in the status bar.
For a better visual effect you can use this configuration:
(Image)
Here are my settings:
(Image)
(Image)
Matthias
Yes, the paths support expansion of some variables. The dollar character starts the substitution expression, similar to shell variables in strings. You should put in a double "$" ("$$") instead of a single one.
Matthias
Hi @안준용,
which is the KLayout version you are using?
There was a bugfix in 0.30.1 which should fix this problem. The current version is 0.30.2 and I have confirmed that this one does not give the issue you describe.
Matthias
Hi @"Vincent Lin",
.pyd to my knowledge is just some bytecode that Python generates and caches internally. You do not need to generate it yourself - Python does that automatically.
Matthias
Hi @dick_freebird,
A potential path to DWG is "LibreDWG" (https://en.wikipedia.org/wiki/LibreDWG), but frankly, I try to avoid third party libraries as far as possible as they usually impose a maintenance and deployment issue. I also don'…
Hi @aarush,
Maybe pasting some code is helpful to see what you did.
In DRC, you cannot directly iterate, as the normal iteration through "each" will give you merged polygons and this means, zero-area polygons vanish.
However, you can sw…
HI @aarush,
Most DRC functions are basically method calls to "Region", "Edges", "EdgePairs" or "Texts" objects.
In case of "odd_polygon", the method call is "strange_polygon_check" (see h…
Sigh ... Spice is a mess :(
"parse_element" is based on the Spice comprehension of ngspice, which requires four terminals for "M" and there are many weird variants - I guess something like M d g s b model=nfet was causing an iss…
Hi @tnoradam,
I did not specifically change something in progress bar. But maybe you can check if that only happens if you have the macro IDE open? With the IDE open, a number of events are ignored as that created a crazy interference of macro IDE …
Hi @Armo - good to know there is a human at the end of the line :)
Actually your latest code is way better and you correctly captured the concept.
There is just a tiny bug: If I replace
param = {"lyr": self.layer, "digitW"…
Hi @p00276,
very good.
$autorun isn't an option to organize packages as the order of execution may not be the one you expect. It is meant to execute some top level scripts which are independent from others, such as scripts registering menu items o…