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,
downsampling is always some approximation, but area density is probably the best you can do.
A assume you want to use the grayscale value in the sense of some "transmission". But you need to be somewhat careful with the definition - …
Hi Nick,
the behaviour can be explained if you consider that "shape.box" returns a copy of the internal database object. If you manipulate that copy, it won't have an effect on the database object initially. But you can easily fix that by…
Hi,
Yes, understood :-)
The net tracer was intended as a GUI feature for layout debugging rather than a non-interactive tool but I see there are applications out there. I have to isolate the code in order to provide an API, so that won't be a quic…
Hi,
it is, if we have the same idea of "anti-aliasing". The density map will reflect the area covered by layout for each pixel. That is one possible way of defining some layout metrics on a coarser grid and it's easy to implement.
It wil…
Hi John,
good to hear that :-)
Usually the configuration files are upward compatible so there should not be any surprises when you upgrade. But I admit there have been a few bugs breaking that rule in effect. I'll do my best this will remain a spe…
Hi John,
there is no change that could explain that.
Maybe there is something with the configuration file. Maybe layer mapping is on or something like that. Could you move the configuration file away and try again? KLayout will then initialize the…
Hi Julien,
in the box properties dialog there is a separate tab on which you can enter the boxes parameters in the form of center point / size.
In addition, there is another general feature which may be useful not only in that case.
You can enter…
Hi,
thank you :-)
The answer to the question is acually quite simple: instead of "0", just use "2" for the second parameter of load_layout. Here is the explanation:
http://klayout.de/doc/code/class_MainWindow.html#method134
M…
Hi,
You'll find some first instructions how to create a layout here:
http://klayout.de/doc/manual/editor_operations.html
There are some more pages describing the basic use model of the program (user interface, layer view concept, cell list and si…
Hi Itamar,
I guess the text object is somewhere in a child cell. In order to get the final location, you'll have to flatten the cell or you apply the transformation of the cell instances to the shape. A handy class is the RecursiveShapeIterator whi…
Hi Acku,
the message is typical effect of having a mismatch between library and ruby interpreter version. If no specific command is given, the build script incokes "ruby" in order to determine the Ruby version. If you don't specify a libr…
Hi Acku,
You'll get this message if the version of your ruby interpreter does not match the libraries given in the build command.
You don't need to specify -rbinc, -rblib etc. Just make sure you have the ruby interpreter in your path or that you h…
Hi Z Lim,
good suggestion, but right now the instance name is not transferred as properties.
The main intention was to provide import for the physical layout. So that was not considered of primary importance.
Thanks for the suggestion,
Matthias
Oh sorry ... you're right. Output images are always PNG, irregardless of the suffix.
So there's no way to change the encoder right now. But maybe that is not the reason anyway.
The hard limit may be bigger on a 64bit machine (I'm running 32bit Lin…
Hi Joey,
thanks for the explanation.
Basically the tiling option should automatically select the tile_borders to catch all relevant cases for functions where the interaction distance is known. The width/spacing checks are among them, so I'd consid…
Hi,
I just ran the command you mentioned with 15k x 15k pixels successfully on Linux, so I can't confirm there is a general issue. It took a couple of seconds with a small layout. It will be more for a bigger layout of course.
There appears to be …
Hi Joey,
thanks for the praise :-)
Basically, with tiling the results should be equivalent to the non-tiling case. Maybe some violations are reported twice, but error markers must not vanish if you enable tiling for example.
Are you saying the re…
Hi,
Ok, I see the point. The question is what you think the function should restore it to.
There are some functions already that may provide related functionality:
* To restore the initial state, choose "Select All", "Delete Layer …
Hi,
well ... that's probably how you look at it.
Basically the "T" button does not reflect the technology loaded but is supposed to assign a technology.
The concept is that each layout has a technology attached. The technology attached …
Hi,
instead of the background combination mode you can use "Edit/Selection/Subtraction": select the first shape from which you want to subtract. Then with Shift pressed you select the one to subtract. Then you choose "Edit/Selection/…
Hi,
ellipses are not shapes, they are PCell's. That is why they don't participate in boolean operations.
Let me explain: the basic format of KLayout is GDS which does not offer ellipses. One way to provide ellipses is by creating "ellipse-lik…
No problem :-)
Thanks for mentioning this. 0.23.4 also has DEF and should support all layout-related LEF features. If you find an issue there, let me know.
Best regards,
Matthias
Hi Elad,
the only way to persist nets currently is to export them to a layout.
Basically the net tracer was intended as a debugging facility, so persistency was not the main design goal. The export features have to provided to open interfaces with…
Hi Thomas,
the array is reflecting the GDS capabilities. The GDS format provides arrays exactly that way and that is why the functionality is confined to this implementation.
However, if you need complex arrays you can generate them with a script.…
Hi,
thanks very much for the testcase.
However, I'm afraid I'm not able to reproduce the issue right away.
I'm not an everyday user of LEF, so I am not very familiar with that format. By "comment line" you mean adding a semicolon in fro…
I guess you mean "Import LEF", not "File/Open LEF", right?
I'd call the layer properties behaviour a bug. But I can't confirm it right now. I was not able to reproduce that issue with 0.23.4 on Linux right away. The test case I …
Hi,
I am trying to understand what is going on.
How do you specify the .lyp file? Are you using "Use default layer properties file" in the setup dialog's "Layer Properties" page? Or are you using a technology binding?
Do you u…
Hi,
Well, from the code that should be supported alread. KLayout will ignore the SPACING (it's no router, so this should be fine), but it should put the shapes on metal3.
I suspect it's some other issue. Are you able to send a small testcase to th…
Hi,
I guess this works. There is no restriction about the origin of the layout - neither layout, cell or layer.
I think it will take the common bounding box as the total area to cover. But I have not verified that yet.
Matthias
Hi,
I see your point.
Basically you can also code the "inside" script dynamically. It's a plain string.
For example if you want to combine the layers 1, 5, 6, 7, 10 and 11:
layers = [ 1, 5, 6, 7, 10, 11 ]# combine theses layerslayers.e…