attributes recognized

Attributes are key-value pairs attached to objects. The format and content of both keys and values are free form. Most of the time the meaning of an attribute is defined by the user and the only code that process the attribute are user scripts.

However, there are a few attributes recognized and parsed by pcb-rnd. This document lists those attributes.

Object attribute summary

attr key object description
term drawing primitives, subcircuit terminal ID
intconn terminals (drawing primitives, subcircuit with the term attribute set) internal connection
intnoconn copper objects (drawing primitives) break internal connection
noexport drawing primitives do not export the object
refdes subcircuit reference designator; the unique name of the subcircuit instance (also used in the netlist)
extobj subcircuit names the extended object implementation that handles the subcircuit
init-invis layer group the layer group should be inivisible after loading the board

Object attribute details

term

Terminal ID is the unique identifier of a terminal (pin, pad, lead of a part). Together with the subcircuit's refdes, the terminal ID is used to identify the terminal on the netlist. Very often matches the datasheet's pin number.

intconn

Value is a small positive integer. Terminals within the same subc sharing the same intconn value are connected within the package, even if terminal IDs differ. The connection is invisible/implied. Used to indicate in-package connections (e.g. zero ohm resistor used for an extra layer).

intnoconn

Value is a small positive integer. Copper objects within the same subc sharing the same intnoconn value are assumed to have no connection with each other even if they overlap by geometry. Used to break unwanted connection in a subcircuit, e.g. to avoid shorts in a 2 terminal antenna or coil footprint.

noexport

A drawing primitive that has the noexport attribute (with any value) is marked on the screen with an overlay X mark and is not exported to any of the graphical exports. A noexport:exportername attribute will inhibit the object only from the named exporter (e.g. noexport:png will make the object disappear from the png export but not from any other exports). Multiple noexport:exportername can be used.

Some side effects of the object will not disappear:

The noexport attribute on padstacks will inhibit all shapes (including the slot) and the hole too.

Graphical exports are those that use the central draw mechanism for getting the drawing primitives generated. Some exporters, typically the ones that export data (and not drawing) will not call the draw API and thus will ignore the noexport attribute.