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
@tomas2004 The name of the font should be the name of the file sans extension (e.g. "myfont.gds") should become available as font with name "myfont".
Basically "font_name" should have priority if it is a valid name. If…
@CMeyer You should show the schematic netlist for "Nand_opt". I'm sure it only has one V_ss pin and that means there is one pin more in the extracted netlist - i.e. two places where V_ss is attached and two separated islands with V_ss in t…
@wsteffe I had a look at the first DXF file. The reason the circles do not appear is a logical one.
In order to create filled polygons from the lines, you need to pick "merge lines into polygons" mode (or "automatic" which does …
Is that a paste error or do you write "lm" once and "_lm" the second time?
You can basically format code by placing a line with a triple backtick before and after the code (like GitHub Markdown for example).
But basically the p…
Right, thanks for the hint!
Maybe the writer could skip everything inside a ghost. I did not consider this use case so far. Usually ghosts happen when you read certain GDS files and the property mainly is there to maintain this state rather than tr…
@CMeyer Thanks for the expanded tree view. The problem appears to be a duplicate V_ss node in the layout, but a single one in the schematic.
Apparently, there are two V_ss nets inside the subcircuit which are not connected with the subcircuit, but …
Hi Thomas,
This is actually very simple: there is an attribute called "ghost_cell" which you can set to "True". This will save a layout with two ghost cells:
import pyaly = pya.Layout()top = ly.create_cell("TOP")macro…
No, painting is not made for being precise down to single pixels. It is for visualization, not data translation.
Apparently some people use the screenshot images for mask making. This is not a supported use model. No warranties about missing pixels…
@RawrRanger Thanks for the workaround. Actually the output_cell should not be needed. That is actually a bug (https://github.com/KLayout/klayout/issues/1485).
Best regards,
Matthias
Hi Vincent,
Floating-point arithmetics is never exactly accurate and errors accumulate. In side KLayout I am doing something like this:
angle_with_noise = ...# for example, test if the angle is 45 degree:if (angle_with_noise - 45.0).abs < 1e-10…
@RawrRanger Wow ... thanks for these elaborate contributions! I really appreciate it.
@wsteffe I think you see that @RawrRanger's support is exceptional. I think you can help with a more elaborate explanation - like a mocked-up sample (input - inte…
I believe so :)
It's actually released yesterday. There is some background processing happening and the single-threaded synchronous get_image etc. methods now take care of finishing these tasks before they deliver the image data.
Thanks for report…
Good news is, you don't need to look for the errors in the subcircuits.
Bad news is, you have an error. But it has to be related to something in the top level layout.
The way this can happen is for example that you attached to a subcircuit at some…
Hi @ResuS,
Thanks for your feedback :) Actually, the xsection script does not really belong here as it is a separate project (https://github.com/klayoutmatthias/xsection). However, I do not actively maintain it and it is pretty much frozen. The rea…
Thanks to the test case I could debug this issue and found a way to avoid the "process_events" call. This patch will be released in the next minor release. Even "update_content()" is no longer required.
Matthias
Dear all,
Wasn't that an issue before somewhere?
"process_events" is required as it triggers the repaint event that actually does the rendering.
But basically "update_content" could imply "process_events".
Matthias
Hi @RawrRanger,
Looks like a bug :(
Frankly, I am rarely changing the color scheme, but I agree for dark mode it makes sense to adjust the color scheme.
I have created a ticket for this: https://github.com/KLayout/klayout/issues/1477
Matthias
Hi @Mustafacc,
I ssume some .so dependencies are not satisfied. You can run the application with LD_DEBUG=files to get more information about what is actually happening. In the log you should see the attempts the loader performs and why it finally …
Hi @MooGyuBae
The CPU requirements basically depend on what you are doing and the settings.
If you are viewing GDS files in viewer mode and you are using one drawing thread, the approximate memory footprint is somewhat like 50% to 100% of the GDS …
Hi Chris,
yes it is intended that "create_plugin" is called. In fact this is called pretty often, specifically if a layout view refreshes.
If you provide some sample code, maybe it is easier to understand what you are trying to do.
&quo…
@vspitsyn You cannot simply rename .rb to .lym - that is a different format (XML).
In order to make the script work, go to "Tools/Macro Development", create a new Ruby macro (.lym) and paste the code from above.
Substitute
include RBA$g…
"MenuAction" is not part of the KLayout API .. I assume it got there initially by namespace pollution from another package.
The API way of doing this is:
...include RBA$gross_die = Action.new$gross_die.title = "Gross die / Yield&quo…
"scaling factor" must not be 0. That is what the message eventually means. The scaling factor usually is 1, sometimes it's smaller or larger. By 0 does not make sense.
Reinstallation does not help as the configuration remains and the valu…
Hi @MooGyuBae,
The key is the Technology object. If you have loaded the technology, use "technology_by_name", like this
tech = pya.Technology.technology_by_name("sky130A")
you can also construct a Technology object from a XML …