kicad-lib-committers team mailing list archive
-
kicad-lib-committers team
-
Mailing list archive
-
Message #00256
library cleaning - massive attack proposition
Hi all,
I'd like to ask you about idea of cleaning the mess that we have in
footprints and 3d models. I think that it would be good to write some
script which could make the job. It would be much easier to work with 3d
models if their names are the same as names of footprints, and they are
put into folders named the same as *.pretty libraries. I'd suggest the
following algorithm:
//preparation:
1. clone kicad-library and move kicad-library/modules/packages3d/ to
~/KiCad_Libraries/packages3d_bck/
2. clone all *.pretty libraries to ~/KiCad_Libraries/Pretty_bck/
3. create new empty folders: ~/KiCad_Libraries/packages3d/ and
~/KiCad_Libraries/Pretty/
//run the script:
4. open first footprint from first library
(~/KiCad_Libraries/Pretty_bck/LIBRARYNAME1.pretty/FOOTPRINT1.kicad_mod)
5. change MODULE_NAME1 (first line, "(module MODULE_NAME1...") to
FOOTPRINT1,
6. optional: change reference to FOOTPRINT1, change value to VAL**,
change all silkscreen lines width to 0.15, change text size of referece
and value to some default
7. read 3d model name (after keyword model: "model
SOME_PATH/MODEL_NAME1.wrl")
8. check if the model exists in
~/KiCad_Libraries/packages3d_bck/SOME_PATH/MODEL_NAME1.wrl
9. if the model exists, copy
~/KiCad_Libraries/packages3d_bck/SOME_PATH/MODEL_NAME1.wrl to
~/KiCad_Libraries/packages3d/LIBRARYNAME1/FOOTPRINT1.wrl (in the same
way copy corresponding *.wings file), change in file
FOOTPRINT1.kicad_mod "model SOME_PATH/MODEL_NAME1.wrl" to "model
LIBRARYNAME1/FOOTPRINT1.wrl
10. if the model not exist, write the information in log file:
~/KiCad_Libraries/BROKEN_LINK_LOG
11. optional: if the model not exist, search MODEL_NAME1.wrl in
~/KiCad_Libraries/packages3d_bck/ with subdirectories and if found,
write proper information to the log file:
~/KiCad_Libraries/REPAIRED_LINK_LOG, then copy path to found model
~/KiCad_Libraries/packages3d_bck/SOME_PATH/FOUND_MODEL_NAME1.wrl to
~/KiCad_Libraries/packages3d/LIBRARYNAME1/FOOTPRINT1.wrl and change in
FOOTPRINT1.kicad_mod "model SOME_PATH/MODEL_NAME1.wrl" to "model
LIBRARYNAME1/FOOTPRINT1.wrl
12. save changed
~/KiCad_Libraries/Pretty_bck/LIBRARYNAME1.pretty/FOOTPRINT1.kicad_mod to
~/KiCad_Libraries/Pretty/LIBRARYNAME1.pretty/FOOTPRINT1.kicad_mod
13. repeat steps from 4. to 13. for next footprint in the same or next
library
14. compare ~/KiCad_Libraries/packages3d_bck/ with
~/KiCad_Libraries/packages3d/, find unused 3d models and move them to
~/KiCad_Libraries/packages3d/unused/
//finish the work:
15. check if all is ok, check log files
16. pull and merge everything
After that, the mess will decrease. Some duplicates will be generated,
but it would be easier to clean up the rest.
Similar code could be made to check consistency of libraries in future.
I can try to write it in c, but I'm not programmer, so it will take me
some time do it. It would be great if somebody more experienced will
help me to implement it in c or do it in some higher-level language.
What do you think about this idea?
Michał Stec