2.2. File format
2.2.1. Available footprint file formats
Generally speaking pcb-rnd treats all footprint file formats equally:
footprint library entries or stdout of a parametric footprint can be any
of file format pcb-rnd supports. However, there are considerations that
make some file formats more suitable for shared footprint libs than others.
The native file format is lihata. This is the only file format
that is guaranteed to support every feature pcb-rnd implements. Thus this is
the only format that can store a footprint without compromises, in a lossless
way.
Other file formats are called alien. These are mainly file formats used
by other EDA software. Except for the most notable alien footprint
file format which is tEDAx footprint and is a free format designed for
data interchange between EDA tools.
2.2.2. Choosing the right format
When designing a new footprint, either parametric or static file, the following
points should determine the choice of file format:
- for contributing to bedrock-rnd, the file format must be lihata
- for footprints shared otherwise, it is preferred to use lihata or tEDAx
since the plugins of other alien formats are considered less essential and
may not be compiled or installed on a random user's system
- lihata is better in describing details so it should be preferred for
high quality footprints; tEDAx is easier to understand, read and write
so it should be preferred for simplified or low end generic footprints
- a major drawback of the tEDAx footprint block is that it does not
convey metadata, while lihata footprints can easily store footprint
attributes; in case of tEDAx these can be included in the file as
comments, which are then not computer readable; thus for footprints
that are part of public libraries lihata is a more suitable format than
tEDAx
- when implementing a parametric footprint to be shared, choose a
language that is portable and is available; the safest choice is AWK,
which is present on any *NIX system by default and the windows binaries
of Ringdove EDA installs it too
- another advantage of implementing a parametric footprint in AWK is
that it can use common_subc.awk, which is shipped and installed with
pcb-rnd; this script lib has functions to convert parameters and write
lihata footprint files
- never use the gEDA/PCB file format out of habit; that file format is
extremely limited and can not express any fine detail; footprints in
this file format are typically low quality ones usable only for hobby
boards
2.2.3. Footprint file format specifications