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
Hi David,
it should point you to the current cell in the cell tree. If you have a big tree and browse through the hierarchy which having selected one cell way below, you may get lost. "Where am I?" helps you to get back.
Matthias
Hi David,
I'm a overachiever too :-)
If the "read again" approach is too simplistic, I can offer Cell#copy_tree_shapes. There is a version of that method which takes a CellMapping object which allows to be very specific about what target…
Hi Alessando,
thank you :-)
Your problem can be solved using a DRC script. The basic operation is that:
input(1, 0).merged.output(1, 0)input(2, 0).merged.output(2, 0)...
You can even put that into a loop:
# layers 1 to 100(1..100).each do |l| …
Hi db,
your description calls for automation, but it's very difficult without an actual sample.
There is another feature which may be helpful to simplify your task. You can align "objects" using the "Edit/Selection/Align" featu…
Hi Laurent,
the net tracer is not accessible through scripts currently. It's an interactive feature only. I plan to provide script binding to the net tracer, but that will be a major feature.
Regards,
Matthias
Hi,
I'm afraid I don't understand the question.
As sketched above it is possible to move the contents of a cell, so it's basically possible to set the origin to any position - by moving the content in the opposite direction. It's not as convenient…
Sure that's possible. Just exploit the power of Ruby:
# normalize to 0..1max = data.maxmax < 1e-10 && raise("Overall density too low")data = data.collect { |d| d / max }# now the original code follows:if nrows * ncolumns > 0…
Hi Itamar,
the script should print out the densities in percent on the console (if you run it in the macro editor for example). What are those numbers? Do they make sense?
If yes, then it's somehow related to the data mapping inside the image.
Ma…
Hi David,
you love to write text do you ... :-)
I'll try to answer your points, but first of all, the solution you look for may be as simple as this:
ly = RBA::Layout::newly.read("file1.gds")ly.read("file2.gds")
The second re…
Hello,
I guess you mean "adjust origin" ... When I understand your request correctly, you want to make that point the new origin (0, 0). That boils down to shifting the content of the cell by (-x, -y).
You can shift the contents of a cel…
Maybe I was not explicit enough: if you're seriously looking into Gerber, there is gerbv and many other tools. KLayout is a silicon layout tool and there are multiple layers, a particular idea of connectivity, few round features and not much use for…
Hi Olivier,
A Gerber file does not make much sense as a single entity. A "project" describes a PCB board. A board will almost always consist of multiple files - artwork, drill files and maybe others. Hence, to import PCB data to a multila…
Hi Tyanata,
the window geometry including full-screen mode is encoded in
<window-geometry>...</window-geometry><window-state>...</window-state>
But the value is some binary string that Qt uses internally to store the windo…
You tyanata,
you can configure all of that in the Setup menu. The configuration is stored in a file called klayoutrc in KLayouts home folder (on Windows typically in a folder called "KLayout" in your home directory, on Linux in ~/.klayout…
Hi David,
error 13 means "permission denied". Maybe there is a file already called "drc.lyrdb" which you are not allowed to write? Or the directory is not writeable?
Anyway .. The pure Ruby object you're are looking for is &quo…
Hi Olivier,
Gerber import is not straightforward since Gerber files are not necessarily self-contained entities. You'll need a little background knowledge for that.
Did you have a look at http://klayout.de/doc/manual/import_gerber.html yet? I hope…
Hi David,
thank you for your comments.
The 0.21 PDF manual was contributed by a user and I really appreciated his work, so I put that on the server. Frankly, it got a little outdated, because I was working on the online documentation that time and…
Hi all,
I had a look into my sample CIF files and here is my explanation:
Although CIF is among the well documented formats, there is no strict specification how to represent the GDS top cells in CIF. CIF features one anonymous top level and an op…
Hi,
well, there are multiple ways to achieve that. A quick solution is the following:
* Draw any box on your target layer
* Double-click the box to show the box properties dialog
* Enter 21000 as the box width and height, click Ok.
* Hit Ctrl+B to…
Well, I guess you have a hierarchy here ...
What you see is the top cell - KLayout will not show the hierarchy in full detail initially by default. What you see is the top cell's bounding box. To get the full details, choose "Display/Full Hier…
Hi,
The solution is that simple script:
file = RBA::FileDialog::ask_open_file_name( "Select Layer Properties File", "c:\\", # Enter your favorite folder here "Layer Properties Files (*.lyp);;All Files (*)")file …
Hi Aaron,
the displacement is the forth parameter of the ICplxTrans constructor. The other parameters are: magnification, rotation angle, mirror flag.
The operations are applied in that order: magnification, mirror (at x axis), rotation and finall…
Hello,
thanks for the suggestion. In viewer mode, it has to be a "search only" tool naturally :-)
What do you mean by "hierarchically below"? Do you mean all cells below the current one, but only once? "All cells" wil…
Hi Bob,
there is actually no rounding involved. At least not one I can see. If you let the script print the absolute value of the area, is that correct or not? Maybe the cell's extension is bigger than the dimensions you assume (i.e due to layout o…
Hi Aaron,
you'd like to rotate the box before you insert it?
Well, the solution is to use a polygon (a box won't rotate by an arbitrary angle) and to use a transformation:
# Rotation by 15 degree, no mag, no mirror, no displacementrot15 = RBA::IC…
Hi David,
thanks for that awesome lot of input :-)
Here are my comments:
1.) this is handled by Qt ... I agree that's not a nice behaviour and I'll try to figure out whether that is possible.
2.) I'm not aware of this. Basically there are differ…
Hi mabi,
it's quite unusual to have a randomly generated top cell name.
Here's is script which does a reload plus selects the top cell of the layout:
mw = RBA::Application::instance.main_window# reloadmw.cm_reload# set the top cell of the current…
Hi Bob,
It is :-)
This question arises quite often. A frequent thread covering that topic is this one: http://klayout.de/forum/comments.php?DiscussionID=25&page=1#Item_14.
You will find some information there how to use the DRC functionality …
Hi Itamar,
there is no such feature right now, but there are two solutions:
Use this script: http://178.77.72.242/svn-public/klayout-resources/trunk/scripts/show_markers.lym. It will list all markers in the view (up to 100). Please see the disclai…