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 Jim,
that's unfortunately a legal issue. Calibre's ruledecks are written in SVRF which is a format copyrighted by Mentor. It's strictly protected, so parsing it from open source tools is not possible.
I wonder if any foundry might want to provi…
It looks like the "lines" are actually polygons with two points or something like this (edges?). I don't think Cadence can digest this.
The screenshot does not look like a valid mask design. No filled areas.
Please share your Python code…
Hi Bill,
that's just the tail of the log. I'd need more.
But this doesn't really lead anywhere. I don't know what's with your installation.
But luckily we live in the 21st century. We have Docker. You should install Docker and do the build there.…
Hi Chris,
I tried with https://www.klayout.de/forum/discussion/1227/postprocessing-nettracer#latest (example2) and I can't confirm it's not working.
There was an issue with overloading of methods in Python which was fixed in the latest version 0.2…
Nice image. I like it. HTML art :-)
You can include code by putting a triple backtick line before and after.
Looks like Qt headers are not installed or are only partially installed. Did you install "qt-devel" or "qt5-devel"? Th…
Well ... master and dvb branch like every other branch are "use at your own risk" :-)
If I had to properly label all versions I'd had to give new version numbers ten times a day. And since versions play a role in some code parts - e.g. fo…
Hi Bill,
it's OK to ask such questions here :)
You'll find a list of packages for some Linuxes here: https://www.klayout.de/build.html
A first test with a Docker image (fedora:30) tells me you'll probably need these packages: gcc g++ make ruby ru…
Thanks for sharing this :-)
If I understand you correctly, the static cell-to-skill approach would allow translating OA cells into KLayout?
That sounds promising!
Best regards,
Matthias
Hi Rakesh,
this is a DRC script. Go to the Macro editor, open the DRC tab, create a new DRC script and paste the above code.
If you run it, it will take input from layer 1, datatype 0, apply the steps and write it to layer 10, datatype 0 in your o…
Good :-)
That's what I actually wanted to say: "report" switches to "report" mode and the arguments to "output" are different ones.
"target" switches back to "file mode" and the arguments of "…
Hi Thomas,
You're right - anisotropic sizing with different signs isn't supported yet. So you can size up or down, but not up in one direction and down in the other. The mixed-sign case has some complications I could not overcome. This limitation i…
Hi Jim,
I have implemented the "infix move" feature (https://github.com/KLayout/klayout/issues/317). It's in branch "issue-317" and unless there are issues with this feature, I'll merge it master soon.
Matthias
Hi sheppie,
I hope I understood the problem correctly. To me this boils down to these lines:
momcapTotal.sized(0.05).merge(0).with_area(2.5.micron2, nil).output(101,1)log("Total Area momcapTotal: #{momcapTotal.merge(0).area}")...MOM = in…
Hi,
"output" takes different arguments depending on whether the output is to a report (a results database) or a layout. If sent to a layout, the arguments are layer, datatype (numbers) while for a report, the arguments are category name a…
Hi Martin,
an "Instance" object can't live outside a Layout, so creating one with "pya.Instance()" is not the right way to use it.
Where is the instance supposed to come from? Or what do you want to achieve in the end?
Matthias
Hi Olivier,
a "cross" is just a specially configured ruler:
* Label format: "$U,$V"
* Style: crosses
* Outline: diagonal
So if you place the ruler in a script, use the same points for p1 and p2 and set "fmt" to "…
Hi Andrew,
LD_LIBRARY_PATH isn't necessary if you specify a prefix with "--prefix" in the build step. In this case, the installation path will be put into the RPATH header entry of the shared objects and executables.
Matthias
Hi Chris,
I can't confirm there is a bug. So maybe there is an issue with writing klayoutrc.
Could you check if you have permissions to write?
Other causes may be:
* there is a macro which resets this entry on startup
* $KLAYOUT_HOME points some…
Hi Cristian,
maybe the LIBNAME is always "LIBRARY" for all these files?
KLayout obtains the library name from the LIBNAME record of GDS files. This name is the unique identifier for the library. If this name is the for all files, only th…
Hi,
Printing should use the DPI settings from the "Printer" (whatever this is for PDF export). Maybe there is a setting in CutePDF for the DPI?
As an option you can create high-res PNG images or use vector export. For a script that does …
Hi Jim,
the variable names will be human-readable form, but "input" cannot take information from the .lyp. These are different domains (views vs. database).
There may be a dirty trick to achieve this (basically, DRC has access to the lay…
Hi Martin,
there is basically Instance#convert_to_static for instances and Layout#convert_cell_to_static for cells.
The first function is the one that "Convert to static" from the Edit menu uses. The disadvantage is that it will create o…
Hi Kazzz,
thanks for this hint. The feature isn't available currently as a script function. That's possible of course. If have created a ticket for this: https://www.klayout.de/forum/discussion/1310/ruby-python-automation-of-auto-measure#latest
Th…
If you enable "View/Select top level objects", instance objects will be selected rather than the shapes inside the instances. Then "partial mode" will move the instances.
Matthias
Hi Garima,
thanks ... this is much better.
Basically XOR is a geometrical compare: it will produce the areas covered by layout in only one file. XOR is insensitive against the way the layout is drawn (wether it's a polygon, a path or a box), it co…
Hi,
yes, you need to hide all other layers.
This is how you do this in a script:
layer_to_show = 45datatype_to_show = 0lv = RBA::LayoutView::currentlv.each_layer do |l| l.visible = l.source_layer == layer_to_show && l.source_datatype == …
Hmm ...
Yes, you're right - basically the whole thing is pretty new and still under development. Originally it was built for CMOS, but the engine should be flexible enough. I'm saying "should" because I'm pretty aware that the world of de…
Hi,
To remove a layer entirely (from the database), select it in the layer list and use "Edit/Layer/Delete Layer" (you can also select multiple layers).
You can always get a full list of layers in the layers window using "Add Other …