It looks like you're new here. If you want to get involved, click one of these buttons!
maybe that GDS does not have any shapes on these layers? Basically, a GDS file does not "contain layers", it just contains shapes. If there are no shapes (or texts) on a layer, the layer will not be there.
A solution is to provide a mapping table listing all layers that should be in that file, or to load a layer properties file. In both cases, KLayout will use that information to add layers which it otherwise does not know about.
I think I don't understand ... are you saying there is a bug?
I am still somewhat puzzled. I am trying to figure out what is the input and what is expected.
Maybe a word of caution regarding the layer mapping is in place.
Basically, the layer MAPPING is some kind of filtering on reading. That means the layers won't be read although they are in the layout. This option is somewhat special and is intended mainly to provide a mapping of layers between formats using names and formats using layer/datatypes. The layer mapping will basically modify a layout, hence it's a somewhat dangerous option.
If you want to DISPLAY layers in a specific way, you can specify a layer properties file. This will just specify the way the layers are shown, not modify the database. Specifically, if you switch a technology (chose a technology and click on the technology button), the layers will be shown differently, according to the specification in the new technology. SO I'd recommend to specify a layer properties file rather than a mapping. You can assign speaking names to layer entries within layer properties files using "Rename" from the layer list's context menu.
BTW: layer properties files are designed to provide a list of layers to display. By default, the other layers are not shown (although they are present in the database). You can add "Add other layer entries" from the layer list's context menu, or you can make a layer properties file to show all the remaining layers in some default color and style by adding the following entry at the end of the file:
... normal content
Another remark: when you reload a file from the "most recently used" list, KLayout will use the technology used at the point of time that file was loaded. Maybe that is confusing too. When you said, you have loaded with "(Default)" technology, but you still saw mapped layers, could you check, whether "(Default)" was really used (File/Layout Properties)? Plus, the technology is also shown in the lower left corner next to the "T" label (in that case, "(Default)" is shown as no text). Please check whether it really was "(Default)".
Maybe that clears up things a little. Does that explanation help?
I can understand your concerns.
The idea is that the technology is some property assigned to a layout. The technology selector will allow you to change that assignment. Pushing this button says "I want to make this layout use that technology". Different layouts can use different technologies and the string next to the lower left "T" label shows the technology assigned to the current layout.
Once you have made a choice, the technology associated with a layout file should be stored somewhere, so you don't have to make this choice again. The MRU list looked like a good place to store this, without having to modify the layout files. But if you chose a new one, the system won't have any idea what to use so initially, so you'll have to make a choice by picking one technology in the assignment button.
The default technology does not reset the layer properties because I guess there is no .lyp file associated with the Default technology. if you want the default technology to reset the layer properties to some default you can use the following dummy .lyp file for "(Default)":
<?xml version="1.0" encoding="utf-8"?>
Looking deeply into the code I noticed that there is some strange behaviour regarding the adding of new layers when using .lyp files. There is no individual "add missing layers" flag for the technology's .lyp file. Instead the global flag is used (see Setup/Layer Properties). So if that is set, the missing layers are added automatically. This is not intended. I'd like to add this flag to the technology too, so you can configure that behaviour. Until then you can check whether the "auto-add missing layers" flag is set by looking into the configuration file:
There may be a similar issue with the "read all other layers" for the layer mapping. The technology should have the same switch and it should work independently from the reader options.
I'll check that. That's surely a strange behaviour.
it is actually intended: the program tries to identify a layout file with a technology. When you load it again it will use the same technology than you had before. The reasoning is that if you use multiple technologies, you would like to associate files with different technologies and using the original one for the original files seemed to make sense. But I understand your wish to update the MRU entry when you change the technology.
When you load a file from the command line without a technology, it should use "(Default)", which is the first one - that's right.