← Back to team overview

kicad-developers team mailing list archive

Re: Symbol library table remapping branch.


On 9/1/2017 5:09 PM, Wayne Stambaugh wrote:
> I finally found the time to finish the symbol library table remapping
> implementation and I would like some help with testing before I merge
> this into the master branch.  I would like to get as much testing as
> possible.  I remember the issues when we switched from the same library
> lookup format in Pcbnew so I would like to try to get as many of the
> issues resolved before I merge the changes into the master branch.
> Please back up your schematic files before you load them.  Otherwise you
> will have a bunch of broken symbol library links in schematic since all
> of the symbols names will now be in the new format
> (LIB_NICKNAME:SYMBOL_NAME).  Also, please don't generate any external
> files such as netlists with the remapped symbol names.  I haven't tested
> any of that yet.  I am just trying to get the remapping as accurate as
> possible.  The branch can be found in my dev repo at:

git clone -b remap-symbols-to-sym-lib-table

> Before you test this, please perform the following tasks:
> 1. Delete the sym-lib-table file in your user configuration .kicad
>    folder if the table is empty.
> 2. If you do not have a relatively recent install of the kicad-library
>    repo, install the latest libraries so you have the latest fully
>    populated symbol library table template file.
> 3. Start Eeschema and allow the symbol library table config dialog copy
>    the default sym-lib-table file to your user config .kicad folder.  If
>    the default sym-lib-table file cannot be found, please point the
>    config dialog to the correct location.  Using the latest
>    sym-lib-table template file will give you the best remapping results.
> The first time you attempt to load a schematic that hasn't been
> remapped, Eeschema will prompt you remap the symbol library links.  If
> you choose not to remap, your schematic will most likely appear fine but
> this is because all of the symbols will be linked to the cache library.
> Here is what is happening during the remap process:
> 1. Backups of all of the schematic files are made.
> 2. The full library file name and path for each symbol is be compared to
>    the full library file name and path of every entry in the library
>    table.  If an exact match is found, the library nickname is added to
>    the LIB_ID object to create the fully qualified ID.
> 3. If the symbol library is not found in the global symbol library table
>    and the library file is valid and on your system, a project symbol
>    library is created with the symbol library added to it.  I could have
>    added an option to add these libraries to the global symbol library
>    table but I left that as an exercise for the user.
> 4. The symbol library table links in the schematic symbols are
>    refreshed.
> Obviously, the remapping depends on the availability of the symbol
> libraries used in your project.  If you've inadvertently deleted a
> symbol library and the cache library is being used then you are skating
> on thin ice.  I don't see that as an issue since you were skating on
> thin ice already.  I did change the message panel message when you click
> on symbols in the schematic that are linked to the cache to display the
> library information in red to warn the user that the cache library is
> being used as the symbol link.  I am thinking it might be a better idea
> to draw symbols that are linked to the cache library with a different
> color to make it obvious to the user that they should fix their broken
> links.
> I still have to convert the symbol chooser, the symbol library viewer,
> the symbol library editor, some other minor bits and peices  over to
> use the new symbol library table.  Once that is completed, I will make
> a last call before I create the stable 5 branch so if you have anything
> you want to see make it into the stable 5 release, now would be a good
> time to get that ready to go.
> If you find any issues please let me know.  If possible, the schematic,
> project, and symbol library files that caused the issue would make
> debugging easier.
> Cheers,
> Wayne

Follow ups