I have a private branch that stores symbols and footprints in a MySQL database, 
and I’ve been chewing on the idea of enhancing cvpcb to provide the “real-world 
parts” glue that KiCAD currently lacks.  My approach is in line with Jon’s, I 
think: to have the database also contain 
symbol-to-real-part-to-correct-footprint mappings (not embedded in KiCAD symbol 
data, but stored alongside in the DB), which cvpcb could them query and present 
as choices to the user (no need to add a part-number field to each symbol in 
the schematic; rather, the real-part selection process is integrated into 
cvpcb).  Then cvpcb can use this selection to pick the correct footprint, also 
in the database.

A tangent goal would be to enhance pcbnew to use the database information when 
swapping footprints.  For example, to choose among several pitch options for a 
through-hole resistor (to make room for routing on few layers, maybe).

Obviously this requires data to work, and in my case I have my homebrew RDBMS 
schema set up the way I came up with in my own personal vacuum, which I 
gradually build up with data each time I make a DigiKey order on some project 
or other.  An external database maintained by a community would certainly be an 
advantage over my setup.

At any rate, all that to say this is a direction that interests me greatly (HOW 
MANY TIMES have I had to rework a board because a TO-220 part’s pinout was 
wrong??), and I have ideas and time to contribute to this effort.

Cheers,
-Brian

PS: My current database schema has the following:
- a table containing KiCAD symbols
- a table containing KiCAD footprints
- a table containing uniquely-identified real-world parts (e.g. a 270-ohm 5% 
2-watt through-hole resistor)
- a table that links each real-world part to a symbol
- a table that links each real-world part to any number of applicable footprints
- tables of manufacturer and vendor info 
- inventory statistics (which is why I started the DB in the first place!)



> On Aug 27, 2020, at 2:22 PM, Jon Evans <j...@craftyjon.com> wrote:
> 
> 
> Hey Martin,
> 
> This is a concept I've been working on in the background (managing libraries 
> through a database, including footprint assignments but also 
> fields/properties)
> 
> The way I was thinking about approaching it is not just a filter in CvPcb, 
> but actually a new type of library (including a new part chooser).
> It would pull the underlying symbols and footprints from existing libraries, 
> but would connect to a database (local or on a remote server) that has all of 
> the information about which parts use what symbol and footprint, and what 
> other properties to bring in (manufacturer part number, etc)
> 
> There is a draft spec:
> https://docs.google.com/document/d/1qXwFPbYOwFXRNvjRN5BttRX_4esEDdYDt1cOpOmNc8A/edit?usp=sharing
> 
> I have not put a lot of time into this yet because V6 feature freeze is right 
> around the corner, and this would be for a later release.
> 
> Best,
> Jon
> 
>> On Thu, Aug 27, 2020 at 2:17 PM Martin Marmsoler 
>> <martin.marmso...@gmail.com> wrote:
>> Hi,
>> 
>> I wrote already in the Forum, but did not get an answer. Hopefully I'm 
>> getting here more attention :)
>> 
>> I’m thinking about how the footprint assignment can be more 
>> “intelligent”/faster. I’m not talking about simple parts like resistors/ 
>> capacitors without extra requirements, but diodes, inductors, connectors, 
>> integrated circuits.
>> 
>> For example diode:
>> The most of the time the same symbol for a diode is used, but the footprint 
>> changes. But before selecting a footprint you search for a diode which fits 
>> your needs (at the distributor, manufacturer, …). After you selected the 
>> exact part, only a few footprints are still available (for diodes in the 
>> most time only one).
>> 
>> For inductors it is the same, but many times the footprints are generic, but 
>> the 3D model matches not always. For example they have a different heigth. 
>> (I think this is currently not doable, because there is no 3D model assigner)
>> 
>> So it would be nice if in cvpcb exist a filter which filters only these 
>> matching footprints.
>> 
>> Where to store the information which partnumber matches with which footprint?
>> Maybe this information can be stored in a database
>> found this: Part-DB Looks pretty good to do the job.
>> So CVPCB access this database and assigns automatically the footprint (and 
>> the 3d model which matches)
>> 
>> The database contains many parts which have footprints (or only the path 
>> (preffered)) as attribute
>> 
>> So at the end the workflow looks like:
>> 
>> Create schematic with generic parts
>> Add Manufacturer number to parts
>> Let CVPCB Assign automatically footprints
>> 
>> What has to be done:
>> # create database with KiCad footprints inside (script)
>> # Add parts to the database
>> # Add new filter button to CVPCB
>>     - implement db access
>>     - search in symbol if a manufacturer number field exist and use this 
>> value
>>      - access the database and search for the part
>>      - assign footprint to symbol (if in the database only the path is 
>> stored, what to do if the footprint does not exist)
>> # Add settings where the url to the database is stored.
>> What do you think about something like that?
>> 
>> 
>> This is the forum post:
>> https://forum.kicad.info/t/automatic-assignment-of-footprint-and-3d-model/24497
>> 
>> Is there a timeplan for v6/ feature freeze date?
>> 
>> Cheers,
>> 
>> Martin
>> 
>> 
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to