Forum: Platinen KiCAD Schalplan-ID ändern


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Markus B. (rusticus)


Lesenswert?

Hallo,

weiß jemand ob bzw wie es möglich ist die IDs der Schaltpläne zu ändern? 
Die Aufteilung die KiCAD hier vornimmt scheint ein bisschen Willkür oder 
ein schlechtes System zu sein. So sind meine Schaltpläne nun wild 
durcheinander gewürfelt.

Mit freundlichen Grüßen,
Markus Bauer

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Markus B.

> weiß jemand ob bzw wie es möglich ist die IDs der Schaltpläne zu ändern?

Du meinst die IDs der hierarchischen Schaltpläne? Du wirst beim Anlegen 
quasie danach gefragt. Es poppt ein Fenster mit Vorschlägen zum Datei- 
und Schaltplannamen auf. Die kannst Du entweder aktzeptieren, oder aber 
ändern.

Wenn Du den hierachischen Schaltplan schon angelegt hast, kannst Du die 
Daten ändern, indem Du den Schaltplan mit rechts anklickst, und 
"Schaltplan editieren" wähltst. Es poppt das gleiche Fenster wie oben 
auf, mit dem existierenden Schaltplannamen und Dateinamen, die Du nun 
entweder aktzeptieren, oder aber ändern kannst.

Die Schaltplandatei wird im gleichen Projektordner wie Dein 
Hauptschaltplan angelegt.
Wenn Du dorthin einen anderen Schaltplan kopierst, und beim anlegen 
eines hierarchischen Schaltplanes dessen Namen wählst, wird dieser als 
hierarchischer Schaltplan eingegeben. So kannst Du z.B. immer wieder 
verwendete Blöcke als Subschaltpläne einbinden.


> Die Aufteilung die KiCAD hier vornimmt scheint ein bisschen Willkür oder
> ein schlechtes System zu sein.

Es wird eine zufällige Buchstabenkombination vorgeschlagen, die im Falle 
des Dateinahmens mit "file" anfängt und mit ".sch" endet.
Persönlich würde ich ein System wählen, was den Hauptschaltplannamen als 
Präfix verwendet, und einen Date/timestamp als Suffix und dann mit 
".sch"endet. Memmnotechnisch gesehen müsste dann weiteres eingetragen 
werden....
Praktisch gesehen habe ich aber schon Hass-Emails wegen langer 
Dateinamen
erhalten....;O)

> weiteres
> So sind meine Schaltpläne nun wild
> durcheinander gewürfelt.
>

Sie befinden sich in einem anderen Ordner, oder wie meinst Du dass????

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.dl0dg.de

von Markus B. (rusticus)


Lesenswert?

Hallo Bernd,

ich habe irgendwie deine Antwort erwartet :)


Ich glaube ich habe mich falsch ausgedrückt.


Ich habe einen Schaltplan mit mehreren hierachischen Plänen. Diese Pläne 
bekommen jedes mal eine ID zugewiesen, also quasi eine Seitenzahl, ID X 
von Y

Das anlegen und hinzufügen funktioniert genau so wie ich es möchte, also 
den Namen kann ich beliebig und richtig wählen, wird dann auch so 
hinzugefügt, passt somit alles.



Was mich stört ist nun folgendes:

Ich hab meinen Schaltplan, zehn Seiten sind erstellt und für die 
Reihenfolge, also die ID-Nummer stimmt, dh der 10te Schaltplan bekommt 
die ID 10 von 10 und ist somit auch beim drucken ganz hinten. Erstelle 
ich aber nun einen anderen so wird dieser einfach mal dreist und frech 
an Position 2 eingefügt, so dass der neue nun ID 2 von 11 hat, alle 
anderen sind verrutscht, ich hätte diesen Schaltplan aber gern an 
Position 11, 11 von 11 quasi

