Comment créer la liste des composants des bibliothèques Kicad.


# pierre launay 2007 licence GPL Version3.

Le fichier source aide_script.odt créé avec OpenOffice.org

Vous pouvez utiliser modifier améliorer ce texte et les scripts associés.

Indispensable kicadlib 1.2.0 :

Il vous faudra installer le paquet kicadlib 1.2.0 de Salvador Eduardo Tropea que vous trouverez sur FPGA Libre http://fpgalibre.sourceforge.net/eda.html#tp6.

Vous pourrez télécharger les sources ( rechercher « fuentes »)ou pour Debian Etch http://prdownloads.sourceforge.net/fpgalibre/kicadlib_1.2.0-1_i386.deb?download

Placez-vous dans le répertoire où vous avez téléchargé le paquet kicadlib_1.2.0-1_i386.deb

Le paquet pour Debian Etch s'installe facilement avec un

$su (pour passer administrateur de la machine)

entrer votre mot de passe

puis # dpkg -i kicadlib_1.2.0-1_i386.deb

Ce paquet vous permet de gérer vos bibliothèques en ligne de commande.

Pour les français vous trouverez un lisezmoi_kicadlib-1.2.0.txt dans http://per.launay.free.fr/kicad/kicad_cmp_equ/lisezmoi_kicadlib-1.2.0.txt.


Utilisation des fichiers script : http://per.launay.free.fr/kicad/script

  1. Choisissez un répertoire vide de votre choix, j'ai choisi :~/websites

    ~ correspond à votre répertoire d'utilisateur, faites dans un terminal $ echo $HOME

  2. Faites un lien symbolique avec les fichiers script que vous avez téléchargé depuis http://per.launay.free.fr/kicad/script/

    Dans mon cas : $ln -s travail/site/kicad/script ~/websites/script

  3. Dans un terminal placez-vous dans le répertoire choisi en 1) : cd ~/websites

  4. Lancer $ script/bib_kicad_web.sh

    Celui-ci vous téléchargera l'ensemble des fichiers de : http://kicadlib.org/ et de http://www.reniemarquet.cjb.net/kicad.htm ainsi que le fichier

    http://library.oshec.org/compressed/all.tar.gz

    Il vous créera un fichier et un répertoire :

    a) un fichier adr_bib.txt qui contiendra pour chaque fichier contenu dans un fichier compressé, l'adresse du fichier compressé, séparé par un point virgule.

    Exemple : ANT24.emp;http://kicadlib.org/modules/Frausti_Boschat_PCB.zip.

    b) un répertoire kicad_contrib avec 5 répertoires :modules, libs, 3d, image, info.

    Modules contiendra l'ensemble des bibliothèques des empreintes

    Libs contiendra l'ensemble des bibliothèques des symboles.

    3d contiendra l'ensemble des bibliothèques des modules 3d

    Vous pourrez regarder ce qui reste dans le répertoire web, le garder ou le supprimer.

    Personnellement je le supprime avec la ligne de commande : $ rm -rf web

    Vous pouvez aussi déplacer les répertoires image, info et 3d qui ne serviront pas par la suite.

  5. Faites un lien avec les biliothèques de kicad.

    Je travaille sous Debian Etch avec la version non officiel de Salvador Eduardo Tropea que vous pouvez télécharger sur http://downloads.sourceforge.net/fpgalibre/kicad_0.0.20070702-1_i386.deb?download

    Voici les liens : $ ln -s /usr/share/kicad/library ~/websites/kicad_contrib/kicad_library .

    $ ln -s /usr/share/kicad/modules ~/websites/kicad_contrib/kicad_modules.

    Adapter les liens en fonction de votre installation de kicad.

    Vous pouvez évidemment rajouter d'autres liens si vous avez d'autres bibliothèques.

  6. Lancer $script/kicad_liste_composants_alias.sh kicad_contrib liste_composants.txt

Vous obtiendrez alors 2 fichiers :

a) liste_composants.txt : liste des composants et des alias des bibliothèques.

La liste des symboles est faite avec kicadib -L répertoire qui liste les composants de toutes les bibliothèques du répertoire.

La liste des alias avec kicad_liste_alias.py.

Ce fichier pourra vous servir directement avec voir_composant_kicad.py.

b) kicad_composants.txt qui contient trois champs par ligne :

le nom du composants, sa bibliothèque, l'adresse du fichier compressé qui contient cette bibliothèque.


C'est fini, si vous avez des problèmes n'hésitez pas à me contacter :

per point launay arobase free point fr




Voici l'explication des différents scripts :

Explication du fichier appel.php

Le fichier est très simple

  1. Une petite présentation en html

  2. Un peu de php très simple

L'action ou cible utilisée est cible.php, la méthode est POST et l'argument(valeur) composant

Composant est une entrée de type texte, on valide avec le bouton valider

*------------------------------------------------------------------------*

Explication du fichier cible.php

  1. Une petite présentation en html

  2. Un peu de php

    2.1) On crée un tableau avec le fichier kicad_composants.txt

    2.2) On recherche dans chaque ligne du tableau, le composant désiré, récupéré avec POST composant

    2.3) Si le composant est dans la ligne du tableau

    on affiche le nom du composant , sa bibliothèque et l'adresse du fichier compressé contenant cette bibliothèque

    Si la bibliothèque n'est pas une bibliothèque du logiciel kicad le nom du composant est liée à son adresse internet (celle du fichier compressé)

*------------------------------------------------------------------------*

