andromeda-cad / andromeda-rfcs

AndromEDA development plans
0 stars 1 forks source link

Part library formats #6

Closed SchrodingersGat closed 6 years ago

SchrodingersGat commented 8 years ago

As a starting point to formalize some of the IRC discussion:

Parts

A PART is a unique library component which has zero-or-more associated symbols, and zero-or-more associated footprints. A PART provides mapping between symbols (schematic) and footprints (PCB), and contains descriptive information about the component properties.

Each PART is written to a separate file.

PART
{
name,
reference,
description,
keywords,
datasheet,
metadata
   {
   key: value,
   key: value,
   ...
   },
symbols: [],
footprints: []
mapping: 
   {
   "pin-name" : "pin-number",
   ...
   }
}

Symbols

A SYMBOL is a graphical representation of a part, and is displayed in the schematic file(s). Each symbol contains shapes, text and pins, where each pin has a name. SYMBOL pins are not numbered, as the pin names are mapped to footprint numbers within the PART object.

Each SYMBOL can be split into multiple sub-symbols (e.g. dual op-amp symbol) and each sub-element (pin / shape / text) can be assigned to 1-or-all of these sub-symbols

Each SYMBOL is written to a separate file.

SYMBOL
{
name,
sub-symbol-count,
pins [
   { 
      name,
      sub-symbol,
      position,
      length,
      orientation,
      style,
      visible ? 
      inverted ?
      <other PIN attributes> 
   }
   ...
   ...
]
texts [
   {
      text,
      sub-symbol,
      position,
      size,
      <other TEXT attributes>
   }
]
shapes [
   {
      shape,
      sub-symbol,
      position,
      points / size / radius / etc
   }
]

Footprint

TODO