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 Joel, first, sorry for the late reply. Regarding your issue, I need to check that. Basically, custom and BASIC PCells are not treated differently. Maybe there is some confusion that both PCells are called Circle. However, as you rightly stated,…
  • Hi, Please check whether the database unit is small enough to represent smaller dimensions (typical values are 0.001 µm). The database unit is the basic resolution and every dimension will be confined to multiples of this unit. Regards, Matthias
  • Hi, the problem you have was discussed in this thread: https://www.klayout.de/forum/comments.php?DiscussionID=89. That solution mentioned is still valid in 0.24, but with 0.25 your code is going to work too. The discussion relates to Ruby, but the…
  • Hi Chris, I need to look into this. Actually the database object is supposed to be taken from a view. It's was not designed initially to live standalone. That's why the constructor fails (actually it's a late initialization that fails). I don't re…
  • Very good :-) My advice is in general to clear the selection when you have modified a layout in a script. That may be a little inconvenient but will avoid such issues later. Kind regards, Matthias
  • Hi Andy, is the origin (0,0) of the replacement cell the same than that of the original cell? A cell placement puts the origin of a cell at the specified position. If for example, the original cell had it's origin in the center while the new cell …
  • Hi Chris, I suspect some other issue before. Maybe you modified the shapes container before this loop? This piece of code works for me: alv = RBA::LayoutView::currentalv.object_selection.each do |obj_inst_path| if !obj_inst_path.is_cell_inst? &a…
  • I mean: replace from.template take_object<X> (); by from.take_object<X> (); Matthias
  • Hi nicoh, which clang and gcc version are you using? You can try to delete the "template" keyword. That may break the build on other systems, so I have to check that for other compilers. Matthias P.S. please don't expect the master on …
  • Hi lacopt, Which .deb did you use? The Ubuntu 16 package has a dependency on Ruby 2.3. Matthias
  • Hi Laurent, the message you get with "HAVE_64BIT_COORD" is just a warning. It should not make the build fail. The real error must be somewhere else. The Ruby problem is a known incompatibilty. See: https://www.klayout.de/forum/comments.p…
  • 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