Matthias

About

Username
Matthias
Joined
Visits
16
Last Active
Roles
Member

Comments

  • Hi AGM, But you can move these layers above the one with the faked background, right? Right now, there is no "invert on drawing" option, although that would be possible. Let me take this as a suggestion. Currently, you can actually inver…
  • Hi Bertrand, Your problems indicate there is an issue with UIC (the user interface compiler of Qt). Apparently it generates output which won't compile. Since UIC is called by VC++ according to the custom rule definitions I assume there is something…
  • Hi Arided, thanks for mentioning this. The script should work on older versions like 0.21 as well, but I'd recommend using a recent version for better performance and higher stability. Regards, Matthias
  • Hi Arided, the boolean operations of KLayout are not optimized for huge chips. Using the per-cell semihierarchical operation may work, but in the general case that will not render the correct result. The reason is that in order to do it correctly, …
  • Hi Bertrand, That is quite unusual. There is no "QtWidgets/QAction" included somewhere in KLayout's source code. Does VC++ tell which compilation unit this problem occurs in? BTW: I am using VS 2010 express myself but with a somewhat old…
  • Hi AGM, Do you mean just "view" (inverted) or "draw"? There is no "invert" viewing option right now. But you can mimic the effect by putting a border behind the layer and set the layer's color to the same color as bac…
  • Hi Arided, your solution is correct. The set_format_from_filename method expects a lowercase ".oas.gz" to correctly set the format. But your solution works in every case. Float layer and datatype number do not make much sense. You can c…
  • Hi, the cell list and layer list and other tool windows are dockable items. That means you can drag them by their title line and dock them somewhere else to the main window or even put them outside the window so they float freely as separate tool w…
  • Hi Dion, I am sorry, but right now the full functionality of the XOR tool is not available through the scripting interface. It can be emulated by the layer processing framework for example, but without the multi-threading and tiling feature. It's…
  • Hi, Please try to remove the "QT3_SUPPORT" defines from the project. They are not required and apparently they create conflicts in your built of the Qt libraries. I shall remove them in the next minor release. If this define is set, the …
  • Hallo, apparently there is no SSL support compiled into your Qt installation. I can't recall exactly, but it came for free on my installation. Maybe I had installed openSSL already. If you need a quick workaround you can remove or disable the gsiD…
  • Hallo, printing to scale is not the intention of the print function. You could save your layout as an image and choose the right width and height according to your printer resolution. For example, if your printer offers a resolution of 300 DPI, you…
  • Hi Natalie, there are not circles in GDS, hence there is no support for that kind of shape yet. One approximation to a circle is a path with round corners and a single point. I don't know however, how portable that solution is. Such an object will…
  • Hi Jared, there is no boolean operation on shapes right now (maybe there never will, because a shape does not necessarily create one shape in the boolean operations). The right object to use is the ShapeProcessor object. It can perform a boolean o…
  • Hi Dean, the marker browser is not requesting something - it is just shown in case you were sending your output to a marker database. It is somewhat confusing that it will pop up even if there is no database created. I have updated the layer_proc.r…
  • Hi Jared, do you mean "load"? Ruby can execute a file in a specific place simply by writing load("code.txt") A more "Ruby" way is to create an object as the context for a script and use instance_eval on that object …
  • Hi Canny, Version 0.21.19 is quite old. But that is not the reason for the error message. In "cell_by_name" will give you the cell index, not the cell object. To get the cell object from the index, you'll have to use "layout.cell(cel…
  • Hi Canny, Here's a sketch: l = ... # Index of layer on which the vias are locatedc = ... # Top cellshapes = c.shapes(l)region = RBA::Box::new(4000, 4000, 6000, 6000) # assumes DBU of 0.001 um shapes.each_touching(region) do |s| shapes.erase(s…
  • Hallo, thank you for that feedback :-) Not all commands in the menu are accessible as Ruby functions, because the Ruby API is on a lower level than the menu functions. The Ruby API provides methods as classes from the database level while menu fun…
  • Hi, there is a brief description here: http://www.klayout.de/doc/about/basic_lib.html#h2-44. Regards, Matthias
  • Hi Joonas, thank you for the patch. I had a look at it and basically it's complete with all the necessary extensions. Let me allow some remarks: Basically the static get_properties method could go into the db::Shape class. But it is part of Ruby …
  • Hallo, That did not change in version 0.22.6. So it should still load .rbm files from the installation path. I have verified that on Linux and I will do so on Windows as well. But if an environment variable named "KLAYOUT_PATH" is set, i…
  • Hi Jian, bbox returns the bounding box of the current cell and is not a layer method. It is used like this: bbox.not(input("1/0")).output("10/0") This sample inverts layer 1/0 by subtracting it from the bounding box and deliv…
  • Hi there was another forum entry about the same question: http://klayout.de/forum/comments.php?DiscussionID=230&page=1#Item_4. I shall explain a little regarding the concepts and the question you raised in your code: * "biblay.cells"…
  • Hi Joonas, it's definitely not easy to modify the shape iterator - this is a high-level iterator scheme that provides all the abstraction atop of the binary data structures (which is a lot). Serialization into a specific order is simply not designe…
  • Hi Joonas, basically your idea is correct, but unfortunately there is no warranty the the shape container stores the shapes in the order they are inserted. The shape container's order is optimized by KLayout to reflect the quad tree for quick looku…
  • Hi Natalie, yes you're right, The DBU multiplication is doing the trick and again you're right that you have to take the magnification in the instantiation path into account. I forgot that. Thank you for the hint. Just to add some final remark: yo…
    in Perimeter Comment by Matthias March 2013
  • Hi Natalie, please see me comments in the other forum entry. The problem was that this this discussion was basically about C++ code and you can't mix that with Ruby. Here is the correct code: total_perimeter = 0.0lv.each_object_selected do |obj| …
    in Perimeter Comment by Matthias March 2013
  • Hi Natalie, this discussion might be quite confusing. It mixes C++ code with Ruby code. The correct Ruby code to compute the perimeter of a polygon is: poly = ... # the RBA::Polygon that you want to compute the perimeter ofperimeter = 0poly.each_…
  • Hi Jared, sorry, I missed one important thing: inside a Module you need to write functions as class methods of the Module, i.e. module MyMacro include RBA def self.f(x,y) ... end f(100, 200)end The reason for that is not easy to explain in…