Hi Lukas,
Regarding the first question: the proper way to create an object in Python is using "Class()", i.e.
observer = pya.Observer()
However, that won't be much help. The Observer pattern is a simple way of attaching events to intern…
Hi Lukas,
you're right, instance selections are formed by appending the instance to the path but not assigning a shape. This will implicitly make the selected object a cell instance selection:
op = RBA::ObjectInstPath::newop.top = top_cell.cell_in…
Hi Lukas,
The configuration file is independent from the $KLAYOUT_PATH. The $KLAYOUT_PATH (for Windows: %KLAYOUT_PATH% ...) tells KLayout the locations for macros, GDS library files, auto-imported tech files etc. Multiple locations can be listed in…
Uh ... you're expecting a lot from me :-)
The Python 2 to 3 transition was a major break, so out of the box, only simple code will run unmodified on both versions. Using the necessary if's you can always include switches without having to use a 3rd…
Hi Demis,
I can't confirm this for 0.24.3 at least on Ubuntu 14.
Here is my test DRC script:
report("odd-polygon DRC")inp = input(1)inp.odd_polygons.output("OP test")
The test layout is a single path folding back onto itself.…
Hi all,
in general you don't need to recompile KLayout. But you may need to recompile numpy.
Here is what I know:
* Linux: when you build or install KLayout for one of the distributions, KLayout shares the Python installation with the system. So …
Hi Jack,
that is related to the "delta" attribute: the heights are only accurate to this value currently. That's a systematic problem implied by the geometrical production rules. You can make the delta value much smaller, but I'd not go b…
Hi Lukas, hi David,
I considered including libraries into the tech definitions, but the implications of such an entanglement are rather severe: when you switch the technology, do the libraries need to be switched too? What happens to cells not bein…
Hi Lukas,
"CGContext" appears to be something MacOS specific.
I imagine that in the plot library has to be compatible with the application in some way. That's a pretty complex topic on Linux and I imagine it's not much easier on MacOS. W…
Hi all,
thanks for mention these topics.
Basically the layout will be in "under construction" mode until you commit the transaction. The reasoning behind this mode is that during a sequence of operations the layout object may be in some …
Hi Lukas,
that should be possible.
First of all, "object_selection" is an array of ObjectInstPath objects.
An ObjectInstPath is - as the name applies - an instantiation path to an object. In the simple case, you refer to a shape in the …
Wow ... I'm impressed!
This is an entirely new field to me. Although I feel that the extraction basically is similar to extracting resistor values from wires.
I saw code for verification of the layouts. Will the DRC feature be applicable in that c…
Hi David (and Lukas),
thanks for pointing out the partial selection issue. Basically PCell guiding shapes should behave like normal shapes and hence the selection rectangle should apply here as well.
I'll try to fix this in the next minor release.…
Hi Dave,
in order to make this work, you'll need to link everything of KLayout to your library so it does not require external symbols. In your case this will be dbInstances.o which will itself require other symbols and so forth.
KLayout is NOT mo…
Hi Jonas,
Python 3 and 2 are quite different regarding their C API, so there is no way to easily switch between them.
Even on Linux you usually need to recompile when you do a bigger switch like Python 2 to 3. But unlike Windows, KLayout will refe…
Hi Lukas,
there is not really a "following" callback, but your idea is the one that is behind the "handles" of the circle: these are dummy shapes (in fact: points) which you can drag and the layout of the cell will follow. In th…
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…