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 @dick_freebird
That's bad ...
Just for my understanding: this also happens if you're starting from a blank layout? So like: creating a new layout with one layer, place one box, select a box edge in partial mode and trying to move it?
KLayout a…
Hi @plic_user_1983,
In order to do that, you will need to first read the imported layout into it's own Layout object and then copy it over to the destination layout. While you do that you can specify a layer mapping which allows you to implement th…
@yanoff The DRC system is itself a script, so that is possible.
The key is "AbstractProgress" which is a progress reporter without a value but while it is active, log messages will be collected and sent to the progress report area.
Here …
@Frank Many thanks for that analysis and the test case. I was able to reproduce the problem.
In 0.28, LayoutViewBase was introduced which does not offer the bookmark view function, but the derived class LayoutView does.
For some reason, the plugin…
The offset seems to be built into the venerable Hershey fonts. They say characters are 25 units tall, but the "E" is only 21 in "futural" (which corresponds to "stick"). The upper space is reserved for oversized charact…
That's weird. I just tried on Windows 10, Version 0.28.7, 64bit. The above code works for me ...
Are you using 64bit?
I entered the code in the console of the macro IDE. What puzzles me is that you see "LayoutViewBase" which is actually …
@CMeyer If would be extremely helpful if you could cite the sources - this forum is not about Sky130 or any related implementation, so we don't know what exactly you're writing about.
@JinWallner Basically it is, yes.
A PCell usually lives in a library. A library contains static and PCells. Library PCells can reference cells from the library they live in (cross referencing is also possible, but I'd try to keep everything in one …
I think that is something different - that refers to text objects (labels), not text PCells. Vector fonts are scalable and change their size when zooming.
When does not message appear?
Matthias
Very good :)
Sorry I missed this discussion.
I did not find an attachment on the first post. I'd like to see if I can reproduce the crash.
I'm aware that LVS is not an easy thing. Specifically if you like to take any kind of schematic and expect …
@tomas2004 That looks like a bug, probably the arrays are not traversed properly in the recursion. I'll open a ticket. Thanks for reporting that and the testcase.
Regarding your problem: the recursive instance iterator is not the right approach as …
@dboby First, you'll need a source for that information. There is no attribute like color (either for phase shift, dual patterning, dual exposure or other reasons) in GDS and OASIS. So in these formats, color is either mapped to a layer (the usual w…
Could you paste some code? This method was not deleted.
This works for me:
pya.LayoutView.current().bookmark_view("bookmarked")
And yes, changes for getting a new function in the API are not zero.
But you know, the problem basically is…
Hi @dick_freebird
Many thanks for your suggestions. I value such inputs, although I'm aware that such things enter the code at a slow pace. There is simply too much on my plate :(
Regarding the topics:
* "masked selection"
There is the…
Yes, sure. If you want to run the script with different parameters (e.g. input file name), use global variables and specify them like
klayout -b -r script.lym -rd input_file=x.png
assuming your script is called "script.lym" and your inpu…
There is something wrong with that file.
.lylvs is actually XML, and the problem line is this:
# along with this program. If not, see <https://www.gnu.org/licenses/>.
<https...> is read as a XML element which it isn't. This line shou…
Hi @Peter123,
That is not the problem of multi-clip. It's a problem of delete_cell_rec. This method will delete all cells of the sub-tree, even those which are used otherwise.
Let me explain why that is an issue: the in-layout clip and the multi-c…
Hi @Peter123,
thanks a lot for this nicely prepared test case.
I need to say, that the "clip_into" function is not confining the clip to certain layers. It will always clip all layers. And it will always assume that all layers are presen…
@pardeep The script was intended as an example, so you should be able to modify it. I wasn't saying script does exactly what you need.
However, your image is inverted which triggers a small bug: when a scan line ended with a bright pixel, the line …
@rounak1068 If you have a single top cell, you can use layout.top_cell() to get the Cell object of this cell. You don't need to know the top cell name. But it will fail, if your layout contains multiple top cells.
Matthias
@CMeyer what comment do you mean?
On https://github.com/efabless/sky130_klayout_pdk/blob/main/sky130_tech/tech/sky130/lvs/sky130.lvs, line 31 is this:
#================================================
That really should not make a difference.
Ma…
Hi Pardeep,
many thanks for taking that topic to the forum.
I have created a small script that may help you with the conversion. It produces a layout called "converted.gds" from "image.png". It merges the resulting shapes and a…
Yes, that is supposed to provide the database unit you intend to have in integer space.
So basically
DPolygon = Polygon * dbuPolygon = DPolygon * (1/dbu)
Matthias
Hmm ... that's bad.
To be honest, I'm no longer sure what the expectation is: that partial "two sides" is flagged as error or accepted.
As first test gave me all partial situations flagged:
(Image)
Do you happen to have a small test c…
@rounak1068 Here is a related post: https://www.klayout.de/forum/discussion/comment/8701#Comment_8701
The code is somewhat older. You can write it today like this:
layout = RBA::CellView::active.layout# Box in micron units:clip_rect = RBA::DBox::n…
Thanks ... but the last code will write the file potentially multiple times, as "write" is called inside the loop. Or are you intending the create one file containing one particular top cell? In that case, the "write" statement c…