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
@sekigawa Thanks for the explanation :) This is exactly the reason.
Here is the rationale: with Trans there is no "free angle". The only allowed angles are 0°, 90°, 180° and 270°. Instead of reducing any number to one of these allowed val…
XSection is a separate project hosted here: https://codeberg.org/klayoutmatthias/xsection
But I don't attend it currently.
So as of now it is "as is", unless someone wants to maintain this project.
Matthias
Hi Dave,
as you are passing "true" to the "raw" argument of "SimplePolygon.new" this should already be the case.
Here is an example:
pts = [ [0,0], [1000,0], [2000,0], [1000,1000] ]p = RBA::SimplePolygon::new(pts, fa…
Hi @double0darbo,
I saw the other thread and replied. But it makes more sense as a separate one.
All the working shape objects (Polygon, Box, ... and corresponding D... types) have a method called "moved". You can create a displaced vers…
Hi @tomas2004,
Yes, that's how it is defined. When you don't specify a tile origin, the tiles will be centered on the input layer's bounding box. This minimizes the number of tiles in general.
Only if you specify the origin, the raster is fixed.
…
Hi @jiunnweiyeh,
No, there is no sorting order. The order of shapes is more or less random.
You can get some kind of sorting if you employ the "<" and "!=" operators of the Polygon object:
die.data.each.sort { |a,b| a != b …
Hi @double0darbo,
Regarding your question: all work objects (Polygon, DPolygon, Box, ...) have a "moved" method that creates a shifted version of that object. Use that to move the object by the specified distance before inserting it.
Mat…
Hi @jiunnweiyeh,
Are you using some (quite) old version maybe?
It works in 0.30.1:
(Image)
Older versions want to see a list of DPoint objects:
pts = [RBA::DPoint::new(-5000,-5000),RBA::DPoint::new(-5000,5000),RBA::DPoint::new(5000,5000),RBA::…
Hi @BigPanda,
thanks for the explanation. I think I understand what you want to do.
I think the solution is easier if you start from scratch.
I have drawn a sample on layer 1/0:
. Or you want to know the dimension of the yellow polygon in some way?
I'm fa…
So, you mean, you have two polygons and want to have the closest distance, any two points on those two curves have?
If you want to check such a condition against a preset value, the DRC feature can be used. Like this:
poly1 = RBA::Polygon::new(RBA…
Hi @jiunnweiyeh,
"Polygon" takes an list of points, for example this way:
pts = [ [ -2348.275000,-4985.623000 ], [ -2348.275000,-4985.624000 ], [ -2347.906000,-4986.132000 ],...]layer1 = layout.layer(1, 0)top = layout.cell(current_…
Hi @diarmuid,
looks like your layout does not have an substrate and nwell tie. The body terminals of the NMOS and PMOS devices are not connected.
But without the layout files I can't say.
Matthias
You mean you want to find the shortest distance between the shapes in your design?
Maybe here is your solution: https://www.klayout.de/forum/discussion/2299/bisection-of-drc-checks-to-find-min-distance#latest
Matthias
Hi @mykim,
What is your KLayout version? Your example works for me on version 0.30.0. I also think it does what it is supposed to.
However, it does not make much sense. A "width" error marker is always inside a polygon, so there is never…
You're encounting a very basic issue of floating point representation of decimals. There are tons of articles explaining why. For example this one: https://stackoverflow.com/questions/588004/is-floating-point-math-broken
There is no fix. You need t…
Hi Giovanni,
I am using Ubuntu myself and that is where the screenshot is taken from. I assume that the Python version makes a difference. I will try to reproduce and fix the issue on that version.
Matthias
Yes, exactly. All options can be configured this way.
But beware: if you make this the default, users will lose their PCell information when they save their work! This is not user friendly.
I think you're trying to establish some standards for dis…
Hi Noah,
you cannot. A single net from a subcircuit has one logical pin only. It's quite common to connect nets across subcircuits (e.g. power rails through chains of standard cells), so it does not make sense to differentiate by default. Also, a s…
Hi Krzystof,
I think you refer to the default settings, correct?
Thing is, users can switch this setting and it will stay that way.
To force this flag to "true", use this code:
tech = pya.Technology.technology_by_name("")opti…
Hi Giovanni,
thanks for reporting this problem.
It seems to work for me
(Image)
In my experience there is always trouble with new Python versions. Mine is 3.12.3.
Which is the one that your Linux is using (check the Help/About page)?
Matthias
Very good :)
It has been some time since the problem was fixed and I did not receive any negative comments since a while. So I assume it's working :)
Matthias
Hi @nice - I actually have to thank you!
This was an important observation and I appreciate your efforts in debugging the problem. Fixing this issue will help many others too and to me that is the Open Source spirit. So this was already an signific…
They are basically XML, so you can merge them.
A plain .lyp file looks like this:
<layer-properties> <properties> ... layer 1 ... </properties>...</layer-properties>
Just copy the "properties" elements from b…
That is difficult in the general case, because there is more than one parent.
But why not just using "Display/Descend" and "Display/Ascend"?
They do pretty much what Cadence does if that is what you're asking for. If you don't …
There are multiple grids you can configure:
1. drawing grids
Use "File/Setup" "Application/Default Grids" to specify one or many grids. You can pick one of them from the "View/Grid" menu during drawing.
These are min…
Honestly I don't want to debug 3rd party scripts.
And yes, API changes happen. I am trying to keep them as backward compatible as possible, but sometimes the behavior changes in boundary cases.
Matthias