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 @nice,
I understand you're talking Python here.
I can reproduce the problem. I does not seem to have been introduced recently. The symptoms are the same for versions 0.28, 0.29 and 0.30 (Python 3.13). I have created a ticket for this here: http…
Hi @Krishp,
It's quite unusual (at least in my daily work) to have lower case letters on the masks.
But if you need them, you can install custom fonts as described here: https://www.klayout.de/doc-qt5/about/basic_lib.html#h2-44.
In the text gener…
I think this is duplicate comment of this one: https://www.klayout.de/forum/discussion/2683/the-issue-caused-by-changing-the-dpi-when-using-rasterize-to-convert-a-dxf-to-a-bmp#latest
Please see my reply there.
Matthias
Hi @jiunnweiyeh,
yes, it is possible to run the DRC on the current window. You can use "clip" with the current view's view box. Like this:
view = RBA::LayoutView::currentif ! view raise "No view open"endclip(view.box)# This is…
So you mean the design rule is different for width and length? So like min width 5µm and min length 10µm? And the orientation can be anything?
Matthias
Hi @Flyingmyd,
if your DPI is 0.1512, you need to use a database unit that is able to represent this dimension perfectly. I'd suggest 0.2nm in your case. The default DXF importer setting is to use 1nm DBU, which will round the edges of your design …
Hi @14darcia,
thanks for this nicely prepared test case.
The problem occurs due to the computation of the vertex:
(Image)
The center segments are parallel-shifted by half the width and the intersection point is computed to render the outline ve…
Hi @tnt,
I agree with the "RenameCell" if different, but the definition of "different" is non-trivial as is the check. That is not something you want to integrate into a stream reader.
In general, to be on the safe side, use &q…
Hi @jiunnweiyeh,
Have you tried to undersize?
So if you do
ubm.not_interacting(ubm.sized(-2.5.um))
this should give you all ubm shapes which are smaller than 5µm in one direction.
But sizing may not be very precise if the round edge is resolved…
I debugged a little more and found a small bug that placed one pixel incorrectly.
Also, I figured out that my phone app needed four terminator bits on the alphanumeric coded bit stream.
I have published a new version 1.2 of the QR code PCell.
Mat…
HI @davidnhutch,
I could reproduce the problem, but only once and in some unknown configuration. After I quit KLayout and restarted, everything was working as expected on Linux. Changing the key binding or removing it did not bring back the problem…
Hi @tnt,
I think this topic has been addressed a number of times already.
How to you do the streamout exactly?
There are different strategies for resolving cell conflicts (this is what you have here) and unfortunately in a general context, all of…
Hi @leo_cy,
Inside GDS, the geometry is stored as integer coordinates. The database unit (DBU) gives the unit in micrometers. In your sample case (C.gds), the database unit is 0.001, which means your polygon vertexes will be on coordinates that are…
Hi @Clod,
actually, the rotation angle of the "simple transformation" is encoded in multiples of 90 degree, so 0 = 0°, 1 = 90°, 2 = 180° and 3 = 270°. In addition the codes 4 to 7 encode additional mirroring at the x axis before the rotat…
No worries. I have found the root cause which was a dangling reference that the GC did not clean up (or not quickly enough).
I fixed that and will release it in 0.29.12 soon.
Matthias
Hi Andreas,
sorry for the late reply.
I can reproduce the issue on the attached layout.
Interestingly, if I write the "join" output to a layer, everything is fine:
deepActiv = source.polygons("1/0")Cont = source.polygons(&quo…
Thanks @blueman_44, that is smart :)
@kareemfarid - I think we are talking net classification here. Apparently the goal of the rule is to identify high voltage nets and demand a bigger spacing for those.
I don't have a good solution for this yet. …
First of all, 17.5nm / 4 is 4.375. I doubt this can be represented precisely in multiples of database units, except if your DBU is 0.125. Is it?
If not, "pixel_size_dbu" will not reflect your desired pixel dimension as this value is in in…
Here is a recipe for version 0.29.11:
* Select "Edit/Search and replace"
* Assuming your current cell is called "TOP", enter the following custom query:
instances of cell TOP.* where inst.trans.rot == 2
* Push the Execute butt…
The code above is Python. You said nothing about where you want that code to run.
The corresponding Ruby version is this:
# for example at 4.5, 7.2:a = RBA::Annotation::newa.p1 = RBA::DPoint::new(4.5, 7.2)a.p2 = a.p1a.fmt = "$U,$V"a.fmt_…
A just took a look at these images, but they look fine to me.
Also the code seems reasonable. But the edges of the polygon are on a 1µm grid, not on a 17.5nm raster. Hence there will always be pixels where the polygon half overlaps, hence rendering…
Hi @kareemfarid,
maybe some example is helpful to demonstrate what you intend to do. The initial post was going in a different direction.
For same/different net separation, you need "connect" as only that enabled net annotation.
The usu…
Hi @14darcia,
I guess I get your point. I hope the solution is helpful for you.
I know such problems as "bridging errors", but mostly they are caused when design rules are not good enough to guarantee design integrity during post process…
The number of interacting statements should the same than the "connect" statements. Why do you think you need a larger number?
Doing a separation with a large value isn't a good idea. That will definitely be very slow.
But I understood y…
You can place a cross-mark "ruler" at the desired location:
# for example at 4.5, 7.2:a = pya.Annotation()a.p1 = pya.DPoint(4.5, 7.2)a.p2 = a.p1a.fmt = "$U,$V"a.fmt_x = ""a.fmt_y = ""a.style = pya.Annotation.…
Hi @connan,
for formatting code, please use a triple backtick line before and after the code. I fixed your previous comment.
Regarding the code: I don't see the "cell_conflict_resolution" solution in your code. This loop has the cell con…
Hi @14darcia,
The documentation example targets something else. It targets gap detection, not overlap detection.
You're basically acting against a very basic principle of GDS: polygons that touch are considered to form a larger area. This is calle…