Fuccimain said:
I guess alotta my 2nd to last post belongs in the theory and design section , so ill rephrase it a bit , whether I'm using 1 type if cap or resistor, how does the design software know why size the component is for the pcb.. I have to specify the exact manufacturer and value?
Welcome to the area of CAD which engenders the most discussion!
This all depends on the CAD software you're using, but in general: you will have symbol libraries and footprint libraries. The idea is that you have to marry a symbol with a footprint. How you do this depends on the software you are using.
What professionals do is to build libraries in which a symbol ALWAYS has a map to a footprint. There are those who will argue that this pollutes your library, in that you might have a dozen NPN transistors in the library and they all look the same. Please, ignore those people. You do NOT want to design and fab a board which has a TO-92 footprint for a part you bought in SOT-23.
So, examples. Kicad has symbol libraries and footprint ("module") libraries. Each symbol has a field called Footprint. If you put a valid footprint name in that field, it will be included in the netlist you export to the PCB layout. Then when you import that netlist into PCBnew, it matches the footprint name with something in the module libraries and thus that footprint will be in your design ready for placement.
If the symbol's Footprint field is blank, you have to run an interstitial program called CvPCB, with which you manually match footprints to symbols. This is how you fuck up and choose the wrong footprint for a part. Don't use this workflow.
Now with Altium, you have schematic (symbol) libraries and footprint libraries, and the marriage is done in what they call an Integrated Library. For actual designs you always use the Integrated library and never the other two, which are basically "source" libraries. When you pick a component from the Integrated library, you get the symbol, the footprint, a 3D model, and whatever else you've compiled into it.
I don't know how this is all done with EAGLE, as I've never used it.
Here's where life gets interesting. You have a footprint library with R0805 and C0805 and R1206 and C1206 for two different sizes of SMT resistors and caps. But you have all different values for resistance and capacitance. So you create four symbols, say, R0805, C0805, R1206, C1206, and embed in those symbols the footprint name. The "value" field remains blank, and you give it a useful value when you place the symbol on the schematic. (Remember that the value matters only to the BOM, the footprint matters to the layout.)
You're still left with the very real problem of generating a BOM with generic values for resistance and footprint and no orderable part number. The ways I've seen this problem handled in the past vary.
In one case, we had a "resistors" library which had an entry for every single resistance value we used. Embedded in the symbol was a unique company part number. A back-end database lookup mapped the company part number to a vendor's orderable part number (or multiple options for multiple sources). The resistor library could have easily hundreds of parts.
Where I work now, the symbol includes a "family" part number. All 0805 1% 1/8 W resistors are a family. All 0805 0.1% 1/8 W resistors are a different family. (The idea is that there is only one variable within a family, usually value.) Thus the symbol library includes a handful of different resistor families. (The symbols themselves look identical on the schematic.) The BOM exports family part number and value and a database tool maps the two into an orderable part number. For devices where the "family" only has one entry such as an op-amp, then the lookup is simpler.
All of the schemes are intended to make sure that the schematic, the BOM, the footprints and the stuff you order are all correct. Manual entry of anything is to be avoided.
-a