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
Hello @dai,
thanks for this perfect test case. I'll investigate the problem. Looks like a general problem with extended and related functions in deep mode.
I have created a ticket for this: https://github.com/KLayout/klayout/issues/1190
As a quic…
Sure, that's of interest!
DXF has a way to specify parts of curves as rational or non-rational B-splines. It does not look much like the sketch above, but I'm lacking details of the OASIS proposal. I don't have access to SPIE papers and I can only …
I see - I guess my approximation is kind of crude for this application, but basically W and L should should give some average path length and width. Approximately.
Matthias
Yes, it is. But I need to explain.
The layer name is a database feature. A layer inside the database is given by either layer/datatype numbers (GDS, OASIS) or a name (CIF, DXF, LEF/DEF, Magic). So these are the coordinates of a layer.
The layer pr…
Hello @dai,
So the blue patched are your terminals? That is kind of strange - usually they are connected on opposite sides.
The computation is L and W assumes a rectangular geometry with two ends being entirely assigned to "contact". The…
There is a bug there which has been there for a long time, but for some reason the crash became popular recently ...
I have recently fixed such a bug after a lengthy debug session, but this fix did not make it into 0.27.12. You can try the latest m…
@jiunnweiyeh
I'm a bit confused because initially you meant selected instances, but from the DRC script you do something with "interact" and work on shapes ...
Anyway, here is a script that lets you select instances and connects their ce…
No sorry, I understood that.
But what do you mean by type(mypcell)? "mypcell" comes from where?
Sometimes things change between versions, for example deprecated methods may no longer be available or methods may behave differently. I cann…
So your issue is that "software just stopped working"?
Please read my messages above. This is ridiculous. I cannot help with such little information and without getting ANY feedback.
Matthias
It's a runtime option.
But that means your Qt is not built with OpenGL support. Maybe one can enable it somehow on CentOS (e.g. installing some packages) - on Ubuntu I have no trouble finding Qt with OpenGL.
Matthias
Yes, there is a reason. This happens when Qt does not include OpenGL.
OpenGL is a pain. I'll leave it to others to figure out how to get it running. I have too little experience there.
Matthias
Maybe ... but "existance" of a layer is not a well-defined concept in GDS and OASIS. A layer does not exist if there is nothing drawn on it. So if you think of a technology option, that is not the right way to do that. A layout may be draw…
Hi Laurent,
I'd suggest this solution:
e = M1.edges[0, 90, -45, 45].each do |a| e = e.without_angle(a)ende.output("M1_angle", "Non 45 degree angle ME1")
(Image)
You don't need 135, 180 etc. angle checks. Angles are measured…
That depends what you want to do.
I understand that you want to modify the object. A plain copy does not make much sense, right?
So when you want to copy-and-modify and shape, you need to focus on a specific shape type. Most shape types (with the …
I just checked why nil isn't working any longer - actually, the argument became type-bound which avoids issues when you forget to specify one argument, but on the other hand, nil is no longer a valid value.
Hence currently, the way to specify the d…
Hi Thomas,
the problem occurred to me as well. So rule #1 of successful software development applies: make the programmer feel the same pain as the users and you will get a premium product.
In other words: a solution is in sight. The master branch…
@Default I think you mean when scripting, right?
Problem is that "dup" will create a copy in the Python/Ruby sense, but the underlying "Instance" object still acts as a pointer into the database. That is the nature of the object…
Very good and thanks for the hint. Honestly, I don't know why nil was working. I need to check. By "previous versions" you mean which one?
Thanks,
Matthias
Hello,
there is a solution, but you will need to draw a helper shape on any other layer and you have to repeat it for every polygon you want to split.
This is how you do it:
reddish is the geometry you want to split, violet is the helper layer. T…
I'm afraid, I don't understand ... that is exactly what XOR does: it leaves the parts of polygons which do not overlap.
Do you mean the inverse of XOR that is not available?
Background is that all boolean operations produce local results - they wi…
Hi @Bian,
the problem is the type of the anode and cathode variables: these are "Region" objects, not polygons. "Region" objects can consist of multiple polygons.
For example, for a planar MOSFET, source and drain are usually d…
That's a different thing ...
BTW: you should use "box" instead of "Box". "Box" works too, but creates an integer-unit box object and you will be able to specify full-µm coordinates only.
For Polygons use that notation…
The method is "extended" and works on edge layers: https://www.klayout.de/doc-qt5/about/drc_ref_layer.html#h2-894
There are simplified versions too: 'extended_in' and 'extended_out'.
Matthias