Forum: Platinen Kicad: Felder aus Bibliothek in Eeschema übernehmen


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 Arne H. (piowux)


Lesenswert?

Hi,

ich mache gerade meine ersten Schritte mit Kicad und würde für mein 
nächstes Projekt gerne eine Bibliothek in diesem Muster anlegen, da ich 
damit in Altium ganz gute Erfahrungen gemacht habe: 
http://cladlab.com/electronics/general/altium/altium-tricks-and-standards#pcb-symbol-naming-convention

Dafür würde ich gerne in dem Bauteileeditor Felder des Bauteiles 
definieren. Funktioniert alles super. Wenn ich das Bauteil allerdings in 
Eeschema einfüge, werden meine Feldbezeichner und Werte nicht 
übernommen. Und tauchen beim "Bauteil editieren/editieren" nicht auf. 
Mache ich etwas falsch oder bin ich auf einen Bug gestoßen?

Ich benutze die Version:
Application: Eeschema
Version: (2013-jul-07)-stable
Build: wxWidgets 2.8.12 (no debug,Unicode,compiler with C++ ABI 1002,GCC 
4.8.2,wx containers,compatible with 2.6)
Platform: Linux 3.13.0-24-generic i686, 32 bit, Little endian, wxGTK
Boost version: 1.53.0
Options: USE_PCBNEW_NANOMETRES=ON
         KICAD_GOST=OFF
         USE_WX_GRAPHICS_CONTEXT=OFF
         USE_WX_OVERLAY=OFF
         KICAD_SCRIPTING=OFF
         KICAD_SCRIPTING_MODULES=OFF
         KICAD_SCRIPTING_WXPYTHON=OFF

Über einen hilfreichen Tip wäre ich sehr dankbar,

Arne

von hp-freund (Gast)


Lesenswert?

Die Felder und ihre Werte stehen an 2 bzw. 3 verschiedenen Stellen.
Einmal in der originalen .lib und dann im Schaltplan.
Wurde das Bauteil vorher schon einmal in den Schaltplan eingefügt steht 
es zusätzlich noch in der projekt-cache.lib .
Somit ist wichtig zu wissen welches Bauteil man editiert und von wo es 
dann eingefügt wird.

von hp-freund (Gast)


Lesenswert?

Noch wichtig:
nach dem editieren des Bauteils in einer lib dieses in der .lib 
aktualieieren und die .lib speichern ...

von Arne H. (piowux)


Lesenswert?

Hi,

das könnte es sein. Allerdings müsste es dann funktionieren, wenn ich 
die cache.lib lösche und wenn im schematic laut Texteditor das Bauteil 
nicht definiert ist. Das habe ich ausprobiert und die Felder werden 
immer noch nicht übernommen. -> Bug oder bin ich zu blöd?

Grüße,

Arne

von hp-freund (Gast)


Angehängte Dateien:

Lesenswert?

Zum Glück sind die lib und auch die sch einfache Textdateien.
Mit einem Editor kannst Du leicht prüfen was wo steht.

Im Anhang zum Test eine lib mit 2 unterschiedlichen R.

von Flo A. (Gast)


Lesenswert?

Hallo!

Habe genau das gleiche Problem!
Gibt es mittlerweile eine Lösung? Habe grad die Dateien mit dem Editor 
aufgemacht, aber auf den ersten Blcik werde ich totzdem nicht schlau was 
zu tun ist.

Viele Grüße,
Flo

von hp-freund (Gast)


Lesenswert?

Den Texteditor brauchst Du nur zur Kontrolle.

Nehmen wir z.B. die kleine lib von oben und erstellen in dieser einen 
neuen R mit einem zusätzlichen Feld Toleranz.

1. KiCAD starten
2. neues Projekt anlegen
3. die r_neu.lib in den Projektordner speichern
4. eeschema starten
5. Einstellungen -> Set Active Libraries
6. Hinzufügen -> r_neu.lib
7. Werkzeuge -> Bibliothekseditor
8. Arbeitsbibliothek auswählen -> r_neu
9. Bauteil zum Editieren aus der gegenwärtigen Bibliothek laden -> R
10. Aus dem gegenwärtigen Bauteil ein neues erstellen -> R_tol
11.  auf das T-Symbol oben klicken
12. Feldeigenschaften -> Feld hinzufügen
13. Feldname: Toleranz    Feldwert: tol?
14. Gegenwärtiges Bauteil in aktueller Bibliothek aktualisieren
15. Aktuelle Bibliothek speichern

16. in eeschema -> Bauteil einfügen -> r_neu -> R_tol
17. wird jetzt der Schaltplan gespeichert, wird eine lib-test-cache.lib 
erstellt


