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 Thomas,
PCell updating is somewhat cumbersome. It would be easy if there was a method to translate a cell entirely, but there isn't. That is because although PCells are mapped to PCell variants, the PCell parameters are considered properties of …
Hi Thomas,
"called_cells" will only give you the cells which are called, not how they are called. There is a basic difference between "if" and "how": "if" just tells you whether there is at least one instance…
Hi,
Basically that error is not possible, since the method is defined also without using Python.
I guess you switched the options without cleaning the build area. Please remove "build.linux-64-gcc-release" and try again.
Matthias
Hi Chris,
Amazing test case, thanks a lot!
The test script can be written even shorter and well reproduces the problem:
['ABC', 'XYZ'].each {|txt| ly = RBA::Layout::new top = ly.create_cell("top#{txt}") layer = RBA::LayerInfo.new(2, …
Hi Lukas,
the discussion title says "How to changing the library name ..." :-)
But sorry, the "meta data" is rather hidden currently. So you cannot read it through script now. It's on my TODO list, but this will require some re…
Hi Vikas,
just replace
pts = [0, 0]
with
pts = [ RBA::Point::new(0, 0) ]
Doing so makes the pts array a pure RBA::Point array and only such arrays are accepted as valid arguments for the polygon constructor.
Matthias
Hi Vikas,
I wish people would stop comparing an open source tool with heavy commercial solutions.
There is one great advantage of open source and I wonder why only very few consider this: you can modify the tool! If you need a new feature, add it.…
Hi,
this is a trick question isn't it :-)
Basically I think, first reading and then manipulating is the only valid way. I mean, you don't first bake a cake and then add the ingredients, do you?
Honestly, I don't know what is happening when you fi…
Hi Lukas,
the library name is part of the layout's "metadata". Metadata are additional pieces of information that the reader delivers and is kept along with the geometrical data, but it cannot be changed currently.
If you want to give a …
Hi Dave,
yes, I'll add the popup solution.
Just for clarification: you run your script with "-z", do you? If not, the progress is still shown in the main window.
Matthias
Hi Dave,
I could basically open the internal API for receiving progress for Ruby too. The responsible C++ class is "tl::ProgressAdaptor". This is equivalent to what you call "progress_check". There is no elaborate receiver chain…
Hi all,
I was able to locate and fix the problem. I'll release it soon with 0.24.7.
It was not readily reproducible always but it could be seen in valgrind. The reason was a deleted object in the array instance cache.
Thanks for the bug report an…
Hi Luis,
thanks for your feedback :-)
I am aware of the limitations you described. Unfortunately that is cannot be avoided with the approach that XSection pursues. The problem is that "growing" is basically just supported outward. Negati…
Hi,
maybe you'll need to start right at the beginning. Here is a good starting point: http://www.klayout.de/doc/programming/index.html.
To use Cell#copy_tree, you'll need to create two layouts, load the two files into these two layouts and then co…
Hi Irene,
this is a basic limitation of the GDS format.
GDS stores the coordinates as integers. To obtain the physical dimensions, these coordinates are multiplied with the "database unit". Hence the database unit is the fundamental grid…
Hi Lukas,
thanks for that notice. Good news is that I can reproduce it on Linux too. Which means that the MacOS build is comparable to the other builds.
Apparently "Make cells" is broken since some time when instances are involved. I'll …
Hi Jaspreet,
you mean resolving the polygon into points?
The points of the polygon you can get through iterating over the polygon points with Polygon#each_point_hull for the hull contour and the same for the holes (a polygon created from a path wo…
Hi Dave,
unfortunately there is no way to have this without the main window currently.
The progress classes are just reporting progress. Display of the progress is the other end of the progress object and that end is not accessible through scripts…
Hi,
Lacking a real testcase and the actual code I can only guess.
But I think what happens is that the mapping cannot produce a valid GDS layer since you map multiple datatypes to one layer. The effect is probably that the datatype number is undef…
Hi Jaspreet,
if you need the outline of a path, you can convert it to a polygon using "Path#polygon". From the polygon you will be able to retrieve the outline points. I think this is what you call the "buffer polygon".
Matthias
Hi all,
@David: thanks for taking care of this and pointing to these goodies :-)
But I wonder why there is no progress shown in your case. A progress reporter is already embedded inside the GDS reader.
This simple script:
lay = RBA::Layout::new(…
Hi Vikas,
So you want circles to be checked with less spacing but "other" layout with the correct one? That means the algorithm needs to distinguish between "intentionally wrong" and "really wrong". I don't see how an …
Hi Dave,
So far I have not tried to educate users by giving too many tooltips :-)
I personally favour links inside the labels showing some help text. That is not annoying and within the help text popup you can shown a more elaborate document.
Com…
Hi Dave,
tooltips should only pop up if you design your widgets to have some. I think I don't really understand your problem. Do you want to have tool tips in general, but sometimes you don't want to see them popping up?
In general, event filterin…
Hi norrisc,
there is no limitation in the OASIS reader regarding the number of layers. Virtually the layers are unlimited. Merging is not supposed to happen.
Beware of one topics regarding OASIS: in OASIS, the primary layer identification still ha…
Hi Theo,
Have you built KLayout yourself, or did you take it from the .rpm?
I have never seen this message and I cannot reproduce it. The problem line appears to be this one:
if File.identical?(__FILE__, $0) [1, 2, 3].freeze << 4end
So ei…
Hi,
Regarding 1.) for the PCell parameter you will need the RBA::LayerInfo object. You can get this like this:
view = RBA::LayoutView::currentl = view.current_layercurrent_cv = view.cellview(l.current.cellview)current_layout = cv.layoutcurrent_cel…
Hi,
very good you found a solution!
Just to clarify this: all changes you apply to a layout object are not reflected in the layer list and vice versa. The layer list is independent from the layout - if you want a layer to disappear from the list, …
Hi,
You get the objects for the active layer (actually: the active layer view) this way:
view = RBA::LayoutView::currentl = view.current_layercurrent_cv = view.cellview(l.current.cellview)current_layout = cv.layoutcurrent_cell = cv.cellcurrent_lay…