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 @Sharon,
there is some confusion.
First, you probably have not enabled "Select Top Level Objects" from the "View" menu. So in your first scenario, if you select things, you actually select shapes inside the pillar cell "…
That appears to be a MacOS specific issue (I'm not a MacOS user). The console seems to be docked at the very right border by default vertically. There is some splitter handle on the right side which you may be able to pull.
I can't reproduce the pr…
@Joel_Even I am not really eager to correct the nonsense that ChatGPT/Copilot/etc produce. Some cheery people tell us that guys like me will no longer be needed in the near future. This means war.
The concept of LayoutDiff is explained here: https:…
If you have OASIS, it may store the top cell as an explicit property. Extracting that without reading the file is not a feature of KLayout, but I'm sure it's there is other tools. For example this one: https://github.com/klayoutmatthias/dump_oas_gds…
Hi @dixit,
There are no hooks you could attach such a function to. Of course, the sources are public, so basically anyone can implement whatever function you wish for.
I feel however, that you have a specific application in mind. It's possible (by…
Ah, yes. That is because there is still an empty property set attached. BTW: if you really want to know if a shape has properties, ask for "has_prop_id = True && prop_id != 0". Because the API differentiates between shapes with an …
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…