Matthias

About

Username
Matthias
Joined
Visits
16
Last Active
Roles
Member

Comments

  • Hi Dave, KLayout is a not a Ruby extension, but instead Ruby is an extension to KLayout. I suspect that Rake starts the normal Ruby interpreter and that one does not know about the extensions that KLayout adds to the interpreter embedded into itse…
  • Hi, It's perfectly valid to reference cells from other libraries from within PCells. Your code wasn't wrong. The problem is only that the reference was a library reference and the source library was the library the PCell lived in. Regarding your d…
  • Hi friendfx, I was able to debug that issue somewhat. Apparently the problem arises due to the recursive library reference in the parent PCell. That needs a little explanation: a PCell imported from a library is actually a twofold indirection: fir…
  • Hi friendfx, thank you very much for providing that perfect test case. That makes debugging far easier. I can reproduce the issue, although I am able to save the file. But on closing the application crashes. I am debugging it right now, but the m…
  • Hi David, many thanks for taking care of this and me :-) Matthias
  • Hi Dave, The "-z" command line option is your friend. You can use it with "-r" to run a script without starting the application: Here is a sample: include RBAdialog = QDialog.new(Application.instance.main_window)dialog.setWind…
  • Hi, Can you try to disable this printer? I'm using Ubuntu 12.06 which allows disabling of printers in the Printer Setup Panel. I'm using Qt's printer support and I'm guessing it won't try to connect to disabled printers. Matthias
  • Hi, David, thanks again for your valuable comments. To be frank, "snap to objects" is only a weak approximation. It will snap the mouse pointer to existing edges or vertices when moving the mouse. This applies to drawing (dragging of edg…
  • Hi euzada, there is no way to directly bind a flavor of the align function to a key. You can bind "Align" as a whole, but not the specific subfunction. It's possible to recode the functionality in a script but that will suffer from some …
  • Hi, I don't know how the check is defined precisely, but here is some suggestion: # a inside b by 100nm except where a edges are coincident with b edgesae = a.edgesbe = b.edges# check:# first part: all a outside b# second part: all a edges not coi…
  • Hi all, thanks for performing these tests. I see some memory increase but not as pronounced. I assume the problem is caused by some events being sent to the widgets continuously (timer, mouse move etc.). A Qt widget needs the ability to reimplemen…
  • Hi gabry123, to initialize the point "pt" you'll have to use pt = RBA::Point::new(9742, 191932) Matthias
  • Hi covalent, I can see some memory allocation of roughly the same magnitude, but it seems to saturate in my case after allocating 20M of memory. I'll have to investigate that, I think it's the cost of some Ruby objects being allocated in background…
  • Hi all, I can reproduce the issue, although not that easily. Plus I can give an explanation: The problem is basically the nesting of layouts. As mentioned earlier, it's not possible for Ruby to tell whether an object is owned by Qt without further…
  • Hi gabry123, A simple solution is the RecursiveShapeIterator object: cell = ... # the top cell where you are startinglayer = ... # the layer indexpt = ... # the point (in database units) at which you are looking si = cell.begin_shapes_rec_overlapp…
  • Hi covalent, I think the problem is caused by a lifetime issue: if you create a Widget in a Ruby variable, Ruby basically controls the lifetime of the widget. But the variable "wdg" goes out of scope, so the Ruby garbage collector is free…
  • Hi David, thanks for mentioning this. Actually, polygons with holes are supported, but can neither be drawn, nor saved (they will be converted into simple polygons). So there are somewhat exotic. That's why editing of such polygons may have some …
  • Hi friendfx, The problem only exists on Windows - on Linux there is no such issue, because KLayout will simply take the system's Ruby installation and installing new packages is a matter of seconds. The basic problem on Windows is to build an appl…
  • Hi Ganesh, you're basically trying to take the application apart which means understanding the dependencies of roughly 500k lines of code. That use case was not planned for and the interfaces at which you'd have to cut the application are internal,…
  • Hi David, thanks again for pointing that out. I'd like to mention another way: you can load both layouts. Then you select all layers of the second layout (those with "@2"), group them (Layer list right click and choose "Group")…
    in Mirroring Comment by Matthias April 2015
  • Hi friendfx, Regarding the properties dialogs and the selection invalidation: it's true, the dialogs do a little more - they update the selection to reflect the new situation. But right now, the selection cannot be modified inside a script, so tha…
  • Hi friendfx, yes, the version string is a display topic. It's not updated currently by the snapshot cronjob. I'll fix that. Thanks for pointing that out. Matthias
  • Hi David, The layout file contains the current layout, so it's always possible to recover the layout. The PCells are stored as normal copies and if KLayout does not find the PCell corresponding to a cell if will just keep the normal cell, hence con…
  • Hi, when you execute the script directly when loading it, you will not find a layout since that is loaded after the script. But there is a far easier solution: you can instantiate a layout without user interface and directly manipulate the content…
  • Hi all, well, I guess there is some explanation required :-( "cell.change_pcell_parameters(inst, ...)" will adjust the PCell parameters if the instance within cell, not of the instance of the cell. That is an important difference: the ce…
  • Hi friendfx, See my comments about the build in the other post. I don't know the reason for the build fail but we should be able to solve that. Regarding the choice of the language: there is a constant fight between Ruby and Python factions. Pytho…
  • Hi David, You're right. I am more surprised that the same issue does not occur in normal mode. Apparently I was coding smarter there ... Thanks, Matthias
  • Hi friendfx, thanks for the build script patch - I'll include that in the snapshot. The build issues are strange. The message indicates that there is something wrong with the Qt bindings feature. The feature seems to be halfway enabled - the refer…
  • Hi friendfx, sorry for the late reply ... I'm simply too overloaded currently. For PCell's the concept of a layer is a very different one. A PCell parameter has to be something abstract, since it's valid across instances of an layout. Layer index…
  • Hi all, thanks for providing the test case. I was able to reproduce the issue and I have to confirm it's annoying. I was not aware of the possibility to integrate so much Ruby code into the application's vital events, so I was not testing the inter…