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,
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…
Hi @dick_freebird,
you're right! ... I forgot to mention that.
(Image)
You can set the limit to a high value, but if there are may violations (>10M), it's better to write the markers to a layout layer. You will not browse single markers in th…
Is that ChatGPG hallucinating?
You cannot create a Layout object simply ("lto") and hope the cell you are creating there ("top_cell") will magically be transferred into your drawing. That's not how things work.
Here is an examp…
The Gerber Import feature does not have a full API, so the only way I see is to generate different ".pcb" project files (which are simple XML) and use them to convert the layers.
This is something you can do outside the application with a…
Please try without Debugger on, i.e this button unchecked:
(Image)
The debugger discards paint events. As it runs in the same event loop than the application, setting an event filter in Ruby or Python would otherwise make the debugger being captu…
Here is my test case:
(Image)
(see attached file)
Script:
report("Discussion 2727")FE_Core = input(1, 0)negative_angles = FE_Core.corners(-180..-100)positive_angles = FE_Core.corners(100..180)FE_Core_angle = negative_angles + positive…