Hallo zusammen,
ich habe Probleme mit dem Forward/Back annotation in Eagle V9.3.
(mein Fehler da die BRD-Datei nicht geöffnet war und ich einige
Änderungen an Schaltplan durchgeführt habe :-(
Egal was ich gemacht habe, klaptt es nicht mehr die Aktivierung der
Forward/Back Annotation zu setzen. Für die Bauteilplatzierung habe viel
Zeit inverstiert. Um diese nicht zu verlieren und um die
Forward/Back-Annotation Problem zu umgehen, möchte ich das Board von
Anfang an beginnen. Aber ich möchte auf keinen Fall für die
Bauteilplatzierung wieder viel Zeit verlieren. Deswegen frage ich ob
jemand einen Skript/Program kennt, welches die Bauteilplatzierung aus
der bestehenden *.BRD Datei liest und anschliessend diese
Bauteilplatzierung wieder reinpatcht in der neuen BRD-Datei
(schliesslich ist die Datei eine XML-Datei ist). Oder hat jemand einen
anderen Vorschlag.
Vielen Dank für eure Hilfe.
Kann das überhaupt funktionieren? Woher soll das Script wissen, welches
Package zu welchem Symbol gehört? Normal haben beide den gleichen Name,
aber jetzt ist z.B. IC1 im Schaltbild ein NE555 und IC1 im Board ist ein
LM324.
Kann man nicht die Unterschiede zwischen brd und sch interaktiv Schritt
für Schritt berichtigen? Für den Zweck gibt Eagle doch eine Liste aus,
magst du die mal posten? Oder gleich ein zip vom Projekt?
Früher hat Eagle ca. 10 Backup-Kopien von brd und sch anlegt...
Lass den ERC laufen, dann sollte dir EAGLE sagen, was ihm nicht passt.
Glattziehen, bis er nicht mehr meckert und das nächste Mal den fetten
Balken (wenn es ihn noch gibt) nicht ignorieren.
Naja, das mount.ulp gibt die (theoretischen) Schwerpunkt-Koordinaten der
Bauteile aus, mehr nicht. Der Schwerpunkt ist nicht unbedingt der
Bauteil-Nullpunkt aus der Bibliothek. Für eine ähnliche Liste gibt es
auch einen Export-Menü-Punkt. Und das Problem, welches Bauteil ist
welches, bleibt.
Seit EAGLE 6 ist das Board-File einfach XML. Daher geht
grep '<element' projekt.brd
um alle Koordinaten und Namen der Bauteile herauszuziehen. Aber es
fehlen Attribute und das </element>. Damit könnte man aber schon mal ein
Script schreiben das die <element...> in ein ULP mit passenden
MOVE-Befehlen umwandelt.
Folgendes müßte ohne Script gehen (habe es aber noch nie gemacht):
1. altes .brd umbenennen (und irgendwo sichern!)
2. .sch öffnen
3. neues .brd anlegen
4. EAGLE schließen
5. altes und neues .brd in Texteditor öffnen
6. Bereich zwischen <elements> und </elements> vom alten ins neue
kopieren (die neuen elements dabei löschen)
7. in EAGLE wieder öffnen
Problematisch ist sicher wenn die Bauteilnamen nicht mehr konsistent
sind oder welche fehlen. Dann kopiert man nur die Fehler aus dem alten
ins neue Board statt sie zu beheben. Das könnte man mit Handarbeit im
XML aber auch beheben.
Baric schrieb:> Oder hat jemand einen> anderen Vorschlag.
Ein ulp das ein script erzeugt ist durchaus machbar, aber eher sinnlos.
Die Konsistenz ist, wie bereits weiter oben geschrieben, einfacher über
den Erc wieder herzustellen.
Muss man halt öfter durchlaufen lassen.
Alternativ kannst d es noch über netlist export/import versuchen.
Hallo Zusammen,
warum so kompliziert?
Der einfachste Weg ist, das Verzeichnis sichern und anschließend den
aktuellen Schaltplan löschen, dann die Backupdatei wieder herstellen und
das solange, bis Board und Schaltplan wieder übereinstimmen.
Hat zumindest bei mir immer funktioniert.
Gruß
Frank
Danke für die Antworten und Vorschläge.
Mit Export Netlist stehen die Bauteilpositionen zur Verfügung.
Ich muss jetzt gucken wie ich einen Skript ULP bastele der die Bauteile
platziert. Mit unzähligen "move Bauteil Bauteilposition (x, y)".
Es wäre geschickter wenn Eagle selbst von Hause aus dies machen konnte
:-(
Vielen Dank.
Gruß
Baric schrieb:> Danke für die Antworten und Vorschläge.> Mit Export Netlist stehen die Bauteilpositionen zur Verfügung.> Ich muss jetzt gucken wie ich einen Skript ULP bastele der die Bauteile> platziert.
Wenn in export netlist alles drin ist was du brauchst dann modifiziere
das ulp so das es dein script produziert. Da muss nur der printf Befehl
angepasst werden.
>> Mit unzähligen "move Bauteil Bauteilposition (x, y)".
Du hast doch nur so viele move Befehle wie Bauteile vorhanden sind
Das script:
grid mm;
move IC1 (C10 5);
grid last;
schiebt IC1 auf die X=10 Y=5 Koordinate (in mm)
> Es wäre geschickter wenn Eagle selbst von Hause aus dies machen konnte
Wenn die CAD Programme alles könnten was Nutzer so an Wünschen haben
würden Sie, fürchte ich, auch eine Rechnung schreiben ;-).
Baric schrieb:> Mit Export Netlist stehen die Bauteilpositionen zur Verfügung.> Ich muss jetzt gucken wie ich einen Skript ULP bastele der die Bauteile> platziert.
_WAAAS?_ Das meinst du sicherlich nicht im Ernst.
Also, wenn du Probleme mit der Inkonsistenz (nee, nicht Inkontinenz)
hast, dann laß den ERC im Schematic laufen und guck dir an, was genau
Eagle da zu meckern hat.
Genau DAS bringst du dann in Ordnung.
Normalerweise ist das kein großer Akt, verschiedene Namen und Values
lassen sich sehr einfach korrigieren, für hinzugekommene oder gelöschte
Bauteile muß man eben diese Bauteile entsprechend erstmal per ADD
hinzufügen und dann sehen, was man tatsächlich braucht.
Also stelle dich nicht so seltsam an, Eagle sagt dir ja explizit, was
ihm nicht schmeckt.
W.S.
Danke Hypermario.
ich möchte auch die Rotation und die Spiegelung mitnehmen. Hab folgendes
probiert aber leider von Mirror ist nichts zu sehen. Was ist da falsch!
Danke.
board(B)
{
B.elements(E)
{
output("D:/temp/moveparts.scr", "at")
{
printf("MOVE %s (%f %f);\n", E.name, u2mm(E.x), u2mm(E.y));
printf("ROTATE %s %f ;\n", E.name, E.angle);
if (E.mirror)
{
printf("MIRROR %s ;\n", E.name);
}
}
}
}
Baric schrieb:> Danke Hypermario.
Gerne.
>> ich möchte auch die Rotation und die Spiegelung mitnehmen. Hab folgendes> probiert aber leider von Mirror ist nichts zu sehen. Was ist da falsch!> Danke.
Würde ich in einzelne scripte aufteilen:
board(B)
{
output("C:/temp/rotateparts.scr", "wt")
{
printf("grid mm;\n");
}
B.elements(E)
{
output("C:/temp/rotateparts.scr", "at")
{
printf("ROTATE =R%f '%s' ;\n", E.angle, E.name );
}
}
}
Hi,
ich verwende den Autorouter um Zeit zu sparen.
Frage:
was heisst in Eagle die Meldung:
Layer 2 (Route 2) verwendet, aber nicht aktiviert!
Darin befindliche Objekte könnten mit vom Autorouter erzeugten
Durchkontaktierungen kollidieren.
Danke
Gruß
Baric schrieb:> Hi,> ich verwende den Autorouter um Zeit zu sparen.
Mache ich auch oft.
Entgegen der landläufigen Meinung halte ich den AR von EAGLE 7.7.0 für
ziemlich gut (vor allem der Topo-Router). Man muß nur wissen wann und
wie man ihn einsetzt. Er hilft vor allem in einem existiertenden Layout
wenn man Bauteile ein bischen verschiebt und alle betroffenen Leitungen
wieder sauber verbinden muß.
> Frage:> was heisst in Eagle die Meldung:> Layer 2 (Route 2) verwendet, aber nicht aktiviert!> Darin befindliche Objekte könnten mit vom Autorouter erzeugten> Durchkontaktierungen kollidieren.
Der Layer-Stack in den Design-Rules und die Auswahl der AR-Layer passen
nicht zusammen.