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,421
Last Active
Roles
Member

Comments

  • You're right. Thanks for the note. That makes sense :) I created a ticket for that: https://github.com/KLayout/klayout/issues/1768 Matthias
  • Okay ... but the 89 was just an example. If your angle is 78 degree, you may want to use l1.width_check(value * Dbu, ignore_angle = 77.0).polygons( 0 ) (so a little less than you minimum angle). "min_projection" is something else. Matt…
  • Hi Giovanni, I assume (without being able to measure that) that the angle at this corner is a little less than 90 degree and the edges are counted as "opposite". The "ignore_angle" option (forth argument) can fix this, i.e. l1…
  • Hi @yearningmare, Regarding C++ and CentOS 7: distro-provided C++ and Qt only. No additional repos or dev packages. That means C++ 11, but not later. I am sorry. EDA folks are conservative. ASAN is probably a good idea. Thanks. I have been doing s…
  • Very good :) We can leave the question open, because there is another way I would like to contribute: mw = pya.MainWindow.instance()mw.create_view()mw.current_view().show_layout(ly, True) # True: add to view The advantage in my point of view is…
  • Hi @sekigawa, So it actually looks to be slow, but there is no 500 error as I see. Here is my annotated monitoring log (MUC time): Mo 24. Jun 23:11:57 CEST 2024 - 0:00.47Mo 24. Jun 23:12:01 CEST 2024 - 0:09.84 # error 500Mo 24. Jun 23:14:01 CEST …
  • Hi @yearningmare, Yes, there is such a way. You can run the tests locally, preferably on Linux. I'd recommend Docker and an old distro such as CentOS7. Your code changes need to be compatible with the baseline configuration of that distro in terms …
  • I just rebooted. I hope no one got kicked out of a session ... It looks like the problem is gone - at least for now. I have set up a cron job to monitor the performance over time. Maybe I get some better idea what is going on. Thanks again and be…
  • Hi @sekigawa, I see the same effects myself too. I do not think it is a problem with your ISP. Sporadically the connection timeouts after 10 seconds and the server reports error 500. Usual access time is less than a second. The way you can test th…
  • Hi Jim, you can use multiple tabs. Use "Tabs->New Tabs" from the layer list context menu (right-click). You can name tabs using "rename" from the layer tab context menu. When you select a tab, you will see only the layers sel…
  • That requires a kind of pin marker. In GDS there is no pin purpose, so you cannot differentiate drawing from pin. In order to support that, I would need to introduce a pin purpose inside the LVS script. Otherwise a pin not different from a wire. R…
  • Thanks @sekigawa! I am happy to see that humans are still so much smarter than ChatGPT :) Matthias
  • Hi @cjb_aqc, Regarding the first example, is this already the top level circuit? If not, the netlist should not match as L1 is connected in the extracted netlist while it is not in the schematic. Top-level circuits do not have pins as there is not…
  • Hi @sekigawa, Currently there does not seem to be an issue with the server. I tried to find anything useful in the logs - but apart of the usual attacks (or rather: attempts), there is nothing specific. Error 500 usually does not point to a timeou…
  • Thanks to you both. My suggestion was to use DRC which is slightly more compact: ``` drawn = input(1, 0) # substitute drawing layer path = drawn.sized(100.nm) - drawn # substitute width path.output(2, 0) # substitute output layer ```…
  • There is a Klayout package called "tf_import" :) I am am regular user of the script myself. Matthias
  • Well, yes. There are new ruler attributes and Multi-Segment rulers. I could not keep the format backward compatible, so I renamed the element. Honestly, I thought dropping some homemade ruler templates is not a big loss :( Sorry for the inc…
  • What do you mean by "layout setup script"? The usual way is not to set layers one by one but to prepare a layer properties file and load it into the view with "load_layer_properties". Maybe you can be a little more specific…
  • Hi kazzz, Thanks for debugging that issue. I think there is a problem with my server. I will reboot and try if the problem persists. I am right on my way back from FSiC2024 and do not have access right now. Best regards, Matthias
  • I guess you got that from ChatGPT, not by reading the docs. You don't change the layer color on the Layout object. The object managing the layer colors is LayoutView. This is also the only way to display a layout. The API is described here: https:…
  • I just confirmed with a fork that changing the time field to <authored-time>2024-06-15</authored-time> makes the preview link work. I can, however, register packages also with the wrong field. So package registration does not seem to…
  • Hi Pavel, I am sorry for this inconvenience. The URL is correct, the problem is with the grain.xml file. If I read the server logs correctly, the problem is with the "authored-time" field. Rendering the package information stops because…
  • Hi @mjcich, Floating point representation of decimal fractions is never precise. So 0.001 is actually not exact already. Try this in Python: >>> print("%.25f" % 0.001)0.0010000000000000000208167 OASIS stores the value as "…
  • Hi @heugene, Yes, there is. The feature is called same_nets! and is explained here: https://www.klayout.de/doc-qt5/manual/lvs_compare.html Note that there was a problem with unnamed nets and wildcard expressions, which has been fixed in 0.29.2 (ht…
  • I am not sure I understand. I tried to create a sample: a.gds: (Image) b.gds: I hope I got it right. I understood you basically want to compare all shapes to all shapes. So I wonder why not mapping everything to one layer - for example 11/…
  • Hi @hieund, No, KLayout cannot read DWG and extraction of texts isn't a core competence. Maybe you can take a look into ezdxf (https://pypi.org/project/ezdxf/). Matthias
  • I see. Understood. Maybe you can open a ticket on GitHub. This is a fair request, but to be frank, not one of my top priorities. Thanks, Matthias
    in Undo/Redo Comment by Matthias June 2024
  • Hi Robert, thanks for the suggestion, that is a thing easy to implement :) I have created a ticket for this: https://github.com/KLayout/klayout/issues/1741 Matthias
  • Hi @tomas2004, Just displaying them if possible, but selecting a specific action to undo is not. The reason is that every undo action expects to see exactly the state after the original action was applied. This is a common pattern in undo/redo impl…
    in Undo/Redo Comment by Matthias June 2024
  • Hi @jiunnweiyeh, yes, if you partially-select a piece of a path, you can use "Edit/Move By" to key in a distance you want to move the selected segments or points by. Matthias