Forum: Platinen KiCad 7: Teile vom Schaltplan und Layout duplizieren


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 Tom B. (hf_tom)


Lesenswert?

Hallo,
wie kann ich unter KiCad 7.0.10 (Win10) Teile von einem Schaltplan mit 
dem zugehörigen Layout duplizieren?

Ich habe einen hierarchischen Schaltplan und das zugehörige Layout 
erstellt. In dem Projekt gibt es einen Teil des Schaltplans der zweimal 
(fast identisch) vorkommt. Von dem einen Teil sind Schaltplan und Layout 
bereits erstellt.
Wie kann ich nun den zweiten Teil erstellen, ohne dass ich das gesamte 
Layout erneut erstellen muss? Ich würde gerne so etwas wie eine 
Baugruppe erstellen, die einfach mit Layout kopiert werden kann. Dann 
müssten nur noch Namen von einigen Netzen angepasst werden.
Würde ein Umstieg auf KiCad 8 bei diesem Problem helfen?

Mit einer eigenen Suche im Netz bin ich nicht weitergekommen. Vermutlich 
nutze ich die falschen Suchbegriffe?

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Tom B. schrieb:
> Hallo,
> wie kann ich unter KiCad 7.0.10 (Win10) Teile von einem Schaltplan mit
> dem zugehörigen Layout duplizieren?

Das geht unter KiCad 7 genauso wie unter KiCad 8.


> Wie kann ich nun den zweiten Teil erstellen, ohne dass ich das gesamte
> Layout erneut erstellen muss? Ich würde gerne so etwas wie eine
> Baugruppe erstellen, die einfach mit Layout kopiert werden kann.

Du müsstes den KiCad Leiterplatteneditor "standalone" starten, also
NICHT über die Schaltflächen, die Dir die KiCad Umgebung bietet, 
sondern DIREKT, ohne über die KiCad Umgebung zu gehen. Dann bekommt 
der Leiterplatteneditor andere Eigenschaften.

Dann wählst Du oben links im Pull down Menue unter "Datei" den Punkt 
"öffnen" und wählst Dein aktuelles Projekt.
Dann wählst Du wieder oben links im Pull down Menue unter "Datei" aber 
jetzt einen anderen Unterpunkt, und zwar "Platine hinzufügen". Nun 
kannst Du beliebige andere Platinen zu Deinem aktuellen Projekt 
hinzufügen, bearbeiten, und speichern.

> Dann
> müssten nur noch Namen von einigen Netzen angepasst werden.

Da wirst Du vorläufig auch nicht dran vorbei kommen.

> Würde ein Umstieg auf KiCad 8 bei diesem Problem helfen?

Die Vorgehensweise ist in KiCad 7 und KiCad 8 gleich.

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

: Bearbeitet durch User
von Rick (rick)


Angehängte Dateien:

Lesenswert?

Vielleicht hilft auch das Plugin Replicate Layout weiter...

von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Rick schrieb:
> das Plugin Replicate Layout

funzt super und ist eine große Erleichterung.
Dazu müssen die hierachischen Unterschaltpläne jedoch identisch sein, 
d.h. wenn man in einem was ändert, ändern sich alle anderen mit.

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Michael.

Michael schrieb:

> Dazu müssen die hierachischen Unterschaltpläne jedoch identisch sein,
> d.h. wenn man in einem was ändert, ändern sich alle anderen mit.

Richtig.

Wenn man das aber nicht möchte, also einen oder mehrere abweichende aber 
ähnliche hierarchische Unterschaltpläne, den hierachischen 
Unterschaltplan einmal unter einem anderen Namen kopieren, und dann
als der Unterschaltplan der anders sein soll neu als Unterschaltplan 
unter dem neuen Namen einbinden. Änderungen dort referenzieren dann 
nicht mehr auf den "original" Unterschaltplan, sondern auf den neuen.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.dem

von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Bernd W. schrieb:
> der Unterschaltplan der anders sein soll neu als Unterschaltplan
> unter dem neuen Namen einbinden.

Habe ich nie probiert, sehe aber ein paar potentielle Probleme dabei.
Vielleicht kannst Du was dazu sagen:

