kicad-developers team mailing list archive
Mailing list archive
Re: PcbNew netlist updating codepaths
Wayne Stambaugh <stambaughw@xxxxxxxxx>
Mon, 18 Mar 2019 13:32:33 -0400
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.3
On 3/18/2019 12:21 PM, Jon Evans wrote:
> Does anyone know why we have two different netlist update codepaths?
> When using "Update PCB from Schematic" workflow, the netlist is
> processed by BOARD_NETLIST_UPDATER called from PCB_EDIT_FRAME::KiwayMailIn()
This was created when the "Update PCB from Schematic" workflow was
implemented. Judging by the error messages in BOARD_NETLIST_UPDATER, I
would guess this was derived from the original BOARD::ReplaceNetlist()
and split into more manageable chunks. I believe this was written by
either Tom or Orson so maybe they can shed some more light on it.
> When using "Load Netlist" workflow, the netlist is processed
> by BOARD::ReplaceNetlist() called by PCB_EDIT_FRAME::ReadPcbNetlist()
This is the original netlist import code and is called when loading the
netlist using an external netlist file. I'm not sure why this was not
replaced with the new BOARD_NETLIST_UPDATER object when the above was
written. I wrote this by merging the original netlist update code into
BOARD::ReplaceNetlist which used to require access to the frame window.
I removed that dependency because it was preventing the BOARD object
from being built without UI code which I consider a worthwhile objective.
Now we have two separate netlist update code paths to maintain. :( I
would prefer that we used BOARD_NETLIST_UPDATER in both code paths. I'm
not completely sure we can or should remove the manual netlist update
code. There was talk of some day having a real command line interface
for performing automated tasks so this would have to remain if we wanted
to update the netlist from the command line.
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp