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
@effvoniks I won't remove this post. There is a chance it works sometimes and you're not wrong :)
The request also makes sense. But I feel that it will be difficult to implement it consistently in all cases.
Matthias
Well, custom device extractors are already "advanced level" ...
There is a worked-out example for a custom extractor here: https://gitlab.com/klayoutmatthias/fsic-2022-demo-files/-/tree/main/klayout-talk/lvs/custom_device
There is also t…
You're trying to call "merged" on the result of "puts".
It has to be (note the additional brackets):
puts((s_edges^d_edges^seed_edges).merged)
Matthias
Hello Bian,
Not directly as that can be tricky in general. Edges may not form closed loops or bifurcate. The DXF reader internally does something like that - or it tries to.
If your polygons are single loops (no holes) and you're safe to have clos…
Hi Bian,
Basically, merging is always implied (that is meant by "merged semantics"). So most functions - like "area" - will internally merge and cache the merged version. This way, "area" computes the area with overlap…
I see ... maybe that is a bug. I will check that.
I need to say that editing layouts in the Qtless view is not the initial scope. We introduced it for remote visualization. I'm not sure if all edit functions will work from a Qtless view.
Matthias
I've seen the same error message (m_technologies.empty() ...) with my own installation, but I could not debug the cause yet.
However, in my case it does not seem to cause any trouble. You're sure the package is not installed?
Matthias
That is the backslash problem - in the LVS script (which is in fact the Ruby language), a backslash inside the string is used to introduce escape sequences (like in C) - e.g. "\n" for new line. If you want to write Windows paths literally,…
"define_terminal" expects a single polygon. You supplied a polygon to G (through g[0]), to S (through s=sd[0]) and to D (through d=sd[1]). But not for W which is a Region (a collection of polygons).
Normally, the bulk terminal is somethin…
I guess you have just minimized the height of the console panel. There should be a handle at the bottom of the macro IDE window to increase the height of the console.
If you want to get rid of persisted window settings, you can simply remove or ren…
Hmm ... honestly I don't see a difference between 0.27.13 and 0.28.3 - neither in the code or behaviour wise.
If I select a single point of a polygon and start moving that around with the partial tool, Ctrl or Shift does not constrain the movement …
Hi Jim,
"split_gates" is not available for schematic, but you can easily add this feature:
# Somewhere beginning of LVS script def split_gates_on_netlist(netlist, device_name, circuit_pattern = "*") dc = netlist.de…
Well, I personally also favour the "correct by design" approach that @dick_freebird mentions.
If you need to support special devices you can basically implement an entirely custom extractor. It's a little tedious as you have to provide Sp…
@blues What do you mean by "not correct"? If you get large integer values, this means they are in database units, not micrometers. To get micrometers, you need to multiply this integer value with the database unit.
In general, the boundin…
There are some solutions for this, but none of them work properly. After all, the application needs to be fully enabled for Qt style sheets, which is not the case yet.
My priorities are somewhere else, I'm afraid.
Matthias
@Ernest Thanks for the code ... I took the liberty to format it properly.
Regarding the default location ("BackUp.gds") I'd propose to use a full path. Otherwise the file gets written to the current directory which is not well defined.
M…
No, there is not.
These classes are wrappers to C++ objects and not Python-alike objects. There is no "structure" pickle could use for serialization. The API design is not driven by an object aggregation idea. Instead the objects are peek…
@Ernest you cannot let a script run infinitely in the background. The Qt UI main thread is blocked while you run scripts and that has severe consequences.
The way to do that is a QTimer object that delivers regular events out of the main thread's e…
The screenshot you show does not indicate the position of a cell, but that of a rectangle, likely inside a cell (FA_X1 I assume).
The position of a cell is a single point indicating the location of the cell's origin (0, 0). A cell position is furth…
@blues That's not a GDS instance information. GDS does not have
* Instance names ("cell name")
* Cell types (I assume that is supposed to be the cell name)
* Pin information
GDS is a pure layout format. It can give you the location of a …
Hi @illamp
It's kind of difficult to debug without the files, but I may be able to give some hints.
First you can try the script with the test data here: https://github.com/klayoutmatthias/tf_import/tree/master/ruby/testdata_1 or https://github.co…
I agree - you should be a bit more specific about what you want to achieve.
If you're just looking for the layers that are used inside your GDS file, this script sketch may give you some first idea:
# if you want to run as a standalone script, use…
No need to be sorry. Thanks for bringing this up.
There is nothing wrong with your computer - with the recent description of the problem I can reproduce it. I'll try to fix that asap (for 0.28.3).
Thanks and best regards,
Matthias
I was able to debug and fix the macro editor IDE problem (https://github.com/KLayout/klayout/issues/1238).
But the layer properties issue is unclear to me.
Matthias
Thanks for this code ... I tried in between to reproduce the debugger issue and I can see it on Windows. I will debug and try to fix it.
I cannot however see an issue with the layer visibility. I do the following:
* I create a new layout with only…
Hi Vincent,
thanks for this explanation. I cannot confirm there is a difference on my Ubuntu 22, but I'll try on Windows.
Anyway, maybe you can try renaming the KLayout configuration file under c:\users\<yourself>\KLayout\klayoutrc before st…
Very good :)
About the debugging: it should still be functional (at least it is for me on Ubuntu).
You mean when you push "step into procedure" (or F11), nothing happens?
What is the OS you're on?
Thanks,
Matthias