Symbol Libraries
Where symbols come from
While you draw, symbols are taken from the application’s system library
(the shipped set listed in Placing Symbols). Each symbol is an SVG
<g> element that carries its own metadata in data-* attributes:
<g id="R"
data-prefix="R"
data-nodes="pos neg"
data-model="R"
data-params="value dcvar dcvarlot noisetemp noiseflow"
data-description="Resistor (nonzero resistance)"
data-info="https://www.slicap.org/syntax/devices.html#r-resistor">
...artwork and pin markers...
</g>
The editor reads everything it needs from these attributes — there is no separate table to keep in sync.
data-prefix— the device letter / reference-designator prefix.data-nodes— the node names, in the order the netlister expects. A pin’s position is given by a<circle class="node" data-node="...">marker.data-model— the SLiCAP model name.data-params— the parameters the user may set.data-description/data-info— the text and link shown in the Properties dialog.
The symbol’s outline extent (used for selection) is computed from its geometry, so symbols never need a hand-maintained bounding box.
Frozen copies travel with the schematic
When you save, the symbols the schematic uses are copied into its
<name>.symbols sidecar (see Project Files). When you open a
schematic, those frozen copies are loaded on top of the system library, so the
drawing always renders with the symbols it was created with — even if the
shipped symbols change later.
Custom and overriding symbols
Because a frozen symbol overrides the system symbol of the same name, you can
customise how a device looks. For example, you can draw the nullor N as an
operational-amplifier triangle, freeze it into a schematic’s .symbols, and
that schematic will use your version while everything else keeps the standard
IEC symbol.