Matthias

About

Username
Matthias
Joined
Visits
16
Last Active
Roles
Member

Comments

  • Hi all, I was able to locate and fix the problem. I'll release it soon with 0.24.7. It was not readily reproducible always but it could be seen in valgrind. The reason was a deleted object in the array instance cache. Thanks for the bug report an…
  • Hi Luis, thanks for your feedback :-) I am aware of the limitations you described. Unfortunately that is cannot be avoided with the approach that XSection pursues. The problem is that "growing" is basically just supported outward. Negati…
  • Hi, maybe you'll need to start right at the beginning. Here is a good starting point: http://www.klayout.de/doc/programming/index.html. To use Cell#copy_tree, you'll need to create two layouts, load the two files into these two layouts and then co…
  • Hi Irene, this is a basic limitation of the GDS format. GDS stores the coordinates as integers. To obtain the physical dimensions, these coordinates are multiplied with the "database unit". Hence the database unit is the fundamental grid…
  • Hi Lukas, thanks for that notice. Good news is that I can reproduce it on Linux too. Which means that the MacOS build is comparable to the other builds. Apparently "Make cells" is broken since some time when instances are involved. I'll …
  • Hi Jaspreet, you mean resolving the polygon into points? The points of the polygon you can get through iterating over the polygon points with Polygon#each_point_hull for the hull contour and the same for the holes (a polygon created from a path wo…
  • Hi Dave, unfortunately there is no way to have this without the main window currently. The progress classes are just reporting progress. Display of the progress is the other end of the progress object and that end is not accessible through scripts…
  • Hi, Lacking a real testcase and the actual code I can only guess. But I think what happens is that the mapping cannot produce a valid GDS layer since you map multiple datatypes to one layer. The effect is probably that the datatype number is undef…
  • Hi Jaspreet, if you need the outline of a path, you can convert it to a polygon using "Path#polygon". From the polygon you will be able to retrieve the outline points. I think this is what you call the "buffer polygon". Matthias
  • Hi all, @David: thanks for taking care of this and pointing to these goodies :-) But I wonder why there is no progress shown in your case. A progress reporter is already embedded inside the GDS reader. This simple script: lay = RBA::Layout::new(…
  • Hi Vikas, So you want circles to be checked with less spacing but "other" layout with the correct one? That means the algorithm needs to distinguish between "intentionally wrong" and "really wrong". I don't see how an …
  • Hi Dave, So far I have not tried to educate users by giving too many tooltips :-) I personally favour links inside the labels showing some help text. That is not annoying and within the help text popup you can shown a more elaborate document. Com…
  • Hi Dave, tooltips should only pop up if you design your widgets to have some. I think I don't really understand your problem. Do you want to have tool tips in general, but sometimes you don't want to see them popping up? In general, event filterin…
  • Hi norrisc, there is no limitation in the OASIS reader regarding the number of layers. Virtually the layers are unlimited. Merging is not supposed to happen. Beware of one topics regarding OASIS: in OASIS, the primary layer identification still ha…
  • Hi Theo, Have you built KLayout yourself, or did you take it from the .rpm? I have never seen this message and I cannot reproduce it. The problem line appears to be this one: if File.identical?(__FILE__, $0) [1, 2, 3].freeze << 4end So ei…
  • Cell#copy_tree and relatives are your friend. Matthias
  • Hi, Regarding 1.) for the PCell parameter you will need the RBA::LayerInfo object. You can get this like this: view = RBA::LayoutView::currentl = view.current_layercurrent_cv = view.cellview(l.current.cellview)current_layout = cv.layoutcurrent_cel…
  • Hi, very good you found a solution! Just to clarify this: all changes you apply to a layout object are not reflected in the layer list and vice versa. The layer list is independent from the layout - if you want a layer to disappear from the list, …
  • Hi, You get the objects for the active layer (actually: the active layer view) this way: view = RBA::LayoutView::currentl = view.current_layercurrent_cv = view.cellview(l.current.cellview)current_layout = cv.layoutcurrent_cell = cv.cellcurrent_lay…
  • Hi, First of all, you can use Markdown markup to format your code - just put four blanks in front of every line. Regarding your code, I cannot help given that little input. What does "hs_all_layers" and "hs_layer" do? Could you…
  • Hi, Thanks for the nice screenshot - that explains much more than just text! But I'm sorry, the partial selection is not part of the API yet. It's a fairly complex topic and partial selection implementation is private to the partial edit mode - ev…
  • Hi seb, the forum uses "Markdown" markup. You can format code by adding four blanks before every line you want to quote. Regarding you code, you need to be careful not to mix two concepts: DRC scripts and Ruby scripts. If you want to ru…
  • Hi Theo, 0.24.6 is released now which should fix this issue. Kind regards, Matthias
  • Good point. I don't know what had happened if I had tried to sell it. At least I'd had to spend much more effort in marketing than in development. And I'm pretty sure that being a much better coder than sales guy I'd have blown it :-) Matthias
  • Hi Theo, I tried to reproduce the problem but I failed. Here is the code I used: # create a first layout and a single text with alignment flagsly = RBA::Layout::new(true)top = ly.create_cell("TOP")l1 = ly.layer(1, 0)t = RBA::Text::newt.…
  • Hi Theo, looks like this is a bug. I'll take a look at this. Matthias
  • Hi, there is a function, but views and database layers are not synchronized automatically. You need to update both. This is essentially what the "edit layer properties" function does. Here is some code: # rename layer 1 to 10 in both th…
  • Hi, I see your point. But it's somewhat difficult since there is only one data slot for images in the format. So it's not exactly a low hanging fruit. Matthias
  • Hi Theo, my goal is not to attack MGC's business model. I'm not in favour of getting in touch with their legal department for reverse engineering proprietary IP. If you have a RVE license you have a solution already. If you are not happy with that…
  • Hi ks, regarding the first question: what do you mean by "script prompts"? Like "gets"? "gets" will still read form the application's stdin, not the console. The console is merely intended for executing Ruby commands i…