← Back to team overview

kicad-developers team mailing list archive

Re: Questions on 6.0 eeschema file format

 

Hi,

On 07/16/2018 04:24 PM, Tomasz Wlostowski wrote:

> Why do we need any inheritance at all? My only guess is to make Kicad
> even more hackerish and difficult to understand.

It would allow getting rid of the really annoying redundancies in the
library:

 - all transistor symbols exist in six variants (BCE, BEC, CBE, CEB,
EBC, ECB) that only differ in pin numbers, but have the same symbol.
 - multi-unit components exist in single, double, quad, ... variants.

This means that during schematic entry, you need to specify some
properties of the component by selecting the appropriate symbol, but
other decisions might still be delayed until component selection.

The way I'd like it to be is to have a generic transistor symbol, which
you can use for schematic entry, and cvpcb would ask to refine the
selection, towards a discrete component (which would specify the pin
order), or towards a multi-unit part. We can easily offer a list of
choices here, because we know what inherits from "generic transistor".

This could also be used to collect component values, e.g. the "generic
resistor" would have "resistance", "tolerance" and "power rating" as
abstract properties, define their mapping to SPICE and filtering rules
for component selection (near match for resistance, larger for power
rating).

The workflow for a resistor would be:

1. In the schematic editor, place a generic resistor, "R".

2. Edit its value(s). The value dialog presents three fields,
"resistance" with unit "Ohms", "tolerance", and "power rating" with unit
"Watts", the latter being optional.

3. During component selection, cvpcb asks to select a resistor from the
library of known resistors with the same value, or define a new one.

4. Defining a new unit would create up to four derived components:
   - inherit, and define fixed values
   - inherit from that, and define a footprint
   - inherit from that, and define a vendor order code
   - inherit from that, and define a distributor order code.

This would happen in a wizard, and the last two steps would be optional.
When another generic resistor with the same values turns up, the newly
generated components would be offered for selection, which would allow
the user to specify everything including order codes with a single
selection.

When changing a resistor value, the selected resistor would be replaced
by a generic one again, deleting the footprint and order codes as these
would no longer be valid. Because all resistors inherit from the same
generic graphics, this replacement has no impact on connectivity.

   Simon


References