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
Please try to rename KLayout's profile folder. It's located at c:\users\<youraccount>\KLayout. Rename this folder to something different or remove it. After that, KLayout should start. If is does, it means, something fishy was there in that fo…
Hi Remco,
I understand that you can't share the test case. That is quite common. Unfortunately I cannot give much advice without seeing the actual problem.
A general debugging strategy is first to identify the step that causes the issue. You can t…
Hi @Scafir,
I made a lot of progress here.
First, a general problem was related to netlist performance, which degraded in 0.30.6. It's addressed by https://github.com/KLayout/klayout/issues/2277, which brings down the netlisting times considerably…
Hi @remco,
you can upload files by packing them into a .zip archive.
But 96GB memory is insane. Something is badly wrong here. I can hardly image a photonics mask that really takes such much memory to process in DRC.
There are some pitfalls which…
Hi @ChristianP,
A rotation by any angle will induce snapping as @tomas2004 explained. I think his approach is the right one.
Problem is that the rotation is "stupid" and does not remove the cut line before rotation.
Using a short DRC sc…
Hi Kazzz,
thanks for your efforts to support Monterey! Does it make sense to upload the DMGs on the server or is okay to leave them in your place?
Best regards,
Matthias
I am trying to reproduce the run.
Variant "A" wasn't working for me, as the slotting rules need metal5, so I am picking variant "C". But even without, almost all time is spent in the "netlist" step.
There was a ticket…
Well, Select claims "clicked" and "pressed". Both because that is part of the functionality of "Select". A single click will select the object below the click, a "pressed" event will start dragging a selection…
Hi @mikamar,
right now, there is no option to turn that off. The box was introduced when the labels became non-point objects. They indicate the "active" area of a text - i.e. the one where you select the text from. So it was important to …
Maybe you could just explain what you intend to do.
You can enable a mode using "switch_mode". In my example the name of the plugin is "plugin_name" (the second argument to register), so I can switch to that plugin using
view.s…
No, that is not how it is intended.
When the "test_plugin" is not activated, there is no mouse_click_event with prio=False because the active plugin (Select) claims that event.
When the "test_plugin" is not activated, there is …
@taylorn, thanks for chiming in :)
You're right, the RecursiveShapeIterator first of all finds shapes whose bounding box is touching the given search box. That is a first level of identification.
Once you have a shape and you know it is a polygon …
So then let's start with a minimum example:
import pya as klclass Discussion2841PluginFactory(kl.PluginFactory): def __init__(self): self.register(100000, "plugin_name", "test_plugin") def create_plugin(self, manager, dispa…
You have two options:
* After you pasted, the pasted objects are selected. You choose "Move" mode, click on the selection and place it where you want it to be.
* Bind "Interactive Paste" to a key of your choice: go to "Fi…
Hi @CreatedByCreator,
You're using "DTrans" for the transformation, but put it into a "CellInstArray" object, which is by definition using integer DBU units. That is not consistent and the effect is that "CellInstArray"…
Hi Noah,
did you check the documentation?
https://www.klayout.de/doc-qt5/programming/application_api.html#k_11 explains the concept of the mouse events. Specifically it says:
(Quote)
Here is more example code: https://www.klayout.de/doc-qt5/code/…
Hi @engrvip,
The error message is an assertion - so an unexpected condition inside the code.
Checking against the main branch of the IHP PDK, line 388 seems to be a "simplify" call on the schematic netlist. I assume it is related to the …
Hi @Scafir,
thanks for the pointers. I will take a look. I just can't promise a swift response. Performance issues are usually ugly to trace back.
Matthias
Hi @Scafir,
I'd not try parallelization inside the application. Qt and large parts of the application are not thread-safe. You need to provide strict thread isolation and there are too many side effects beyond your control. Specifically I don't tru…
You will find it more cumbersome if you don't have it - because then you cannot enter the width of a path, the text string of a label or the parameters of a PCell or quickly access the snapping modes. It makes sense to have it.
Why don't you just p…
@thangzero please consider opening a new discussion for a new case.
Actually, there is no direct way of changing the shortcuts for these items, as these are mode switches and not functions. But it is possible to install a script which changes the s…
Small update: "extent_refs" (see https://www.klayout.de/doc-qt5/about/drc_ref_layer.html#extent_refs) can actually be used, if you first convert the edge pairs to rectangular polygons using "extents" and use "raw" to sw…
Hi Andy,
thanks for the image, I got the idea now.
The general strategy I'd like to suggest is to create edge pairs of vertical edge pairs and then compute the centerlines of the two involved edges.
For getting the edge pairs, you can use the &qu…
No no no ...
It's too easy to introduce a tiny move when you just click. It may be a single pixel. It's essentially impossible to decide if you wanted to click or move. So a single click can be mistaken as a small move and unless you're not super c…
Hi Leo,
I have started an implementation of the "copy whole net as marker" (https://github.com/KLayout/klayout/pull/2257).
With this patch "evaluate_nets" will have a new feature that allows finer control over what is produced.…
Hi @sekigawa,
thanks for this impressive survey :)
@simransingh14: regarding the plugin-based approach: it is not possible to explicitly capture the "File/Open" event. "Plugins" are scripts that make use of a special API to hoo…
Hi @Manio,
I don't know which PDK you are using, but when you don't see the library, that means something went wrong during installation. Typically a PDK will provide a PCell Library by through scripts which are auto-loaded on startup of KLayout. F…