Manipulation des fichiers EAGLE .brd avec Python

introduction

Lorsque je change un peu le câblage du fichier .brd d'Eagle, le masque métallique ne peut pas être réutilisé si la position de la pièce est également modifiée. Je veux éviter cela autant que possible, mais sans le remarquer lors du changement de câblage Pour éviter cela, j'ai écrit un programme en Python qui peut vérifier les changements dans le mouvement des pièces invisibles à l'œil humain, c'est donc un mémo.

conditions

Le "nom" de la pièce avant et après le changement est le même.

code

Nous profitons du fait que le fichier .brd d'Eagle est un fichier xml. Tout d'abord, recherchez l'élément avec le même attribut "nom" dans l'élément "élément" de l'ancien fichier et l'élément "élément" du nouveau fichier. Après cela, si les coordonnées x ou y sont différentes, le nom de la pièce et les coordonnées (x, y) avant et après le changement sont affichés, et s'il n'y a pas de problème, "Aucune erreur" s'affiche. ..

# -*- coding: utf-8 -*-
from xml.etree.ElementTree import *

def check(file1, file2):
    c = 1
    tree1 = parse(file1)
    elem1 = tree1.getroot()
    tree2 = parse(file2)
    elem2 = tree2.getroot()

    for e1 in elem1.getiterator("element"):
        for e2 in elem2.getiterator("element"):
            if e1.get("name", ) == e2.get("name", ):
                if e1.get("x") != e2.get("x") or e1.get("y") != e2.get("y"):
                    print "Error"
                    print "Parts Name = " + e1.get("name")
                    print ("x1=" + e1.get("x")) * (e1.get("x") != e2.get("x"))
                    print ("x2=" + e2.get("x")) * (e1.get("x") != e2.get("x"))
                    print ("y1=" + e1.get("y")) * (e1.get("y") != e2.get("y"))
                    print ("y2=" + e2.get("y")) * (e1.get("y") != e2.get("y"))
                    c = 0
    return c

if __name__ == "__main__":
    file1 = raw_input() #Entrez le chemin du fichier avant la modification
    file2 = raw_input() #Entrez le chemin du fichier modifié
    print "No error" * check(file1, file2)

mérite

Contrairement à la commande Linux "diff", elle peut être appliquée même si l'ordre de "element" est différent.

URL de référence

Référence: http://hikm.hatenablog.com/entry/20090206/1233950923

Recommended Posts

Manipulation des fichiers EAGLE .brd avec Python
Tri des fichiers image avec Python (2)
Trier de gros fichiers avec python
Tri des fichiers image avec Python (3)
Tri des fichiers image avec Python
Intégrez des fichiers PDF avec Python
Lire des fichiers .txt avec Python
Extraire récursivement des fichiers zip avec python
[Python] Fichiers wav POST avec requêtes [POST]
Décrypter les fichiers cryptés avec OpenSSL avec Python 3
Gérer les fichiers Excel CSV avec Python
Lire des fichiers en parallèle avec Python
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Lire un fichier audio à partir de Python avec interruption
Faites fonctionner ACL de Cisco IOS-XE avec RESTCONF (version Python)
Décrypter les fichiers cryptés avec openssl depuis python avec openssl
Automatisez les tâches en manipulant des fichiers en Python
Lire et écrire des fichiers JSON avec Python
Télécharger des fichiers sur le Web avec Python
[Easy Python] Lecture de fichiers Excel avec openpyxl
[Easy Python] Lecture de fichiers Excel avec des pandas
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
[Python] Récupérez les fichiers dans le dossier avec Python
Gérer les fichiers zip avec des noms de fichiers japonais dans Python 3
Faites glisser et déposez un fichier local avec Selenium (Python)
Encodage de caractères lors du traitement de fichiers en Python 3
Télécharger des fichiers sur Google Drive avec Lambda (Python)
La lecture et l'écriture s'adaptent aux fichiers avec Python (mémo)
Convertissez plusieurs fichiers proto à la fois avec python
Lire les fichiers wav avec uniquement le package standard Python
Communication série avec Python
Zip, décompressez avec python
Jugement des nombres premiers avec Python
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Télécharger des fichiers avec Django
Grattage en Python (préparation)
Essayez de gratter avec Python.
Extraire le tableau des fichiers image avec OneDrive et Python
Recherche séquentielle avec Python
"Orienté objet" appris avec python
Exécutez Python avec VBA