0. background There are two classic problems: - "heavy vs. light symbols", or "where to store the pinout" or "part library" - how to handle slotting gschem doesn't really provide a good solution out-of-the-box to the first problem, so pretty much every advanced user developed their own solution. Gschem solves slotting by sacrificing some of the netlist-backend-driven flexibility by hardwiring it in the GUI. In the cschem model I managed to solve both of these in a generic way so that: - we do not need to sacrificie flexibility - nothing is hardwired in the GUI - every single step/stage of the process is optional - so you can use plain old heavy symbols, portmapped symbols or devmapped symbols or even mix them on a single sheet! Terminology reminder: - symbol is a concrete model object - one or more symbols are compiled into an abstract component - terminal is a concrete model object - one or more terminals are compiled into an abstract port So whenever you see "component" or "port", we are talking about the abstract model. 1. What's portmap/devmap? (doc) This explains it all: http://repo.hu/projects/cschem/user/02_model/display_name.html We have already tested the heavy symbol approach. The scope of this test request is the portmap approach which also makes slotting possible. Devmap will be in a later test request. 2. Working example You find a fully working example in trunk/src/examples/slot2.lht It features "inhomogeneous slotting" of a 7400. This means the 4 channels are done using one box symbol and the power part done by using a different box symbol. All these had been generated using boxsym-rnd. The 5 symbols (all named U1) are merged into a single component (called U1) at the end. All terminals in all these symbols are named as per function. One of the symbols, namely the slot=1 one, has a portmap attribute specified. This has the mapping of all the digital pins in all the digital slots. The mapping is not a plain "terminal_name to pin number" one, but a "slot/terminal_name to any-attribute" one. It happens to set pcb/pinnum attributes, which makes this mapping useful for the pcb workflow, but it could be used to set any attribute on any terminal. 3. Editing the attribute The easiest way to get to this mapping is to right click over the middle of the slot=1 symbol and invoke the symbol attribute dialog. If you clicked the propert editor, you find the portmap attribute there too and for editing the value, it will take you to the attribute editor. Test edit: slick on one of the rows of the pinmap, click the edit button and modify the rightmost value to 9, then click the compile button on the main window: you will see the given terminal changes display name to 9. If you dislike editing it in the string form, we have assisted edit GUIas well: navigate to the portmap attribute in an attribute dialog and click the assisted edit. You will get the same mapping info in a table; click on a row and you can edit each field separately. 4. Notes on slotting and power slot The power symbol has pcb pin numbers hardwired in the terminals for Vcc and GND. This is because there can be only one power slot of 7400 and it always has the same pin numbers. Of course it could be implemented in the same manner as the digital pins and then you would have to include them in the portmap too.