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,521
Last Active
Roles
Member

Comments

  • Hi Canny, the easiest solution is to prepare a .lyp file with the layer properties (colors, stipples, styles and the layers you want to show) and load the layer properties: # load the layoutmw = RBA::Application::instance.main_windowmw.load_layout…
  • Hi Laurent, basically layer index and layer properties are two different items - one is the related to the layout database and one to the view. To find the layer properties for a layer index, you'll need the LayerPropertiesIterator object and the f…
  • Hi David, here are some answers to your question: For 2.) you'll have insert a shape rather than changing it. So # instead ofshape.path = new_path# do:shape.shapes.insert(new_path) If I understand your request correctly for 3.) you want to repla…
  • Hi David, I don't have time right now to look into your code, but I hope I can do so soon. Regarding the key assignment: it's working on my installation but under the following conditions: * The key must be pressed in the layout window (not insid…
  • It was meant as a sample :-) Please use any keys you like. Matthias
  • 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…