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

Comments

  • "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…
  • Right :-) GDS basically allows these vectors to by any vectors, so you can create "sheared" arrays too. However, some (legacy) systems are constrained to ROW and COLUMN being real row and columns when they import GDS. Cadence used to be …
  • Hi, You must be a lucky person if such a thing is your absolute nightmare ... I'd rather worry about these: https://en.wikipedia.org/wiki/Global_catastrophic_risk But basically: there is no such thing as binary compatibility between Linux distribu…
  • Hmm, difficult. A weak hope is that it's related to Qt's style. you can try "klayout -style=gtk+ ..." or "klayout -style=windows ...". There are more options built into Qt which control the way Qt renders widgets. I assume the …
  • Hi, You can edit the key bindings in "~/.klayout/klayoutrc" - the line with "". But that's a pretty long long. Basically you can distribute key bindings a different ways: * Providing a default "klayoutrc" with the ap…
  • Hi, you should not need to migrate stored things. They are more or less independent. "less", because a new version may not be compatible entirely. So some scripts may not work the way they did before (although I am trying hard to keep thi…
  • Hi, The search feature isn't google. It's based on keywords. And "separate" is the name of the menu item, but not the name of the API function. Please don't expect too much consistency. Most of these texts get created way after midnight …