Jetzt kann zur Kontrolle die r_neu.lib und die lib-test-cache.lib im 
Texteditor geöffnet werden. Wenn alles geklappt hat, ist der neue R_tol 
in beiden libs vorhanden und unter Bauteileigenschaften in eeschema ist 
das Feld Toleranz vorhanden.

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Arne.

Arne Helms schrieb:

> Wenn ich das Bauteil allerdings in
> Eeschema einfüge, werden meine Feldbezeichner und Werte nicht
> übernommen. Und tauchen beim "Bauteil editieren/editieren" nicht auf.
> Mache ich etwas falsch oder bin ich auf einen Bug gestoßen?
~~~
~~
~
> Über einen hilfreichen Tip wäre ich sehr dankbar,

Zuzüglich zu dem, was meine Vorgänger schrieben:

1) Du kannst ich weiss nicht wie viele Textfelder anlegen(12?, 16?), 
aber zumindest bis Mitte 2013 war es nur möglich, die ersten sechs davon 
im Schaltplan Anzeigen zu lassen.
Ungeachtet der Tatsache, das alleine für Referenz und Value oft der 
Platz im Schaltplan schon knapp ist, und das ganze ja eigentlich auch 
noch übersichtlich sein soll. *)

2) Ist zwar schon was her (Juli 2012), aber möglicherweise sind trozdem 
noch passende Ideen dabei: Beitrag "Lib Sturktur in KiCad?"
Insbesondere, das "leere" Textfelder automatisch gelöscht wurden.

Letztlich würde ich mir eine "Bauteilbibliothek" anders vorstellen:
Eine Datenbank, die die Angaben aus z.B. wie in dem angegebenem
http://cladlab.com/electronics/general/altium/altium-tricks-and-standards#pcb-symbol-naming-convention 
enthält, und von dort dann auf unterschiedliche Symbole/Symbolvarianten 
und Footprints referenziert.
Möglicherweise mit einer Tabelle, die ein automatisches Pad 
umnummerieren erlaubt, wenn dort Varianten mit unterschiedlicher 
Pinbelegung existieren.
Persönlich meine ich eben, das es besser ist, die Symbol- und die 
Footprintbibliotheken komplett getrennt zu halten, und nur eine 
Referenzierung per Netzliste herzustellen. Und Für den Komfort bei der 
Schaltplaneingabe und BOM Erzeugung dann eben halt mit einer externen 
Datenbank.

*)Denk daran, 1 oder 2 Textfeldmöglichkeiten übrig zu lassen, wenn Du 
Dir eine Umreferenzierungsmöglichkeit per externem Skript schaffen 
willst. ;O)
Das muss nicht per Nummer sein, weil Du kannst die Textfelder auch über 
den Namen erkennen, aber es sollten eben nicht verwendete Nummern für 
den Fall über sein. Es ginge auch sicher ganz ohne, aber das ist schon 
irgendwie "umständlicher".


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

: Bearbeitet durch User
von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Nachtrag:


Ich habe mal an dem Problem herumexperimentiert.
Und zwar mit:
Application: eeschema
Version: (2014-04-15 BZR 4803)-product Release build
wxWidgets: Version 2.8.12 (release,Unicode,compiler with C++ ABI 
1002,GCC 4.7.2,wx containers,compatible with 2.6)
Platform: Linux 3.2.0-4-686-pae i686, 32 bit, Little endian, wxGTK
Boost version: 1.54.0
         USE_WX_GRAPHICS_CONTEXT=OFF
         USE_WX_OVERLAY=OFF
         KICAD_SCRIPTING=ON
         KICAD_SCRIPTING_MODULES=OFF
         KICAD_SCRIPTING_WXPYTHON=OFF
         USE_FP_LIB_TABLE=HARD_CODED_ON
         BUILD_GITHUB_PLUGIN=ON


Bernd Wiebus schrieb:


> 1) Du kannst ich weiss nicht wie viele Textfelder anlegen(12?, 16?),
> aber zumindest bis Mitte 2013 war es nur möglich, die ersten sechs davon
> im Schaltplan Anzeigen zu lassen.