Explication du fichier bib_kicad_web.sh

  1. Définition des variables utilisées fichiers ou répertoires et des sites web à télécharger

    #-------------------------définitions des adresses et fichiers ---------------------------------

    temp="web

    adr1="-r http://kicadlib.org/"

    adr2="-x http://library.oshec.org/compressed/all.tar.gz

    adr3="-r http://www.reniemarquet.cjb.net/kicad.htm"

    fichier1="adr_bib.txt"

    contrib="kicad_contrib"

    mod="modules"

    lib="libs"

    td="3d"

    img="image"

    info="info"

    #----------------------------------------------------------

  2. Créer un répertoire ou seront déposés les fichiers récupérés sur internet, ici le répertoire "web"

  3. Télécharger les pages web avec wget, tout un site wget -r ou un fichier avec le chemin wget -x

    Les sites téléchargés sont : kicadlib.org/ ,library.oshec.org/compressed/all.tar.gz, www.reniemarquet.cjb.net/kicad.htm

  4. On vide le fichier adr_bib.txt et on le remplit avec la fonction liste

    La fonction liste cherche les fichiers compressés zip ou tar.gz, il utilise zipinfo ou tar -tf

    Pour chaque fichier : il fait une ligne contenant le nom du fichier et l'adresse web de son fichier compressé

    exemple: ANT24.wings;http://kicadlib.org/modules/Frausti_Boschat_3D.zip

  5. On décompresse tous les fichiers zip ou tar.gz et on supprime les zip et tar.gz

  6. On remplace les espaces par des _ dans les noms de fichiers

  7. On regroupe tous les fichiers à la racine dans le répertoire web

  8. On met tous les noms de fichier en minuscules

  9. On crée les répertoires qui serviront au tri dans un répertoire kicad_contrib

  10. On tri les fichiers suivant l'extension : mod, emp et mdc dans modules, lib, dcm dans libs et wings, wrl dans 3d ...

On affiche "tous vos fichiers importants sont dans "kicad_contrib"

*------------------------------------------------------------------------*

Explication du fichier kicad_liste_composants_alias.sh

  1. on vérifie que la ligne de commande est valide.

  2. Il faut mettre dans la ligne de commande

    $script/kicad_liste_composants_alias.sh kicad_contrib liste_composants.txt

  3. On vide le fichier liste_composants.txt

  4. On fait la liste des bibliothèques : liste_composants.txt avec kicadlib -L répertoire ainsi que la liste des alias avec kicad_liste_alias.py,

    Kicadib -L répertoire : liste des composants de toutes les bibliothèques du répertoire.

    On recherche la liste des fichiers contenant alias, on applique alors kicad_liste_alias.py.

    voir explication du fichier kicad_liste_alias.py

    Le fichier obtenu liste_composants.txt pourra vous servir directement avec voir_composant_kicad.py.

  5. On lance automatiquement $script/kicad_composants.py adr_bib.txt liste_composants.txt kicad_composants.txt

    voir fichier kicad_composants.py.

*------------------------------------------------------------------------*

Explication du fichier fichier kicad_liste_alias.py

La fonction alias dans kicad_liste_composants_alias.sh, recherche avec grep les fichiers qui

contiennent des alias

On applique à ces fichiers la fonction kicad_liste_alias.py

  1. On vérifie que la bibliothèque lib est valide

  2. On fait un entête de fichiers similaire à celui de kicadlib

  3. On lit tout le fichier ligne à ligne

  4. On recherche le début d'un composant avec DEF, on en extrait le nom du composant

  5. On recherche alors ALIAS entre DEF et ENDDEF, gestion des erreurs

  6. On enregistre alors le composant et ces alias

*------------------------------------------------------------------------*

Explication du fichier fichier kicad_composants.py

Ce fichier reçoit 3 fichiers, en lecture les fichiers adr_bib.txt liste_composants.txt

en écriture le fichier kicad_composants.txt.


Pour comprendre, il faut regarder ce que fait kicalib -L répertoire

On a le nom d'une bibliothèque sur une ligne

puis les composants sur les lignes suivantes

puis de nouveau une bibliothèque sur une ligne, ainsi de suite


  1. On crée un tableau vide

  2. On lit liste_composants.txt ligne par ligne

  3. La ligne est une ligne de bibliothèque,elle contient ": ("

    dans ce cas on extrait le nom de la bibliothèque mis dans mot

    4 possibilités :

    mot contient kicad : bibliothèque kicad installée avec le logiciel

    mot contient perso : bibliothèque personnelle avec lien dans ../lib_perso

    mot est dans adr_bib.txt on extrait alors l'adresse de la bibliothèque

    sinon l'adresse de la librairie est inconnue.

  4. Si la ligne est un composant (non vide et pas un commentaires)

    On crée un sous tableau de 3 éléments : nom composant; nom bibliothèque ; adresse bibliothèque

    On ajoute pour chaque composants ce sous tableau dans le tableau des composants

    Ceci jusqu'à la fin de liste_composants.txt

  5. On trie par ordre alphabétique l'ensemble des composants.

    Par défaut le tri est fait sur le premier élément soit le nom du composant

  6. On enregistre le tableau dans kicad_composants.txt

*------------------------------------------------------------------------*

Explication du fichier fichier voir_composant_kicad.py

Ce fichier permet en local de retrouver un composant dans les bibliothèques.

On se sert du fichier liste_composants.txt.

On affiche une fenêtre (gérée par Tkinter) avec deux textes déroulant, l'une pour les composants,

l'autre pour les empreintes.

On peut effacer le texte de l'un ou de l'autre.