My workflow is the following:
simulate -> schematic, (part definition) -> complete part definintion -> layout
To be clear: I also don’t like CvPcb.
Lets say you have the capacitors C1 - C100 in CvPcb in the list, I can’t decide which footprint C51 should have in CvPcb because I don’t know what’s the function of this capacitor and based on that the requirements on that part - that’s something only the schematic can tell me.
That’s why I think the footprint definition (and part definition, part no., manufacturer etc.) should be done in the schematic. And that’s already there (assign footprint and component properties), improved by the upcoming component selector.
Layout is the last thing, done when the part definition is complete. If you have to change the package of a part to fit in the layout, change it in the schematic and read in the new updated netlist - the schematic is the source, layout the destination, not the other way round.
That’s what I always hated about Eagle/Altium, because often there is a right symbol and a right part, but not associated together to a “device” with part number, manufacturer etc. So I have to copy them together, and save them before I can continue with the schematic.
I can’t say it better than this:
Eagle’s way of handling things really breaks my concentration and gets me distracted as I look up specific parts to use rather than just putting a generic symbol down and worrying about the exact part later.
(Quote from http://www.eevblog.com/forum/eagle/eagle-workflow)
Blown-up libraries with a lot of “different” devices for one device-type, only because of different packages or manufacturer ? Changing the package of an IC, you have to delete the schematic symbol although the new symbol is the same ?
Changing the manufacturer of parts, you have to delete all components in the schematic, create a new device in the library, add it again to the schematic and place it again on the layout although neither the schematic symbol nor the footprint is different ?
Thats professional, really ?
Starting to create a schematic (from existing simulation schematic), for generic parts which are available for many manufacturers, I don’t want to think about the part number, manufacturer or footprint at all.
If anything, let’s say for capacitors, I want to define what type of capacitor it is and assign the corresponding footprint.
When the schematic is done, it’s time to go into the part definition for (until now) undecided generic parts, packages & part numbers, manufacturer, supplier etc.
And these information go into the property fields of the component in this schematic, not into a library.
Discussing the part numbers and suppliers with the purchasing department, need to change some part numbers ? No problem at all, simply edit the property field and re-geneate the BOM. Schematic and layout don’t need to be changed at all!
I understand that for large-scale companies, the “Atomic parts” may be useful, when other people than the developer decide what parts are allowed to use and maintain a company-specific library fixed with part numbers etc. You can do this right now with KiCad, create your own library and preselect a footprint or apply a footprint filter in the component and don’t use the generic parts.
I think for the whole community, it doesn’t make sense to have thousands of capacitors in the library just to cover all manufacturers and packages. Who should create or even maintain this ?
Therefore, components and footprints should not be tied up, if anything, a component should have a default suggestion for a footprint or a filter to make it easy to assign the footprint quickly.