Hi, I created the issue in KLayout/klayout
here is the link to the issue:
https://github.com/KLayout/klayout/issues/2243
I can however not see it listed in KLayout/klayout/issues
But I do not know what I am doing wrong.
Maybe I need some approval …
I have only used Gitub once in the past. I have raised an issue: If it is done wrong or any other problem, let me know.
in any case no big issue: the solution above works really well and after using it I do not see any performance issue.
Thanks for…
Thanks, I then rather went for the duplicate before the switch. ie:
mw = pya.Application.instance().main_window()mw.create_view()ly1 = pya.Layout()ly1.read( "design1.oas")ly2 = pya.Layout()ly2.read( "design2.oas")mw.current_vi…
Thanks a lot!
Maybe it is not my place to comment on this but on my opinion I am not sure that opening in erase mode is useful to many, so instead of saving it automatically after closing when switched on, it could be instead an explicit request?
In…
Great to know thanks!
Regarding the warning: I could not see any (see picture) do you know where I should go to find these warnings?(Image)
but I also notice that I now do not have the "ERROR: Signal number: 11" anymore too, so I am also…
Hi,
I had a similar issue, except that k-layout would not crash but no box/polygons would be created.
the issue was coming from the config file that was loading when starting k-layout (-c)
I made a new config file and it works.
Config files are a …
Thanks! This has solved the issue!
also providing corrected code:
ly=pya.Layout()ly.read("test.oas")lo = pya.SaveLayoutOptions()lo.add_cell(ly.cell("Top").cell_index())lo.set_format_from_filename("test2.oas")ly.write(…
Thanks! the layout option has cut the time in about 50% indeed! great step forward for me. So far dump_oas_gds2 does not seems to make it faster but I will keep investigating.
the issues here are:
xor_engine is not defined as LayoutDiff() probably a typo and should be compare_engine
I would like to remove this comment because of the incorrect information
Thank you for the reply,
I then ended up with then creating intermediate layers and copy these layers to the correct one, here is a sample code:
lo = pya.LoadLayoutOptions()lm = pya.LayerMap()lm.map(pya.LayerInfo(9,70), 38, pya.LayerInfo(199,0))lo.…
Thanks for the link and the reply
unfortunately the reverse does make sense to me, maybe the example above is not complete enough we could add a layer to map 1.0 -> 1001.0
because of such map the copy would force me to create an intermediate la…
It is now up but I could probably still comment: all amazing.
I can see not much changes from the previous structure but a lot of great visual and even more comprehensive for all levels.
If I could allow myself a remark it would be about searches t…
Hi thanks for the link, here is the code I made for sorting through layer number and datatype:
def SortLayers(): lv = pya.LayoutView.current() to_insert = [] li = lv.begin_layers() while not li.at_end(): to_insert.append(li.current().dup())…
the issue was simply that we really need to ungrab mouse when the tool is deactivated:
def deactivated(self): self.ungrab_mouse()
If we forget to ungrab mouse and we switch tools then there is a bug, probably a conflict between the new mouse gra…
Hi @Matthias ,
I was looking at this layer search, it is very great, however there is indeed this issue the bindkeys.
So I was wondering if there is a way to make it always visible from the start-up, or through a command (best case - I could just a…
Hi again @crizos,
I tried the following code and it worked very good with my script:
#this remove the tool from visibility: pya.MainWindow.instance().menu().action("@toolbar.set_origin").visible = False #you can start the tool with: pya…
Hi @crizos my post just crossed your edit, I will look at the code later but so far I only managed to grab mouse click from the pluginfactory which are tools, so I am not sure if there is a way to separate them.
Hi @crizos,
when you are finished with your clicks just click on a another tool and you are set, you need a trigger anyway to say that you are done with your clicks,
However you need to ungrab mouse when the tool is desactivated otherwise you will…
@crizos : If I understood you wish to have a sequence of actions on clicks and only quit the plugin at the end of it? what I would do for that would be to set up a variable which increment on each click and tells how far you are with the clicks.
on …
Hello Matthias,
Thanks again for the support: here I share again the result with the update:
* handling mouse cursor is actually quite easy, I implemented a cursor which display also coordinates!
* added an interface to snap the cursor to a grid
*…
Thanks a lot Matthias it works great!
I will just add to the answer for switching to the ruler tool (because of the question):
pya.MainWindow.instance().menu().action("@toolbar.ruler").trigger()
Answering partially my own question:
to make the Cursor not visible we can use
pya.Cursor.Blank
Why 'None' is listed in the available functions to pya.Cursor is not so clear however
Hello,
here is a python code that gets the related Display to a given layer (number,datatype)
def GetDispLayer(num,dt): li = pya.Application.instance().main_window().current_view().begin_layers() while not li.at_end(): lp = li.current() if…
Hello Mathias, Thank you very much for this answer! and sorry for coming back on it so late.
I would like to now share the program I now have:
* the program does not need to be run twice if the classes are written in the order.
* There are some p…
Thanks a lot again Matthias. all make more sense now. :o
Overall, this would also means that, on the case I want to run a function with arguments, I should either create a new PushButton class with input argument or set the arguments as global va…
I actually found the answer of my own question from browsing through unrelated questions:
there is a file in my own ~/.klayout or C:/user/klayout which is created with each opening of Klayout, the file name 'klayoutrc', this file includes all the p…