FSC-BT1058 had ended up with two footprint/symbol libraries on disk
(FSC-BT1058 and MIKILAB_FSC-BT1058) after a re-import baked the
"MIKILAB_" nickname prefix into the component name itself. Since that
prefix is normally added automatically when sym-lib-table/fp-lib-table
are generated, the double-prefixed copy (MIKILAB_MIKILAB_FSC_BT1058)
was invisible to collision checks and left the original as a stale,
outdated duplicate.
Consolidated onto the single correct library (symbols/other and
footprints/other without the redundant prefix, matching the rest of
the library's naming convention), fixed the symbol's Footprint
property and the footprint's 3D model reference, and regenerated both
lib-tables from disk.
To stop this class of bug from recurring:
- lib_common.check_component_name() rejects any --name that already
starts with "MIKILAB", used by import_component.py's import_symbol/
import_footprint (and therefore also by add_component.py and the
SnapEDA/UltraLibrarian importers, which call into the same core).
- check_library.py now flags any on-disk symbol/footprint whose name
already carries that prefix as an ERROR, independent of how it got
there.
- import_component.py gains --remove to cleanly delete a component
(symbol, footprint library, 3D model) and regenerate the lib-tables
in one step, for exactly this kind of cleanup.
Errors: 0 on check_library.py after the fix.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>