Also eigentlich sind die ID's die Seitenzahlen, weil wenn ich eine 
Bauteilübersicht einfüge, dann möchte ich diese eigentlich auch gern am 
Schluss haben und nicht an Position X inmitten von anderen und das 
manuelle umsortieren der Schaltpläne und manuelle editieren der ID's per 
Kugelschreiber kann nicht der richtige Weg sein ;)

von Bernd W. (berndwiebus) Benutzerseite



Lesenswert?

Hallo Markus B.

> Also eigentlich sind die ID's die Seitenzahlen, weil wenn ich eine
> Bauteilübersicht einfüge, dann möchte ich diese eigentlich auch gern am
> Schluss haben und nicht an Position X inmitten von anderen

Ok, ich verstehe.

> und das
> manuelle umsortieren der Schaltpläne und manuelle editieren der ID's per
> Kugelschreiber kann nicht der richtige Weg sein ;)

Leider weiss ich auch zur Zeit nicht, wie das im Programm geändert 
wird....

Aber ich habe gerade einen Workaround getestet.....

Wenn Du die .sch Datei des Hauptschaltplanes mit einem Texteditor 
öffnest,
findest Du ganz zum Schluss Sequenzen, die mit "$Sheet" anfangen und mit 
"$EndSheet" enden. Dort sind die Subschaltpläne erwähnt, und Ihre 
Reihenfolge in der Datei entspricht Ihrer Reihenfolge in der 
Seitenposition.

Ich habe spasseshalber mal so eine Sequenz, im Beispiel die vom 
Schmitt-Trigger, ausgeschnitten und direkt nach dem 5V-Regler wieder 
eingefügt.
Prompt ändert sich in der Anzeige und im Plott die Seitenposition.
Die Orginalschaltpläne findest Du unter 
"UndervoltageProtection_RevD_14Aug2012.zip", und den so modifizierten 
unter "UndervoltageProtection_RevTest_27Aug2013.zip" im Anhang.

Wie sich das konkret bei Subsubschaltplänen in mehrfach gestaffelten 
Hierarchien auswirken würde, weiss ich nicht, gehe aber davon aus, das 
diese Blöcke im ganzen verschoben werden.

Wenn ich mal Zeit und Lust habe, schreibe ich vieleicht mal ein 
Python-Skript, was dieses erledigt.

Hinter dem Beispielprojekt steckt nicht viel hinter, aber es ist oft 
nützlich, so ein Beispielprojekt zum probieren zu haben. ;O)

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.dl0dg.de

von Bernd W. (berndwiebus) Benutzerseite


Angehängte Dateien:

Lesenswert?

Nachtrag:

> Wenn ich mal Zeit und Lust habe, schreibe ich vieleicht mal ein
> Python-Skript, was dieses erledigt.

Ich hatte zwar nicht wirklich Zeit, aber viel Lust.
Und so habe ich mal ein Python 3 Skript zusammen geklickt:
Im Anhang: "PyKicadSchematic-ID_Interchanger_RevA.py"

Es ist ein eigenständiges Python 3 Skript und hat nichts mit der 
Python-Schnittstelle in Kicad zu tun (die hat Python 2.x)
Wenn eine Fehlermeldung kommt: "ImportError: No module named tkinter"
so ist fälchlicherweise Python 2.x mit der Ausführung betreut worden.
Das liegt auch nahe, wenn NICHTS passiert.

Es wird immer nur die Ebene der Subschaltpläne direkt unter dem 
gewählten Schaltplan bearbeitet. Bei tieferer Schachtelung muss also 
sukzessive vorgegangen werden.


Bedienung:

Mit "Choose file" den Hauptschaltplan (*.sch) wählen.
Es werden die Subschaltpläne der Ebene darunter angezeigt.
Wenn einer verschoben werden soll:
1. Subschaltplan Anklicken
2. Die Position anklicken, vor die dieser Subschaltplan verschoben 
werden soll.
"Save" wählen. Es wird in "*Changed.sch" im gleichen Ordner wie *.sch 
gespeichert.
Es werden dort noch "*.zw" Dateien gespeichert.
Die können aber anschliessend gelöscht werden.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.dl0dg.de