Siehe im Anhang: Feldtest_17may2014.lib
Ich habe mal 35 Felder angelegt (TestE_17May2014). Sie lassen sich alle 
im Schaltplan anzeigen. Was mit PCBnew ist, weiss ich nicht.
Es gehen in Eeschema pro Feld mit Sicherheit 286 Zeichen 
(TestE2_17May2014, Leerzeichen mitgezählt), aber irgendwo ist eine 
Obergrenze. Bei Überschreiten wird das Verhalten dann merkwürdig.
Aber Vorsicht: Ich habe mal versuchsweise einen sehr großen "Lorem 
ipsum" Text hineinkopiert. ;O) Das Symbol wird problemlos mit diesem 
Feld angelegt, aber es ragt soweit aus dem Bereich heraus, das nicht 
mehr bis zum Anfang oder Ende gescrollt wird. Ein solches Symbol kann 
auch noch in einen Schaltplan eingefügt werden, und das Abspeichern des 
Schaltplanes gelingt auch noch problemlos, aber nach Schliessen und 
Wiederöffnen des Schaltplanes erfolgt eine Fehlermeldung, das die 
"Anzahl der Parameter in zeile irgendwas der Cache-lib nicht dtimmt. Das 
Symbol wird auch nicht angezeigt, und auch im Library Editor ist es 
"weg".
Schaue ich in die Librarys mit einem Editor hinein, ist es genau dieser 
Text. Deutliches kürzen im Editor und abspeichern beseitigt den Spuk 
(TestE3_17May2014).
Was ebenfalls Probleme mit gleichem Erscheinungsbild bereitet, sind 
Zeilenumbrüche.

Wird ein Feldname doppelt verwendet, wird in Eeschema nur der Inhalt des 
zweiten Feldes angezeigt. Statt des ersten Feldes gleichen Namens wird 
in Eeschema nur eine Lücke angezeigt. Im Symboleditor werden wärend der 
Erzeugung des Symboles beide angezeigt. Wird aber die Bibliothek zum 
Beheben des Fehlers mit dem Symboleditor neu geöffnet, so werden zwar 
beide angezeigt, und ich kann mit einem Rechtsklick beide separat 
editieren, aber in der Feld-Toolbox aus der Oberen Toolleiste wird nur 
das erste Feld gleichen Namens angezeigt. Lösche ich dieses, werden 
beide gelöscht. Das verhalten ist also etwas undurchsichtig.

> Insbesondere, das "leere" Textfelder automatisch gelöscht wurden.

Leere Felder: Werden gelöscht. Aber das Verhalten ist insofern etwas 
inkonsistent, als das es irgendwann im Verlauf des Speicherns erfolgt. 
Ich "merke" es also nicht sofort im Editorfenster. Ausserdem kommt der 
Editor anschliessend etwas mit der Feldnummerierung und den Positionen 
durcheinander. Aber das lässt sich leicht erkennen und beheben.

Das Problem des TOs ist eher, das er ein geändertes Symbol nicht mit 
einem neuen Namen speichert. In dem Falle spielt die Reihenfolge der 
Bibliothken im Verzeichnis der aktiven Bibliotheken von Eeschema eine 
Rolle. Bei gleichen Namen nimmt Eeschema halt den Eintrag, der zuerst 
gefunden wird. Wenn in Eeschema in der Bibliotheksliste halt zuerst der 
*-cache.lib Eintrag ist, wird der genommen. Darum versuchsweise die 
cache Library dort austragen und neu eintragen, so dass sie unten 
angefügt wird. Das könnte das Problem lösen.
Besonders tückisch ist in dem Falle, das ein Symbol gleichen Namens mit 
geänderterm Feldeintrag nicht in der *-cache.lib gespeichert wird, aber 
sehr wohl der geänderte Feldeintrag im Schaltplan (was auch sinnvoll 
ist, weil es existieren ja gleiche Symbole mit z.B. unterschiedlicher 
Referenz und unterschiedlichem Value). Das kann die Angelegenheit 
zusätzlich verwirren.
Lediglich die *-cache.lib als Datei zu löschen langt u.U. nicht. Sie 
würde im Zweifel mit den alten Daten neu erstellt.

Da ich die Angewohnheit habe, beim Ändern einen Revisions- oder Datecode 
im Namen zu pflegen, was automatisch zu einem "neuen Namen" führt, bin 
ich bisher noch nicht über diesen Fall gestolpert. Bei geänderten Namen 
existiert das Problem so nicht.


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

von Bernd W. (berndwiebus) Benutzerseite


Angehängte Dateien:

Lesenswert?

Anhang vergessen!

Bernd Wiebus schrieb:

> Siehe im Anhang: Feldtest_17may2014.lib

Jetzt sollte er existieren.

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

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Noch ein Nachtrag:

Bernd Wiebus schrieb:

> Ich habe mal 35 Felder angelegt (TestE_17May2014). Sie lassen sich alle
> im Schaltplan anzeigen. Was mit PCBnew ist, weiss ich nicht.

Es werden auf erste Einschätzung nur Referenz und Wert übernommen. Ich 
habe in Eeschema den 3502 Zeichen langen Text (ohne Umbrüche!) aus 
"TestE3_17May2014" versuchsweise in Value eingesetzt, und es wird 
problemlos übernommen.

Aber keine Gewähr dafür, das solche Wahnsinnstaten immer funktionieren. 
;O)

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

von Flo A. (Gast)


Lesenswert?

Vielen vielen Dank! Mit eurer Hilfe hat es funktioniert!! :)

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.