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 Canny, that is basically easy. Here's the script core: # The layer where to put the texts tolayer = RBA::LayerInfo::new(1, 0)# The file where to take the texts frominput_file = "texts.txt"lv = RBA::Application.instance.main_window.cur…
  • Hi Vlad, is the last sentence a question? If it is, the answer is no, because Qt3 headers are not required. Matthias
  • Hi Jared, As a basis for this discussion, I am referring to the samples found here: http://www.developer.nokia.com/Community/Wiki/How_to_take_input_from_user_using_QInputDialog_in_Qt For the first example this is the C++ code: bool ok = true;QSt…
  • Hi Vlad, You should check whether you have the Qt development tools installed. Apparently there are only libraries present on your system. You'll probably need some package like "qt-devel". If you already have installed the Qt tools on a…
  • Hallo, below is some code that might serve as a starting point. To install that script, create a new macro in the Macro Development IDE ("Tools/Macro Development"). Paste the code below into the code window. You can assign some key shortc…
  • Hello, could you be somewhat more specific? Maybe you can explain what information you want to retrieve (i.e. what do you mean by "hierarchically"?) or what kind of functionality you look for (script/interactive etc.) Matthias
  • Hi Lital, you have many choices. For example you could read them from a configuration file, get them with an input dialog etc. The easiest solution is to pass them in the command line, i.e. c = $coordinates.split(",").collect { |c| c.to…
  • Hi Srinivasan, which version of KLayout are you using? I had to dig really deep into my source code repository to find that message. It has disappeared about 4 years ago. Versions more recent that this should be able to read your file. Regards, …
  • Hi Lital, there is a introduction into script programming here. You'll need some introduction into the Ruby programming language as well. There is a lot out in the net, a good starting point may be Ruby in twenty minutes. Regarding the second ques…
  • Hi Keith, Regarding A.) there is no different coloring yet. But KLayout supports multiple extractions and displaying them (although not colored differently). Every time you extract a net it gets added to the list of extracted nets. You can delete t…
  • Hi, the tool you are looking for is "strm2gdstxt", not "strm2txt". "strm2txt" produces some other format used in KLayout's test suite (that's actually where the strm2xxx tools belong to currently). Regards, Matthias
  • Hallo, there is no such function yet, because is somewhat contradicts with the concepts of GDS (constant width of paths, isotropic scaling only for instances). However, I have been requested that function several times now so I will try to provide…
  • Hi, the strm2xxx utilities have been provided for test purposes mainly, so they don't provide much functionality. They could be extended to support layer maps of course, but right now, there is no such option. KLayout tries to derive reasonable nu…
  • Hi Joel, I'm afraid there is no automation API for that function yet (but that's a good suggestion). Import and export were basically intended for easy exchange for technology setups between users. Basically it's possible to manipulate the technol…
  • Hallo, the base path was intended for other components, but you're right it could be applied to layer properties as well. I'd even consider that a bug. Right now, you have to specify the absolute path, but I will fix that in the next minor release…
  • Hi Lital, Here's some code that does this: input_file = "t10.gds"output_file = "t10_clip.gds"top_cell = "RINGO"clip_box = RBA::Box::new(0, 0, 5000, 5000)ly = RBA::Layout.newly.read(input_file)clip_cell = ly.clip(ly.ce…
  • Hi Canny, here's a piece of code that reads a layout (here: "x.gds"), creates a new top cell (here: "ROTATED") which rotates the original cell by 90 degree, flattens that cell and writes the output (here: as "x_rotated.gds&…
  • Hi MattF, thank you for that feedback :-) Regarding the documentation: there wasn't any, but now there is one here. Best regards, Matthias
  • Hi Hannes, thank you for that hint about nl_langinfo. I'll include that in the code. However, I have one remark. Actually it's something that needs testing. The system locale is used basically in two places: when decoding environment variables and…
  • Hi Hannes, surely that is possible, but lacking MacOS hardware I will not be able to test it (unless someone gets Apple to spend a tiny fraction of it's record revenue to sponsor some MacOS box ... :-) ). As I understand, for QFileOpenEvent there …
  • Hi Matt, there is a script which converts Calibre's layer map files (which have a syntax similar to yours) to KLayout layer properties files. See the corresponding forum entry here: http://klayout.de/forum/comments.php?DiscussionID=48&page=1 A…
  • Hi Daniel, thank you for that hint. I'll add that to the header in the next minor release. I reckon that AC1006 means something like AutoCAD 2010 - since the output format is not quite specific, I guess it does not matter much what version to use. …
  • Hi Hannes, that does not look quite good ... Frankly, I don't understand why the MacOS build became such a problem. Until roughly a year ago, the build apparently was pretty straightforward ... Regarding the QPaintDevice: I don't instantiate one …
  • Hallo, once the KLayout process is started there are not many ways to interact with the process by means of a script currently. That is because there are no built-in interfaces that allow external processes (such as the shell) to trigger actions on…
  • Hallo, well, I couldn't have done it better ... I agree it's somewhat messy. It could be simplified somewhat, but in the end there are some parameters you need to specify and something like "cell.insert_text(layer_index, "hello", 10…
  • Hi friendx, The properties dialog is intended to edit the object's properties, so derived properties are not shown. The rectangle origin is available however - if you use the "Corners" tab, you can edit the corner coordinates instead of t…
  • Hi friendx, that's not too bad :-) Regarding the performance, it may help a lot to use the RecursiveShapeIterator object which is delivered by Layout#begin_shapes. The loop then may look like this iter = lo.begin_shapes(cl.cell_index, layer_idx…
  • Hallo, I have not tried Qt5 myself, but given the experience I had with the Qt3 to Qt4 transition I'd say it does not make much sense to try Qt5 on the KLayout code. Qt4 was very different from Qt3 - in many respects, Qt4 came with a completely di…
  • Hi Louis, A .lyp file can actually hold painting styles for multiple layouts as well. Your observation is correct that the "source" parameter contains an additional specification from which layout the layer which is painted should be tak…
  • Hi Salvatore, With "shrinking" do you mean sizing or scaling? "sizing" (or "biasing") is the process of changing a structures width. Scaling is a transformation which multiplies all coordinates with a certain factor. …