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
@Weiling_Zheng I assume .01 is the MEBES pattern file. .jb is a text composing multiple MEBES pattern files into mask writer data for a single or multiple blanks. Former ETEC e-beam mask writers used that format to control the hardware for a writer …
@Bian Unfortunately there are too many Spice flavours. I recall even Cadence wasn't consistent within their own tools.
I took my knowledge from the ngspice user manual: http://ngspice.sourceforge.net/docs/ngspice-manual.pdf
Actually KLayout's netl…
@Bian
Thanks for the testcase and the nice description of the problem.
First of all there is a very simply explanation for the mismatch of the resistors: the models do not match.
This line from the schematic:
RR0 vdd! gnd! 10 $[RR1] $W=600n $L=6…
Hi Joaquim,
I actually don't know how CentOS binaries look like - I only have Docker containers and no UI system :(
I'm taking the system Qt in the hope it will provide a solid basis.
Matthias
@allonpa If you check without_length(0.282.um,0.283.um) this will actually mean "excluding 0.283". But the lengths are internally rounded to DBU before compare, so the measure length will be 0.283 and that (because of the "excluding&q…
@Weiling_Zheng .jb is the MEBES jobdeck format. It's used by mask makers and combines a variety of MEBES pattern.
Actually MEBES isn't truely supported because that is protected IP. Same for MEBES jobdeck format. You'll notice that MEBES is support…
@Daaan
The way to use two different layouts for DRC is:
a = source("@1")b = source("@2")target("@1")(a.input(1, 0) - b.input(2, 0)).output(1000, 0)
This example will read layer 1/0 of layout @1, subtract 2/0 of layou…
For @Dan_Kanna, I hope I can provide a different solution (see our mail exchange).
For the others: real custom devices classes are not well supported now. This is going to be a feature for later releases. The main deficit is the ability to define d…
@edwu Brackets indicate character classes in "~" - the glob pattern syntax is borrowed from the Unix shell.
So "PS[123]" is actually "PS1", "PS2" or "PS3". Same for "PS[1-3]".
To really u…
@davidnhutch That's right, "round_corners' will limit itself to adjacent edges. The VLSI world does not have a traditional operation of "softening" features, although lithography simulators often produce contours which have soft featu…
Well ...
First of all in RS274X there are zillion of different apertures and even customized ones, so there is not just round paths. Second there is "erase mode" and finally, the goal of the PCB import is providing the bridge between PCB …
@dick_freebird No, that's a plain DBU effect. The editor settings do not have effect here. In the database, everything is stored as multiples of DBU. If the DBU is large, snapping will occur, but as a rounding effect, not intentional "snap to s…
@Daaan Yes, thanks for mentioning this. Region only works with integer-type objects. So that's Point, Polygon, Vector, Box, ... everything is in multiples of DBU.
Matthias
No, you will not get a foreign Python module working unless it's binary-compatible KLayout DLLs. Conda Python modules will not work.
That's all painless on Linux.
Matthias
@jiunnweiyeh There is an additional dot at the end of this line:
PI1_io_large = PI1_io.without_area(0.um .. ruleParea).
This will make the parse think there is a method following :)
Matthias
@jdacosta The menu entry is missing if KLayout is compiled without OpenGL support :(
OpenGL has to be enabled in Qt. I'm afraid, the CentOS build I'm pulling uses system Qt and maybe it does not have OpenGL compiled in. I have not checked this as I…
@alexandrePhoton .lydrc should be XML always. You mean you're editing it externally?
XML can store more metadata like menu binding information. If you don't need that, you can use plain text. Use the ".drc" suffix then.
Matthias
@Daaan Yes, polygon.size is there - but beware that it may generate strange "ears" and inner circuits. In order to remove them you'll need to merge the polygon which potentially generates multiple polygons or sometimes even eliminates all …
Hi Dan,
yes, your question makes sense. I though of that a couple of times, but the problem is about the frame lines. They cannot be inverted by a simple pixel operation. A true boolean operation is too expensive for display.
And having two or mor…
No. "forget" only frees memory of a temporary layer.
If you want to clear a layer in a DRC script, you can write an empty layer to it:
polygons.output(86, 0)
Matthias
@yangwoo You need to call "eng._finish" finally to flush the report to a file.
But you're playing with internals here. You should be able to read the original code when you plan to do so.
Matthias
@jiunnweiyeh Yes, you somehow need to address the layout you're taking the shapes from. To get the current layout, use "RBA::CellView.active.layout".
I can't say how you want your box to be defined. I just used the coordinates you have gi…
Dear all,
thanks for this discussion. There actually was some confusion about this package (see here for the whole story: https://github.com/KLayout/klayout/issues/841)
Maybe you can try again.
There is also a dependency on other Python packages …
Hi Laurent,
with "begin_shapes_rec", the shapes plus the ones from the subcells are pulled :)
Also "layout.clear_layer(li)" will clear the shapes from all cells, not just the ones from the cell you're working on. So eventually …
@davidnhutch Maybe you have big polygons which get split into smaller ones upon saving. For PCB layouts this is likely to be the case. Often PCB layouts contain round features which resolve into many vertexes. Big polygons are harder to trace.
You …
@davidnhutch What do you mean by "unstable"? I'm a bit worried - that should not happen.
What's the version and OS you're using? And maybe you can share some sample code which allows reproducing the problem?
Matthias
Hi Eugene,
yes, the title patch is just temporary. It's using the underlying Qt object directly.
I don't think it's basically possible to capture all cases when the title is overwritten, so either you install a timer that periodically resets the t…