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…
Hi Francois,
I'd like to mention there is an alternative method now inside the DRC engine.
The following DRC script prints the area of layer 16, datatype 0:
puts input(16, 0).area
That method is typically faster than the Ruby code. It will also …
Hi Marben
bascially you could have it as simple as that:
view = RBA::LayoutView::currentli = view.begin_layerswhile !li.at_end? lp = li.current new_lp = lp.dup new_lp.visible = (lp.source_layer == 16 && lp.source_datatype == 0) view.se…
Hi Itamar,
Instead of constants, you can use global variables, i.e. "$image" instead of IMAGE. That avoids these redefinition warnings.
Global variables are not common in Ruby. With global variables you risk potential name clashes with o…
Hi Marben,
that is a little bit more tricky since layers are not addressed directly. Instead the layer list is an object by its own and the concept is that you traverse the layer list tree with a LayerPropertiesIterator in a read-only fashion. Once…
Hi Marbs,
here's a sample code
cv = RBA::CellView::activecv.cell.shapes(cv.layout.layer(104, 0)).insert(RBA::Box::new(0, 0, 100000, 150000))
This code requires KLayout >= 0.23 (previous versions did not have the convenience methods used herein…
Hi Rakesh,
if you use SCMOS rules, the scaling is intended. That is implied by "scalable" CMOS. The idea is that you draw your layout on a technology independent scale and scale it down according to your target technology. I assume that 2…
Hi Geev,
but maybe there are system-wide environment variables? Maybe inside some user profile? I though that the kernel architecture of MacOS is based on BSD and environment variables are available somehow. I found something about "/etc/launc…
Hi David,
that was actually the intention of "close" and "far" style (See "Display/Background" in the setup dialog). The "close" style is used when zooming into enough so that displaying the original grid mak…
Hi David,
yes there is, although not directly:
RBA::Application::instance.set_config("grid-micron", 0.1.to_s)
The set_config method is pretty generic. You can basically set every parameter that is stored in the configuration file (you'l…
Hi Francois,
I think there is a closing round bracket missing at the end of your text (copy/past issue?). I changed the Ruby version - maybe the older one was less picky. Could you add the bracket and try again?
Matthias
Hi Rakesh,
you don't need any technology setup in KLayout to get the dimensions right. GDS is specifying dimensions inside the format through "database unit" and "user units". Maybe there is something wrong with that in your cas…
Hi Geev,
KLayout is on Qt4 still. Qt5 is a major step and not necessarily compatible with Qt4. I did not port the code yet and would rather wait it to become somewhat more stable.
Apart of that I know of some build issues with the clang compiler v…