Hi Itamar,
the Cursor class is part of the Plugin framework and it is not employed outside of it. So unless you plan to implement extensions based on that framework, that class will be of little use.
If you have a build with "Qt binding"…
Hi David,
CIRCLE is not a good example - the "handle" is basically an internal parameter which is not a shape, but a single-point box which represents the handle by which you can graphically edit the radius.
A CIRCLE PCell does not need …
Hi David,
thank you for that impressive example and sorry for the late answer.
The problem is simply that the transaction is not finished by "commit":
... p 'Done!' ensure lv.commit endend
When a transaction is pending, redrawi…
Hi Joel,
thank you for reporting that issue. It was very important since it demonstrated a lack a backward compatibility.
I have fixed the problem in the latest 0.23.4 release. With that release, the serialization of parameters into GDS compatible…
Hi Arided,
there are many sizing functions - DRC, user interface, scripts ... which are you talking about? Can you be more specific on what you are planning?
And yes, the basic versions are flat. This is to avoid problems with touching instances o…
Hi David,
I see what you mean - it's not that you like to create a watchpoint which triggers a debugger halt when the value is changed. That will be difficult but adding expressions that are evaluated automatically will be feasible.
On the contrar…
Hi David,
Regarding 1.), I just answered a similar request here: http://klayout.de/forum/comments.php?DiscussionID=439&page=1#Comment_1873. In your case, since you have a STROKED_POLYGON PCell, the parameters are
name type unit d…
Hi Ayata,
Well, if your goal is to create texts through scripting, then you might consider coding the text generation individually. You'll need a function that produces a polygon object for each letter or digit and apply that function to generate t…
Hi Itamar,
Ruby is not VB and I am not sure whether it can be done within the constraints of the Ruby interpreter. I'll have a look into the ruby debugger and check whether I can copy their implementation if there is one.
Matthias
Hi ayata,
this should be possible without having to use a script.
* Create an new instance
* Choose cell "TEXT" from the "Basic" library.
* On the PCell tab enter the text, select the layer and choose a magnification (that will…
Update: I tried to link KLayout/VC10 against MinGW Ruby from RubyInstaller, but I ran into serious trouble with some standard C functions. I suspect that they are routed into MinGW via the Ruby library and that leads to a mixing of VC and MinGW code…
Hello,
did you have a look into the "tiling tool" feature already? Please see http://klayout.de/doc/manual/tiling.html for details.
Maybe ruby scripting is not require for that purpose.
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…