1. Für Kicad sollten dann die bereits platzierten Bauteile im PCB des 
nunmehr ersetzten Schaltplans nichts mehr mit den neuen 
Schaltplansymbolen gemein haben, auch wenn der neue eine modifizierte 
Version des alten ist.
Ich würde vermuten das bei einem Update des PCB die 'alten' Footprints 
gelöscht und neu zugewiesen werden, d.h. unsortiert neben der PCB 
liegend.
M.E. verwendet Kicad interne Zuweisungen die SCH und PCB Bauteile 
miteinander verbinden, die nichts mit den Bauteilbezeichnern zu tun 
haben.

2. Selbst wenn das klappt, sollte ab da replicate Layout nicht mehr 
übergreifend funktionieren, sondern nur noch für die identischen Pläne.

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Michael.

Michael schrieb:

>> der Unterschaltplan der anders sein soll neu als Unterschaltplan
>> unter dem neuen Namen einbinden.
>
> Habe ich nie probiert, sehe aber ein paar potentielle Probleme dabei.
> Vielleicht kannst Du was dazu sagen:

Ja, ganz unkompliziert ist das nicht. ;O)
Trozdem irgendwie "geradeaus".

>
> 1. Für Kicad sollten dann die bereits platzierten Bauteile im PCB des
> nunmehr ersetzten Schaltplans nichts mehr mit den neuen
> Schaltplansymbolen gemein haben, auch wenn der neue eine modifizierte
> Version des alten ist.

Bei einer Reannotation des Schaltplanes wird im Schaltplan alles mit 
neuen Referenzbezeichnern versehen und ist in sich konsistent.
Bauteilwerte und Footprints bleiben erhalten, wenn Du sie nicht explizit 
geändert hast. Zumindest bei einem Bauteil wirst Du das ja gemacht 
haben, das war ja der Zweck der Angelegenheit.

> Ich würde vermuten das bei einem Update des PCB die 'alten' Footprints
> gelöscht und neu zugewiesen werden, d.h. unsortiert neben der PCB
> liegend.

Ob die alten gelöscht werden, kannst Du bei einem Update auswählen. Und 
in der Tat werden neue zugewiesen und unsortiert (aber der Reihe nach) 
neben das PCB gestellt.*)
Das Kupfer ist ja da, und Du musst nun nur die neuen Bauteile an ihre 
passende Stelle bringen. Wenn Du auch andere Footprints verwendet hast, 
musst Du dann wahrscheinlich auch am Kupfer nachbessern. Ich musste, 
weil ich einige THT durch SMDs ausgetauscht hatte.
KiCad erkennt, ob die plazierten Bauteile per Kupfer zusammenhängen, 
sogar wenn das Raster nicht komplett passt. Die Airwires werden 
entsprechend verbunden, und ein DRC zeigt unverbundenes oder falsch 
verbundenes als Fehler und richtig verbundenes ist entsprechend ok.

Trotzdem musste ich mich sehr konzentrieren, um das richtige Bauteil 
gegen das richtige Original zu tauschen. Und mit dem Raster muss man 
höllisch aufpassen.

> M.E. verwendet Kicad interne Zuweisungen die SCH und PCB Bauteile
> miteinander verbinden, die nichts mit den Bauteilbezeichnern zu tun
> haben.

Richtig. Darum haben sich einige ältere KiCad Versionen verglichen mit 
den ganz alten dort auch etwas störrisch gezeigt.
Die "eindeutigen Objekt Identifikatoren" existieren aber immer noch.
Du siehst sie, wenn Du Schaltplan oder Layout mit einem Texteditor 
öffnest.

>
> 2. Selbst wenn das klappt, sollte ab da replicate Layout nicht mehr
> übergreifend funktionieren, sondern nur noch für die identischen Pläne.

Mit replicate Layout kenne ich mich nicht so aus, aber manuell wie oben 
beschrieben funktioniert es. Habe ich gerade getestet mit einem
Application: KiCad x86_64 on x86_64 Version: 8.0.1, release build
Platform: Freedesktop SDK 23.08 (Flatpak runtime), 64 bit, Little 
endian, wxGTK, X11, gnome-classic-wayland, wayland

*)Ich persönlich fand es besser, die alten Bauteile erst einmal zu 
behalten, zur leichteren Orientierung. Gelöscht habe ich sie dann 
manuell erst unmittelbar vor einem Austausch.

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

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Nachtrag:


