Forum: Platinen Altium DbLib bzw SvnDbLib: Empfehlungen und Best Practices


von Frank K. (fchk)


Lesenswert?

Hallo!

ich arbeite bei meinem Arbytegeber mit drei weiteren Kollegen (Tendenz 
wachsend) in der Elelktronikentwicklung mit Altium Designer und SVN für 
die Projektdateien.

Wir verwenden aktuell thematisch sortierte filebasierte Bibliotheken 
(.SchLib/.PcbLib), die in einem separaten SVN-Projekt liegen. Wir 
überlegen, auf datenbankbasierte Bibliotheken (DbLib bzw SvnDbLib) 
umzusteigen, und zwar aus folgenden Gründen:

1. Wenn zwei Kollegen gleichzeitig an einer Bibliothek arbeiten, gibt es 
Stress beim SVN Commit, weil SVN Binärdateien natürlich nicht mergen 
kann und deswegen Fehlermeldungen wirft.

2. Die Bibliotheken sollen besser mit der zentralen Warenwirtschaft 
verknüpft werden können.

3. Einige Bibliotheken sind vor allem durch große 3d-Modelle bereits 
sehr groß geworden und brauchen daher lange zum Laden.

4. Wir wollen bei dieser Gelegenheit anfangen, Datenblätter zu den 
Bauteilen zentral zu hinterlegen.

Zusatzinformation: Unser Entwicklungsnetz ist vollständig vom Internet 
getrennt. Alles, was wir machen, muss völlig autark laufen. Wir können 
daher auch nicht den Altium Vault oder die Supplier Links nutzen, weil 
die Maschinen einfach nicht raustelefonieren können und dürfen.

Ich habe bereits einen Linux-Server mit MySQL, Apache2, Samba und svn 
aufgesetzt und mir die Dokumentation auf altium.com angeschaut. Access 
und Excel sind auch vorhanden, aber bevor wir jetzt anfangen, 
.mdb-Dateien per Filesharing zu teilen, ist SQL via ODBC doch die 
bessere Lösung, denke ich. Auch Excel-"Datenbanken" kommen für uns eher 
nicht in Frage.

Jetzt suche jetzt nach Empfehlungen und Erfahrungsberichten, wie wir 
unsere Bibliotheken organisieren und sortieren sollten, welche 
Fallstricke es gibt und was sich bewährt hat.

fchk

von Wühlhase (Gast)


Lesenswert?

Ich habe so etwas mal für eine Firma augezogen.

Wir haben das damals mit SVN und Exceltabellen gemacht. Damals war eine 
Anforderung, daß das auch offline funktionieren muß, da hat sich ein 
SVN-Repository auf dem Server und eine lokale Kopie angeboten.
Die einzige Einschränkung war, das alle auf demselben Pfad (z.B. 
C:\SVN\Altiumbibliothek) arbeiten mußten.

Ansonsten ist die Excellösung gar nicht so schlecht, auch wenn das sehr 
selten verwendet wird. Protipp: Benutzt Office 32-Bit. Mit 64-Bit hat 
Altium so seine Probleme, wobei das meines Wissens nach eher an 
Microsoft als an Altium liegt. Das geht zwar, aber wenn man z.B. eine 
ältere Altiumversion nebenher laufen lassen will (ich habe immer noch 
AD17 installiert) muß man ständig die MS Database Access Engine 
uminstallieren.

Was ich an Exceltabellen mag, ist, daß man einen sehr komfortablen 
Bibliothekseditor hat. Und es ist ein großer Vorteil, wenn man mal 
schnell noch einen Bauteilparameter hinzufügen kann weil sich ein 
solcher als nützlich erweist.
Außerdem habe ich viele Bauteile dann mit einem VBA-Makro erstellt, man 
muß da ja nur Pfad und Referenz in der Exeltabelle einfügen um Symbol, 
Footprint, Datenblatt, ... zusammenzuklauben.
Datenbanken...naja, man muß sich da halt erstmal einarbeiten. Und wenn 
man mit einer lokalen Repository-Kopie wie bei SVN arbeitet, hat eine 
echte Datenbank auch keine Vorteile. Zumindest sehe ich keine.

von Frank K. (fchk)


Lesenswert?

Wühlhase schrieb:
> Ich habe so etwas mal für eine Firma augezogen.

Ok, ich sehe, dass bei Dir die Anforderungen andere waren. Bei mir ist 
Offline-Fähigkeit kein Thema, weil die Daten eh nicht das Gebäude 
verlassen dürfen. Und eine SQL-Datenbank ist allein schon wegen der 
Synchronisation mit der Warenwirtschaft gesetzt, und SQL-Knowhow ist 
vorhanden.

32 Bit Altium-Versionen gibts hier schon länger nicht mehr. Hier hat 
jeder mindestens Altium Designer 20, die Rechner sind fast alle Windows 
10 und Office 2019 64 Bit.

Eine Frage wäre noch, ob wir großartige Vorteile durch das neue Altium 
Nexus haben würden. Benutzt das hier jemand?

fchk

: Bearbeitet durch User
von Christian B. (luckyfu)


Lesenswert?

