Elements represent the components on a board.
Elements are loaded from ASCII
coded files in a
similar manner to the layout file itself, or from the
library selector window.
An element is composed of lines and arcs on the silk-screen
layer (used to define the package outline), pins
(or pads for SMD) and three labels that define the
description, the element's layout-name (which also
appears on the silk-screen layer) and its value. You
can choose which of the names are displayed on the screen
with the Screen menu; however, the silk screen in
the printout will always show the layout-name.
Element pins are contained on the first logical level
and so reside on all layers, but the pads of surface-mount
elements reside on only the component or solder
layers. An element can have a mixture of pins, pads
(on one or both sides), and mounting holes.
A mark is used to position the element with
respect to the cross hair during pasting.
The mark will lie on a grid point when the element
is positioned. The mark is drawn as a small diamond
shape, but is only visible when both the silk
and pins/pads
layers are visible.
All parts of an element are treated as one unit, except for
the name.
It is not possible to delete a single pin or move
only part of an element on the layout.
You can resize separate pieces of an element,
but doing so is usually a bad idea. You can move/rotate
the element name independently of the element it belongs
to. When you move an element name, a line is draw from
the cursor to the element mark so it is easy to tell
which element the name belongs to.
Each pin and pad has two string identifiers, one is the "name" which is a functional description of the pin (e.g. "clock in") and the other is the "number" of the pin which is used to identify it in a netlist. The "number" is usually an integer, but it can be any string. You can edit the "name" of each pin of an element, but the "number" is embedded in the element definition and is determined when the new element is first created. Pads are similar to lines on a layer but they must be oriented either vertically or horizontally. Pads can have either rounded or square ends. Pins can be round, square, or octagonal.
Elements are supported by several special layers: silk
, pins/pads
and
far-side
. The silk
layer shows the package outline and
also holds legend text and element names. The pins/pads
layer is used to toggle
whether the element's pins and pads are displayed. The far-side
layer controls visibility
of objects (silkscreen and pads) that are on the far (i.e. not currently viewed) side
of the board.
The "oldlib" style of footprint libraries distributed with
Pcb
rely upon the M4 macro processor. M4 is typically
installed under the name m4
on most unix-like operating
systems. It is recommended that you use the GNU version of M4 to
avoid limitations found in some vendor implementations. See the m4
man page on your system for more information.
Every element file is preprocessed by a user-defined command when the file is read.
For details see elementCommand
, Resources. m4
, the default
value of elementCommand
, allows you to create libraries for
package definitions that are shared by all elements.
The old element libraries distributed with Pcb
expect m4
or an
equivalent to be the elementCommand. The new library scheme simply has
each element stored in a self-contained file, so there is no need to learn
m4
to add to the libraries.
Pcb
can create a list of
all connections from one (or all) elements to the others or a list of
unconnected pins.
It can also verify the layout connections against a netlist file.
The element's layout-name
is the name used to identify the element
in a netlist file (see Netlist File).
The old libraries, or very old (pre-1.6) layout files may have
incorrect pin numbering since there was no concept of pin numbers
when they were created. Pcb
uses the order of appearance of
the pin definitions in the layout or library file if it uses the
old format, but there is no guarantee that it will be correct for
these old objects.
Be aware that a few of the old library parts may still be incorrectly
implemented regarding pin-numbering. All of the DIL (Dual-
Inline-Pins) parts are correct and most of the others are too,
but you should verify the pin numbering
of any non-DIL part before using an old library part.
(use the generate object report
in the Info menu
to see what Pcb
thinks a pin's number is)
All of the old
library names begin with a ~, so you can easily identify them.
The old libraries also may contain other sorts of errors,
including incorrect pin spacing, silkscreen overlapping solder areas, etc.
Check carefully any element in the old library before using it!
As the new library grows, the old library will be paired down to
at least remove all of the elements with errors, but this will
take time.
You can make your own element definitions graphically now.
Simply draw vias for the pins, lines on the solder and/or
component layers for surface-mount pads (they must be either horizontal
or vertical),
and lines and arcs on the silkscreen layer for the silkscreen
outline. You should name (N key) each via and copper line with the pin number.
Once you are happy with the geometry, select everything that is to become part of
the element, then choose convert selection to element
from the Select menu.
Afterwords you can make pin (or pad) one
square if you like, and give the element its various names. You can also give
the pins and pads their functional names. Note that the
element mark corresponds to the position you click after choosing the
conversion from the menu, so decide where the mark goes and make
sure it falls on a grid point before you request the conversion.
If the vias/lines are not named, then the pin numbering will correspond to the
order in which they were placed.
When you create a new element, remember that silkscreen lines should never overlap the copper part of the pins or pads, as this can interfere with soldering. The silkscreen should identify the maximum extent of the element package so it is easy to see how close elements can be placed together.
If you want to make an element similar to an existing one, you can
break an element into constituent pieces from the Buffer menu.
Paste the pieces to the layout, make the necessary changes, then
convert it back into an element. If the pin numbers haven't changed,
there is no need to name each via/line as they are pre-named when
the element was broken apart. When you create a new element, you
can save it to a file in order to have easy access to it the next
time you run Pcb
.