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,
First of all, you can use Markdown markup to format your code - just put four blanks in front of every line.
Regarding your code, I cannot help given that little input. What does "hs_all_layers" and "hs_layer" do? Could you…
Hi,
Thanks for the nice screenshot - that explains much more than just text!
But I'm sorry, the partial selection is not part of the API yet. It's a fairly complex topic and partial selection implementation is private to the partial edit mode - ev…
Hi seb,
the forum uses "Markdown" markup. You can format code by adding four blanks before every line you want to quote.
Regarding you code, you need to be careful not to mix two concepts: DRC scripts and Ruby scripts.
If you want to ru…
Good point. I don't know what had happened if I had tried to sell it.
At least I'd had to spend much more effort in marketing than in development. And I'm pretty sure that being a much better coder than sales guy I'd have blown it :-)
Matthias
Hi Theo,
I tried to reproduce the problem but I failed.
Here is the code I used:
# create a first layout and a single text with alignment flagsly = RBA::Layout::new(true)top = ly.create_cell("TOP")l1 = ly.layer(1, 0)t = RBA::Text::newt.…
Hi,
there is a function, but views and database layers are not synchronized automatically. You need to update both. This is essentially what the "edit layer properties" function does.
Here is some code:
# rename layer 1 to 10 in both th…
Hi,
I see your point. But it's somewhat difficult since there is only one data slot for images in the format. So it's not exactly a low hanging fruit.
Matthias
Hi Theo,
my goal is not to attack MGC's business model. I'm not in favour of getting in touch with their legal department for reverse engineering proprietary IP.
If you have a RVE license you have a solution already. If you are not happy with that…
Hi ks,
regarding the first question: what do you mean by "script prompts"? Like "gets"? "gets" will still read form the application's stdin, not the console. The console is merely intended for executing Ruby commands i…
Hi Seb,
The "layer processing framework" has turned into the DRC feature. XOR can be done as part of this functionality now.
Here is a sample:
# Performs an XOR between the first and second loaded layout# (from the same panel)# Layers l…
Hello,
you're right. At this time, there was no integrated LEF parser.
LEF is not a plain format such as GDS. It carries additional information along the geometrical one (i.e. blockage layers, net names, ...) and the translation to a pure GDS-like…
Hi Keerthan,
I'm sorry, but I cannot seriously expect me to explain how to write your "own functions" without giving the tiniest detail. I'm not a teacher. I also can't explain how to connect to third party libraries like the "gds2 p…
Hi Lukas,
I'm not aware of having changed something there in 0.24.5 (compared to 0.24.4). Flattening should not happen. But if you are using the code above (from 8th of November) there is an explicit flatten call.
Regarding the crashes: I'm aware …
Hi all,
the link is available in "Documentation/General - Resources/Command line options". Not missing, just hidden :-)
There is a little more there - just be curious.
Matthias
Thanks for sending the test case. I was able to locate and fix the issue. It was related to different layers in the two files - this case was not handled properly and difference markers appears where they should not.
The fix will be released in the…
Hi Theo,
that's hard to tell without a sample.
In general, the diff tool tries to identify "equivalent" cells. It uses several ways to identify cells - by name, by their position, by their size - to be able to catch renaming scenarios. T…
Hi Theo,
sure: "Python scripting" is available now.
Thanks for the sample. The script looks nice :-)
Let me just comment on one detail: loading multiple GDS files into one works. But there is one potential pitfall: if the GDS files cont…
Hi all,
The issue is fixed now. 0.24.5 is ready for download and should work as expected.
The "Help/About" dialog of the fixed version shows "0.24.5 r3197" as the patch revision.
Enjoy,
Matthias
Hi phred,
you can contact me through the mail listed on the "Contact" page. I'm interested in a testcase that allows me to reproduce the problem. Basically a connection should be reported if the net tracer propagates along the short. Ever…
Hi Canny,
no it's not the same issue. I have no explanation for this assertion.
Could you send a test case for reproducing that problem to the mail address listed in the Contact page?
I will have a look at this issue then.
Regards,
Matthias
Hi Keil,
RBA::LayoutView is not an object you can instantiate yourself. I can only live in the context of the application. You you have to use
mw = RBA::Application::instance.main_windowmw.load_layout("ttt.gds", 1)mw.current_view.save_im…
Hi Keil,
the explanation is that "flatten" is a function that requires an "editable" layout. "editable" layouts have some capabilities that flatten requires. On the other hand, editable mode comes with some overhead th…