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
Yes "surgically" is what is needed here :)
Here is a counterexample: Think of a via cell - the via has a pin, because it will connect to some metal above on the lower and upper level, It will probably also have two pins.
But I am quite s…
Thanks @tomas2004 for this comment!
I should add that anisotropic sizing can have surprising effects with all-angle geometries and corner cut-off. Essentially, anisotropic sizing translates into an edge shift that is depending on the angle of the …
Hi @fawqati,
this is how it works for me on Ubuntu-24 with Python 3.12 and klayout-0.29.6, built locally for Ubuntu-24:
# after activating the venvKLAYOUT_PYTHONPATH=${VIRTUAL_ENV}/lib/python3.12/site-packages klayout# batch modeKLAYOUT_PYTHONPATH…
Hi @r_user_ant,
yes, sure. I am always interesting in fixing crashes.
You can send the file to "contact 'at' klayout . de". I will keep it private if you ask me so.
I also need an brief explanation how you can reproduce the crash.
Than…
Hi @Ege_Bey,
I think that is an effect of a Qt version upgrade in the KLayout Windows package. It probably needs some more DLLs - probably the ones in "platforms". You may also want to include "cert.pem" and the files from "…
No, and there will not be one.
In my opinion, updating to a newer version should be a conscious decision. Otherwise a release of mine might break thousands of installations and I don't want to take that responsibility. KLayout is an offer, and it i…
Hi @barlow,
"cheat" comes with side effects, that it is why it is called "cheat".
I have started to work on improving the device extraction. This may render "cheat" unnecessary in many cases. The branch is here: https…
Hi @dick_freebird,
properties are basically available, but those are not standardized (only numbers) and I feel they are not commonly used and have to some limitations. GDS is basically only a serial format listing instances, so no index of any kin…
Hi @dick_freebird,
Problem is: GDS does not have instance names. There is no way to store them, except through properties, which are not standardized.
KLayout does netlist extraction into a database, which is stored along with the data in the LVS …
KLayout has a "paste & move" option - maybe this is what you are looking for. It is called "paste_interactive" and basically does "Ctrl+V" + "Move". You have to bind it to a key before you can use it. In t…
In the last 10 years a lot has happened :)
Here is one solution: use a special DRC script. Assume, layer 1/0 is your top metal and 2/0 is your passivation opening that defines the pad (or any other second layer).
Here is my test case:
(Image)
H…
Wow ...
I came to this point while trying to follow this discussion:
(Quote)
And yes, there is: https://www.klayout.de/lyp_format.html
I hope it is still up to date. :)
Matthias
No there is not. You're referring to to the how Virtuoso does it.
I personally hate the Virtuoso way. I never get the position right with Virtuoso. And sometimes I want to pasted things to be at exactly the same position than before - e.g. when por…
I'm afraid ChatGPT is wrong here. I am not providing a Gerber export plugin and to my knowledge there is no other implementation.
Technically, Gerber is not well suited to GDS. GDS is mainly based on (piecewise linear) polygons. It has paths and bo…
Hi @ashkan,
That must be a very odd version you have used then :) ... anyway, thanks for letting me know. Good to hear it works now.
Kind regards,
Matthias
Hi Pavel,
you're right. I'm sorry - I think I should have named the function "_start" (correspondingly there is "_finish").
There are other reserved names, but they are not as generic (e.g. "produce"). I cannot change…
Hi @ashkan,
you can zip a file to upload any kind of file here. If you don't want to make your layout public, you can send it to the support mail - contact "at" klayout.de. I will keep it private then.
Regards,
Matthias
@sekigawa - thanks for your nice solution as usual :)
And @JSS, no, there is no plain DRC solution as DRC is made for finding things in a specific distance, not the closest thing.
But DRC can be mixed with Ruby code. Inside a DRC script, you can e…
Well .. it is difficult to implement the same behavior than every other tool. Every one has his or her own muscle memory. I personally don't want to miss the zoom-by-box feature because that is my muscle memory.
But after reading your original text…
Paths should be converted to polygons automatically. When I say "polygons" in DRC context that does not refer to the shape type - paths, boxes and polygons are "polygons" or can be converted to one. That is different for edges, e…
I am also guessing :)
I am reading this as a request to see "all" shapes with the cells they appear in. This is basically what the RecursiveShapeIterator delivers. While you read out the shapes, it walks through the hierarchy, visiting ce…
I posted a reply on Github. I do not fully understand what you try to do, but I feel that you are looking for something like the RecursiveShapeIterator.
Matthias
Hi @laurent_c,
thanks for pointing to this option :)
In the latest release (0.29.6) I have included a warning that pops up when you try to close the main window while a save operation is ongoing. I hope this prevents the above problem in the first…
Hi @RawrRanger,
yes, this is definitely cool!
I will not need matplotlib anymore :)
A brief warning is in order I hope: If you use eval on a user string, the user string basically can do something malicious such as os.system(...). So eventually t…
Could you provide a test case?
AFAIK, .mag files cannot represent everything that GDS has. I assume you're trying to convert something that cannot be translated.
Do you see any warnings in the log view (File/Log Viewer)?
Matthias