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
Do you have a chance to extract a part of the file, for example from Byte 89120000 to 89130000? This will break the file and render it useless, so I don't think any end user agreement applies to such a crippled file. But from this snippet I can may …
Hi Dion,
I don't have your file, but there is a specific issue with OASIS and shapes: OASIS allows representation of shapes as shape arrays. That means a single object represents multiple effective shapes.
"size" is a quick method that d…
Hi OSMAN,
have you been working with KLayout all the time on this GDS file? I don't know of ways producing this error with KLayout under normal conditions.
But if your disk is full and the file gets truncated, you may see such errors. You can chec…
Hi all,
"load atop of another one" is one option, but please be aware that this solution will mix cells with identical names. Like if layout A has top cell "TOPA" and a subcell called "SUBCELL" and the second layout B …
Thanks everybody. That's good news.
Windows + Anaconda is on my roadmap. I have a few issues to solve - like getting the dependency libraries. I don't think this is a basic issue, but setup.py still is kind of mysterious to me.
Matthias
Hi Doin,
OASIS does not have a vertex limit. That's one of the advantages of OASIS.
To limit the vertex count, save to GDS and convert to OASIS.
If you want to emulate the algorithm of the GDS writer, here is the implementation:
* Iterate over a…
Ok, maybe I need to be more specific:
1.) Load two layouts into the same panel
2.) Then assign the layer properties as you need them (@1 layers are for the first layout, @2 layers for the second)
3.) Save the layer properties
This recipe is workin…
@dion Why boost.python? KLayout has it's own Python export feature.
BTW: there is already a setup.py in the pymod branch. It awaits port to Windows, but on Linux and MacOS it's working.
Matthias
Hi,
first thing is that your coordinates are pretty small. With the integer types (Polygon, Point, ...), the coordinates are in database units (typically 1nm) and arithmetic is in integers. You have given an inner radius of 10 and an outer radius o…
Hi,
There basically is just one layer properties file, but it can contain layer properties for multiple layouts.
If you load two layouts and save the layer properties, you will see layers with suffix "@1", "@2" etc. If you load…
Hi Mikhail,
I think there is something wrong with the detection of streamer plugins.
Basically the file readers and writers are provided through separate DLLs which are should be installed separately in a folder called "db_plugins". This…
Hi Patrick,
"exakt" circles in OASIS are produced by creating a round-ended path with a single point.
RBA::Path::new([ RBA::Point::new(x, y) ], diameter, diameter / 2, diameter / 2, true)
In GDS, these objects are special in a sense tha…
Hi,
In the DRC engine there is an "odd_polygons" feature (https://www.klayout.de/doc-qt4/about/drc_ref_layer.html#h2-1150).
I think this is what you look for.
Matthias
Hi,
the landmarks are not part of the image object itself, so they are not stored there. That's why they are not accessible through the API either.
But the computation of the matrix is available: https://www.klayout.de/doc-qt4/code/class_Matrix3d.…
Thanks for mentioning this. I think this only happens on Qt5 because there is one additional overload. There is a ticket for this now: https://github.com/klayoutmatthias/klayout/issues/141.
Thanks,
Matthias
Hi,
sorry - I just noticed the documentation for this class is broken.
The solution is:
region = pya.TextGenerator.default_generator().text("A TEXT", 0.001)
"default_generator" is a class method ("static" in C++ sla…
I'm working on this. A prototype is there already (see the link above). But Windows is a hard thing to support as there are manifold deployment paths.
My current challenge is to enable Qt-less lightweight builds so the whole thing can go into a dis…
Hi,
AutoCAD is dimensionless, but KLayout assumes micrometers by default. You can change this in "File/Reader Options" on the DXF page under "DXF file unit". The value there is in micrometers. So if your drawing is in nanometers…
Hi Mikhail,
maybe you can use the EdgeProcessor for your job. It has a fancy method called "simple_merge_e2p" https://www.klayout.de/doc-qt4/code/class_EdgeProcessor.html#method43.
This method takes edges (point-to-point connections) and…
Thanks a lot for this encouraging feedback :-)
Actually the Python library is not far from being realized. There already are RPM's and DEB packages available for Linux for trying out here: http://www.klayout.org/downloads/pymod/. Please also refer …
Hi Olivier,
normally, it should be possible to delete a shortcut by giving the corresponding menu an empty string. But if the shortcut is assigned by a different method (like through a macro), you can only override but not delete it. You can tell t…
And one more thing: I noticed that when you run a library-connected layout from the command line, the library may not be linked back.
Is the problem there also if you use "File/Open"? Then I need to look in that direction.
I have opened …
One more thing: when you use "save as" - do you have the "Cell context" option ON? If it's OFF, you won't save the context information and KLayout can't restore the library links.
Matthias
Hi Dirk,
"An annotation" means an additional top cell, not the name of the cell.
"LIB.cellname" is actually called "cellname" inside the GDS file. So if you open it with another tool, you just see "cellname"…
Yes, that's right. Constants are written with capital letters in Ruby, that's why the lower-case "r0" was deprecated (see for example https://www.klayout.de/0.24/doc/code/class_DTrans.html).
Matthias
Yes that's right. Merge does not maintain hierarchy.
In some cases, saving to OASIS and loading the file again will remove shape duplicates. But there is no explicit function to do this.
Matthias
Hi Dirk,
KLayout tries to preserve the libraries, but in order to do so, it needs two things:
* An annotation inside the GDS file telling it that a cell is a library cell. KLayout creates this annotation by writing a special top cell in addition t…
By "glue" you mean "resist"?
Foundries usually do inverse tone conversion themselves right before the mask production. You usually don't need to transform it yourself.
Otherwise you can use a boolean "NOT" of a big re…