Wir nutzen eine Access Datenbank. Die lässt sich ähnlich einfach wie 
Excel benutzen. Aber ohne die Einschränkung, dass bei 10000 Bauteilen 
Schluss ist. (Das hab ich auf einer Altium Seite gesehen)

von Taz G. (taz1971)


Lesenswert?

Ich habe mir selber auch eine Access Datenbank angelegt und eine 
Oberfläche zur Pflege in C# selber geschrieben.
Will man voll Versionieren, dann müssen alle Symbole und Fottprints in 
einzelne Dateien gespeichert sein -> ein Lib = ein Symbol bzw. 
Footprint.
Die Parameter, die jetzt noch in den Symbolen stehen müssen dort 
gelöscht und in die Datenbank übertragen werden. Die Symbole haben keine 
Parameter, keine Footprint Informationen und keine Simulationsdaten. Im 
Moment sind vielleicht hunderte Widerstände in der SchLib später gibts 
nur noch ein Widerstandssymbol. Auch die Footprints müssen in einzelne 
Dateien verlegt werden und die Beschreibungen überarbeitet werden. Bei 
allen generischen Footprints müssen die Bauteilinformationen entfernt 
werden und bei den Unique Footprints die Information eingetragen werden 
falls noch nicht vorhanden.
Mit SQL sehe ich kein Problem, in der DBLib kann man die Quelle angeben, 
man braucht nur den Connection String. Die Feldnamen in der Datenbank 
sollten mit den Altium Vorgaben übereinstimmen, dann läuft es dirket und 
die Pflege ist einfacher.
Eine Menge Arbeit, aber lohnt sich meiner Meinung nach.

Auch noch:
Die Frage welche Informationen / Felder in der Datenbank geführt werden 
sollen. Nur ein Footprint pro Bauteil oder mehrere. Simulationsdaten 
Ja/Nein. Preise ?  Wie viele Bezugsquellen .....usw

: Bearbeitet durch User
von Joachim S. (electribe)


Lesenswert?

Hallo Frank,

ich habe das mal für mich alleine auf meinem NAS mit MySql auf einem 
Docker Container probiert. Meine Datenbank mit Passiven Komponenten 
läuft parallel immer noch mit, aber ohne dich verschrecken zu wollen: 
die Unterstützung in Altium hört sich in der Doku fantastisch an, ist 
aber die absolute Katastrophe. Es gibt kein Feature bei Altium, das so 
buggy und schlecht umgesetzt ist, wie das für Bauteil-Datenbanken. Man 
wird von Fehlermeldungen überhäuft, ständig muss was neu geladen werden 
und das, was man mit offline Bibliotheken mal schnell gemacht hat, wird 
zu einem riesen Aufriss mit einer Datenbank. Altium hat offensichtlich 
kein Interesse daran, da etwas zu verbessern - die wollten ihre 365 und 
Vault/Concord (oder wie auch immer das jetzt heißt) Geschichte 
verkaufen. Der Library Splitter, der automatisch deine vorhanden 
Bibliotheken in Datenbanken umwandeln soll, macht in der Praxis auch 
nicht unbedingt das, was du willst. Mein Tipp: bevor ihr das wirklich 
macht, nehm dir mal 2-3h Zeit und baue das hier nach: 
https://www.youtube.com/watch?v=i2BxPHTeHC4
Danach kannst du überlegen, ob du die Datenbak wirklich um großen Stil 
aufbauen willst.

Viele Grüße
Achim

von vst (Gast)


Lesenswert?

Erfahrung:

Wir benutzen ein Webinterface (php/angular) für die gesamte 
Kompontenverwaltung und Verknüpfung mit dem Warenwirtschaftsystem 
(Lagerbestand irgendwann mal in Altium sichtbar).

Dieses Webinterface erzeugt auch eine svndblib datei (damit Kategorien 
hinzugefügt werden können), diese wird über svn/git an die clients 
verteilt zusammen mit templates etc als shared folder.

Anfangs haben wir svn benutzt, dann haben wir aber git eingeführt und 
eine git-as-svn bridge genutzt. Das ganze läuft aber eher hakelig mit 
dem commiten aus altium heraus, deswegen bearbeiten wir komponenten 
jetzt separat in einem git und svn läuft nur noch read-only.

Wichtig ist, alle Metainformationen müssen aus SchLibs entfernt werden, 
diese kommen aus der Datenbank!

Vorteile:
- Zentrale Instanz im Haus
- Scripte können z.B. WE parsen und Bautteile anlegen
- Sehr gute Suche im Webinterface nach Bautteilen
- Click im Browser fügt ein Bautteil den Schematics hinzu (über 
urlhandler)
- Im Altium über References kommt man direkt zum Datasheet oder kann das 
Teil im Webinterface bearbeiten
- Kostenlos im Gegenteil zum Vault

Nachteile:
- cache folder hat alle files einmal in kopie
- git folder hat auch noch die history dabei
- separater prozess für bearbeiten von kompontent
- offline etwas kompliziert, aber dank VPN kein Problem

von vst (Gast)


Lesenswert?

Vergessen:
ca. 2 Wochen Arbeit sowas aufzusetzen + 3 Tage wenn man im Webinterface 
den Inhalt von Pcb/SchLibs auslesen möchte für autocompletion.

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.