Kaynağa Gözat

Fichier pour aller chercher les emplacement des composant

remy 2 yıl önce
ebeveyn
işleme
a9227cf959

+ 7 - 0
OutilsBOM/recherche Emplacement/README.txt

@@ -0,0 +1,7 @@
+1 Extraire le fichier IBOM.html:
+	Penser a mettre le champt partkeepr et reference.
+2 dans le IBOM faire un expote en .txt
+
+3 Si nouvelle export de partkeepr a faire:
+	Custom export: internal part number + StorageLocation.name
+4 

+ 304 - 0
OutilsBOM/recherche Emplacement/export.csv

@@ -0,0 +1,304 @@
+internalPartNumber,storageLocation.name
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0600,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0900,Classeur
+0400,Composant1
+0001,Bornier
+0002,Bornier
+0000,Bornier
+0201,Bornier
+0200,Bornier
+1200,Composant1
+1201,Composant1
+1203,Composant1
+1202,Composant1
+0153,Bornier
+0100,Bornier
+0501,Composant8
+0500,Composant8
+1800,Composant3
+1700,Composant3
+2101,Composant5
+1600,Composant3
+2100,Composant5
+0601,ResCapa
+0601,ResCapa
+0601,ResCapa
+0601,ResCapa
+0601,ResCapa
+0601,ResCapa
+0601,ResCapa
+0601,ResCapa
+0601,ResCapa
+0601,ResCapa
+0601,ResCapa
+0601,ResCapa
+2000,Composant4
+1100,Composant1
+1101,Composant1
+0902,ResCapa
+1500,Composant2
+4000,Mecanique
+4001,Mecanique
+0901,ResCapa
+2350,Composant6
+2102,Composant5
+0050,Bornier
+2001,Composant4
+1300,Composant2
+2300,Composant6
+1801,Composant3
+0903,ResCapa
+1601,Composant3
+0202,Bornier
+0150,Bornier
+1250,Composant1
+2800,Composant7
+2400,Composant6
+0151,Bornier
+1102,Composant1
+1103,Composant1
+1104,Composant1
+1105,Composant1
+1106,Composant1
+0904,Classeur
+0905,Classeur
+0350,Bornier
+2002,Composant4
+1204,Composant1
+2401,Composant6
+2402,Composant6
+0004,Bornier
+0005,Bornier
+0006,Bornier
+1205,Composant1
+1650,Composant3
+2003,Composant4
+1301,Composant2
+0602,Classeur
+0610,Classeur
+0906,ResCapa
+0907,ResCapa
+0908,ResCapa
+0909,ResCapa
+0603,Composant10
+0604,Composant10
+0152,Bornier
+2700,Composant7
+2550,Composant4
+0007,Bornier
+0605,Composant10
+0606,Composant10
+0607,Composant10
+0608,Composant10
+0609,Composant10
+0611,Composant10
+0612,Composant10
+0203,Bornier
+2500,Composant4
+1302,Composant2
+1501,Composant2
+0101,Bornier
+0102,Bornier
+1803,Composant3
+1804,Composant3
+0910,Composant9
+0911,Composant9
+0912,Composant9
+0913,Composant9
+0914,Composant9
+0915,Composant9
+0916,Composant9
+0917,Composant9
+0918,Composant9
+0919,Composant9
+0450,Composant1
+0204,Bornier
+0205,Bornier
+0920,ResCapa
+0206,Bornier
+1502,Composant2
+1503,Composant2
+1805,Composant3
+0921,ResCapa
+0351,Bornier
+1206,Composant1
+1207,Composant1
+1208,Composant1
+1209,Composant1
+0621,Composant10
+0922,Composant9
+0451,Composant1
+0923,Autres
+1210,Autres
+1211,Autres
+0500,Composant8
+0103,Bornier
+0008,Bornier
+2004,Composant4
+2900,Composant1
+2901,Composant1
+2950,Composant1
+1504,Composant2
+1107,Composant1
+0207,Autres
+2801,Composant7
+2802,Composant7
+0009,Bornier
+0613,Composant10
+0010,"Boite Connecteur"
+0012,"Boite Connecteur"
+1303,Composant2
+0800,Composant2
+2005,Composant4
+0615,Composant10
+0013,"Boite Connecteur"
+0014,"Boite Connecteur"
+0015,"Boite Connecteur"
+0016,"Boite Connecteur"
+0018,"Boite Connecteur"
+0051,Bornier
+0017,"Boite Connecteur"
+0019,"Boite Connecteur"
+0020,"Boite Connecteur"
+0021,"Boite Connecteur"
+0022,"Boite Connecteur"
+0023,"Boite Connecteur"
+0024,"Boite Connecteur"
+0025,"Boite Connecteur"
+2301,Composant6
+2403,Composant6
+2404,Composant6
+0154,Bornier
+0155,Bornier
+0924,Autres
+0925,Autres
+0208,Bornier
+0210,Bornier
+0209,Bornier
+1108,Composant1
+0616,Composant10
+1505,Composant2
+0802,Composant2
+0803,Composant2
+0804,Composant2
+0801,Composant2
+0352,Composant2
+1806,Composant3
+2551,Composant4
+2006,Composant4
+2351,Composant6
+2302,Composant6
+0924,ResCapa
+0156,Bornier
+0926,Composant9
+1807,Composant3
+1808,Composant3
+0211,Bornier
+0212,Bornier
+2803,Composant7
+0617,Composant10
+0618,Composant10
+0619,Composant10
+0620,Composant10
+1304,Composant2
+1305,Composant2
+1109,Composant1
+0104,Bornier
+0105,Bornier
+1809,Composant3
+0930,Composant9
+1810,Composant3
+0931,Composant9
+0503,Composant8
+1506,Composant2
+1400,Composant5
+0622,Composant9
+1306,Composant2
+2007,Composant4
+1450,Composant6
+0932,Composant9
+0933,Composant9
+0805,Composant6
+0623,Composant9
+0504,Composant8
+0624,Composant9
+0106,"Boite Connecteur"
+0213,Bornier
+0934,Composant10
+0935,Composant9
+0936,Composant9
+1507,Composant2
+4500,Composant8
+4550,Composant8
+0937,Composant9
+0938,Composant9

