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
Hallo,
in GDS there is in general nothing like a "include". So unlike other system which have the concept of libraries, a plain GDS editor does not allow to refer to external files except by copy & pasting. You're right that this is a…
Hi Canny,
I guess that the complete cells keep their names while the incomplete clip variants are named "$1", "..$2" etc. So it may be possible to identify clipped variants by looking for a "$" in their name (unless th…
Hi Ken,
I did not have time yet to look deeper into the xsection script. But it probably it requires some rewriting.
Did you consider to merge both layouts before applying the xsection? For example by using the "File/Import Layout" funct…
Hi Jean,
To move a shape that you have already drawn, use the "move" mode. Select this mode, pick the shape you want to move and drop it at the desired location.
To resize a box, use the "Partial mode". This lets you select a c…
Just a note from my side: in the upcoming 0.22 version there will be a way to flip/rotate just the view - that is, the layout is shown flipped for example, but the file itself will not change.
Maybe that will be helpful in certain applications, for…
Hi Ken,
sorry of the late answer.
For b.): you're right. This will set the dabase layer name accordingly and then it's shown in the layer list.
For a.): I don't think there is a straightforware solution currently. If I understand you correctly, y…
Hi Ken,
That is actually possible. Here is a simple solution:
Change the constructor of the XSectionGenerator object (around line 490 of the script), so you can supply a file path
# The main class that creates a cross-section fileclass XSectionGe…
Hallo,
Thank you for that nice feedback :-)
I'll put the status bar request on top of my TODO stack as well, but it grows from day to day, so I can't tell when to deliver it.
Best regards,
Matthias
Hi,
I'll put the scaling function on my TODO list, but it has grown pretty long now. So I can't promise such a function soon.
If you want to scale a layout in code, here is a sample:
ly = ... # layout to scalenew_dbu = ... # new database unit# co…
Hi chhung,
the easiest solution is to flatten the layout. After that there is no hierarchy and the text coordinates should correspond to the coordinates as seen from the top cell. But that modifies the layout and bloats up you data potentially.
A …
Hi chhung,
first, I'd apply the changes suggested above. I'd also suggest to use Layout#each_cell to iterate over all cells and test for shape.is_text? before using shape.text.
But the reason for the problem appears to be something different. I su…
Hello,
well, doing it properly and efficient simply requires a couple of lines of code ... :-)
Basically, KLayout is an application, not a library. It's build on some kind of framework which you could reuse (given you observe the implications of t…
Hi Stefan,
I guess you use "Delete cell" from the cell tree. This operation deletes the cell as a whole (and in consequence of that all instances of it).
To delete a specific instance, reduce the hierarchy levels such that the instance y…
Hi chhung,
I guess the problem is caused because when you multiply a Point object with a double value (the DBU), it still stays an integer coordinate point object.
For example:
RBA::Point.new(100,200)*0.1 -> RBA::Point(10,20)
But:
RBA::Point…
Hi David,
Given the latest KLayout version, a CIF circle is converted to a single-point round-ended GDS path or to a OASIS circle object. You can check that by double-clicking at such a circle. The properties of that circle should show a path with …
Hi Jisha,
I'd suggest you create a patch with your changes. That should simplify the task of applying your changes to KLayout's current code base.
One (elaborate) way of doing so is for example to employ the Subversion configuration management sys…
Hi Jisha,
I'd suggest you create a patch with your changes. That should simplify the task of applying your changes to KLayout's current code base.
Best regards,
Matthias
Hi David,
this is a job for the layer processing framework http://www.klayout.de/useful_scripts.html#layer_proc.rbm. The ruby module itself contains some documentation about how to write processing scripts.
Although it is intended as an interactiv…
Hello,
right now the easiest way to convert a layout to a different database unit is to write it to a temporary file and use the options provided by the '''writer''' to scale the layout:
ly = ... # layout to writenew_dbu = ... # new database unit …
Hi footang,
Thank you for that suggestion. Actually I figured that the path might be pretty long, so it won't display in the limited space of the status bar.
If you double click the item and choose "Instantiation" in the properties dialo…
Hi Canny,
I think the problem is caused because not every integer between 0 and l3.cells might be a valid cell index. The program should not segmentation fault, but I can't exclude that in every case.
To find the cell called "TOP" better…
Hallo,
right now it is not possible to modify built-in dialogs in Ruby. Or at least not to the extent you wish that to happen. Under certain circumstances you might be able use qt4ruby for that purpose but I that's a stony path to walk ..
If you …
Hi Canny,
unfortunately not all functions are available as script methods. One of them is "adjust origin". Since it is more like a "beautification" of a cell, I did not consider it work making a script method out of that.
Howev…
Hi Canny,
Ok, given that requirement the script looks somewhat different
## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; e…
Hallo,
you can move an instance when it's shown as a box. Decrease the hierarchy level until the instance is shown as a box instead of the detailed view. Then you can pick the box as any other object and move/delete/rotate the instance.
Regarding …
Apparently it does not have to do with the linking mode, but they dropped the "." in Ruby 1.9.2. Here is a discussion thread about that: http://stackoverflow.com/questions/4965556/why-isnt-current-directory-on-my-ruby-path.
The solution a…