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 Preet,
what do you mean by "same DRC violations"? Same distance? Or just violations?
Are we still talking about pya scripts? Or do you mean DRC?
Matthias
Hi zzz,
"errno 2" is a Unix error code saying the file can't be found ... I think this happens in your case because the path does not exist completely.
For example, if the path if "/home/matthias/output/layout.gds" and "ou…
Hi Preet,
edge pairs aren't real layout objects ... while edges can be represented by two-point paths with zero width, there is no such representation of an edge pair in GDS. I assume that edge pairs are getting resolved into single edges when you …
Hi Tamara,
xsection isn't a technology component. It's a separate thing. So that's simply not possible for now.
The whole XSection thing is a pretty simple hack and I have some doubts whether it has the quality of a intrinsic feature such as DRC.
…
P.S. "convert to PCell" is partially covered by PCellDeclaration#parameters_from_shape. But still you have to delete the shape and insert the PCell instance yourself.
Hi Thomas,
Well ... there is a pitfall.
Please you a DPath object with Micrometer values instead. So that would be
path_points = [DPoint.new(0,0), DPoint.new(20,0), DPoint.new(20,20)]path_width = 2path = DPath.new(path_points, path_width)param = …
Hi Andy,
I see ... unfortunate coincidence. The name "drc" clashes with a variable name used internally inside the DRC framework. This could even be useful, but in your case, assigning the drc variable with something breaks the internals.…
Hi Thomas,
here is a little script which you can apply to any PCell to get it's details:
lib = RBA::Library::library_by_name("Basic")pcell_decl = lib.layout.pcell_declaration("ROUND_PATH")type2strings = {}[ :TypeBoolean, :TypeD…
Hi chhung,
I was able to build successfully on Ubuntu-18. For my final patches see https://github.com/KLayout/klayout/pull/373/files
Kind regards,
Matthias
Very good ... that's better to read :-)
I think something is wrong at the beginning (make sure the initial line is only three backticks). But that's just a small flaw.
Hi,
the solution depends on what you want to achieve.
In any case I'd recommend to use the LayerIterator concept. "LayoutView#each_layer" isn't entirely stable for iterating while deleting (see https://github.com/KLayout/klayout/issues/3…
Hi Yoyo,
thanks for this well illustrated post :-)
Basically the idea of a library is that you instantiate something from an external source. As part of this concept, the external source is immutable.
In short: only what is inside the current lay…
Hi Thomas,
if you want to achieve readability, you can put a triple backtick line in front of and after your code. Then the code will be formatted as such (markdown). See http://en.wikipedia.org/wiki/Markdown for details.
Kind regards,
Matthias
Hi chhung,
I'm sorry, my mistake. I think the correct patch is:
return test_type_func<int> () (rval, loose);
(note the additonal "()").
I'll try to set up a build with 64bit too, but I'm already reaching a limit of manageable bui…
Hi chhung,
thanks for mentioning this. To be honest, this combination is lacking in my build suite.
I think the problem is solved by patching line 145 of pyaConvert.h from
return test_type<int> (rval, loose);
to
return test_type_func<i…
This is a unit test ... not a file you can run!
Frankly, I don't have the impression you have tried to understand the concepts.
For netlist generation, you can use the LVS feature sans "compare". But you'll need some understanding how to…
Hi Jim,
DRC has a snapping feature, but that will flatten your layer and turn all paths and boxes into polygons and remove texts.
A dirty trick is to save your layout with 1 µm database unit and later with a finer DBU again. This will force snappi…
Hi Thomas,
that's not intended, but I assume the reason is that PCell internals are not accessible through editing functions. This actually is intended - PCells are not supposed to be edited. As the net tracer uses editing functions to detect the s…
Hi Grt,
I'm fairly sure the problem is with certain screen configurations. There was a similar issue with Retina displays on MacOS, but the problem is deeply buried inside Qt's rendering engine and maybe even inside the graphics driver.
I experien…
Hi Jim,
it took me some time to figure out how to reproduce your problem ...
I can reproduce it by: click at vertex 1 to start - go to vertex 2 and click - go to vertex 3 and click - go back to vertex 1 and single-click - then double click again a…
DRC script?
source("your_input.gds")target("your_output.gds")# A = 1/0, B = 2/0 (example)a = input(1, 0)b = input(2, 0)# run XOR and output to 2/0x = a ^ bx.output(2, 0)# copy A to outputa.output(1, 0)
You mean batch mode?
Use:
klayout -b -r yourscript.py
or any other .rb, .drc, .lvs, .lym ... file.
Please note that in this case, the script needs to load all layouts itself - as in batch mode there is no view, no layouts can be loaded by listin…
Thanks to all for these answers!
I'd like to add there is a similar discussion here: https://www.klayout.de/forum/discussion/comment/5071#Comment_5071
It explains a trick to prepare a .lyp file so it will always show the additional layers too.
Re…