0. scope sch-rnd can now load multiple sheets at once and the GUI allows the user to switch between them. Just like in pcb-rnd, when you load a sheet, optional project.lht from the same directory is taken for project-role configuration. (This concept is similar to geda's gafrc.) The current implementation in sch-rnd is partial, the full implementation will require librnd 4.0.0. So there are some bugs and limitations as of now. It especially gets tricky when you have per sheet configuration (design-role config) and you load multiple sheets. Please report anything that breaks about design-role config. 1. sheet selector widget Bottom left of the top window hosts the list of sheets. It's really a tree, first level for projects and second level for sheets within each project. When you load a sheet directly, it's assumed to be in the project determined by its directory. In other words, this assumes you have all your design files for your project in a single directory. This is the MS setup described in: http://repo.hu/cgi-bin/pool.cgi?project=sch-rnd-aux&cmd=show&node=prj_corners It will be possible to have more complex setups by listing sheet file names (paths) in the project file and opening the project by opening the project file directly. This is called PR in the above pool node and will be more recommended than the MS setup. 2. swhitching between sheets You can use: - the sheet selector (clicking a sheet will switch to it) - on the US keyboard the < and > keys - on any keyboard {v d p} or {v d n} to cycle through sheets when multiple sheets are open. 3. Compilation is per project Since the abstract model is per project (and all netlists are generated from the abstract model), compilation has to operate on project level. Which means it compiles all sheets (that are loadeded!) for the given project. For a single-sheet project this doesn't make a difference, but it matters for a multi-sheet project. Note: this is equivalent to what you got in gschem: exporting the netlist worked properly only if you gave gnetlist all sheets of the project. We just make it a bit more explicit in sch-rnd and give better GUI and project file support. 4. Loading a new sheet from the GUI When you load a new sheet on the GUI, from menu, hotkey or action, it will not close the current sheet but load it as a second (or third or Nth) sheet. The new sheet will be automatically put under the right project in the sheet selector. Loading a single sheet of a project doesn't imply loading all sheets of the project, even if the project file lists all sheets. Later, when we will support loading project files directly, that will be the way to load a complete projec,t with all sheets in a single operation. Until that, just like with gschem, you need to manually make sure you load all relevant sheets. pcb-rnd relation: at the moment pcb-rnd supports single-board only, so loading a new board closes the previous board. For a short time this will be an incosistency between sch-rnd and pcb-rnd, but later on pcb-rnd will support multiple projects/boards in a very similar way and then consistency will be restored. 5. command line support You can load multiple sheets from the command line simply listing them. Works for both gui and -x tedax. Later on it will work properly with other exporters as well. 6. unload Since loading a new sheet doesn't unload/close the current sheet, I had to provide a new function for this, called unload, see the File menu. 7. dialog boxes Dialog boxes get a bit trickier with multi-sheet setup, especially that sheets may have their per-sheet configuration. There are some dialog boxes that are not affected and global, but many dialog boxes have to be per sheet. For example the library window is per sheet, for two reasons: - library paths can be configured per sheet - the library segment is always per sheet. This means if you open the library window from a different sheet, it _may_ look slightly different and you can have one instance per sheet open. Cross-placing symbols works, and our sheet files are always self-contained so you don't need to worry about using the library window that corresponds to the given sheet, you can use any library window. If you see any window that has sheet (design-role) configuration dependency but doesn't respect that, e.g. only one global instance opens then if you switch the sheet under it it won't follow the switch, please report that as a bug! 8. what will come later... Currently we support 1S and MS from http://repo.hu/cgi-bin/pool.cgi?project=sch-rnd-aux&cmd=show&node=prj_corners Later on I will implement the necessary support code and GUI so that we can manage sheet file paths in a project file. This is the PR method in the above doc. When that's done, I will recommend going with explicit file name list in an explicit project file, so prefer PR over MS, if you have multiple sheets in a project. By that time sch-rnd will be able to load such a project file directly, by loading all the sheets it names. This will be a big paradigm shift compared to gschem: instead of always manually listing all sheet files for the project, we will simply load the project file.