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
Between a moment ago and the moment later you did something that spoiled your circles.
Most of us believe in causality. So something made the circles break. That does not happen spontaneously. Think what you might have done and get back here once y…
You need to specify the full path in KLAYOUT_PYTHONPATH and as it's not set in advance, you cannot add to it:
export KLAYOUT_PYTHONPATH=$(python3 -c "import sys; print(':'.join(sys.path))"):/your/path
Of course it's easier to add your pa…
Forgot to mention that you can still set the current view's transformation (not affecting new ones) with this one-liner script:
RBA::LayoutView.current.set_config("global-trans", "r90")
Hi Luciano,
For the purpose of preparing special views there is another feature: layer view transformations (see here: https://www.klayout.de/doc-qt5/manual/layer_source_expert.html#k_3).
You can attach arbitrary transformations (also shifts, rota…
Hi Nakul,
The edge shift operation is called "sized" (https://www.klayout.de/doc-qt5/about/drc_ref_layer.html#sized). With a negative value you'll get a shrink.
Matthias
Hi Nakul,
The method is "not_inside". Enclosing is a distance check. For details see here: https://www.klayout.de/doc-qt5/about/drc_ref_layer.html#h2-1801
Matthias
What do you mean? Using Linux with a better libpng?
Or do you mean the rasterizer. If you're familiar with C++ you can take a look here: https://github.com/KLayout/klayout/blob/master/src/db/db/dbPolygonTools.h (function "rasterize"). But…
Apple is difficult to support for me as it development is bound to (expensive) Apple hardware. Travis used to offer continuous integration support for Apple, but they dropped their generous Open Source support. So there is little support I can give …
I found this old post regarding that topic: https://www.klayout.de/forum/discussion/comment/2279#Comment_2279
The key method is "Cell#copy_tree".
Matthias
@Nakulh My general concen is a quality one, because the images are intended for display. So one pixel more or less is not much of a concern on a screen while it is on a mask. Pixels may also be shifted. Drawing speed is more important for screen dis…
The syntax is "V34 - CAPM". And you have to put it into a symbol. So you can define a symbol, .e.g.
V34_OUTSIDE_CAPM = V34 - CAPM
And use that for V34 between M3 and M4.
Please see here for details: https://www.klayout.de/doc-qt5/about/…
For an example how to do that see here: https://www.klayout.de/forum/discussion/comment/5948#Comment_5948
I cannot stop emphasizing that a PCell is just a very complicated way to call a function which generates layout. Unless you have a good reason…
The script line worked for me. Please make sure you are adjusting the box coordinates accordingly.
The PNG writer is a system-supplied one. I can't overcome it's limitations.
The forum links have change slightly. The discussion #167 link is: https…
In order to see the "cancel effect" you have to check the return value of "dialog.exec". It is an integer and equal to 0 if you pressed "Cancel" and 1 if you pressed "Ok".
And thanks for the note about the &q…
Well, the code is a bit weird.
"input" is probably not pointing to the layer you want to have.
Simply use:
input = ly.find_layer(85, 0)if input is None: ... layer not found ..
The search loop isnt' correct. Layer indexes (or rather ID…
Thanks again for the testcase.
First of all, the crash is probably due to an unchecked cell index value. I admit that could be somewhat safer, but that's an effect of the lean data structures in layout objects. Anyway I'll put better error checking…
In case you go for the "dominant via" solution and to provide an educational example for a custom device extractor, here is a solution.
The basic problem is that KLayout does not offer a "vertical resistor" by default, but we ca…
Please read the log:
/x86_64-suse-linux/bin/ld: warning: libpython3.7m.so.1.0, needed by /nfs/pdx/disks/ad_fdk_fill/tools/klayout-0.27.4/build-release/buddies/src/strm2cif/../../../libklayout_pya.so, not found (try using -rpath or -rpath-link)
Loo…
@ravn Is it possible to supply a complete sample?
I don't see any obvious mistake in your code. But I would like to debug the issue. I noticed some crashes on Windows and as the Windows build uses Ruby 3, I suspect there is something different with…
@alexlpn Sorry, I don't fully understand. You say you're changing a script in a text editor separately and then expect KLayout to load it somehow?
This will not work for a variety of reasons. The main reason is that KLayout embeds a Python and Ruby…
It's process_cell.shapes(layer_index) (not "layer_info").
But the script is weird. It's very complex - e.g. LayoutView is not a LayoutView, process_cell is simply RBA::Application::instance.main_window.current_view.active_cellview.cell, t…
@anatolyb So you didn't mention that you are looking for the resistance of a periodic via chain. This is a typical yield or reliability test structure, not a resistor you would usually use in a design.
First of all you need a way to tell wiring fro…
@yangwoo It actually is too narrow there! Why would you like the check to cheat here?
If for example printability is an issue, it will (except under anisotropic exposure conditions) not make a difference between slanted or non-slanted configuration…