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
Thanks - but first of all, it is pretty old, not specific and I'm lacking a picture here. To what kind of situations will it apply?
I don't want to request the paper. I think it's a honey pot, not serious research. The term eqDRC is not used anywhe…
No, sorry. Currently these warnings are unconditionally sent to stdout for the Python module. The only way to suppress them is to redirect stdout (temporarily) somewhere else.
But I'd say these warnings are an indication that DXF is not fully imple…
@wsteffe I understand the desire in general, but really going to arc mode is a hell of a project.
Right now, everything in the layout database can be represented by polygons, hence that is the basic object. The Region class - which is the represent…
Thanks for this information.
I'm not a researcher, but the paper seems quite old and I have not retrieved it. But I cannot imagine deriving a curvature is that easy. Could you supply a sketch or any publicly available reference?
The projection of …
Download the packages you want from a computer outside your network and copy over the "salt" folder from KLayout's home folder ("c:\users\you\KLayout\salt" on Windows, "/home/you/.klayout/salt" on Linux) to your detache…
It's not that easy ...
Qt isn't thread safe and you can only access the Ui objects from the main thread. You can pass signals acress thread boundaries, but only in an asynchronous fashion. Qt (and other frameworks) and threaded applications is a co…
So you use pya.Layout objects and we're not talking about UI, right?
I assume you do something like:
ly = pya.Layout()# create part 1 on ly...# take snapshotsnapshot = snapshot of ly# create part 2 on ly...ly.write(...) # or something like this# …
Hi Jim,
Basically the order of the layers determines the drawing sequence. So upper layers get drawn first.
But if you want the layers to be sorted by GDS layer/datatype, then you cannot determine the drawing order independently (at least as of now…
That is going to be difficult as there actually is no arc inside KLayout - only polygons. Plus there is gridding and the vertexes snap, so numerical accuracy is bad. After all, KLayout is a VLSI mask tool.
This will both make reconstruction of arcs…
Very good :)
Another potential pitfall it not to assign a valid layer. The basic library shapes need a target layer which by default is empty. Hence nothing will be generated.
Matthias
Sorry, I don't fully understand.
So you want to check if certain cells are flat as compared to the same cells from a reference library. So they are still the same, but flat?
Basically, the definition of flat is not having child cells (easy to chec…
You're welcome :)
But you know, since the food chain is basically
Intern -> Engineer who employs intern -> Manager who employs engineer -> Director -> ... -> CEO
it's finally your CEO who actually owes me something :)
Matthias
Hi Kyle,
thanks for sharing the code, but I think, parts are missing.
Basically, QLayout and Layout are different things and I cannot imagine they get confused. Your code appears to be correct on first glance, and the generation of the QDialog is …
Of course this solution is valid too and I really want encourage users to try their own ways. So please go ahead and thanks for sharing the code! :)
There are a few things you're probably aware of:
* It's slower because of the Python loop
* You wi…
Actually trying to create these directories is only a side effect. KLayout has multiple places where it looks up scripts, DRC decks etc. ($KLAYOUT_PATH). By default, the installation directory is one of them which allows you to package an installati…
You're right, this side effect should be avoided. It does not do harm, but the message is confusing. This basically happens because KLayout tries to prepare an environment in places where macros can be stored. The installation path is among these.
…
I forgot mention that this only applies to drawing shapes, not when moving them :(
That is actually a good suggestion. I have not thought of this so far.
But at least object snapping is independent of whether you have "deep" or "top …
@wsteffe That is really awesome!
A humble suggestion: maybe you want to put the script on GitHub or GitLab instead of attaching .zip files here - that way you will reach a broader audience and it's an invitation to others for contributing or testin…
Yes, that is possible: the space check between the edges of the same polygon is called "notch" and the space check between two edges of different shapes is called "isolated".
Matthias
Very good. Thanks for sharing this code :)
The key feature is Qt's event loop which polls event sources (including sockets). That is the way, background processing is done in classic UI applications. As KLayout is a Qt application you can hook into…
Now you are challenging me :)
Here is a simple solution that uses a DRC function with an intra-polygon space check with an above-90 angle limit to generate notch violation markers on inner 90 degree-corners. 1µm is the edge length of the marker:
o…
You mean something like this?
(Image)
I just pressed "1" to select the first level of hierarchy only. More options are here:
You can also use "Select Top Level Objects" from the "View" menu - if enabled, you will …
Maybe making the layer "invalid" is what you need?
Invalid layers are visible (unless hidden), but shapes on invalid layers cannot be selected or manipulated. They are basically just background drawings. So shapes on these layers are &quo…
As mentioned, the definition of distance is not trivial.
The simple definition above will not work if the first edge is a single point. Unfortunately there is no single function to compute a non-trivial distance. I found some code here which you ma…
I guess this is more like PCB layout?
Dielectric opening in VLSI is typically a patch smaller than metal and it's a metal-filled plug that connects metal sheets - hence is conductive. I guess in your case, "dielectric opening" is where th…
Hello,
It is basically possible to analyse the objects returned by width/space. These are so-called edge pairs and they feature two lines which indicate the original edges violating the condition.
So the actual space is the "distance" be…
No, sorry. There is no such option.
I want to encourage Open Source, so supporting encrypted code is contrary to my philosophy and strictly speaking it is also contrary to the GPL license you are using the tool under. You should pick a commercial t…