Matthias

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

About

Username
Matthias
Joined
Visits
1,515
Last Active
Roles
Member

Comments

  • Hi David, I hope you aren't disappointed, but by coincidence I am coding that right now ... :-) Matthias
  • Hi, "sel.trans" will give you the transformation of the polygon into the current cell. "sel.trans.trans(p)" will transform a point into the current sel. Hence: ply.each_edge do |ed| p1_s = sel.trans.trans(ed.p1) # -> will …
  • Hi all, I hope I can shed some light on this. First of all, the Qt binding classes basically mimic the C++ Qt classes. The C++ way to implement a key event handler is to derive a class from the given one and reimplement the key event handler. It's…
  • Hi David, perfect support! Thank you very much. Matthias
  • Hi Chris, thanks for that comment. If you want to have a deep look into the OASIS internals, you can use the OASIS dump tool: http://www.klayout.de/dump_oasis.html. But that is just one-way and you'll see all these nitty gritty bits you are probab…
  • Hi David, you cannot modify the cell's instantiation point from within the cell. Instance and cell live in different spaces (instance in the host layout, cell in the library). So basically it's not possible to access the instances properties from w…
  • Hi David, are you using 0.24 Python eval? There was an issue with subclasses passed to arguments of basic class type. This will hit here. It has been fixed in 0.24, but it may be there in 0.23 as well. In fact, "obj" is not a QKeyEvent a…
  • Hi Maximus (nice name, BTW), do you mean by script or manually? By script: RBA::Polygon::new(RBA::Box::new(left, bottom, right, top)) .transformed(RBA::ICplxTrans::new(1.0, rotation_angle_in_degree, false, 0, 0)) Manually: draw a box and rotat…
  • Hi Chris, session loading and restoring is actually available already (MainWindow#save_session and MainWindow#restore_session). I just forgot that feature. Regarding the CellView: actually, CellView is an object on it's own and basically is someth…
  • Hi David, I did not use the macro name because macro names do not need to be unique. So there was a certain risk of name clashes. That's why it picks a unique name. Maybe I can use the macro name and make it unique in case of a name clash. Matthias
  • Great work, David! Thanks a lot. I'll test them against my (final stage, I promise) 0.24 version. I tried to checkout the code but git says it's an empty repository. I'd offer to contribute to the sources too in case of bug fixes or enhancements. …
  • Hi David, thanks for providing the script. I can confirm the issue with the missing background after running the script directly. I'd like to understand the reason, but on the other hand there seems to be a simple solution. Thanks, Matthias
  • Hi Chris, regarding the path assignment: the CellView object is not directly linked to the actual view. It's a descriptor object which you can't modify, hence direct assignment of the path is not possible. But I admit that would we very intuitive. …
  • Hi Z Lim, you mean, using the pixmap property still won't work? That is strange since it works with HTML. That's strange since it means the resource is there but the ui loader is not able to access it, while the QLabel is. Are you sure you have re…
  • Hi David, yes, you're right. I have fixed it for 0.24 already. Tonight there will be a new snapshot with this fix and the others you have mentioned in the other discussions. Thanks again, Matthias
  • Hi, bug, not feature ... thanks for mentioning this. Matthias
  • Hi David, thanks for mentioning this. I simply didn't have icon assignment for menus on my screen. I was able to fix that issue, except when you try to create a top-level menu with an icon: apparently Qt does not like menu bar entries with an icon…
  • Hi David, The symptoms you describe look like the return value of the "configure" method is not "false" - if it's true, the configuration events will basically be blocked with similar effects than you describe. To prevent the t…
  • Hi David, well, you'd need a way to watch the configuration settings. That's more or less the database holding the configuration parameters where various sources (including scripts) send their configuration requests to. Later these requests will be…
  • Hi Ines, Sorry for the confusion: "is_valid?" is actually giving that internal error in 0.23. This is already fixed in the upcoming 0.24 version. "is_null?" is not a bad choice in your case. But be aware that there is a subtle…
  • Hi David, the difference between both methods is that in the build-in DRC feature the DRCEngine object is created once per run while in your case it's being reused. This has one specific effect in your case: The DRCEngine object tracks the output …
  • Hi, the inst array will hold RBA::Instance objects which you can think of as pointers into the database. By calling their "delete" method the original instance in the database is deleted. The pointers still exists, hence the inst members…
  • Hi Michael, that's very likely related to the Ruby version used in the Windows binary. I am preparing a new major release currently which uses a different Ruby version and I'll check whether the problem is gone with that. Thanks for mentioning the…
  • Hi David, thanks for mentioning this. Functionality wise there should not be a difference: they should still be executed automatically on startup. They are just not visible in the macro editor. These files are actually playing a very special role…
  • Hi Chris, thanks very much for the comments! I just like to add that usually you won't need the manager object. The LayoutView#commit and LayoutView#transaction methods are usually sufficient: # Begins the transaction (undo/redo support)view.tran…
    in undo stack Comment by Matthias June 2015
  • Hi guys, I very happy to see a community at work :-) I wouldn't have told anything else. Just an explanation from my side: the configuration is actually a system of distributing key/value configuration requests superimposed over the modular archi…
  • Hello, yes, there is a way to show an existing layout and add it to the layout view: LayoutView#show_layout. If you want to open a new view with your layout, you can create an empty one with MainWindow#create_view first and add your layout to this…
  • Hi Chris, Well, I hope I didn't promise too much already :-) When implementation "guiding instances" I'd not provide a fully functional instance but only some attributes representative for it. For example, a cell bounding box, a transfor…
  • Hi Cyrille, maybe GTK style is broken. Could you try using a different style, i.e. klayout -style Windows If that still doesn't work, I suspect a problem with the Qt installation. Do the normal Qt tools (i.e "designer") work? Matthias
  • Hi David, I think I understand your point now. Thanks for the explanation. I'll have a look how that can be changed. Matthias