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

Comments

  • Hi Thomas, Regarding 1: "set_config("key-bindings", ...) and using File->Setup should basically do the same. In fact, File-Setup is only a configuration editor. I could not produce this behaviour with a simple test. I wonder what'…
  • Nice idea, I agree! But you're not the first one, I'm afraid :) One is here: https://www.klayout.de/forum/discussion/comment/2214#Comment_2214 The first request dates back into the early days of KLayout (>10yrs back). I think there are even co…
  • For the Circle from Basic.CIRCLE, the radius to use for programmatic instantiation is "actual_radius", not "radius". This PCell has two ways of setting the radius: on through the entry box and by moving the handle. "actual_r…
  • Hi, well, that's actually harder than it looks. There is a forum entry where I explain the topic: https://www.klayout.de/forum/discussion/comment/6738#Comment_6738 The problem is basically that DRC is based on Ruby which (like Python) is a modern …
  • Hi Thomas, I'm a bit cautious with that. There is no active push to client applications. Instead, the application has to poll the server regularly. This needs to happen through a TCP/IP connection and HTTP requests. KLayout is frequently used in s…
  • Hi Andy, Yes, docker deployment is actually an option. Being made for web service deployment, Docker provides a too little support for native GUI applications to my taste, but it's perfect for build system maintenance and automation tasks. Matthias
  • Right now, there isn't such a feature. It's probably possible to implement but it's a major complication and I think there are manifold implications like grid application, the definitions of distances and angle, the effect of rotations and displacem…
  • Hi Brian, at least on Linux, the startup scripts should be run in a deterministic way (alphabetical I assume). You can use "klayout -d 31 ..." to get verbose logs for finding out the order. But if the problem is PCell class names: these …
  • I'm a bit scared about what I read here ... Just to understand: we're probably talking about identical library names, right? There are basically two kind of name clashes: 1. Identical class, function, variable or method names 2. Identical library …
  • Hi, PyPI is just a subset and does not include the UI part. The reason is simple: it comes without Qt, which is good because that creates another axis in the dependency matrix and would render an unmanageable mess. Plus avoids potential licensing i…
  • Why do you use this: point=shape.dbbox.center.to_slocation=point.split(',')locationx=(location[0].to_f)locationy=(location[1].to_f) Instead of simply this point = shape.dbbox.centerlocationx = point.xlocationy = point.y ? And what's the effect?…
  • This is how you use code formatting in Markdown: def function(a, b, c): return a * b + cprint(function(1, 2, 3)) This is the screenshot how this is made: (Image) Matthias
  • Very good :) It's there already for some time. What you say it correct, but there needs to be a disclaimer here: using process_events excessively may lead to recursive event handling. So for example if you do process_events, some user might use a m…
  • Very good! I'm only using Docker now. Start with a pristine basic Docker image, install just what you need and you'll never run in such trouble :) Matthias
  • Could you please use Markdown code formatting? Put a line with three backticks in front and after the code. This is unreadable.
  • Hi, actually PyPI package is build by a Travis job :) You'll find the details in ".travis.yml" in the sources. The build is based on "setup.py" (setuptools). Provided you have the necessary Linux packages (gcc, libcurl-devel, p…
  • It's available in the downloads section now: https://www.klayout.org/downloads/MacOS/ST-klayout-0.26.9-macOS-Catalina-1-qt5Brew-RsysPsys.dmg Thanks, @kazzz! :)
  • Very good :) Edit: corrected a few typos in the text above ...
  • Hi Thomas, Please take a look into the .lyt files. The "" element should be empty or a relative path. If you specify relative paths, use the forward slash UNIX notation (like "../my_files"). This way, packages will work on Linux…
  • Found it :) It's a package (Tools/Manage Packages). The package is called "tf_import". There is also a Perl script to convert a Calibre layer properties file to KLayout .lyp: https://github.com/klayoutmatthias/calibre2klayout There is a…
  • Update: the techfile script now is a KLayout Package: the name is "tf_import".
  • I see ... Dumb question: why using the "Layer specification" at all? This is just how the database calls the layer and this is just a layer and datatype number for GDS. It can be changed, but this information is lost when you load the GDS…
  • Is this pip? Or setup.py? I get this message when I mess up debug and release versions of Python or when there are multiple Python installations on the system and they are interfering - specifically Python 2 and 3. Matthias
  • Yes, sure :) But there can also be a (Python) script: class TreePrinter(object): def __init__(self): self.text = "" def add(self, text, indent): self.text += " " * indent + text + "\n" def show(self): pya.…
  • @andyL There is such a parameter already. It's called "bias". This is a text with a magnification of 10 and a bias of -0.4: (Image) Please note - as you see on the "R" - for achieving a particular trench width you'll need a …
  • Well, you can't fit values of 0..1 into a PNG file. It only takes 8 bit ARGB and you somehow need to convert the values. So you'll essentially loose precision along with the metadata which give you the coordinate information for example. That's why…
  • Hi Thomas, Image was designed for reading images from PNG, but not to write them. It carries more information than a plain image, e.g. the data mapping (e.g. heat map), the transformation, z order etc. Actually, iterating the pixels and writing in…
  • The code has a couple of flaws. The basic problem is to properly create the layers and make them visible. Here is some working code: import pyalum_lib_txt = "HELLO, WORLD!"pya.MainWindow.instance().create_layout(0)view = pya.LayoutView.c…
  • @numero8 You can't just add any Python package to KLayout on Windows. This has been a topic in this forum a couple of times. See for example here for an explanation: https://www.klayout.de/forum/discussion/comment/6430#Comment_6430 You can use KLay…
  • @ram1 Thanks for sharing this nice image! :)