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

  • @LeoPh Thank you for sharing this code! Actually you are right, the CIRCLE PCell is way too heavy for scripting a simple circle. But there actually is a simple solution for generating circles and ellipses: # circle centered around the origincircl…
  • Difficult to say without more details, but here is one guess: if the DXF you build the palette from share blocks (= cells in GDS), then in the first case, this blocks are only imported once while in the second case they are imported once for each sm…
  • Could you attach a sample layout or maybe a screenshot of what you are drawing? Thanks, Matthias
  • So maybe I need to understand the expectation here: what do you mean by "appearing"? You mean becoming effective? So like if you define a function and call it from the console, right? So you edit the text and executed the function again -…
  • @Caspar_IQM I understand. I think this behaviour can be disabled, but only by enhancement of the core system. It's a side effect of the path constructor. I'd not say that is an intended feature. I have created a ticket to change this: https://github…
  • Very good :) Thanks for letting me know. I hope the run time and the setup effort was acceptable. Matthias
  • My experiences with PDF for layout are not quite promising - even simply layouts are often too complex for PDF renderers. My suggestion was a high-res image. For example here is a post where it is shown how to generate images with user-defined reso…
  • @Andy Actually that is very simple: a top cell is one without parents, so you need to check if "parent_cells" is not zero: for cell in layout.each_cell(): if cell.parent_cells() > 0: cell.clear(layer1) For large layouts, it …
  • Hi Jim, I'm not so much afraid of the automation, more of the outcome. The documentation was written in a piecewise mode and I'm afraid a large document will read more like independent snippets pasted together. I guess it will not be fun. After al…
  • The problem is not the move function. It simply does what it's supposed to: it moves the shape you selected within it's reference frame (the local cell). What you fight with are the implications of hierarchy. When you move a shape within the cell it…
  • @ravn The code must be some on your side. You have somewhere declared a library class with the PCell code. There must be something like this example of mine: # ------------------------------------------------------------------------------- # Th…
  • @dai The net tracer feature is basically able to show the shortest path (in terms of shape jumps) between two points you click at. In order to use it however you need to set up the connectivity in the net tracer ("Tools/Edit Layer Stack")…
  • If the top level circuit is green I'd not worry too much about the red mark. I guess I will not get access to the test case. If I had it I could debug the real issue - any maybe add a better message to the error (I assume it's rather a disguised wa…
  • This is because on the first access, the actual extraction happens. This is not an immediate thing. There are some elaborate algorithms involved. Matthias
  • "layout" was mean to be the client layout which is using the library, not the layout inside that library. You cannot trigger a refresh from inside the library currently. The only thing that triggers a refresh currently is the re-registrat…
  • @dick_freebird I see the point about loss of selection. I'll see what I can do here (-> https://github.com/KLayout/klayout/issues/994) @FizixMastr I think your problem is related to the understanding of hierarchy. You have probably selected shap…
  • Hi, The solution heavily depends on the way you marked the coordinates. I can just guess what your way of doing that. In case you have a cell - e.g. called MARK... - and you like to know the centers of these cell instances, here is a custom query …
  • You're not talking about a KLayout feature, are you? Do you need that for manufacturing purposes? E.g. photoplots? Maybe DXF is an acceptable alternative intermediate format. PDF IMHO is not suited as a CAD data transmission format. Matthias
  • You can use 0.26 if you like, but the PDF manual is not provided by me. My deployment path is HTML and I don't plan to publish a PDF document as well. Matthias
  • I'm afraid I don't understand. Editing tools and rulers snap to the grid. It's just the selection box which doesn't. And I think it's better this way as I need precision to position it properly. Matthias
  • Hi, I don't know if this mode is really supported. If you observe a specific behaviour you think should be changed, please file an issue on GitHub: https://github.com/KLayout/klayout/issues. Matthias
  • I'm sorry, the conversion of all cells is a bit more elaborate. "convert_cell_to_static" will just create a new copy, but not replace the cell. Replacing is done by doing the conversion over each instance: ly = pya.CellView.active().layou…
  • This is weird. I assume you have a macro somewhere which loads a file. KLayout does not remember any previously loaded file and does not load anything automatically unless you have given a file on the command line. You can try the following: disabl…
  • It's actually quite simple to write converters. CAD people are used to providing the same views for different tools which by design try to be incompatible with each other and specifically the competitor's tool. I don't think it's a big effort to sup…
  • I guess, but I don't have experience with Calibre LVS myself. In general, identifying the true location of a device in the hierarchy isn't always easy. Specifically SRAMs are often build in way hierarchically interwoven way, which makes it very hard…
  • Oh yes ... a lot happened since 0.24 was released six years ago :)
  • "selectedItems" is the right way ... but you need to collect the "text" attributes. Here is an example: class MultiSelectionDialog < RBA::QDialog def initialize(parent) super(parent) layout = RBA::QHBoxLayout::new(sel…
  • Calling "topcell" inside the transformation loop will continuously trigger the internal sort & hierarchy tree update which may change the order of the instances while you're iterating. That's why calling the "topcell" method …
  • No worries. That reminded me of polishing the cell and layer names for CIF to avoid this problem. Matthias
  • You should be more specific on the term "enough". How exactly do you define you pass or fail criterion? Matthias