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

  • Hi gyger, You're welcome :-) I once already got a request to support RAITH structures. Technically enhancements aren't impossible, but I have some restrictions. For example, the specification needs to be open and no patents must be involved. I rec…
  • Hi Jim, "move selected to layer" is available: select the objects you want to change, then select the desired layer in the layer list and use "Edit/Selection/Change Layer". To globally move a layer, select the layer and use &qu…
  • Hi Jim, You can turn off "select inside hierarchy" by enabling "View/Select Top Level Objects". After this you can only select objects on top level. And KLayout does cycle through the selection if there are many selectable obje…
  • Hi Rakesh, I think the request is about creating the pixelized pattern. There is no function readily available for this kind of transformation yet, but it can be coded. Here for example is a DRC script which turns a layer with all-angle polygons i…
  • More readable, but the typo is still there. The issue is that symbolic layers aren't original layers. They are computed internally. In order to store such shapes you'll need to create new layers in the layout and use these for output. Like (not te…
  • Oh sorry - my mistake ... I meant with this code you should be able to make the function fail. It's not possible to create two PCell variants with the same parameter set. I'd also be a bit careful with these cells you find as PCell variants. KLayo…
  • Hi Jim, (@sebastian: thanks for your answers). I understand that you want to way to check whether there is already a PCell with the given parameters, right? There is no "has_pcell_variant?" method or similar yet (but good suggestion), b…
  • Hi Jim, In Klayout, a text is always just a point, never the "plotted size". It's too dependent on font details and there even is a font that doesn't scale. Actually a "point" cannot done for internal reasons, but it will be 2x…
  • Hi Chris, thanks for this information. Where precisely do you need to set the try/except bracket? I can investigate then whether and why exceptions have negative effects. Regards, Matthias
  • Hi Eugene, thanks for this suggestion. You mean to delete all layers of the current cellview so that the techfile settings are only applied to them? Matthias
  • Hi, I see that a segfault isn't really a nice way of saying "don't do it this way". The right way is do let the main window create a view main_window = pya.MainWindow.instance()view_index = main_window.create_view()view = main_window.vi…
  • Hi Chris, sorry, I mistyped the command: pya.Application.instance().main_window().cm_exit() Matthias
  • Hi Jim, I'm reading schematics from SPICE files right now. To be frank, I don't think it's realistic to turn KLayout into a design system quickly, so my current focus is on the engine and debugging support. Kind regards, Matthias BTW: documenta…
  • Hi, any chance to get this code formatted as Markdown? It very difficult to read. Use triple backticks before and after the code. Does the example work in the user interface? At least there is one typo ("shpaes"), so I don't think this …
  • Hi Eugene, "each_layer" will deliver the layer properties, but in order to delete a layer you'll need a pointer to the layer (aka "iterator"). Here is how you delete all layers with a specific cellview index (for example), you …
  • Same question from my side :)
  • Hi Chris, I think "pya.Application.instance().cm_exit()" will do the job. The "cm_..." functions are the actual functions bound to the respective menu entries ("File/Exit" in this case). Matthias
  • Hi mikhails, I don't think the 6ms are correct in the first case. "klayout_app" is a big binary. It will load many shared objects and loading it should take much more than 6ms. On the other hand, "import klayout" pretty much doe…
  • Hi Chris, the function can be written a bit shorter, but basically it's correct. There isn't much difference between what you do and what the internal function does. I suspect that maybe the problem is related to your library, specifically technol…
  • Hi, DRC isn't Python, but it's a domain specific language (DSL) built on Ruby. Ruby and Python aren't aware of each other, so you cannot call Ruby from Python and vice versa. But it should be pretty straightforward to write a CSV reader in Ruby. …
  • Hi Chris, I'm afraid there isn't. The reasoning is that QString is mapped to Python strings. So having QString is pretty redundant. The reason why there is QString in Qt is that C++ lacks a good string class. So Qt added QString. But in Python yo…
  • Hi d1k, "+" isn't a boolean operation. I just joins the shapes from one layer and another. Hence merging is not required. But the operations do merging as the implementation is based on an edge representation of the whole layer and mergi…
  • Hi, I'm working on a documentation currently and want to release it asap. I'm aware that without such a manual trying the feature is tedious. Thanks for the input about "get_texted". I think this is available, but I need to try it before…
  • HI mikhails, dev8 is too old. It lacks some files that's why the GDS reader can't be found. You can dry to install dev16 and delete the "db_plugins_pcb_dbpi.cp36-win_amd64.dll" if you don't need support for PCB formats (Gerber). I'll tr…
  • I know that both happens: sometimes these pattern are legal, sometimes the aren't. In the sense of "connected" figures they are legal, because a connection cannot be guaranteed. But on implant layers they are perfectly legal, because there…
  • Hi Xaveer, have you tried to convert the edge pairs to polygons and then merge them - i.e. like "ep.polygons.merged"? The resulting shape will be a big polygon, but still be useful as an error marker. Matthias
  • Hi, I think those are the tile boundaries. Fill cells will not cross the tile boundaries. Maybe the problem goes away if you chose a tile size which is an integer multiple of the fill cell's dimension. Matthias
  • So you say you're expecting that every cell has it's own zoom level? That's not the case - there is a just a global one. But you can actually open a single layout twice with different cells in two tabs: 1.) Open a layout 2.) Open an empty tab with…
  • Hi Chris, Ok, I'll be more specific: class PCell(pya.PCellDeclarationHelper): globalParameter = "" # PCell is parametrized with a given value def __init__(self, globalParameter): # Important: initialize the super class super(PCe…