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
The problem is that "Shape.polygon" returns a copy - you only modify the copy, not the original polygon which is an opaque binary object inside the database.
To write the polygon back, use
shapeObj.polygon = shapeObj.polygon.round_corner…
No worries, I moved the discussion.
By coincidence I just implemented a "clear" version that takes a parameter to select which shape types to clear. But that will have to wait until the next minor release.
Until then there is a shape-sel…
Yes, you can generate a polygon from an array of points
array = [ [ 0, 0 ], [ 1000, 1000 ], [ 1000, 0 ] ]polygon = pya.Polygon([ pya.Point(x, y) for x, y in array ])
(I guess that also works with numpy arrays)
Note that the coordinates need to be…
@Nacer There are two kind of layer names: database layer names and the layer description you give each layer in the layer list.
GDS does not support database layer names, so you cannot use them in GDS.
If you talk about the layer description in th…
No, that would be a lithography simulator. They usually work by digitizing the shape into a grayscale image and applying a transfer function kernel (essentially a low pass filter) before turning the image back into a resist contour.
DRC is not mean…
You can attach GDS files if you pack them into a .zip container.
Are you sure XOR between two single layers is enough? If so, this is the code I'd put into the loop (disclaimer: not tested):
# After: "Here is where I would need to add somethi…
No sorry, there is no such function - merge means the edges of the original shapes are gone.
You can cut shapes into parts using "Edit/Selection/Separate into Inside/Outside". There is a discussion about this: https://www.klayout.de/forum…
I like that idea. I'd just propose to make that a bindkey / modal function - people tend not to like popups if there was none before.
Like "Select from point"?
Or: there is the "Alt" key which is not used for selection yet. So …
No offense taken and sorry for this reply. I don't recall why exactly I wrote that this way, but let's just assume it was the weird COVID situation by then ...
Matthias
Yes, basically that is the way it is done.
The basic class implementing that in KLayout is lay::LayoutCanvas (layLayoutCanvas.cc) in LayoutCanvas::update_image. This class connects to the drawing threads through asynchronous callbacks (signal_trans…
Hmm ... I understood it differently in a way that the intent is to generate layer display styles from inside a DRC script. That's something that is beyond the abilities of DRC (apart from ugly hacking).
Some clarification was helpful.
Yes, it does ... you can select a DRC error and it will pan to it. But not the other way round.
But I think it's pretty easy to deduce the marker information from the shape. Here is my favorite setting:
(Image)
With this setting, the following m…
@zhenganqi Sorry, I don't understand. Please help me. What is the problem?
And please mark Python code with a triple backtick line before and after so it gets formatted as code. Like on github. I took the liberty to edit your post.
@winebarp Thanks a lot for this report! And yes, this post was done very correctly :)
I can reproduce the issue. It's actually a bug. User properties were not considered before but have been added to support connectivity-aware DRC checks for exampl…
That's built into Qt that way. That's something I don't want to change myself. If anyone has a good idea to make Qt stop this behavior, let me know.
Matthias
@jiunnweiyeh You can't (or rather shouldn't) do that in DRC. DRC is meant as being independent from the UI, so it cannot access the UI elements by design.
Matthias
@plic_user_1983 The above code was meant as a sketch. It shows how to use KLayout API to merge a layout into another one with a layer offset. I'll leave it to you to combine that with a CSV reader (e.g. using the pangas module) and put that code int…
Hi @Vincent,
A transformation is always put in front of "*" (think Matrix multiplication), so this is they way things work on Ruby:
(Image)
The Python binding picks the reverse order as a fallback, so the opposite way works on Python t…
Hi @dick_freebird
That's bad ...
Just for my understanding: this also happens if you're starting from a blank layout? So like: creating a new layout with one layer, place one box, select a box edge in partial mode and trying to move it?
KLayout a…
Hi @plic_user_1983,
In order to do that, you will need to first read the imported layout into it's own Layout object and then copy it over to the destination layout. While you do that you can specify a layer mapping which allows you to implement th…
@yanoff The DRC system is itself a script, so that is possible.
The key is "AbstractProgress" which is a progress reporter without a value but while it is active, log messages will be collected and sent to the progress report area.
Here …
@Frank Many thanks for that analysis and the test case. I was able to reproduce the problem.
In 0.28, LayoutViewBase was introduced which does not offer the bookmark view function, but the derived class LayoutView does.
For some reason, the plugin…
The offset seems to be built into the venerable Hershey fonts. They say characters are 25 units tall, but the "E" is only 21 in "futural" (which corresponds to "stick"). The upper space is reserved for oversized charact…
That's weird. I just tried on Windows 10, Version 0.28.7, 64bit. The above code works for me ...
Are you using 64bit?
I entered the code in the console of the macro IDE. What puzzles me is that you see "LayoutViewBase" which is actually …