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,521
Last Active
Roles
Member

Comments

  • If you enable "View/Select top level objects", instance objects will be selected rather than the shapes inside the instances. Then "partial mode" will move the instances. Matthias
  • Hi Garima, thanks ... this is much better. Basically XOR is a geometrical compare: it will produce the areas covered by layout in only one file. XOR is insensitive against the way the layout is drawn (wether it's a polygon, a path or a box), it co…
  • Hi, yes, you need to hide all other layers. This is how you do this in a script: layer_to_show = 45datatype_to_show = 0lv = RBA::LayoutView::currentlv.each_layer do |l| l.visible = l.source_layer == layer_to_show && l.source_datatype == …
  • Could you please reformat your code in Markdown (put lines with triple backticks in front and after the code)? This is unreadable. Matthias
  • Hmm ... Yes, you're right - basically the whole thing is pretty new and still under development. Originally it was built for CMOS, but the engine should be flexible enough. I'm saying "should" because I'm pretty aware that the world of de…
  • Hi, To remove a layer entirely (from the database), select it in the layer list and use "Edit/Layer/Delete Layer" (you can also select multiple layers). You can always get a full list of layers in the layers window using "Add Other …
  • "Harvesting organs" sounds scary :-) Here is one butcher approach: * Load your layout * Chose Edit/Search and Replace * Select the "Custom" tab * Enter for "Query": select cell_name from * * Press "Execute" …
  • Hi, it's possible, but only by switching to a different way of configuring the system. If you supply a menu binding for a macro, this is just a convenient way to shortcut the definition of a menu item. In this case, the system provides the menu en…
  • Hi Thomas, maybe Windows is playing some tricks by trying to be smart … but actually layer properties are not looked for in the same folder as the layout file. At least, KLayout does not enforce such a behavior. But Windows has some magic built int…
  • There is also "Edit/Selection/Separate - First Into Inside/Outside Others". So you draw some region over one half and then select the object you want to split, then the separation region (with Shift) and use the mentioned function. Matth…
  • Hi, regarding 1.) - My suggestion was to draw a rectangle and use "Edit/Selection/Intersection - Others with first" to chop off the rest. for 2.) - partial mode allows selecting by rectangle including vertices or whole objects (if they a…
  • Maybe I should mention that I'm not trying to create a Cadence clone … So yes, "duplicate" and "paste" works more like the equivalent function for example in Inkscape, PowerPoint etc. .. The idea is that the new objects become …
  • Hi, I opened a ticket for the definition conflict: https://github.com/KLayout/klayout/issues/318. It's about allowing to disable a key binding. I don't really understand why the issue still pops up with PgDown/PgUp. I'm setting "dec_max_hier&q…
  • Ok .. so I guess you're turning DXF drawings into GDS for some reason. That's not a mask file then anymore. That will make things difficult. Have you tried reading DXF into KLayout? KLayout will try to maintain DXF texts as polygon boundaries. Ther…
  • Hi, "Erase" is actually just another word for "boolean not". "RBA::Region" is a convenient class for using boolean operations. I'd suggest you collect the background polygon in one RBA::Region (i.e. "background&q…
  • Hi, "Layout#guiding_shape_layer" just delivers the index of the auxiliary layer to keep the guiding shapes. It's not what you are looking for. A "guiding shape" is actually a PCell parameter of the special kind "TypeShape&…
  • Hi Sebastian, the default path is determined by Python itself. There is little KLayout does except adding "$KLAYOUT_PYTHONPATH" and disabling "$PYTHONHOME". I think this is the default path compiled into the Python you used to …
  • It's set in the "Writer Options" and is called "compaction level" there (sorry, naming consistency isn't my strength …). 0 is "no compression", 1 … enable compression with a increasingly deeper search for repetitions. O…
  • Hi, you can create submenus while specifying the menu path using a special notation: edit_menu.submenu>end("Sub menu").end For details see https://www.klayout.de/doc-qt4/about/macro_in_menu.html I guess this solves the submenu probl…
  • Hi, I'm not happy with the XSection script as it depends on certain details of the boolean algorithms inside KLayout, specifically if you use finely detailed structures (grow or etch in rounded mode). Material boundaries need to be exactly coincide…
  • Hi, the menu functions route to the internal implementation. There is no way to access the details by script, because scripts provide only some kind of "side entrance" rather than mapping the basic API. Hence, there is no recording. On th…
  • Yes exactly, compression is the default :-) You can switch it off by setting the compression level to 0. But unless there is a specific reason you wouldn't do that. Matthias
  • I stand corrected. The text capture boundary can actually be zero-size when there is only one text selected. I have created a ticket for this: https://github.com/KLayout/klayout/issues/316 Matthias
  • Thanks for this example. I think I understand the issue. You should include layer and datatype into the output statement, like layerA.width(20.um, projection).output(17, 0, A_width_check) Otherwise, KLayout will pick a number itself and this will…
  • Thanks for this feedback. Frankly, I don't know what to do here as this seems to be happening inside Graphics Driver/Windowing system/Qt. Maybe the pulldown menus get assigned to the wrong monitor or something like this. There aren't many options t…
  • Hi, Regaring the first question: yes it can, but it will be overwritten when you exit KLayout. I'm not sure what you're trying to achieve - maintain your setup or deploy it to others or into an origanization? If you can describe your use case, I ma…
  • Well ... documentation is a painful issue and my day has only 24 hours. If I was a writer, I'd write a book about it and sell it. So if someone is looking for a business opportunity: here it is. Matthias
  • Hi, this is what move does when you click first time * If there is no selection, it will pick the object under the mouse and start moving it * If there is a selection and the mouse is inside the selection, it will pick the selection and start movi…
  • Hi Chris, That's not a good analogy, as .pyc isn't there for encryption, but just to save the time for parsing the source code. Python will remove comments in this step, but I think even variable names are still visible inside .pyc. It's also possi…
  • Hi Xaveer, but delivering the overlap between two shapes even if they are identical is a part of the feature. So suppressing overlap just in that case seems like an arbitrary restriction to me. If you look for "layout normalization": rem…