Matthias

About

Username
Matthias
Joined
Visits
15
Last Active
Roles
Member

Comments

  • Hi Steven, again, without a sample I can hardly say anything. Instances are not necessarily created when reading DEF. You say, you don't have LEF, so where should instances come from? Matthias
  • Hi Dominik, I have not tested the code myself since your version wasn't complete. Maybe you can paste or publish your real version in some other way so I can try that. Anyhow, _destroy is not mandatory, so without it should do too. But in general,…
  • Hi Dominik, the reason why the tiling processor helps is that it will free memory immediately while in Ruby, the garbage collector will do this occasionally. You can however, enforce memory release with the "_destroy" method. Looking at …
  • Hi Dominik, I have some doubts whether this code is correct. Where is the gate area used? Maybe I am missing something - if you use Markdown markup (four blanks in front of code lines), the code will be easier to read. Basically a specific rule li…
  • Hi David, yes, on Linux there is no difference between a console and GUI application. Just run klayout with -b and it will return when it's finished. You can also evaluate the exit status to check for errors. On Windows, you can try compiling as a…
  • Hi Steven, I think I can reproduce the issue and tried to fix. When reading the spec again I assume there is another issue hidden behind that one: if the wire is continued, it needs to be continued at the point of the via. See my comments on GitHub…
  • Hi David, "Ruby" is just a synonym for "a reasonable language" :-) Python will do as well. The issue you see with the .exe returning immediate is because "klayout_app.exe" is built as a GUI application. On Windows, an…
  • Hi Jaspreet, that's not your code. It's just the first two lines. Where is everything else? Matthias
  • Hi Vivek, that will happen if the database units of the layouts are different. In general you should make sure you're working with a common database unit. Please check whether this is the case and correct that by saving the layout with a different…
  • Hi chhung, the "semi-hierarchical" approach is a very weak approximation, so please don't expect the same results as "hierarchical=true". It is valid only, if all inputs for an operation are available within the same cell and if…
  • Hi Stefan, that's not related to not having LEF. I assume a reader bug or maybe the specification got updated. I have limited access to DEF sample and the variety of flavours is overwhelming, so I'm depending on your inputs. Could you provide a (re…
  • Hi chhung, Setting the "hierarchical" flag to true will make the boolean collect all shapes include the ones from the child cells. That's what we don't want to do if we iterate over the cells independently. And regarding parallel runs: I…
  • Hi David, yes, that's right. And of course that should be more clearly indicated. Actually the only format supporting user properties in all flavours is OASIS. GDS2 only supports properties with integer keys and string values (while everything wil…
  • Hi Lukas, you're right. This feature is basically missing. Internally that's the "is_dirty" flag. It should be straightforward to implement. I have filed an issue here: https://github.com/klayoutmatthias/klayout/issues/7. Kind regards, …
  • Hi chhung, "semi-hierarchical" mode is not available for DRC. I can be emulated with RBA, but it's easier with the upcoming 0.25 version. For this version there will be a constructor RBA::Region that takes a Shapes container: lv = RBA::L…
  • Hi Anton, sorry, I think I caused some confusion because of a copy/paste error in the Image class documentation. "get_pixel(x,y)" can to be applied to *monochrome" images only. For color images, it will always return 0. To get the p…
  • Hi Chris, I wish I could give a better message in this case :-) But that's actually a deeply buried assertion which is a general hint that something is inconsistent. Matthias
  • Hi Anton, thanks for providing this workaround and for reporting this problem. Frankly, I'm not aware of this topic. Can you briefly describe the issue? If I understand it correctly, certain TIF files are not read properly and the solution consist…
  • Maybe ... but that's all a lot of effort and I'm tired. No offence meant. Matthias
  • Ah .. right. The "cm_..." functions are stupid and don't report status or similar. They are slots too, so return values are not feasible. Errors will also not become visible to the code by the way. Only a message box will be shown. You ca…
  • Hi Lukas, I stand corrected - Macros are associated with a technology. Libraries are not (currently). The focus of technologies wasn't libraries so far, so a library is not a true technology component yet. That's also the reason why tech/xxx/librar…
  • Hi Lukas, I have not considered to unload PCell libraries so far. Basically it's possible, but the implications are severe and it will be difficult to catch potential interference scenarios. And once something is loaded into the Python interpreter …
  • Hi Lukas, The "File/Save" function can simply be triggered with RBA::Application::instance.main_window.cm_save (the cm_... functions are the ones that are tied to the menus, so by calling them you do exactly when the corresponding menu …
  • Hi Chris, this message basically says that KLayout can't find an object it likes to iterate over. This can happen if you modify the objects "substantially" while iterating over them. Setting a property is a "substantial" modific…
  • Hi Wicky, Here are some recommendations: * Make sure you are using Viewer mode. Edit mode takes much more memory - specifically in case of OASIS. * Use Linux with 64bit. That's the platform of choice when it comes to high performance. No freezing …
  • Hi, if you build and run KLayout, you will find an example and some documentation in the built-in help in the chapter about the NetTracer class. It's not available as public web page yet. Matthias
  • Hi Anton, that's a reasonable to do it. I'll look into the threading approach, but not with high priority. KLayout uses a similar approach internally which is delivered by the progress reporting feature. But with C++ the overhead of processEvents …
  • I have created an issue on GitHub: https://github.com/klayoutmatthias/klayout/issues/4. Matthias
  • Hi, you're right, a global hide/show images feature is missing. It's extremely easy to script however: # show all imageslv = RBA::LayoutView::currentlv && lv.each_image { |image| image.visible = true } and # hide all imageslv = RBA::Lay…
  • Hi, This is the pointer: https://github.com/klayoutmatthias/klayout/issues/2. Matthias