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 _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

