Matthias

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

About

Username
Matthias
Joined
Visits
1,515
Last Active
Roles
Member

Comments

  • Hi Wimbur, The .lyp file was intended to define the information displayed and to act as a display filter. You can make a layer properties file to show all the remaining layers in some default color and style by adding the following entry at the en…
  • Hi, the idea is to first add an image with "Edit/Add Image", adjust the position and size and then let the script convert that image (or the images) to GDS geometry. Is that what you are looking for? Matthias
  • Hi, that was the effect of a competing request: leave the arrow keys active even if the focus in somewhere else, for example in the layer list. Fulfilling that request was not compatible with Qt's shortcut system (which implements the key binding),…
  • Hi, Sorry, it should say "DBox". I edited the code. You can run "klayout -z ..." with the script, but not with -zz. In the latter mode there is no view object and KLayout is a pure layout processor without any graphics. Regard…
  • Hi chhung, this is code which does that: # input fileinput_file = "t10.gds"# width, height of imagewidth = 500height = 500# rectangle to draw (left, bottom, right, top in micron coordinates)rect_drawn = RBA::DBox::new(-100.0, -200.0, 100…
  • Hi, maybe the message is misleading. It's not a matter of name. Instead there must be exactly one cell without any parent cells. In the cell tree, only one cell must be at the root level (unless you have selected flat cell view). If that is the ca…
  • Hi, no, there is no such option yet. But you can invert a layout by using the "NOT" boolean operation. Draw a big rectangle covering your layout on a different layout and use "Edit/Layer/Boolean" to perform a "NOT" ope…
  • Hi Joel, thanks for mentioning the last fact - as was already trying to dig into the issue :-) I hope I understood the problem description, but I can imagine that refreshing of the library messes up the references to the TEXT instances. Internall…
  • Hi Shirly, I'm afraid there is no way to fix that - apparently the file is shortened, maybe because your disk was full or some network problem. The file size is not particular big, so it's not an issue of some 2G limit or similar. Did you save the…
  • Hi Bertrand, it should compile if you replace the line 422 std::map<std::pair <db::LayerProperties, int>, std::string>::const_iterator ln = name_for_layer.find (*ll); by this one: std::map<std::pair <db::LayerProperties, int>…
  • Hallo, The "make array" function is not readily available for scripting. To be more precise: the scripting feature does not map the capabilities of the user interface but that of the layout database. In the user interface, the code behind…
  • Hi, I don't know whether I understand your request correctly, but I think you want to select a certain area before saving the image. The methods for doing so are: * "layout_view.zoom_box(box)" to select the rectangle given in "box&…
  • Hi, what exactly are you stuck at? Matthias
  • Hi Shirly, yes it is. File->Setup, page Application/Key Bindings. Choose the item for which you want to install a shortcut, enter the desired key into the shortcut box right to the item list and hit "Ok". Matthias
  • Hi Shirly, The scripting feature is not a macro recorder - specifically it lacks "copy" and "paste", because the clipboard concept has been replaced by the ability to manipulate the objects of the database itself. There is a lo…
  • Hi OkGuy, that is actually not the real message. Your layer_proc.rbm is an older version which contained a bug, specifically when displaying the error. You could call that a "meta-bug" :-) This bug has been fixed already. You can either …
  • Hi OkGuy, thanks for posting the script - it's a nice application for the layer processing framework. I don't see a reason why you modification should not work, but I don't have the full script. What exactly is the error message? BTW: the script …
  • Hi, if you have already selected a polygon inside the small cell, you two options: * Choose "Edit/Properties" to show the properties of the polygon. Click "Instantiation" (bottom right) to show the instance path. Double-click o…
  • Hi, what version of Qt are you using? The lighter method was introduced in 4.3, so I am suspecting your version is somewhat older. I'd recommend upgrading to 4.5 at least. Regards, Matthias
  • Hi Marc, complex VLSI examples are hard to get because they usually constitute some intellectual property. Gerber files are much easier to find in the free domain. Look for demo boards or reference layouts. Depending on the nature of the Gerber dat…
  • Hi OkGuy, To get the layer index by layer number and datatype number lnum = ... # layer numberdtnum = ... # datatype numberly = ... # layoutindex = ly.layer_indices.find do |li| info = ly.get_info(li) info.layer == lnum && info.datatype…
  • Hi Adrian, apparently $QTDIR is set on your system pointing to /usr/lib/qt-3.3. It may work if you unset $QTDIR. If that does not work yet, try to specify the Qt installation paths with -qtlib, -qtbin and -qtinc (see build.sh -h). Regards, Matthi…
  • Hi, clip: yes (RBA::Layout#clip). Fill: no (not yet). Sorry. Matthias
  • Hi, The import basically just adds a new top cell above the imported ones. So it's not difficult to implement that - all you have to do is to create a new top cell and two instances of both original top cells. One problem you might encounter is na…
  • Hi David, that is actually a good start. Now let's look how to proceed after you have checked that the shape is a path: # get all verticespts = []shape.each_point { |p| pts.push(p) }# now you can modify the points. "pts" is a Ruby array…
  • Hi, you can use the usual Ruby classes and methods to do that. That is a well documented feature. A brief introduction can be found here for example: http://alvinalexander.com/blog/post/ruby/how-write-text-to-file-ruby-example. Matthias
  • Hi, by "move" you mean "instantiate"? You can place a cell using the "Instance" function - that way you put the contents of a cell into a bigger cell. You can do so multiple times and specify rotation and mirror on ea…
  • Hi Sveta, the full functionality of the merge function is not available yet (I am working on it, but I cannot provide a timeframe). A simple version of the merge function can be implemented by simply loading both layouts into one RBA::Layout objec…
  • That is why a warning pops up every time you start KLayout in "non-add" mode :-) Good you found that yourself. Matthias
  • Hi Max, there never was "movie animation" or "color gradient" support. So there is nothing gone :-) It is possible to animate the layout by employing Ruby scripting (i.e. http://klayout.de/forum/comments.php?DiscussionID=252&am…