+ 35 - 0
OutilsBOM/recherche Emplacement/proc.txt

@@ -0,0 +1,35 @@
+null	Sourced	Placed	References	Value	Footprint	Partkeepr	Quantity
+1			C2, C7, C8, C9, C13, C14, C15, C20	100nF	0805	0605	8
+2			C1, C12, C19	4.7µF	0805	0607	3
+3			C3, C6	1µF	0805	0606	2
+4			C10, C11	22pF	0603	0600	2
+5			C4	10µF	0805		1
+6			C5	10nF	0805	0604	1
+7			C18	22µF	0603	0622	1
+8			R3, R4, R5, R9, R10, R11, R14, R19, R20, R21, R22	10K	0805	0910	11
+9			R1, R2, R13	100	0805	0912	3
+10			R6, R8	100K	0805	0916	2
+11			R7	49.9K	0805	0932	1
+12			R18	16.3K	0805	0933	1
+13			L1	4.7µH	0630	0805	1
+14			D1	rouge	0805	1103	1
+15			D2	vert	0805	1106	1
+16			D3	Orange	0805	1102	1
+17			D4	TVS	SMB	1400	1
+18			D5	D	SOD-123	1300	1
+19			U1	STM32F401RC	LQFP64	2102	1
+20			U2	M24C32	SO8N	1700	1
+21			U3	M41T83	SOX18	1600	1
+22			U4	AP3211KTR-G1	SOT23-6	1809	1
+23			U6	ESP-12F	ESP-12F	2800	1
+24			Y1	25Mhz	5032	1650	1
+25			F2	FUSE	1812	1450	1
+26			SW1, SW2, SW3	boot, reset, aquit	1812	0200	3
+27			BT1	Battery	batterie	0003	1
+28			J1	Micro_USB	Micro-USB	0050	1
+29			P1, P2, P3, P4	MH	MH3mm	NC	4
+30			P9, P10, P11	I2C, Thermometre, Ventilateur	Bornier2.54_1x3	0005	3
+31			P8, P13	Debug, CONN_01X05	PinHeader2.54_1X5	0100	2
+32			P5	CONN_01X06	Bornier2.54_1x6	0002	1
+33			P6	CONN_01X04	Bornier2.54_1x4	0006	1
+34			P7	Alim	Bornier2.54_1x2	0004	1

+ 34 - 0
OutilsBOM/recherche Emplacement/proc_Localisation.txt

@@ -0,0 +1,34 @@
+Partkeepr	storageLocation
+0605	Composant10
+0607	Composant10
+0606	Composant10
+0600	Classeur
+	
+0604	Composant10
+0622	Composant9
+0910	Composant9
+0912	Composant9
+0916	Composant9
+0932	Composant9
+0933	Composant9
+0805	Composant6
+1103	Composant1
+1106	Composant1
+1102	Composant1
+1400	Composant5
+1300	Composant2
+2102	Composant5
+1700	Composant3
+1600	Composant3
+1809	Composant3
+2800	Composant7
+1650	Composant3
+1450	Composant6
+0200	Bornier
+0003	
+0050	Bornier
+0005	Bornier
+0100	Bornier
+0002	Bornier
+0006	Bornier
+0004	Bornier

