# kicad-developers team mailing list archive

## Re: Re: Internal PCB Units?

• From: Werner Almesberger <werner@...>
• Date: Thu, 17 Dec 2009 12:31:52 -0300

```Manveru wrote:
> And that is a great idea - same I have reading all these JEDEC & IEEE
> standards last week...

BTW, for an efficient footprint capture (*) process, I think you
need to be able to express the following functionality:

- avoid textual repetition:
- variables / macros, and
- iteration over values or locations
- constructive geometry:
- geometric operations, or
- algebraic geometry / arithmetic expressions

The following screenshots from fped illustrate what I mean:

- variables and algebraic geometry:

http://people.openmoko.org/werner/fped-param.png

The size of the center pads of this QFN is defined by the
bright yellow vector shown in the middle and its companion
pointing in the opposite direction.

The dimensions of the vector are expressions (fields in the
bottom area): Cx/2 and Cy/2, which are in turn defined at a
single location (list of variables, on the left).

If, for example, I had to shrink or grow the center pad area,
all I had to do was to change those variables. I could observe
the correct execution through the automatic measurements

- iteration and geometric operations:

http://people.openmoko.org/werner/fped-arith.png

The four center pads are drawn by iterating the variables nx
and ny (left) through the values 0 and 1. The center of the
respective pad is obtained arithmetically (bottom). Cx and Cy
are the pad size, Gx and Gy the width of the gaps between pads.

The center of the pad (highlighted) vector forms the basis for
the vectors in the previous example. We thus have concatenation
of vectors, a simple geometric operation.

Geometric operations aren't strictly necessary, but expressions
can get a bit unwieldy without them and its harder to visualize
intermediate results. Likewise, algebraic geometry could be
replaced by a richer set of geometric operations, but that may
get a little chaotic as well.

Automated measurements help to verify that the construction indeed
yields what the specification says and they also help to document
the work.

Similarly, in a script-based approach, there are variables,
iterations (loops), and one can do algebraic geometry.

(*) I just made this term up. We need to distinguish "the drawing"
from the actual design of the footprint, which would involve
things like metallurgy, a healthy dose of trial and error, or
both.

- Werner

```