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
I think you're using the Python module. That is not supporting DRC as the actual DRC interpreter is using the Ruby language and that is not included in the Python package. The code is intended for the application, not the Python module.
Matthias
Hi @dick_freebird,
you mean Ubuntu .deb package can be used on Debian for example? I'm not sure, honestly I have never tried. I'd not be entirely surprised as dependencies become increasingly generic. But I'd not bet at it.
People already discusse…
No, that's not possible. A PCell is basically code that generates geometry (polygons, boxes etc.).
I assume what you are looking for is something that creates code to reproduce a specific geometry. But that code would only generate code for this sp…
@RawrRanger Thanks for sharing this code!
I would like to add that the tiling processor only solves the issue of temporary memory allocation. That means that for example for boolean operations, the memory overhead is reduced because intermediate da…
Hi @dick_freebird,
I prefer the technology manager because it also allows attaching DRC decks, libraries and other things to a layout via the technology.
In my case, I have created a technology called "sky130A". This will create a folder…
Hello @dick_freebird,
The cell duplication effect is interesting - actually "Ctrl+B" is just an abbreviation of "Ctrl+C"+"Ctrl+V".
So the cell is actually duplicated, but only if the focus is in the cell list. Once you…
No, that is not a know issue.
";" is apparently intended as a comment character. It is allowed inside text strings and property names, but not inside cell names.
I need to say however, that the text format read is contributed code and I …
Hi @TTR572,
No, right now there is only the temp file approach or using (slow) pixelwise transfer.
If you want creation from a bytestring or QImage or PixelBuffer (without Qt) raise a ticket on GitHub.
Matthias
@dick_freebird This is strange. "valid layers" does not refer to validity of a layer - this is only the ability to select shapes from such layers. It means no layer is selected for editing the properties.
I think this is what happens: you…
For OASIS the allowed characters are well defined, but for GDS there only exist conventions.
In my experience safe cell names in GDS should be short (<40 characters) and use characters from ASCII letters (lower and upper case, case sensitive), d…
Looks like the behavior is built into Windows style, so it cannot easily be changed by the application. A special style sheet was a solution, but I know this is tedious and I'd rather like to spend my limited time on something useful.
A quick fix i…
@Nacer please take a look at @RawrRanger's nice description. This is the way to generate polygons ready for mask making. If you make them big enough and observe the design rules, you can read them on the final die.
Matthias
@chgli The loop is not quite efficient, so it's not a general solution.
I don't know why you call the boolean output "wrong". The polygon with the hole is the canonical representation. The only problem is that GDS and OASIS do not support…
@dick_freebird I guess you like to have some "auto save" feature.
There was a discussion about this here: https://www.klayout.de/forum/discussion/comment/9350#Comment_9350. There is a small Python script implementing auto-save.
I tried t…
@ManzAutomations Your code does not execute, so I can't debug the problem.
In general you need to properly set the widget's parents in order to establish the Qt ownership. This is prevent Python from destroying the widgets once the variables go out…
Dear all,
thanks for this fruitful discussion, specifically to @RawrRanger providing the code example that nicely reproduces the problem.
I debugged the issue and frankly, it's a feature. Namely during iteration of the instances, the layout is pu…
Ha, you caught me. That is undocumented :(
The method version is called "visible_" with a trailing underscore. So you can use:
local_visibility = layer_properties.visible_(False)
Same should work for the other attribute/method overloads…
@RawrRanger Many thanks for your efforts to support this case!
The magic code for disabling the scale bar (ruler) is:
layoutView.set_config("grid-show-ruler", "false")
You can basically set every property that is available in …
I agree.
The problem can be fixed by evaluating QFileDialog::selectedNameFilter in all the places this class is used for selecting a file in save mode and adding the respective extension unless there is one already. QFileDialog could do that for me…
@tomas2004 Yes, that's correct. The cursor in not on the shape when you enter the menu :)
The achitecture is uniform, meaning keys can be bound to menu items, hence there needs to be one. But I agree, that is not really intuitive.
Matthias
@wsteffe I know that is somewhat annoying, but the file dialogs behave differently on every system and I rely on Qt to to provide a common API. I do not want to work around issues there and rather accept it the way it is.
Matthias
@RawrRanger Many thanks for this nicely prepared report. For me the files crash without "convert to static".
I assume something is broken with your PCell code (which I do not have). Analysis shows that the Pcell produces path objects with…
@ManzAutomations There are tons of functions to achieve this and they are not hard to find:
* General: https://www.klayout.de/doc-qt5/programming/application_api.html#h2-154
* LayoutView class: https://www.klayout.de/doc-qt5/code/class_LayoutView.h…
Very good. Thanks for this post!
You can insert this statement to make sure the new layer is shown:
layout_view.add_missing_layers()
Kind regards,
Matthias