+ 95 - 0
OutilsBOM/recherche Emplacement/script.py

@@ -0,0 +1,95 @@
+import csv
+import sys
+
+# Fonction pour ouvrir et lire le fichier
+def lire_fichier(nom_fichier):
+    try:
+        # Ouvre le fichier en mode lecture
+        with open(nom_fichier, 'r') as fichier:
+            # Lit toutes les lignes du fichier
+            lignes = fichier.readlines()
+        return lignes
+    except FileNotFoundError:
+        print(f"Le fichier {nom_fichier} n'a pas été trouvé.")
+        return None
+
+# Fonction pour extraire la colonne "Partkeepr" et ajouter "storageLocation"
+def extraire_colonne_partkeepr(lignes, nom_fichier_csv):
+    # Recherche de l'index de la colonne "Partkeepr"
+    entetes = lignes[0].strip().split('\t')
+    try:
+        indice_partkeepr = entetes.index('Partkeepr')
+    except ValueError:
+        print("La colonne 'Partkeepr' n'a pas été trouvée dans le fichier.")
+        return None
+
+    # Ajout de l'index pour la colonne "storageLocation"
+    entetes.append('storageLocation')
+
+    # Extrayez les valeurs de la colonne "Partkeepr"
+    valeurs_partkeepr = []
+    for ligne in lignes[1:]:
+        colonnes = ligne.strip().split('\t')
+        # Vérifier si la ligne n'est pas vide et contient suffisamment de colonnes
+        if colonnes and len(colonnes) > indice_partkeepr:
+            partkeepr = colonnes[indice_partkeepr]
+            
+            # Rechercher dans le fichier CSV
+            resultat_csv = rechercher_dans_csv(partkeepr, nom_fichier_csv)
+            
+            # Ajouter la storageLocation à la ligne
+            colonnes.append(resultat_csv[1] if resultat_csv else '')
+            
+            valeurs_partkeepr.append([partkeepr, resultat_csv[1] if resultat_csv else ''])
+
+    return entetes, valeurs_partkeepr
+
+# Fonction pour écrire dans le fichier texte
+def ecrire_dans_fichier_txt(entetes, valeurs, nom_fichier_entree):
+    # Générer le nom du fichier de sortie
+    nom_fichier_sortie = f"{nom_fichier_entree.split('.')[0]}_Localisation.txt"
+
+    try:
+        # Ouvre le fichier en mode écriture
+        with open(nom_fichier_sortie, 'w') as fichier:
+            # Écrit les entêtes
+            fichier.write('\t'.join(['Partkeepr', 'storageLocation']) + '\n')
+
+            # Écrit les valeurs
+            for ligne in valeurs:
+                fichier.write('\t'.join(map(str, ligne)) + '\n')
+        
+        print(f"Les données ont été ajoutées à {nom_fichier_sortie}.")
+    except IOError:
+        print(f"Erreur lors de l'écriture dans le fichier {nom_fichier_sortie}.")
+
+# Fonction pour rechercher dans le fichier CSV
+def rechercher_dans_csv(partkeepr, nom_fichier_csv):
+    try:
+        with open(nom_fichier_csv, 'r') as csv_file:
+            csv_reader = csv.reader(csv_file)
+            for row in csv_reader:
+                if row[0] == partkeepr:
+                    return row
+        print(f"Le Partkeepr {partkeepr} n'a pas été trouvé dans le fichier CSV.")
+        return None
+    except FileNotFoundError:
+        print(f"Le fichier {nom_fichier_csv} n'a pas été trouvé.")
+        return None
+
+# Programme principal
+if len(sys.argv) != 2:
+    print("Usage: python script.py fichier.txt")
+    sys.exit(1)
+
+nom_fichier_txt = sys.argv[1]
+nom_fichier_csv = 'export.csv'  # Vous pouvez modifier cela selon vos besoins
+
+lignes_fichier = lire_fichier(nom_fichier_txt)
+
+if lignes_fichier is not None:
+    entetes, valeurs_partkeepr = extraire_colonne_partkeepr(lignes_fichier, nom_fichier_csv)
+
+    if valeurs_partkeepr is not None:
+        # Écrire dans le fichier texte de sortie
+        ecrire_dans_fichier_txt(entetes, valeurs_partkeepr, nom_fichier_txt)