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
Hello,
I got somewhat further, but did not succeed yet.
Here's my main problem:
* KLayout is built on Qt
* Qt supported toolchain for 64bit is MSVC VC10 only, hence KLayout is built with VS2010
* Ruby is embedded into KLayout
* Hence the Ruby int…
Sorry, got confused :-)
In the Windows build I included everything that came together with the 1.9.1 tarkit. I think that is what stdlib-1.9.3 covers. I noticed however, that zlib support is missing (simply because I did not have zlib installed the…
Hi Pavlo,
you mean creating an array?
Well, KLayout does not offer edge-to-edge instance, but you can establish a pitch (cell to cell distance).
If you know your cell's dimension (i.e. measure with a ruler), you can compute the pitch (pitch = wid…
Hallo,
The reasoning was that typically you would not like to browse through more than 1000 errors ... :-)
But you can easily choose a million or more. But if you ask for a very high number of markers, you should consider using a layout for output…
Hi Bob,
thank you for that suggestion.
I figured out in the mean time that KLayout comes with the rubygems module included, but I have not found a way to use them to install gems. One problem is the zlib.
I'll keep you updated.
Matthias
Hallo,
not .lym files but regular -rb files.
Let me explain that: .lym files are "annotated" scripts. They are script code plus some metadata that allow KLayout to determine the script language, the title and whether the script shall be …
Hi David,
well, it probably can be done, but the path is a stony one.
You cannot directly catch mouse events. KLayout implements functionality based on components called "plugins". A component can register itself inside the system and ad…
Hallo,
Code for generating a screenshot can be found here: http://www.klayout.de/useful_scripts.html#screenshot.lym
Fetching the shapes is easiest with the RecursiveShapeIterator object:
ly = RBA::CellView::active.layoutlayer = ly.layer(8, 0) …
Hi arided,
well, actually the behaviour is intended.
The implementation of "sized" and other functions which accept distance values is such:
* If the value is a Float type, it is taken as micron units
* If the value is a Fixnum type, it…
Oh yes ... maybe I forgot to mention that. The order of the commands is important. "select" is effective for subsequent input statements. Once a layer is created by "input", changing the cell selection (as well as layout, top cel…
Hi Laurent,
just changing the drop-down selector does NOT change the technology assigned to a layout. You'll have to PUSH that button too or select the technology in the layout properties (File/Layout Properties). See the description above.
If a t…
Hi Itamar,
what grid is the original layout drawn on? If the layout is on a 100nm grid originally for example, then you'll need 0.1nm database unit because 100nm will scale down to 2.8nm which needs 0.1nm for exact representation.
Matthias
Hi Laurent,
the script moved to a public SVN repository. I updated the URL above - you can download the script again.
Did you read the documentation about technology management? It says that .lyt files are intended to import and export technology …
Hi,
Here is a sketch (not tested):
std::vector<db::Polygon> a;a.push_back (db::Polygon ());a.back ().assign_hull (hull.begin (), hull.end (), db::cast_op<db::Point, db::DPoint> ());db::EdgeProcessor ep;// Produce small version (d = co…
Hi Itamar,
maybe the database unit is too big to accommodate a layout with smaller scaling?
Scaling won't change the database unit, which is a fundamental layout unit. So if for example, you scale down a line with width 1 um with a factor of 0.028…
Hi,
I did not want to create dependencies on Ruby installations, so KLayout comes with a built-in Ruby interpreter. It is capable of loading gems, but installing them is not going to happen the usual way.
On Linux, KLayout grabs the system-install…
Hi Euzada,
I can't confirm that. Let me explain, how I tested it:
* I create a new layout with cell "TOP"
* I create a new layer (1/0)
* I create a new cell "cell1" and draw a rectangle on layer 1
* I create a new cell "ce…
Hi Ken,
for including Ruby it's typically sufficient to include the Ruby interpreter (i.e. from ~/usr/ruby/bin in your case) in the PATH. If you do so, the build script will determine all the configuration paths from that installation. You'll just …
Hi,
I think you refer to the thread http://klayout.de/forum/comments.php?DiscussionID=208.
There is a Ruby script which allows to define cross section recipes by describing process steps (deposition, etch, planarization ...). The implementation is…
Hi Itamar,
I think what you are looking for is File.dirname:
File.dirname("/home/matthias/somefile.txt") -> "/home/matthias"
I think you mixed up "Expressions" with Ruby. "Expressions" are NOT Ruby. They…
Hi Euzada,
Without further specifications, KLayout will run the DRC on the current cell shown in the view. If that is the top cell, all child cells will be included.
You can however include and exclude parts of that hierarchy. Excluding something …
Hi Rohan,
You can save an OASIS file to textual GDS which is more or less accessible by other programs. But SQL? Do you have some database mapping in mind? I think you will blow any database system even with small-scale layouts, if you map an OASIS…
Hi,
Lacking MacOS hardware and the will to generate negative revenue by spending money on such, I am not actively supporting MacOS at the moment.
There are two options:
* ask Apple to donate hardware to me so I am able to support their system
* o…
Hi Luca,
you can try to link against the static ruby lib by using
build.sh -rblib /usr/local/lib/libruby-static.a
but static libraries have been deprecated in some Ruby versions and some symbols may be missing. Hence there is some chance it won't…
Hi Luca,
it looks like you don't have the ruby shared object on your system. Since you have Ruby, it's likely you have a static library (libruby.a) in /usr/local/lib for example, but KLayout won't build against that.
To solve the problem, you can …
Hello,
you can clip the part using the clip tool (Edit/Utilities). You'll need to somehow specify a rectangle (numerically, just the visible part or through a ruler). The clip tool will produce a new cell which you can save with "Save current …
Hi Marben,
well, that is the selection that is not accessible through Ruby - maybe it will in future versions, but I can't promise.
You can manipulate objects though. But that depends on what you want to do with the selection.
Matthias
Hi Laurent,
thank you for pointing that out.
It is even possible to extend the DRC language with a local density check:
# Adds a density check method## Synopsis:# out = polygon_layer# dens_check(out, input, tile_size, num_threads, min_density…
Hi Marben,
What do you mean by "select"?
The "selection" inside the view is not something you can control through Ruby currently. You can read and clear the selection but not select certain objects.
If you plan to manipulate t…