Hi Hamed,
"read" on an existing layout is rather simple merge - it will read the shapes and cells from the layout file right into your existing one, adding to existing layers and cells if possible.
The database unit will simply be overwr…
Maybe the net tracer will help you - it allows tracing connections across polygons. "connections" means polygons touch over overlap.
Please see http://www.klayout.de/doc-qt4/manual/net_tracing.html.
Matthias
Hi Eric,
you mean to establish a selection of certain shapes?
If you have the shapes, you can directly run the density on these shapes rather than first selecting them and then running the computation on selected shapes.
The key to this is the Re…
Hi Hamed,
you mean a fresh layout? That's "layout.dbu". I think that this will be the DBU of the last layout loaded, if you load multiple layout files into the same layout object.
Matthias
Hi all,
yes, that's the way I'd do it too .. please note that skilled users could still do that in the macro IDE or potentially in other places. You'd not achieve total safety unless you disable these features too.
Some features that can potential…
Hi Hamed,
The recommended approach is to use the Region class:
shape = ... the input shape 1 ...shape2 = ... the input shape 2 ...region = RBA::Region::new(shape1.polygon)region2 = RBA::Region::new(shape2.polygon)region &= region2 # or which…
Hi Dion,
that should be fixed already. Please try to pull the master from GitHub: https://github.com/klayoutmatthias/klayout.
I have not confirmed 64bit coordinate support myself, but I will do so.
Thanks for reporting that issue.
Kind regards,
…
Hi Lukas,
I have fixed the issue, but I'm afraid it won't be of much help. The simple XML parser API is deployed by implementing a couple of interfaces. That's kind of tedious in Python.
An easier solution is to use the DOM API. Here is an example…
Hi all,
my scope is MSYS2. IMHO that's an equivalent solution to Anaconda. If I had infinite resources I'd support both.
In general, building shouldn't be an issue on both systems as long as you have bash and a few packages (gcc/clang, qt5, python…
Hi Paul,
did you try with the latest version (0.25)? For this version, it should be possible to load DEF like any other format.
DEF is richer, so if you want to provide particular configuration options, you'll need a separate configuration object:…
Hi Lukas,
thanks for reporting this issue. There are actually too many overloads of "parse" - I'll remove one (https://github.com/klayoutmatthias/klayout/issues/62)
Best regards,
Matthias
Hi,
There's a line shown in the error message (line 14 in init.py). Whatever is there should tell you what DLL wants to be loaded. I assume "lib_dynload" is . If you run a 32 bit KLayout, it can only load 32 bit DLL's. Same for 64 bit. So…
Hi Sunil,
once you run 0.25, the configuration will be modified with new features. Backward compatibility is not a scope of the configuration file.
You can use "-nc" on 0.24.10 to not read the configuration at all - then 0.24.10 won't co…
Hi Lukas,
unfortunately MSYS2 version is "rolling" - the packages will be the "latest greatest" only. MSYS2 itself is less critical, but when the package repo gets updated, "pacman -U ..." is the only option left to in…
Hi Erwin,
KLAYOUT_PYTHONPATH needs to include the default installation location for the encoding libraries because otherwise Python won't start up (I have not invented this - I also wish CPython was easier to integrate).
In my case KLayout is inst…
Hi Lukas,
basically the performance of the different approaches should be more or less the same. Region is basically just a convenience wrapper around EdgeProcessor. ShapeProcessor is the same. The
The performance is roughly O(E*log(E)) where E is…
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.…