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,
I just have a rough idea about the meaning of this rule, so I can just guess.
Maybe you want to try this:
report("DRC")poly = input(2)metal = input(1)# e1 = metal edges overlapping poly by less than 1µme1 = metal.overlap(poly, 1.0.u…
Hi Luis,
yes, the NSIS script is the one used for the official installer. I don't know whether the NSIS installer provides silent installation. Maybe there is a command option, but you better check with their documentation.
For a modifier installe…
Hi Christian,
thanks for these observations.
* There is no way to clear a namespace. At least not as far as I know. You're working inside a life interpreter of a dynamic language. With all side effects.
* That's a known issue. For a workaround see…
Hi Joel,
I understand your point. I'll see what I can do. The library name is currently not a property of the layout but of the writer settings. In your application it's better to regard it an attribute of the layout and write it.
Thanks,
Matthias
Hi,
what is drc_cal format? SVRF? There is no way to translate a Calibre SVRF script into KLayout. And there probably never will be. It's an IP issue.
Matthias
Hi Joel,
I guess I understand your idea. I'll have a look whether that is feasible or not. Basically editing and browsing are mutually exclusive since browsing depends on the consistency of the data model. But maybe it's possible in the context of …
Hi Benny,
You probably mean mask data, do you? Design data (hierarchical, pre-OPC, pre-fracture) is hardly 100G OASIS. Maybe you're expecting too much of an open source tool. There are commercial solutions that allow you deal with that kind of data…
Hi Shlomi,
How can a such a function define a shape (polygon)? Do you mean "a polygon which includes all points where f(x,y) = 1"?
That will be tricky because KLayout is no equation solver.
But here is an approach:
atan2(y,x) will give…
Hi Joel,
the bugfix you mention is not related to this issue but only to manual copy/paste in the editor.
If I understand your description correctly you changed the way the "test" library is built. So now, you're loading the library from…
Hi,
the request can probably be implemented, but the effort will be substantial. The basic approach for implementing a feature that provides mouse interaction is to employ the RBA::Plugin framework. A starting point is the documentation provided fo…
Hi,
that's a configuration item embedded in the menu. It does not bind to an Action.
That's why you do it this way:
RBA::Application.instance.set_config("combine-mode", "erase")
Values are:
* add
* merge
* erase
* mask
* dif…
Hi,
The Python it picks will be the one it was built against. That's related to the actual Python interpreter it uses. So for example if you want to run Python 3 and you system provides 2.7, you need to rebuild it.
But if it's just about pointing …
Hi,
Regarding 1.):
You mean Windows do you? Basically you're on the wrong track. KLayout comes with it's own Python installation and there are many good reasons for that - specifically on Windows. Given the variety of compilers and runtime environ…
Hi Lukas,
Basically a PCell is not a special cell. It's a special Instance (one that is enhanced with PCell parameters). So basically you cannot copy a PCell by a cell copy. But you can copy a PCell by copy/pasting the instance of the PCell: click …
Hi,
please paste your entire script. I can't help while getting only partial information and you seem to play with the code. Please also note that the forum supports Markdown. So please use it to format your code (put four blanks in front of each l…
Hi baworth,
Text handling is not part of the DRC engine yet. DRC is a pure mask geometry feature currently. That's why you don't see text object.
But the DRC feature is based on a Ruby script. This allows extenting the language with new features t…
Hi David,
thanks a lot - perfect intro :-)
I realize, that the image cannot be saved to PNG directly. If you want that you'll need to traverse the image pixel by pixel and generate a QImage object. This can be saved. I am overhauling the Ruby/Pyth…
Hi Thomas,
that's a DRC function. You need to use it in the context of a DRC script.
So you need to create a DRC script (Tools/DRC/New DRC Script) and use a script like this:
puts input(1, 0).area
This will print the area in square micrometers i…
Hi,
I can help out with the first problem - there is no quick fix available for sleepless kids, I'm afraid. But that problem will be solved just 15 years later. At this time it will be hard to get them out of bed :-)
For the sizing problem:
Sizin…
Hi,
that's very difficult to debug then. I am not aware of similar issues, but it is likely to be related to the way polygons are written. Maybe switching to other polygon modes (like SOLID/HATCH/LWPOLYLINE) helps.
Could you send a testcase to the…
Hi,
please give some more details. What is $output? Is this a file name ending with ".dxf"? Did you take a look into the file? Is it really DXF?
Does AutoCAD report any error? How does it fail?
Will AutoCAD read the file if you don't mo…
Hi Nathan,
while the editor is opened, the debugger is active. This slows down execution, because the debugger will hook itself into the interpreter. This will enable interacting with the execution of the code, but slow down each Python operation. …
To rotate the whole layout for example by 22.5 degree around the origin (0, 0) use
layout.transform(RBA::ICplxTrans::new(1.0, 22.5, false, 0, 0))
Matthias