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 Lukas,
are you using selection just on a part of the layout? The ShapeProcessor will run on the full layer always. Are you planning to implement sizing on the selected shapes only?
ShapeProcessor and EdgeProcessor are somewhat outdated. Region …
Yes ... I just wanted to clarify that these are two different cases. The one from the properties dialog is solved (see GitGub master branch here) and will be release with the next minor release.
Regards,
Matthias
Hi Andy,
Thanks for the offer. I'd include these scripts into the unit tests if you think they are of general interest and can be published as GPL. The more tests, the better :-)
Best regards,
Matthias
Hi Lukas,
not really, no. The API's are still the same - more or less.
I guess you can basically watch the selection by connecting to the LayoutView#selection_changed event. This gives you a callback when the selection has changed (which also happ…
Hi Lukas,
basically it is, but I don't think that's accessible through the Python or Ruby API.
Internally KLayout is built from modules that utilize the "plugin" interfaces. Each of these modules can register pages in the setup dialog. T…
Hi Andy,
regarding the first issue: the problem is not related to Region but to Polygon#move or rather the thing that this method returns.
The problem is this:
pya.Polygon(myBox).move(cx, cy)
Polygon#move returns a reference to self. In case of …
Hi,
the solution you look for is generally known as interprocess communication. There are different approaches, but the most portable one which even works across networks are sockets. In this scheme, KLayout runs a script which listens to a TCP/IP …
Hello,
yes, thanks for mentioning this. Apparently something is wrong with the "assign" implementation in Python.
But you can assign each property individually:
new_a = ...old_a = pya.Application.instance().main_window().menu().action('…
Hi Lukas,
One solution for this is to create a temporary (and otherwise unused LayoutView object):
lv = RBA::LayoutView::newlv.load_layer_props("path-to-your-lyp")lp = lv.begin_layerswhile !lp.at_end? puts lp.current.name lp.nextendlv.…
Hi Tomas,
thanks for the code - but this problem is inherent to Ruby (and most other languages). So whenever float to integer conversion is involved, you should use "round". I cannot do much against this - except recommending to directly …
Hi Lukas,
"Basic" Authentication is handled by KLayout, so I think you can use private GitHub repos. If you want to keep the packages in a separate dictionary, you can basically use any other web site as long as it is able to deliver a pa…
Hi Allon,
do you have a change to try with a more recent version? The oldest one I was testing on is 4.4. Even CentOS 6 comes with that version.
gcc 4.2 seems not to follow the template type inference rules the newer compilers use.
Thanks,
Matth…
Hi,
thanks for reporting this issue.
I can reproduce the problem. Apparently it's a reference count issue with the object returned by create_plugin. With Ruby there is no such issue because Ruby does memory management differently.
A workaround is…
Hi,
are you using Windows?
On Linux, usually it's sufficient to add the specific package to make it available for KLayout too.
On Windows, things are a bit more complicated. On Windows, you'll need a binary builds that are compatible with the hos…
Hi Laurent,
Using the odd DBU is was able to find the issue. Please see https://github.com/klayoutmatthias/klayout/issues/32.
Thanks for reporting that.
Kind regards,
Matthias
Hi Thomas,
Floating point arithmetics is always subject to rounding issues. You can try that in plain Ruby:
$ irbirb> dbu = 0.1*0.1*0.1=> 0.0010000000000000002
instead of the expected 0.001.
Because Ruby's "to_i" integer cast is …
Hi Laurent,
I tried to reproduce that issue, but I cannot confirm it. 0.4 stays 0.4 in my case. I'm using Windows 7, but I doubt there is a difference implied by the OS. It's weired that enter 5.000 makes a difference - computation wise there is no…
Hi,
for the Qt5 issue please see this patch: https://github.com/klayoutmatthias/klayout/commit/11cb5eb99836e043d71b556af010b29624c3f569
The Qt4 issue I can't explain. I am using 4.8.7 myself without seeing this issue (but on clang). The include fi…
Hi Erwin,
To "make clean" you can simply remove the build directory (which is usually called "build-release" or similar). If you experiment with different settings, you can use different build directories. Use
build.sh -bin <…
Edit:
since version 0.25, "micrometer unit" properties are available. With these, the multiplication with the database unit is no longer required and the code simplifies to:
mw = RBA::Application::instance.main_windowlv = mw.current_view…
Hi,
please give some more details. Do you get the instance from an selection? Which cell do you want to sum up the transformations to? Could you please paste some code that illustrates your problem?
Matthias
Hi Andy,
How about using the new "Cross" "ruler"? Just select this ruler type, and click close to the corner you want to measure. A cross is placed at the mouse location. If you're close enough to a corner, the point will snap t…
Hi David,
Thanks for your feedback. I see you took your time to try out :-)
Regarding the first question:
I am using the default location suggested by NSIS - I wasn't aware that it would pick C:\Program Files (x86) for 64bit. Apparently that's be…