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
This link got removed ...
You cannot just replace um by nm and except it will work. The problem is: how do you define a gap? If gap for you is something "small", than you can define a distance threshold and try to detect every situation i…
Good that it works now :-)
The answer to your question
(Quote)
is simply that "produce" is only intended to produce shapes and instances. By "intended" I mean I have designed it for this purpose and this is the contract between…
Thanks for the log.
I tried to understand what's going on, but apparently there is something wrong with the Qt headers. I'm building with CentOS7, but with Qt4. Maybe Qt5 is broken in RHEL7.4.
Could you try "build.sh -qmake qmake-qt4"?
…
Hi Vikas,
I'm sure the message is something else - there is no "RBA::Polygon::Box" object.
Use
sq1 = RBA::Polygon::new(RBA::Box::new(...))
But boxes are easy to size with "Box#enlarged".
Matthias
Hi Laurent,
there is no out-of-the-box function yet, but there are several solutions based on the available features.
I hope this code explains two of them:
report("Via enclosure demo")via = input(5)metal = input(1)# this ensures there …
Hi,
thanks for the lengthy description ... this discussions isn't new, but here are my points:
1.) doing something from inside the PCell to the objects that use the PCell simply isn't possible. You shouldn't underestimate the complexity of the who…
I agree with ocasta - arrays are for saving memory. A more efficient way is to use a loop and place the shape multiple times (as suggested by ocasta too).
Maybe going to 64bit helps.
Matthias
Hi Vikas,
sorry for the late reply and for sharing the code!
You can also achieve this without a loop using RBA::Region objects. Region objects can cover all shapes from a layer. Basically you can write:
ly.each_cell do |cell| next if cell.name …
Hi demis,
Have you tried the solution suggested in the forum? I think this works.
But I don't want to create arbitrary files lying around when the program exits (for saving .lyp). What if multiple users look at the same file with different setting…
Hi,
"0um" is not a valid specification that's why the error happens. Unit and value have to be separated by a dot.
You cannot check "disconnection" by a space check, except if you have a threshold. A space check will detect spa…
Hi all,
I'd appreciate if you could file tickets for these requests on GitHub. There is a bigger chance that someone may find it and add this feature.
Regards,
Matthias
Hi Olivier,
the ticket is not fixed yet - it's a bigger issue. I'd suggest to use the workaround for some time.
I can reproduce (3), but I have not debugged the issue yet. But I think I can explain the issue:
The problem is basically that C++ has…
Hi Laurent,
you're right, sorry. The line should be
metal1 - metal1.width(1.0.um, projection).polygons
'square' is also good, but it probably selects more from the metal as "narrow".
In general the problem is what to define as "na…
Hi Arun,
this is just a partial log. Please send the whole build log to the address on the Contacts page. I can't help with partial information.
And if you paste a log here, please use triple backticks to mark code blocks (Markdown syntax). This i…
Hi Luciano,
It's good you got the same result :-)
The diff tool is a "semantic" tool while "XOR" is purely geometry. "diff" takes the shapes and compares one to one. For example, if two rectangles form an "L"…
Hi all,
The layout layer names and the names inside the layer list are entirely different things. The layer name in the layout is a database property. The name of the layer in the layer list is for display purposes.
In GDS you can't write layer na…
I compiles with Python 2, but from the log I see it's trying to find 3.3 (libpython3.3m.so.1.0).
Please make sure that when you run "build.sh", the right python interpreter is in the path.
You may also try the RPM I put on the downloads …
Shape properties are fine. Instances have their own properties and it's not common to have instances inherit cell properties. Both are different concepts and used for very different purposes, so I'd not mix that.
Matthias
Hi Olivier,
the issue should now be fixed with 0.25.8.
(3) may happen because when you run a script and have code inside some classes, the classes may not be redefined. Remember that you're working inside a live Ruby/Python interpreter: classes yo…
Hi Olivier,
I can't reproduce the issue, but I think I have some idea what happens. I'll try further to find a way to reproduce it.
The workaround is probably to use the cell index to obtain the cell:
# instead of # cell = obj.inst().cell# use…
Hi yaroslav,
I think Popen blocks because Qt implements it's own event loop (on Linux maybe it does a select, but I don't know if that helps keeping Popen active). There is a competition for CPU time and Popen looses.
The QProcess approach works, …
Hi Doug,
yes, tiling should help. But that's not available yet as an option in the fill dialog. You can however add it through scripting and embed the algorithm inside a tiling processor.
That's not entirely trivial, specifically if you want to en…
Hi,
the easiest way to is check whether there is a main window:
batch_mode = !RBA::Application::instance.main_window
The main window is nil if in batch mode (-b or -zz). Otherwise it's a non-nil reference to the main window object.
Matthias
Hi Vikas,
the solution is very simple:
cospath1 = RBA::Path::new(path_arr1, width)cospath2 = RBA::Path::new(path_arr2, width)cospath_wg_l = RBA::Region::new(cospath1) + RBA::Region::new(cospath2)cospath_tr_r = cospath_wg_l.transformed(RBA::Trans…