Bernd W. schrieb:

>> Ich würde vermuten das bei einem Update des PCB die 'alten' Footprints
>> gelöscht und neu zugewiesen werden, d.h. unsortiert neben der PCB
>> liegend.
> Ob die alten gelöscht werden, kannst Du bei einem Update auswählen. Und
> in der Tat werden neue zugewiesen und unsortiert (aber der Reihe nach)
> neben das PCB gestellt.*)

Vieleicht wichtig Anzumerken:


Beim geänderten Unterschaltplan habe ich den Schaltplan mit dem 
Schaltplaneditor
ganz "normal" als Unterschaltplan geöffnet, und Änderungen getätigt 
(andere Werte, ein zusätzliches Bauteil, andere Footprints), dazu wurde 
kein Layout angelegt.

Ich habe die eingefügte Platinen erstellt, indem ich den originalen 
Unterschaltplan "standalone" geöffnet habe, und dann daraus heraus das 
Layoutmodul geöffnet habe, und dort die Bauteile mit Kupfer verbunden 
habe.
Für den geänderten zweiten Unterschaltplan wurde kein Layout angelegt.
Zum Abschluss eine Reannotation.

Wichtig vielleicht,
1) alle Änderungen wurden Top down mit ganz normal geöffnetem KiCad 
im Hauptschaltplan und den Unterschaltplänen getätigt.
2) Nirgendwo wurde je eine "Backannotation" aus dem Layout zum 
Schaltplan gemacht.


KiCad geschlossen, und die "Hauptplatine" wieder "standalone" mit dem 
Layouteditor geöffnet, und die das Layouts des ersten Unterschaltplanes 
zwei mal importiert.

Alles geschlossen und wieder die "Hauptplatine" normal über KiCad 
geöffnet.
Die überzähligen Bauteile der Unterschaltpläne nach und nach gelöscht 
und durch die "normalen" Bauteile, die ja an der Seite herumstanden, 
ersetzt. Bei Bauteilen des geänderten zweiten Unterschaltplanes konnten 
die Bauteile, wo nur der Wert geändert wurde ebenfalls einfach getauscht 
werden, für die geänderten Footprints und das zusätzliche Bauteil musste 
auch am Kupfer naturgemäß geändert werden.

Zum Schluss noch einmal das Layout aus dem Schaltplan heraus 
aktualisiert.
Wenn dann auf einmal Bauteile herumstehen, hatte man vorher mal die 
falschen gelöscht.

Mein Versuchsprojekt enthielt nur einfache zweipolige Bauteile 
(Widerstände),
und bei genauem Hinsehen habe ich nur Bauteile aus dem "Normal" 
geöffneten Projekt verwendet. Von den importierten Layouts blieb 
letztlich nur das Kupfer über, alle Bauteile wurden glöscht.

Bei den Bauteilen der importierten Layouts trat ja immer der gleiche 
Referenzbezeichner, und weil daraus abgeleitet, vermutlich auch die 
gleiche interne Verbindung auf. Darum waren die Bauteile mit gleichem 
Referenzbezeichner auch immer paralell mit Airwires verbunden.

> *)Ich persönlich fand es besser, die alten Bauteile erst einmal zu
> behalten, zur leichteren Orientierung. Gelöscht habe ich sie dann
> manuell erst unmittelbar vor einem Austausch.

Das gilt so nur für kleine Designs. Bei größeren dürfte das sehr schnell 
sehr unübersichtlich werden.

Wie das im Detail mit replicate Layout geht, weiss ich nicht, aber 
möglicherweise findet sich da auch ein Weg, zumindest kleinere 
Änderungen manuell nachzupflegen.


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

: Bearbeitet durch User
von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Bernd W. schrieb:
> Vieleicht wichtig Anzumerken:

Damit hast Du alles zu Fuss gemacht, was m.E, umständlicher ist als 
gleich ganz regulär jedes Bauteil selber zu Layouten, ohne dabei Gefahr 
zu laufen die PCB - SCH Verbindung zu verlieren.

