← Back to team overview

kicad-developers team mailing list archive

Internal units in the KiCAD source code


The KiCAD code uses all kinds of different units for distances.
Amongst other things I found:
  nm: pcbnew internal units
  10nm: Gerbview internal units
  100nm EEschema internal units
  1um: PL-Editor internal units
  0.1mil (2.54um): SetViewport
  1mil (25.4 um): WS_DRAW_ITEM_BASE and GetSizeMils
And the native File formats use mm (pcbnew) and mil (EEschema).
Something like SVG exports in 0.1 mil steps. I think that this is not
very consistent and something like a PLOTTER class needs to handle
different IU-sizes.

My idea is to rewrite the internal units so that nm are used
everywhere inside the source code, and only parts that write or read
files and display data to or read data from the user should convert it
to another unit system. I don't want to change any file formats.
That would make it a bit more straightforward, more consistent, metric
and an SVG-Plotter would use a metric step size. The disadvantage
would be that there would be an about 2m or 4m limit in every
direction, assuming int is 32 bit, which is AFAIK true for all
platforms KiCAD current supports.

Before i rewrite code, can you say what you guys think about it?

Johannes Pfister

Follow ups