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
Ah .. right. The "cm_..." functions are stupid and don't report status or similar. They are slots too, so return values are not feasible. Errors will also not become visible to the code by the way. Only a message box will be shown.
You ca…
Hi Lukas,
I stand corrected - Macros are associated with a technology. Libraries are not (currently). The focus of technologies wasn't libraries so far, so a library is not a true technology component yet. That's also the reason why tech/xxx/librar…
Hi Lukas,
I have not considered to unload PCell libraries so far. Basically it's possible, but the implications are severe and it will be difficult to catch potential interference scenarios. And once something is loaded into the Python interpreter …
Hi Lukas,
The "File/Save" function can simply be triggered with
RBA::Application::instance.main_window.cm_save
(the cm_... functions are the ones that are tied to the menus, so by calling them you do exactly when the corresponding menu …
Hi Chris,
this message basically says that KLayout can't find an object it likes to iterate over. This can happen if you modify the objects "substantially" while iterating over them. Setting a property is a "substantial" modific…
Hi Wicky,
Here are some recommendations:
* Make sure you are using Viewer mode. Edit mode takes much more memory - specifically in case of OASIS.
* Use Linux with 64bit. That's the platform of choice when it comes to high performance. No freezing …
Hi,
if you build and run KLayout, you will find an example and some documentation in the built-in help in the chapter about the NetTracer class. It's not available as public web page yet.
Matthias
Hi Anton,
that's a reasonable to do it. I'll look into the threading approach, but not with high priority.
KLayout uses a similar approach internally which is delivered by the progress reporting feature. But with C++ the overhead of processEvents …
Hi,
you're right, a global hide/show images feature is missing.
It's extremely easy to script however:
# show all imageslv = RBA::LayoutView::currentlv && lv.each_image { |image| image.visible = true }
and
# hide all imageslv = RBA::Lay…
Hi Anton,
I actually intended to discourage use of threads ...
KLayout does not use PyQt, so things are entirely different. Specifically there is no provision for defining and emitting signals - in a dynamic language they don't make sense. They ar…
Hi nikoh,
there is one option: add a pseudo-layer to the layer list with the following "layer source":
!CellFrame #0
Configure this layer with empty stipple and the color you want your cell frame to appear. This will paint a cell frame …
Hi,
thanks, but could you reformat the post? It's hard to read. The forum supports Markdown markup, so you can embed code putting four blanks in front of each line.
In general, the DRC "round_corners" and the edit function are not the sa…
Hi Anton,
thanks for this nice test case. I know what you're talking about now. This answer is going to be a bit longer :-)
Different behaviour of IDE and menu
I can offer the following explanation for the different behaviour:
Basically, the con…
Hi Lukas,
Linking libraries and technologies was my initial plan but it turned out that the implications of switching technologies become too severe in that case. One cornerstone of the architecture is that once a library in unlinked from a layout,…
Hi,
That's the core application code there. No scripts please. You can create your own repo and share your code there.
Eventually I'd like to start maintaining a Wiki page there linking to the related projects.
Regards,
Matthias
Hi Lukas,
yes, I have. I have just migrated the working repo to GitHub, so you can basically check out the latest state: https://github.com/klayoutmatthias/klayout.
There will then be a new class called "NetTracer".
Regards,
Matthias
You're welcome :-)
I shall add that I am able to build on Windows 7 using MSYS2 and the mingw 64bit gcc toolchain with Qt 5.5, Python 3.5 and Ruby 2.4. That's not VC++, but at least it's finally a native Windows executable. MSYS2 has received a lot…
Very good :-)
You will find a lot inside the menus, so you don't necessarily need scripts. Scripts come into play when you need to automate things or want to create PCells.
Matthias
Hi,
there is no direct way and I doubt there ever will. These interpreters don't share a common memory management model. That is a basic limitation which essentially renders it impossible to pass objects across the language barrier. KLayout exposes…
There is a "rasterize" method in dbPolygonTools.h, which may be a starting point. But I doubt whether it's well tested.
Please observe the GPL requirements.
Matthias
Hi,
Actually you can convert a SimplePolygon into "canonical" polygons. Those are: decomposed into hulls and holes, not self-overlapping, normalized in terms of orientation and without redundant points. The canonical form is obtained thro…
Hi,
I'm afraid I don't understand your request. You mean labels? I guess you speak of DXF, right?
There are many ways KLayout translates DXF to GDS. There is no general rule how to translate the data. KLayout is a tool to deal with physical mask d…
Hi,
GDS2 does not provide features for representing this kind of array. You can however, represent one row of shapes by a one-dimensional array. This will substantially reduce the amount of data required for your layout.
Matthias
Hi,
thanks for the hint about the "reload" feature.
Regarding your "inside" issue: the "inside" detection is based on a certain fuzziness which is far bigger (actually in the order of 0.1) than the actual floating poi…
Nothing to correct, David :-)
I personally favour GDS2 because I feel that having library name and file name separate is some advantage. For example, you call the file "MyLib_V1.0.6.gds" and still have a library name that is "MyLib&q…
Hi,
@David: thanks for this answer - you really got the point :-)
Regarding the last question: yes, the library name is used as the name shown in the dialogs for this library. And you should use GDS2 because other formats don't support the library…