Dieses ULP ermöglicht ein 'echtes' Update eines Projektes auf Eagle 4.xx-Bibliotheken, indem Bauteile mit @-Namen in solche mit regulären Namen und Einzel-Bauteile in Bauteil-Sets konvertiert werden. Ebenfalls konvertiert werden Elemente des Boards ohne Bezug zu einem Bauteil im Schaltplan und Bauteile des Schaltplans ohne Gehäuse, ebenso Boards ohne Schaltplan. Integriert ist eine Überprüfung auf @-Namen. Voraussetzung für eine erfolgreiche Konvertierung ist Eagle 4.14 oder höher und die Dateien 'xclose.scr' im SCR-Ordner und 'layer_visible_brd.ulp' und 'layer_visible_sch.ulp' im Ulp-Ordner.
Ebenfalls ermöglicht das ULP ein REPLACE im Schaltplan.
Einsatzmöglichkeiten
1. Bei Projekten aus Eagle-Versionen > 2.6x, auch wenn keine Konsistenz besteht.Für einen solchen Fall ist in der 'eaglerc.usr'
folgender Eintrag erforderlich:
Erc.AllowUserOverrideConsistencyCheck = "1"
Nach Neustart von Eagle ERC ausführen und die Warnung
'… Wollen Sie trotzdem (auf eigene Gefahr) mit Forward-/…?'
mit 'Ja' beantworten (Simulieren einer Konsistenz) und UPDATEman erneut ausführen.
2. Bei 4.xx-Projekten, wenn die Bibliotheken-Struktur verändert wurde:
– geänderte Bauteil-, Gehäuse-, Pin- und Bibliotheken-Namen
– in andere Bibliotheken verschobene Bauteile
– in Bauteil-Sets umgewandelte Einzel-Bauteile
3. Beseitigen von @-Namen (die auch unter Eagle 4.xx entstehen können!)
4. Bei Boards ohne Schaltplan. Hierzu ist in der 'eaglerc.usr' derselbe Eintrag erforderlich wie in Absatz 1. beschrieben.
5. Nach Änderung von Bibliotheken, bei der Pinlänge, Pinanordnung, Aufhängepunkt oder Drehung der Symbole verändert
wurde. (Als Ersatz für 'Bibliothek – Aktualisieren…/Alles aktualisieren')
6. Zum Ersetzen einzelner Bauteile im Schaltplan als Ersatz für den in Eagle im Schaltplan fehlenden REPLACE-Befehl.
Beim Konvertieren verwendet UPDATEman immer die Gehäuseinformationen aus dem Board, da diese sich von jenen im Schaltplan unterscheiden können.
Arbeitsweise
UPDATE-Modus
Im UPDATE-Modus werden alle Bauteile mit gleichen Namen von Gehäuse und Bibliothek global ersetzt. Daher muss im Arbeitsschritt 'Konvertieren' je Bauteiltyp nur ein Ersatz-Bauteil ausgewählt zu werden.
Schaltfläche 'Starten'
Es werden mehrere Skriptdateien erzeugt und die Symbole temporär im Schaltplan verschoben, um die Netznamen bei übereinanderliegeneden Pins auslesen zu können. Danach starten automatisch die Funktionen der Schaltfläche 'Konvertieren'. Das ULP kann vom Board oder vom Schaltplan aus gestartet werden.
Schaltflächen 'Index A' und 'Index B'
'Index A': Es wird eine Datei [name].lds (vorzugsweise Index.lds) erzeugt. In diesen Bibliotheken-Index werden alle Bibliotheken eingelesen, die zum Zeitpunkt des ULP-Laufes benutzt sind. Wenn immer dieselben (und unveränderten!) Bibliotheken benutzt sind, kann bei den folgenden Projekt-Updates auf diesen Schritt verzichtet werden.
'Index B': Dieser ist geeignet, einem bestehenden Index einzelne Bibliotheken hinzuzufügen oder einen neuen Index mit manuell ausgewählten Bibliotheken zu erzeugen.
Schaltfläche 'Konvertieren'
Erster Schritt: Es wird eine Datei '[name].dbs' (vorzugweise Catalog.dbs) eingelesen. Diese enthält die Informationen für die Konvertierung, sie darf aber auch leer sein.
Danach erfolgt eine Überprüfung, ob sich für jedes Projekt-Element im Katalog ein entsprechender Eintrag für die im neuen Stromlaufplan zu setzenden Bauteile befindet. Diese Überprüfung berücksichtigt die im alten Schaltplan vorhandenen Bauteil-Namen und die im alten Board vorhandenen Gehäuse- und LBR-Namen. Damit ist gewährleistet, dass auch bei unterschiedlichen Gehäuse- und LBR-Informationen aus Board und Schaltplan (z.B. als Folge eines früheren REPLACE-Befehls) im weiteren Verlauf die Bauteile mit korrekten Gehäusen gesetzt werden.
Fehlt der Eintrag für ein Gehäuse im Katalog, so kann er im Dialogfenster 'Konvertierungs-Katalog' nachgetragen werden. Dieser neue Bauteilname muss in den benutzten Bibliotheken vorhanden sein!
Wurden im Katalog Bauteil-Einträge gewählt, für die es im Index keine Entsprechung gibt, so erscheint das Fenster 'Vergleichsbericht'. In diesem Fall enthält der Katalog entweder falsche Einträge oder der Index ist infolge geänderter oder nicht eingelesener Bibliotheken, wie unter 'Schaltfläche 'Index …beschrieben, nicht aktuell.
Zweiter Schritt: Wenn alle Einträge korrekt sind, erfolgt automatisch die Konvertierung, indem zuerst der Schaltplan neu gezeichnet und daraus das Board generiert wird. Dabei erscheinen einige Warnfenster, die Eagle selbst erzeugt, vom ULP aber nicht unterdrückt werden können und daher wie folgt beantwortet werden müssen:
'… Speichern? – Antwort: 'Nein' (nur bei mehr als einer Schaltplanseite)
'… Wollen Sie auch …_new.sch öffnen?' – Antwort: 'Nein'
'… Vom Schaltplan erzeugen?' – Antwort: 'Ja'
'… Die Forward-/Back-Annotation…' – Antwort: 'OK'
'… Wollen Sie trotzdem (auf eigene Gefahr) mit Forward-/…?' – Antwort: 'Ja'
'Netzsegment … in das vorhandene Netz … integrieren?' – Antwort: 'Ja'
'Netzsegment … umbenannt' – Antwort: 'OK'
Wenn UPDATEman mehr als einmal mit demselben Projekt gestartet wird: Hierzu muss Das Projekt immer gespeichert sein. Ist dieses nicht der Fall, erscheint die Warnung, ob
'… _netscript.scr existiert bereits. Überschreiben?' – Antwort: 'Ja'
'… _netscript_new.scr existiert bereits. Überschreiben?' – Antwort: 'Ja'
'… .brd / .sch löschen?' – Antwort: 'Ja'
Gibt es in mehreren benutzten Bibliotheken Bauteile mit denselben Namen (was man vermeiden sollte!), dann muss im dadurch erscheinenden ADD-Fenster das benötigte Bauteil manuell gewählt werden.
Wenn ein Eintrag fehlt, kann man im ULP zwar fortfahren, aber spätestens, wenn beim nachfolgenden ADD-Befehl ein Bauteil gesetzt werden soll, das nicht in den benutzten Bibliotheken enthalten ist, erfolgt eine Fehlermeldung mit der Aufforderung zum Beenden des ULPs.
Der Katalog (dbs-Datei) kann auch mittels Texteditor entsprechend editiert werden. Dabei unbedingt auf korrekte Schreibweise entsprechend den vom ULP erzeugten Zeilen (Tabulator!) achten. Der Katalog muss nicht für jedes Projekt neu erstellt werden, sofern immer Bibliotheken aus demselben Paket benutzt sind und bei den Namen von Gehäusen und Bauteilen keine Änderungen erfolgten.
Schaltfläche 'Erzeugen'
Dieser Schritt ist nur dann möglich und sinnvoll, wenn beim Projekt mindestens 'Starten' durchgeführt wurde sowie beim Konvertieren Fehlermeldungen auftraten, die sich durch manuelles Editieren der einzulesenden Skriptdateien beheben lassen. Siehe Fehlermöglichkeiten. Der Ablauf entspricht dem zweiten Schritt der 'Schaltfläche 'Konvertieren.
REPLACE-Modus (Option 'Einzelne Bauteile ersetzen …')
In diesem Modus können die Bauteile im Schaltplan einzeln durch andere aus wählbaren Bibliotheken ersetzt werden. Soll dieses auch mit Power-Symbolen geschehen, so muss das in 2 Arbeitsschritten erfolgen: Im ersten Schritt darf ein Symbol je Power-Symboltyp nicht ersetzt werden. Deren Ersatz ist im zweiten Schritt durchzuführen. Dieses ist erforderlich, weil Eagle beim Löschen der gesamten Powersymbole in einem Schritt die Netznamen ändern würde.
Sollen in diesem Modus sämtliche Bauteile ersetzt werden, so können alle Powersymbole gemeinsam mit den Bauteilen ersetzt werden.
Im Gegensatz zum UPDATE-Modus werden Board und Schaltplan nicht neu gezeichnet. Es wird auch kein permanenter Konvertierungs-Katalog erstellt, sodass bei jedem Bauteil in jedem Projekt eine neue Zuweisung für den Bauteiletausch erfolgen muss.
Vom ULP erzeugte Hilfsdateien
Die vom ULP im Projektordner erzeugten Hilfsdateien werden nach dem Schließen von Eagle automatisch gelöscht.
Fehlermöglichkeiten
'Bauteil nicht gefunden:…'/ 'Package nicht gefunden:…'
Die erforderliche Bibliothek wird nicht benutzt oder der Bauteilname ist falsch.
'Kann Gatter '..' in Bauteil '…' nicht finden'
Gatter können nur mit den im Quell-Projekt enthaltenen Informationen zurückgeschrieben werden. Hat das neue Bauteil aber andere Gatter-Bezeichnungen, so erscheint eine Eagle-Fehlermeldung und das betreffende Bauteil wird nicht hinzugefügt. In diesem Fall muss die Datei '[project_name]_parts_new.scr' editiert und anschließend 'Erzeugen' ausgeführt werden.
'Ungültiges Leerzeichen in Bauteilname:…'
Vor Eagle 4.0 war es möglich, die Elementnamen mit Leerzeichen zu schreiben. Sind solche Namen in den alten Projektdateien enthalten, kommt beim Einlesen der '[project_name]_parts_new.scr' eine entsprechende Fehlermeldung. Man kann entweder die Namen in der Skripdatei '.._parts_new.scr' editieren und anschließend 'Erzeugen' starten oder die Projektdatei korrigieren und danach 'Starten' erneut ausführen. Mittels 'Namenkontrolle' können Namen mit fehlerhafter Schreibweise bereits vor der Konvertierung ermittelt werden.
'Nicht angeschlossene Wires in der Nähe von…' beim ERC
Wenn mehrere Pins übereinanderliegen, so kann es vorkommen, dass beim Update-Prozess kurze, nicht erforderliche Netzlinienstücke stehenbleiben. Zum Beseitigen betreffende Stelle stark zoomen, das Ende vom Kreuzungspunkt wegschieben und löschen.
'Bauteil … hat keinen vom Benutzer definierbaren Wert.'
Diese Warnung erscheint, wenn die Option 'Werte der Bauteile mit Attribut 'Value Off' mit den alten Werten überschreiben.' aktiviert ist. Um sie zu vermeiden, ist in der 'eaglerc.usr' folgender Eintrag erforderlich:
Warning.PartHasNoUserDefinableValue = "0"
'Diese Aktion kann nicht in den Schaltplan übertragen weden.'
In das neue Board sollen Bauteile mit Pads eingefügt werden. Um die Aktion zu ermöglichen, ist die Option 'Das neue Board wird Elemente mit Pads enthalten, die zu keinem Bauteil im Schaltplan gehören.' zu aktivieren.
'…fehlende Verbindung' im Update-Bericht Teil 2
Ist die betreffende Verbindung im Schaltplan zwar optisch korrekt, das Symbol lässt sich jedoch ohne Mitnahme der Netzlinie verschieben, dann hat das Pad einen anderen Namen als im alten Projekt. Um in solchen Fällen korrekte Verbindungen zu erhalten, vor dem Bejahen der Warnung '…Vom Schaltplan erzeugen?' in den Dateien '[project_name]_netscript.scr' und '[project_name]_nets_old.scr' die alten Padnamen durch die neuen ersetzen.
Eine andere Möglichkeit: Zuerst UPDATEman ausführen unter Benutzung der Bibliotheken mit den unveränderten Padnamen (diese können in einem speziellen Ordner liegen). Danach mit den Bibliotheken, welche die geänderten Padnamen enthalten, die Eagle-Aktion 'Bibliothek – Aktualisieren…' durchführen.
Allgemeines
Diagonale Netzsegmente an Pins
Befinden sich im neuen Schaltplan Symbole, bei denen der Aufhängepunkt verschoben oder die Pinlänge oder Lage verändert ist, so kann es sein, dass an den Pins anschließende Netzsegmente nicht orthogonal verlaufen. In einem solchen Fall sind die Segmente manuell auszurichten. Die betreffenden Bauteile werden von UPDATEman aufgelistet.
Update-Berichte
Erscheinen im neuen Board Gehäuse mit andern Namen als im Qellprojekt, so wird dieses in 'Update-Bericht Teil 1' angezeigt und in '[project_name]_pac_diff_report.txt' gespeichert. Ebenso werden jene Bauteile aufgelistet, bei denen die Pins der Symbole gegenüber dem alten Schaltplan eine andere Position haben. Diese Liste wird gespeichert in '[project_name]_pin_net_report.txt'.
In 'Update-Bericht Teil 2' werden unterschiedliche Verbindungen sowie – je nach Wahl der Option 'Werte der Bauteile bei Attribut 'Value Off' mit den alten Werten überschreiben. – die überschriebenen bzw. nicht überschriebenen Werte aufgelistet. Gespeichert werden die Ergebnisse in den Dateien '[project_name]_net_diff_report.txt' sowie '…_values_over_report.txt'.
Prüfungen
Im Anschluss an das Update ist sowohl eine ERC- als auch eine DRC-Prüfung vorzunehmen.
@-Namen
Eagle fügt den Namen von Gehäusen, Bauteilen, Bibliotheken und Symbolen ein '@' mit einer Ziffer an, wenn die im Projekt enthaltene Elemente trotz gleichen Namens nicht identisch sind. Dieses betrifft hauptsächlich Projekte vor Eagle 4.0, kann aber ebenso bei mit Eagle 4.0x erzeugten Dateien auftreten. '@-Names' liefert eine Liste vorgenommener Umbenennungen in Board und Schaltplan.
Namenkontrolle
'Namenkontrolle' überprüft alle Namen im Schaltplan auf korrekte Schreibweise. Fehlerhafte Namen sollten vor dem Starten des ULPs korrigiert werden.
Teileliste
'Teileliste' listet alle Bauteile sowohl im Board als auch im Schaltplan auf. Bei Projekten, die mit früheren Eagle-Versionen erstellt oder bei geschlossenen Schaltplan mittels REPLACE bearbeitet wurden, können so Unterschiede zwischen Board und Schaltplan sichtbar gemacht werden.
Netzvergleich
Bei 'Netzvergleich' werden die von UPDATEman erzeugten Skriptdateien der Netze des alten und des neuen Schaltplans miteinander verglichen. Werden nach dem Konvertieren Änderungen am Schaltplan vorgenommen, kann die Skriptdatei '… _netscript_new.scr' durch einen Netscript-Export aus dem Schaltplaneditor überschrieben werden.
Doppelte Namen und Werte bei Gehäusen
Wurden in alten Boards die Namen und Werte der Gehäuse durch Kopieren verdoppelt, so werden sie, wenn die betreffenden Gehäuse in den neuen Bibliotheken ebenfalls doppelte Namen und Werte enthalten, nach dem Aktualisieren wie im Original dargestellt. Gehäuse, die nicht aufgelöst sind, werden wie in der Bibliothek dargestellt, also im neuen Board eventuell auch mit mehr Einträgen als im Original. Soll dieses vermieden werden, so muss das betreffende Gehäuse im alten Board aufgelöst werden. Die relevanten Elemente werden in der Datei '…_too_much_names.txt' aufgelistet.
Layernamen – 'Layer_visible_BRD.ulp' und 'Layer_visible_SCH.ulp'
Sollen im Board oder Schaltplan die Layernamen gegenüber den Ursprungsdateien geändert werden, so sind in den ULPs im Abschnitt 'USER DEFINABLE AREA' die gewünschten Layernamen einzutragen.
'Layer_visible_BRD.ulp' und 'Layer_visible_SCH'.ulp entfernen im Board- bzw. Schaltplan-Editor aus dem Fenster 'Display' alle Layer, die unbenutzt sind, und ordnet die benutzten in numerischer Reihenfolge. Diese ULPs können auch unabhängig von 'UPDATEman.ulp' benutzt werden.
Beim Schließen von UPDATEman Eagle-Optionen einschalten
'Connects prüfen'
UPDATEman schaltet die Eagle-Option 'Connects prüfen' aus. Soll diese Funktion nach dem Schließen des ULPs aktiviert sein, so ist die UPDATEman-Option einzuschalten.
'Optimizing'
UPDATEman schaltet die Eagle-Option 'Optimizing' aus. Soll diese Funktion nach dem Schließen des ULPs aktiviert sein, so ist die UPDATEman-Option einzuschalten.
'Junctions automatisch setzen'
UPDATEman schaltet die Eagle-Option 'Junctions automatisch setzen' ein. Soll diese Funktion nach dem Schließen des ULPs nicht aktiviert sein, so ist die UPDATEman-Option auszuschalten.
UPDATEman-Optionen
'Einzelne Bauteile ersetzen (REPLACE im Schaltplan).'
Diese Option erlaubt es, einzelne Bauteile des Schaltplans durch Bauteile aus vorgegebenen Bibliotheken zu ersetzen. Dieses entspricht einem in Eagle fehlenden REPLACE-Befehl für den Schaltplan.
'Werte von Bauteilen mit dem Attribut 'Value Off' überschreiben.'
Mit dieser Option werden die Werte von Bauteilen mit dem Attribut 'Value Off', deren Werte in der Bibliothek des neuen Schaltplans von denen der Bauteile im alten Schaltplan abweichen, überschrieben. Die Bauteile mit den überschriebenen Werten werden in der Datei '[project_name]_values_over_report.txt' aufgelistet.
'Das neue Board wird Elemente mit Pads enthalten, die zu keinem Bauteil im Schaltplan gehören.'
Diese Option muss nur dann eingeschaltet werden, wenn es im alten Board noch keine derartigen Bauteile gab. Sind im alten Board diese Bauteile bereits enthalten, so schaltet UPDATEman die Option selbst ein. Wenn die Option aktiviert ist, werden die neu erzeugten Projektdateien gespeichert, bevor Bauteile mit Pads in das neue Board eingefügt werden. Für die Dauer des Einfügens ist der neue Schaltplan geschlossen. Sollte das Konvertieren wiederholt werden, müssen die neu erzeugten Projektdateien zuvor gelöscht werden. UPDATEman wird dazu auffordern.