← Back to team overview

kicad-developers team mailing list archive

Re: Footprints: *.cmp and *.net stored footprints are not symetric


On 14.07.2014 19:59, Dick Hollenbeck wrote:

Specifically in this case, the question should have been asked:

"does the BOARD need to know about the NETLIST, or does the NETLIST need to know about the

IMHO neither needs to know about the existence of the other.

NETLIST can be extracted from the board by a separate entity (say, BOARD_NETLISTER). Same for the schematic netlist.

BOARD can be updated by looking at the differences between NETLISTs made by these two entities. Same for the schematic - the differences just trigger different actions. Change of a footprint in SCH->PCB direction would trigger a reload of the footprint and replacing corresponding primitives in the BOARD. In reverse direction, it would merely change the FPID attribute of the schematic part.

IMHO it's just a matter of refactoring the BOARD::ReloadNetlist into smaller chunks (each of them responding for a particular change, with the knowledge of how to update the underlying model) and writing a much simpler (just doing pin/part swaps + footprint backannotation) class for eeschema.

No files involved, just as you said.


Follow ups