von Markus B. (rusticus)


Lesenswert?

Hallo Bernd,

Vielen Dank für das Programm, jetzt muss ich leider bis heute Abend 
warten, da ich hier in der Arbeit kein Python ausführen kann...

Ich hab mir gestern auch schon überlegt wie ich das ganze in C++ 
umsetzen könnte aber dein Elan war einfach zu groß :) Vielen Dank dafür!


Ich weiß ja nicht ob du hier der einsame weiße Ritter bist oder Kontakt 
zu der KiCAD-Entwickler-Community hältst, aber da wäre dein Skript 
sicher viel besser noch aufgehoben als hier, denn da verstaubt es wohl 
bald, außer du fügst es bei den Artikeln ein

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Markus B.


> Ich weiß ja nicht ob du hier der einsame weiße Ritter bist oder Kontakt
> zu der KiCAD-Entwickler-Community hältst,

Eingetragen bin ich nur als Library-Contributor.....ich bin nicht 
wirklich gesellschaftsfähig.

> aber da wäre dein Skript
> sicher viel besser noch aufgehoben als hier,

Du, das sind autodidaktische Gehversuche im Programmieren. Und von C hab 
ich keine Ahnung, auch vom sonstigen IT-Kram nicht. Das muss noch ein 
paar Jährchen gären, bevor ich da mithalten könnte. Siehe oben.

> denn da verstaubt es wohl
> bald, außer du fügst es bei den Artikeln ein

Das werde ich auch bei Gelegenheit. Ein weiterer Platz wäre z.B. der 
Repository Bereich der Kicad-User Group.
Naja. Ein paar Verbesserungen würde ich schon gerne noch machen. Das mit 
mit den *.zw Dateien z.B. empfinde ich als sehr unelegant. Desweiteren 
funktioniert das Auswählen noch etwas stolprig.
Ausserdem bist Du der einzige, der je diesen Fall angesprochen hat. Die 
Nachfrage nach dem Tool dürfte also insgesammt sehr klein sein.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.dl0dg.de

von Simon H. (simi)


Lesenswert?

Bernd Wiebus schrieb:
> Ausserdem bist Du der einzige, der je diesen Fall angesprochen hat. Die
> Nachfrage nach dem Tool dürfte also insgesammt sehr klein sein.

handheb

Hier ist zumindest noch einer, der vor einiger Zeit genau das selbe 
Problem hatte, und der auch den Texteditor zuhilfe nahm. :-)

von Markus B. (rusticus)


Lesenswert?

Nicht gesellschaftsfähig? Oo Dafür bist du aber erstaunlich hilfsbereit!

Bernd Wiebus schrieb:
> Du, das sind autodidaktische Gehversuche im Programmieren. Und von C hab
> ich keine Ahnung, auch vom sonstigen IT-Kram nicht. Das muss noch ein
> paar Jährchen gären, bevor ich da mithalten könnte. Siehe oben.

Aber genau so fängt es doch an?


Aber du siehst, es sind mindestens zwei ;) Wobei es da bestimmt noch 
mehr gibt, die sich einfach damit abgefunden haben, hier scheint die 
Community der KiCAD-User nicht so groß zu sein

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Nachtrag:

Eine aktualisierte Version des Skripts findet sich hier:
http://www.mikrocontroller.net/articles/KiCAD#Schaltplan
unter 
http://www.mikrocontroller.net/wikifiles/9/90/PyKicadSchematic-ID_Interchanger_RevC.zip

Viel Erfolg!

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.dl0dg.de

von Thomas S. (doschi_)


Lesenswert?

Hallo Bernd,
Danke !
Aktuell habe ich noch keine konkrete Verwendung, aber das Wissen um die 
Möglichkeiten und die Gundbausteine und Strukturen sind sehr lehrreich.
Gruß Thomas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.