I came from eagle world. I find that cvpcb add some unnecessary job or I miss some feature.
Actually when I create schematics in eagle the DEFAULT footprint is associated instantly. In KiCad I need to run cvpcb and associate the all component. That seems pretty stupid to do every time. For example for resistor. If board is THT type (no SMDs) then resistor size for 1/4W resistor is known and probably 95% correct one. Other 5% the wattage/size is different and there is need to change footprint. Same is for SMD. Actually in eagle I make library with two resistors (R_THT and R_SMD) and cover 95% correct footprints already defined.
As I find till now I need to associate ALL components in schematics with footprint manually. There are no defaults.
The library default resistor symbols are generic (with no default footprint). It is easy to customize a resistor symbol if you want a THT resistor.
Make a copy of the R symbol, perhaps R_0805 or R_THT or R_SlavkoFavourite (or whatever) and then add a footprint association. Not every option will be included in the standard libraries, or they would be far too large. There is a balance between flexibility and specificity.
Many symbols have a footprint already added (e.g. specific ICs with only one footprint option).
I just realised that “default” kicad on ubuntu is way to old to have that features. After installing new version from ppa the footprint selection seems way better. (actually seems that cvpcb is not need any more?)
The ppa version might be the nightly build version.
(And you might be talking about the component selector by @c4757p)
Be careful when using the nightly build!
It is not guaranteed to be compatible with the stable release. It sometimes even breaks compatibility with older nightly build versions.
It sometimes has nasty bugs. (It is the development build after all.)
You could do something similar in the stable release. After placing your symbol open the symbol properties [press e] and set the footprint field using the footprint browser.
If you use multiple components that need the same footprint assigned just copy this one component.
Or in cvpcb select all components that should have the same footprint assigned and assign all off them at once.
I configure the first component and then do copies for the rest. The footprint gets copied along with it. Usually I just have to change value and reference. When you do a copy of a component the reference does not get copied but that is a GoodThing™.
I see the trick from @hermit works like a charm while KiCad is open but If I close it and later on I try to use a component that I already set the footprint, the associated footprint doesn’t exist anymore.
How could I make a permanent association between the schematic symbol and a specific footprint?
You have only modified the resistor within the original project. When you start a new project and place another resistor you are placing a copy of the original, unmodified resistor again.
If you want to make a specific component linked with a specific footprint (and perhaps with other specific properties like part number, manufacturer, spice model etc), you will need to save it into your own library. Call both the component and the library something unique and put your library at the top of the list.
Search the forum for ‘Atomic parts’ and you will see the general principle.
There is a philosophical debate about this - at some point you have to translate the schematic symbol to an order able part. Whether you do that up front when you chose a part (as per the Eagle route and perhaps the workflow you were expecting) or when you have laid out the schematic using cvpcb (traditional Kicad workflow) depends a lot on your design background. One of the many good things about Kicad is that it allows both workflows to co-exist and even permits you to mix and match both workflows in the same design.
OK. This won’t carry over between projects like this. To do that you would have to save the part to a personal library (well, I’d recommend that) and then use the symbol editor (properties button on my release/version) to link a footprint to it. Convention would be to name it with a clue as to which footprint it is associated too. Something like R1_V for a vertical orientation, or R_1/4W for a typical quarter watt resistor.
You must have write permissions to make the changes so you might not be able to change the default symbol. Even if you can you risk having it over written during an upgrade. You will find many in Kicad have extensive personal libraries for a variety of reasons. Custom parts and parts they have used before and know are correct are the biggest reasons. Since you should always verify parts and footprints having your own libraries lets you know you have vetted those parts.