Wenn ich die Verkabelung der .brd-Datei von Eagle ein wenig ändere, kann die Metallmaske nicht wiederverwendet werden, wenn auch die Position des Teils geändert wird. Ich möchte dies so weit wie möglich vermeiden, ohne es beim Ändern der Verkabelung zu bemerken Um dies zu vermeiden, habe ich in Python ein Programm geschrieben, das Änderungen in der Bewegung von Teilen überprüfen kann, die für das menschliche Auge unsichtbar sind. Dies ist also ein Memo.
Der "Name" des Teils vor und nach der Änderung ist der gleiche.
Wir nutzen die .brd-Datei von Eagle als XML-Datei. Suchen Sie zunächst das Element mit demselben Attribut "name" im Element "element" der alten Datei und im Element "element" der neuen Datei. Wenn danach die x- oder y-Koordinaten unterschiedlich sind, werden der Name des Teils und die (x, y) -Koordinaten vor und nach der Änderung angezeigt. Wenn kein Problem vorliegt, wird "Kein Fehler" angezeigt. ..
# -*- 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() #Geben Sie den Pfad der Datei vor der Änderung ein
file2 = raw_input() #Geben Sie den Pfad der geänderten Datei ein
print "No error" * check(file1, file2)
Im Gegensatz zum Linux-Befehl "diff" kann er auch dann angewendet werden, wenn die Reihenfolge von "element" unterschiedlich ist.
Referenz: http://hikm.hatenablog.com/entry/20090206/1233950923
Recommended Posts