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
Hi Dave,
I don't know exactly what you do, but that looks like a clash of symbols - maybe the fpapi.so has hijacked a symbol from the application so it gets called rather the application code.
I assume you included a header and this caused templat…
Hi Lukas,
the width of the path is taken from the path itself. The PCell takes this path and modifies the spine points by inserting new points where required. The remaining parameters of the path are not touched.
Best regards,
Matthias
Hi Lukas,
Oh yes ... maybe I forgot to mention this. The Path object is supposed to be micron units rather than database units.
To convert an integer-typed path to a DPath in database units, you can also use the transformation, which will convert …
Hi all,
yes, RBA::CplxTrans is the object mainly used within the database. It's the one that takes the integer-typed database objects and provides a transformation to a floating point object without loss of precision. But strictly speaking the resu…
Hi,
Exciting to see so many screenshots here :-)
And sorry: in my reply is should have written:
(Quote)
I edited the above reply. I'm a bit puzzled. I'm referring to
(Quote)
I still can't confirm there is no effect of F3's "select top level…
Hi all,
I also can't confirm there is an issue with that function. Maybe "c:\data\klayout" does not exist on your system or it's not accessible?
Matthias
Hi Lukas,
regarding 1.) Instance#flatten should provide the same functionality than the GUI - it will replace the instance by the shapes it represents. But the cell itself still remains. Instance#flatten is available with version 0.24.
Regarding t…
Hi Lukas,
the design of the Basic library was not to provide reusable components but rather drawing features, so the actual implementation is less straightforward than their simple functionality might suggest.
I can explain that for a circle: the …
Hi David (and all),
the reason for the differentiation between the different transformation types is twofold: historical and efficiency. I guess I should go for the efficiency claim - that looks smarter :-)
Anyway, the RBA::Trans object
* is lean…
Hi Lukas,
the guiding shapes are actually shown as part of the cell boundary and appear in the same color than the boundaries. You can configure their appearance on the "Display/Cells" page in the setup dialog (File/Setup). "Auto&quo…
Hi Lukas,
the second approach is the valid one, yes.
In general, the parameters_from_shape and transformation_from_shape methods are provided for PCell implementors to supply a recipe to the application about how to turn a shape into a specific PC…
Hi David,
I tried to reproduce the "Select top level objects" + "Select shapes in cell" problem with a simple CIRCLE PCell but I was not able to do so :-(
If I enable (EDITED: not disable) the "Select top level objects onl…
Hi Lukas,
The "Internal error: ... topological_sort () is not true" occurs if the layout hierarchy is recursive (cells instantiating itself or a parent of itself).
This is what basically happens, when you created the instance of "te…
Hi Lukas,
Creating cells within PCells is possible, but I don't encourage it because this way the management of cells gets pretty messy. PCells can reference static cells from a library and PCells can instantiate other PCells (preferably from the s…
Hi Kazzz,
thanks very much providing the valgrind log.
I see the usual noise from Python and Ruby, but there is a scary message here:
==44245== Use of uninitialised value of size 8==44245== at 0x10020EA0C: db::Region::ensure_merged_polygons_va…
Hi Lukas,
I guess you are looking for a feature to annotate layout with net names, right?
This feature is not the strength of KLayout currently - the net tracer function was mainly intended as an editing aid, less an extraction feature. There is n…
Hi Keil,
The message says there are multiple versions and none is accepting the arguments that you provide. It refers to "RBA::CellInstArray::new" (it says "initialize" instead of "new" - that's Ruby slang for the cons…
Hi Keil,
You should not use "RBA::Application.instance.exec". This will basically execute the application and once you close the main window the application is in terminated state and you can't access the objects any longer. "RBA::Ap…
Hi,
there is a way to do this: select the net, hit "Export" below the net properties panel and pick a cell name. A new cell containing the shapes of the selected net will be created. Save this cell using "Save Selected Cell as ..&quo…
Hi,
those are just handles by which you can adjust the arc's parameters. They won't appear on the mask.
To remove them, either convert the PCell to a static cell or disable "Show PCell guiding shapes" in File/Setup, page Display/Cells.
…
Hi,
The cell selection is not accessible directly within Python. Only selected layout objects, rulers or images can be obtained through the API currently.
You may be able to find the widget using the Qt API and ask for the selected cell items, but…
Hello,
if I understand you correctly, the same physical material (i.e. n doped substrate) is used both for resistors and for active area as well. That's probably legal but then it's only the dimension that makes a difference between a resistor. I i…
Hi Alex,
The Qt documentation available on the net should tell more about this.
"qImg.bits" will give you the raw bits. There is no "byte array" in Ruby apart from strings and that is pretty useless for this purpose.
A good wa…
Hi Dale,
The last time I was using Cadence Design Framework we had version 5 - I don't recall the Virtuoso version employed within that version. There was still a function called "ASCII tech file export", but maybe Cadence changed that pa…
Hello,
Thanks for your feedback.
Regarding your question about preservation of hierarchy: I guess you are referring to the DRC scripting. That is just one way of script things. The other way is more versatile, more powerful and slightly more diffi…
Hi Alonso,
I don't know the nature of your postprocessing. But you might consider using the DRC feature for that purpose: a DRC script can be used to process layout tool.
Within the DRC feature, you can move a layer using the "move" meth…
Hi David,
yes .. that's one solution.
Another one is to wrap a PCell in an ordinary cell and place this cell multiple times. Then this cell will change in all places in the same way.
Thanks for all your contributions and best regards,
Matthias
Hi Ryna,
0.24 was heavily reworked in the course of Python integration. I am not aware to have changed the semantics of the .lydrc format, but at least the interpreter spec got more important with Python being a new choice of a script interpreter.
…
Hi,
to be frank, I've neved had this request before.
The usual approach is to select different rules depending on additional mask layers. Since the physics of your connection must be somehow determined by the masks in a lithography process, it sho…
Hi,
does the script run from the macro IDE?
I think, in your file some of the metadata is missing. Specifically the interpreter is not given. Please try to add this information:
<?xml version="1.0" encoding="utf-8"?><…