Sind die erst nicht mehr synchron verliert mal alle erweiterten 
Fähigkeiten und kann das Projekt m.E. wegwerfen oder mühseelig wieder 
zusammenflicken.
Das ist es nicht wert, nur um sich ein wenig Layout Zeit zu sparen die 
hinterher potenziert wieder zubeißt, weil der DRC etwas nicht finden 
konnte oder man sich durch ein Update PCB das Design zerstört hat.
Wochen gehen ins Land, massig Euronen fliessen in Material und 
Bestückung und am Ende habe ich Müll weil ich das Tool vergewaltigt 
habe.

Replicate Layout macht einen guten Job, wenn man sich an ein paar Regeln 
hält.
Ich habe gerade den Fall das ich ein komplexes und sehr enges 2 seitig 
bestücktes 4L DCDC Wandler Layout 4fach auf der PCB habe.
Das habe ich in Rev1 bereit mit Replicate Layout gemacht und nicht 
zuletzt dadurch die Sicherheit das sich alle 4 identisch verhalten, weil 
sie auf den µm gleich gesetzt sind.
Nun habe ich Änderungen die zu Rev2 führen.
Also einen Schaltplan ändern, ein Layout ändern.
Da ich keine schmutzigen Tricks durch die kalte Küche angewendet habe, 
ist stehts alles synchron und jeder Automatismus funktioniert wie er 
soll.

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Michael.

Michael schrieb:

> Damit hast Du alles zu Fuss gemacht, was m.E, umständlicher ist als
> gleich ganz regulär jedes Bauteil selber zu Layouten,

Richtig. Zumindest in nicht trivialen Fällen.
Aber es ist sinnvoll für mich, das mindestens einmal zu Fuß gemacht zu 
haben, damit ich sehe, was im Hintergrund abläuft.
Das hilft mir persönlich, Replicate Layout besser zu verstehen.

Es ist meistens schwer, sich in die Bedienung von Programmen 
einzudenken, die man nicht selber geschrieben hat.

> ohne dabei Gefahr
> zu laufen die PCB - SCH Verbindung zu verlieren.
> Sind die erst nicht mehr synchron verliert mal alle erweiterten
> Fähigkeiten und kann das Projekt m.E. wegwerfen oder mühseelig wieder
> zusammenflicken.

Ein "update aus dem Schaltplan" klärt das meiste. ;O)

> Replicate Layout macht einen guten Job, wenn man sich an ein paar Regeln
> hält.

Das bestreite ich nicht.
Aber Replicate Layout macht wohl im Hintergrund auch nichts anderes, und 
bekommt Probleme, wenn die Schaltungsteile kleine Unterschiede haben.

> Ich habe gerade den Fall das ich ein komplexes und sehr enges 2 seitig
> bestücktes 4L DCDC Wandler Layout 4fach auf der PCB habe.
> Das habe ich in Rev1 bereit mit Replicate Layout gemacht und nicht
> zuletzt dadurch die Sicherheit das sich alle 4 identisch verhalten, weil
> sie auf den µm gleich gesetzt sind.

Wenn alle gleich sind, ist das ja auch kein Problem.

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

: Bearbeitet durch User
von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Bernd W. schrieb:
> bekommt Probleme, wenn die Schaltungsteile kleine Unterschiede haben.

Dann macht es einfach nichts.
Denn nur Unterschaltpläne die alle auf die gleiche .sch Datei verweisen 
sind gleich.
Ich habe z.B. 4 Instanzen einer Power PWM Stufe, die per hierachischer 
Bezeichner außerhalb der Instanz an MCU bzw. Stecker verbunden werden.
Alle referenzieren auf die gleiche 'powerPWM.sch' Datei.
Es kann keine Unterschiede geben, denn wenn ich in einer dieser 
Instanzen etwas ändere passiert das simultan in allen anderen auch, denn 
das ist die gleiche Datei, die von Kicad nur 4fach dupliziert wird, mit 
den geänderten Bezeichnern.

Wenn ich nun eine modifizierte 'powerPWMmod.sch' erzeuge ist das für 
replicate layout etwas völlig anderes, das nichts mit 'powerPWM.sch' zu 
tun hat und auch nicht zur Auswahl für ein repliziertes Layout steht.

Sehr einfach, sehr praktisch, sehr übersichtlich.

Wenn ich jedoch diese 4 Stufen mit jeweils anderen Bauteilwerten 
versehen wollte, ginge das nicht ohne fehleranfälliger Trickserei.
Kommt ja vielleicht in einer späteren Version von Kicad.

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.