Avatar

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Matthias

About

Username
Matthias
Joined
Visits
158
Last Active
Roles
Member

Comments

  • Hi Bishal, Maybe you can detect such cases with edge-length checks: # assumes that 10nm is a good indicator for misalignment short_edges = layer.edges.with_length(0, 10.nm) Matthias
  • Hi Jon, thanks for the explanation. Single-sided path would be a nice feature, but they cannot represented in GDS or OASIS. So that's a difficult decision. The wish list of geometric extensions is pretty long already (specifically smooth featu…
  • Hi, yes, session files are pretty compatible. Maybe future versions might be able to store more details, but basically old versions should be able to read session files written by newer versions too. However, when distributing session files, y…
  • Hi Chris, no, there is no blocking function you can call to wait for a mouse click. The UI is event-driven. Matthias
  • Hi Chris, for 1.) I just can say the "coerce" function is called latest on Apply. Using it for dynamic normalization isn't a use model I had in mind and I'd say it's coincidence rather than intention that it is called on a change of a combo box v…
  • Hi ocasta, "instances of ...THE_CELL" is a modification of the original query: while the original suggestion was looking for all cells (that's how I understood the question), the modified query looks for one specific cell. That should definitely …
  • Hi Chris, you can wait for a mouse click and when this happens, find the object by searching from this point. Matthias
  • Hi, Crystal and Ruby look similar, but they are fundamentally different (i.e. interpreted vs. compiled). So no simple substitution. Sorry. Matthias
  • Hi Jon, It's been some years since I did Skill the last time and I guess a lot happened in between (I used to have Cadence 4.x on CDB). But I guess your code will create some interest. I'm hoping for some community effect and maybe someone is …
  • Hi Olivier, The LayoutQuery was just an suggestion. It's not good for finding the instances of a single cell. The question in the mentioned post was generic and so was my answer. If you look for a specific cell (e.g. "THE_CELL"), a query like …
  • Hi Chris, regarding 1.) the parametrization is a two-stage process: the parameters are edited and then transferred to the PCell in "Apply". Only then the layout is modified. While editing, "coerce_parameters" is called to "fix" the parameter conf…
  • Hi Jon, That's really exciting :-) I have not even dared to imagine such a thing was possible! Let me know if you have suggestions for the Python API - I guess compatibility can be enhanced so the code migration is smoother. Best regards, …
  • Hi dai, here is small example how to use the grab_mouse method. It's used when you want to capture the mouse from a menu callback. class OnMouseClickPluginFactory(pya.PluginFactory): def __init__(self): super(OnMouseClickPluginFactory, …
  • Hi Oscar, please, please, please .... use Markdown to format your code! Put a line with triple backticks before and after the code. The correct way of writing this is input(210, 0).shift(1, 0).output(210, 1) Matthias
  • Hi, you can set these values inside your .xs script using "height(15.0)" etc. Please see https://klayoutmatthias.github.io/xsection/DocReference for the respective functions. Matthias
  • Hi Chris, This really is a long post. Here are some answers: 1.) you're probably not doing something wrong. I'm not aware that drop-down list changes would trigger callbacks. That's kind of questionable as the contract is that layout won't cha…
  • Hi, I see I need to explain the concept here. The main difference between 0.25.x and 0.24.10 was a cleaner type system of geometrical primitive types. One concept is that of vector vs. point (see https://www.klayout.de/doc-qt4/programming/geom…
  • Hi, you can try using "region_a.merged_semantics = false". This should leave the shapes unmerged. But regions are collections of polygons and everything will be polygonized. If you want to the other shape types such as paths your code is bette…
  • Hi, yes, exactly this is the right way to do it :-) I did not know about "next(...)". Thanks for this sample. This looks pretty useful. Regards, Matthias
  • Hi, sorry for the delayed reply. Your solution isn't bad although I'd say the Ruby loop is probably going to be a bit slow. The solution I'd suggest is to use Region objects. Regions are the basic building blocks of DRC scripts and they pro…
  • Hi, a plugin is a tool option - if the plugin is active, it will take full control over the mouse. Hence you cannot have both select mode and your own tool feature while the plugin is active. The net tracer's approach is to grab the mouse and …
  • Hallo, Here is some sample script (Python). With other values, but the comments should make it easy to adjust the script: # fetches current layout view and cell view view = pya.LayoutView.current() cellview = pya.CellView.active() # gets the …
  • Hi Oscar, Both pya.DPolygon.ellipse(pya.DBox.new(-1,-5,1,5),170).num_points() pya.DPolygon.ellipse(pya.DBox.new(-0.1,-5,0.1,5),170).num_points() give 170, so the polygons are fine. But maybe your should check your database unit. That's …
  • Hi chhung, looks like __int128 is lacking. This is essential for 64bit coordinate support, so you cannot skip this. __int128 is present on gcc >= 4.6. According to the documentation on gcc >= 4.1, you can substitute "__int128" by "__int1…
  • Hi chhung, -with-64bit-coord is the right option. But please try to build 0.25.x or the master branch of GitHub. 0.24.10 is not tested for 64bit builds and is pretty outdated now. Kind regards, Matthias
  • Hi, I'm sorry, but I can't say anything about LayoutEditor. Is your goal to develop an algorithm or to integrate LayoutEditor's router? AFAIK LayoutEditor isn't GPL, so integration probably isn't an option. Matthias
  • Hi chhung, I guess that the coordinate space of this file exceeds the 32bit precision KLayout is built with by default. You can enable 64bit coordinate support, but you'll have to build KLayout yourself or ask someone to do it. As 64 bit coordina…
  • Hi, I tried to reproduce the issue, but I cannot fully confirm your observations. What I see is (0.25.8): * when I unselect "write PCell information" and only write "visible layers", only these layers will appear in the file. * when I se…
  • Hi Ken, There is a vision, but a vision is a plan that maybe dosn't get realized :-) I'm simply not enough people. A clone procedure would be helpful. Fun aside, I'm seeing some schematic editors around. Maybe there is a chance to plug one …
  • Hi vikas, That's not good. But to be frank, I'm not really up to date with the MacOS distribution. I'm not providing this myself as I'm not a Mac user. Matthias