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

  • Cool thing :-) If you scale it down, the text won't be readable, so it's perfect :-) Thanks at lot, Matthias
  • Hi Amar, the standard properties are accessible through Instance#trans or (more general) Instance#cplx_trans. The properties deliver transformation objects that you can ask for rotation angle, displacement vector, magnification etc. Can you give a…
  • Hi all, @AndyL: thanks for replying on this :-) On Windows, the configuration is kept in %HOME%\KLayout\klayoutrc. If the "KLayout" folder is not writable, the disk is full or the file is not writeable, the changes are lost. If just the…
  • Hi Lukas, sorry for coming back this late ... Actually, this approach can story any kind of parameter. The above example uses a single integer, but you can extend the list of parameters to any number and type. Regarding 0.25 the master on GitHub i…
  • Hi Andy, are saying that overlap is fast enough, but holes is not? That should give some hint about the kind of algorithm you look for. What number of instances are we talking about? Another question is how "missing" is defined. "h…
  • Hi Lukas, you can associate macros with a technology, but that just means that macro is shown in the menu only if the specific technology is selected. So that does not solve your problem. I'd in general discourage from making PCell code depending …
  • Hi, Yes, the configuration file is one place. Only Linux the location is "~/.klayout/klayoutrc" ... but actually I can't confirm it does not change with the technology. When I edit the technology's DBU, the default will change ... What v…
  • Hi Eyal, right now, there is no such option. There is a "cell variant formation" feature http://www.klayout.de/doc/manual/create_variants.html#k_1. Maybe that leads you somewhat further. Apart from that of course scripting is an option. …
  • Hi Johannes, Ok, it's a bit hidden ... to change it, go to the technology manager (Tools/Manage Technologies). Pick the "(Default)" technology and on the "General" page you'll find the default database unit value. The idea is t…
  • Hi Steven, you mean you have some device that is capable and precise enough to produce a mask by printing? If so, you need to know what kind of formats your device understands. The normal printout is not for production and usually devices or mask w…
  • Hi Jakub, you don't need simple_merge_p2p any more ... that's a legacy function. Just use "RBA::Region" - it's basically a set of polygons and offers all the functionality you need. For the reasons I explained, a single polygon cannot hav…
  • Hi jakub, Polygon.size() is not the full truth - in general, polygon sizing does not necessarily render a single polygon, hence there is no true "size in place" method. The Polygon.size() function is rather a preparation step and needs po…
  • Hi Rambir, The function you refer to is transforming the layout. It does not leave a value somewhere. So you can't extract that value later. What exactly is your application? Matthias
  • Hi Andy, I'm afraid I don't have a good idea how to solve this. In the next release it's going to be possible to extract the rounding radius from polygons. This may provide a way to implement this kind of check. Matthias
  • Hi Xaveer, the tiles feature of the DRC is implemented using the TilingProcessor. You can basically use the same for implementing your own tiled size. Matthias
  • Hi Andy, I don't know what's going on precisely, but this is working code: include RBAlayout = Layout::newtop = layout.create_cell("TOP")# The layer as a LayerInfo objectlayer = LayerInfo::new(2, 0)# The radius in micrometersradius = 1.5…
  • Hi, Regarding 1.): please read here what it says about numbers: an integer "3" is 3 database units (i.e. 3nm if your DBU is 1nm). Regarding 2.): that's odd - if you delete klayoutrc it should really reset the window. Maybe it got minimiz…
  • Hi Dion, that happens with certain Ruby versions (I think 2.0.x). It becomes an issue with more recent Ruby version where Fixnum was actually removed. The master on GitHub (https://github.com/klayoutmatthias/klayout) offers an enhanced solution tha…
  • Hi chhung, the code looks correct. It's a bit bloated - you can probably simplify it a little exploiting the fact that a property id of "0" means "no property" and using the RBA::CellInstArray taken from the RBA::Instance object…
  • Hi Dion, sorry, but considering that a somewhat "more than trivial" change I did not include that into 0.24.10. I'm moving everything to GitHub now (https://github.com/klayoutmatthias/klayout). In the master, this patch is already includ…
  • Hi werk, what precisely are you doing? You mean, you are using pya.cc for your own project? Running Python in separate native threads is not supported AFAIK (at least not with CPython - JPython or IronPython can do this. But maybe that changed wit…
  • Hi, The method you are looking for is: RBA::LayoutView::current().box() This will give you the current view's displayed area in micrometer units. For searching a region you need a box in database units. If you're not using view transformations (…
  • Hi chhung, this script looks quite good already. I admit it could be easier, but lacking the right functions currently, it's the best way to emulate it. The function you are looking for is: Layout#properties_id and the reverse Layout#properties: …
  • Hi Daniel, that can't be correct. If you really produce a correct instance of Cell1 then the hierarchy will be top_cell -> Cell1 and nothing else. So I think there is something wrong with the code. Please paste a complete sample (reduced on…
  • Hi chhung, I'm sorry, but I still don't get your problem. And I don't see any code I could help with. In you sample, the hierarchies of file1 and file2 are identical. Will it be a solution then to copy over the objects of file2's top cell only? I …
  • Hi Daniel, I'm still trying to understand what you need. There is no way to make a cell "invisible" for the hierarchy tree. The tree depicts the relationship, so tweaking it does not look like a good idea. If you see "top_cell"…
  • Hi chhung, I understand you basically want a smart way to detect that cells are identical and not copy over the contents. Right? That's a feature not provided by the copy_... methods. But if you know that only the top cells differ, you can basical…
  • Hi chhung, What exactly do you want to achieve? Method 1 is useful if you want to merge layouts by "adding information" to an existing layout. You can use this approach for example, if you have split a layout into several layouts contain…
  • Hi, Very simple: open the marker browser with "Tools/Marker Browser" and choose "Open" from the "File" menu in the upper right corner. Matthias
  • Hi Daniel, maybe by chance you have selected "Flat cell view" in the cell list? Please right click on the cell list an check whether this option is selected. Matthias