jonathan

About

Username
jonathan
Joined
Visits
202
Last Active
Roles
Member

Comments

  • LStream is definitely great indeed! Would you be able to help me assess what are the perspectives for this format: * How mature it is? * Are there already existing software or extensions working (or planning to work) with this format? (other than …
  • Thanks for the very clear answers! K-layout libraries have a different structure to other libraries known to me (cadence libraries, Texeda libraries). More over there is a major limitation to klayout libraries: if I want to make several variations …
  • 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 @crizos you are welcome, but I have to also thank you for highlighting the missing ungrab mouse which is quite important there. :)
  • 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…
  • Still adding a piece of code: pya.Cursor.Cross #compile without issuepya.Cursor.None #syntax error
  • 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…
  • Hi, I have only now learned about lambda, thank you so much for the help and the very useful and complete example scripts! :)
  • 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…