Forum: Platinen Diskussion: Netzklassen-Zuweisung in Kicad


von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

In diesem Thread

Beitrag "Altium: Reaktivierungsprogramm endet wohl dieses Jahr"

hatte Max M. angeregt, dass er sich eine Möglichkeit wünscht, grafisch 
Netzklassen an mehrere Netze auf einmal zuzuweisen. Ich hatte daraufhin 
angeregt, dass man alle aktuell markierten Netze ja im 
Netzklassen-Editor ebenfalls gleich voreingestellt markieren könnte.

Nun habe ich mir mal den Git-Stand herunter geladen und erstmal 
reingeschaut. Wenn ich EEschema starte (ohne Projektmanager) und eine 
simple Schaltung anlege, sehe ich allerdings im Netzklassen-Editor 
schlicht kein einziges Netz. Da wäre nun die Frage: ist das ein Bug, 
oder ist das ein neues Feature in Kicad 7?

Dafür gibt es jetzt Netzklassen-Direktiven im Schaltplan, also kleine 
"Pömpel", die man an ein Netz drankleben kann. Löst allerdings nicht 
Max' problem, weil man diese ja als grafische Elemente wieder jeweils 
nur an ein Netz hängen kann.

von Max M. (Gast)


Lesenswert?

Netze werden nur noch angezeigt, wenn man im Feld 'Netzklassenzuweisung' 
den passenden Netznamen eingibt.
Trage mal wildcard '*' ein.
Dann werden alle angezeigt.
'Netzklasse' weist ALLEN Netze die auf den Namen bzw. Wildcard passen 
diese Netzklasse zu.
Und es wird noch besser:
Man kann allen Netzen, alle Netzklassen zuweisen.
(jeweis Wildcard + andere Netzklasse)
Der erste Eintrag gewinnt.

Ich kann aber nicht sehen was alles in einer Netzklasse ist oder wie in 
der V6 den einzelnen Netzen eine Klasse zuweisen.

Mit selektiertem wire kann man im Kontexmenü jetzt eine 
Netzklassenanweisung (Pömpel) hinzufügen, die aber mit dem Feld 
Netzklassenzuweisung im Netzklasseneditor nichts zu tun zu haben 
scheint.
Sinnloser Text wird akzeptiert. Scheint nicht mehr zu tun als einen 
störenden Beschriftungsmarker hinzuzufügen. Wozu, was kann der?

Warum habe ich in den Eigenschaften eines Wires oder der dazugehörigen 
Leiterbahn keine Netzklasse, zum ansehen und einstellen?
Wo kann ich denn jetzt überhaut noch sehen was welcher Netzklasse 
zugeordnet ist?

Das ist ja furchtbarer als furchtbar.
Nun bleibt einem nichts anderes mehr übrig als JEDES Popelnetz manuel 
nach einem filterbaren Sclüssel zu beschriften, damit man überhaupt noch 
eine Chance hat dem ein Netz zuzuweisen.
Was Netzklassen und Zuweisungen zu selbigen angeht scheinen sich die nun 
vollkommen im Nirvana zu verfransen.

Also wenn das die Lösung ist, dann möchte ich bitte mein Problem zurück.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Na, krieg dich mal wieder ein. :-)

Das Ganze ist aktuell ein Entwicklungsstand. Da sie offenbar einiges 
umgebaut haben, wäre es nicht verwunderlich, wenn das alles noch nicht 
ganz fertig ist.

Dann wird's natürlich aber nichts mit einem schnellen Designvorschlag, 
wie ich ihn mir dachte. Erstmal muss ja das rund laufen, was da jetzt 
angefangen ist.

von Der nette Onkel (Gast)


Angehängte Dateien:

Lesenswert?

Max M. schrieb:
> Warum habe ich in den Eigenschaften eines Wires oder der dazugehörigen
> Leiterbahn keine Netzklasse, zum ansehen und einstellen?


Kannst du doch.

Signal im Schaltplan auswählen -> rechte Maustaste > Netzklasse 
zuweisen.

> Wo kann ich denn jetzt überhaut noch sehen was welcher Netzklasse
> zugeordnet ist?

Menüleiste -> Datei -> Schaltplan einrichten -> Projekt -> Netzklassen

Dort wird jedes im Schaltplan vorhandene Signal gelistet, das du deinen 
gewünschten Netzklassen zuordnen kannst.

Oder habe ich da was mißverstanden?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Der nette Onkel schrieb:
> Oder habe ich da was mißverstanden?

Ja, falsche Kicad-Version.

Es geht um Zukunftsmusik, also musst du dir den aktuellen 
Entwicklungsstand ansehen. Wie Max schreibt, ist da einiges anders als 
in 6.x. Noch nicht unbedingt zum besseren aktuell. ;-)

von Max M. (Gast)


Lesenswert?

Jörg W. schrieb:
> Erstmal muss ja das rund laufen, was da jetzt
> angefangen ist.

Ich schlage nur gerade die Hände über den Kopf zusammen.
Ich wollte das die Begrenzung fällt das nur manuel umbeschriftete Netze 
einer Klasse zugewiesen werden dürfen und das man alle selektierten 
Netze einer Klasse zuweisen kann. Das wurde ablehnt weil die Gui nicht 
weiter verkompliziert werden sollte !?

Nun darf ich 300 wires manuel einen kleinen Pömpel mit Beschriftung 
verpassen um jede einzeln einer Netzklasse zuzuweisen.
Man kann die Beschriftung ausstellen und dann ist es nur noch ein Punkt, 
Raute, Rechteck oder so, aber es stört in komplexeren Plänen optisch 
phänomenal und man muss händisch JEDEM Wire das da irgendwie zugehört so 
ein Ding verpassen.

Man lasse sich das mal auf der Zunge zergehen:
Ich zeichne ein Netz.
Kontexmenü - Netzklasse zuweisen
'Fehler, nur beschriftete Netze können zugewiesen werden'
Also Bezeichner zufügen 'blafaselhummeldumm'
Kontexmenü - Netzklasse zuweisen
'Klar, welche möchtest Du denn?'

Oder ich setze einen fetten Marker, der länger ist als kurze wires, 
setze den Namen auf nicht anzeigen und kopiere den 300mal auf einfach 
jedes wire das zu dieser Netzklasse gehören soll.

Das ist nun die einfache Lösung, die die Gui nicht noch weiter aufbläst?

Der nette Onkel schrieb:
> Signal im Schaltplan auswählen -> rechte Maustaste > Netzklasse
> zuweisen.
NEIN.
Das geht NUR bei beschrifteten Netzen. Du hast das Signal mit A0 
beschriftet. Der automatisch vergebene Name Net-(C109-Pad1) geht nicht.
Es MUSS Text an dem wire stehen.
Und Du hast die V6, wir reden über die Neuerungen der V7.
In der 7er sieht man die Netznamen und ihre Klasse nicht mehr.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Du musst ja nicht den Pömpel zeichnen. Der ist eher eine Hilfe, damit 
man bestimmte Netzklassen auch im Schaltplan erkennen kann.

Diese scheint dann ein Override zur globalen Zuweisung zu sein. Siehe 
Beispiel: ich habe G* und V* ganz oben zur Netzklasse Power zugewiesen, 
die rot gezeichnet wird. Dann habe ich  Q  zur Netzklasse Signal 
zugewiesen, die blau gezeichnet wird. Anschließend habe ich den Pömpel 
an den Kollektor mit Netzklasse Default geklebt, sie wird daraufhin 
grün.

Diese Netzklassen sind auch im Layout so wirksam: wenn ich ihnen 
unterschiedliche Leiterbahnbreiten zuweise, bekomme ich die auch 
netzklassenabhängig genau so.

Positiv: die globale Netzklassenzuweisung ist im Schaltplan und Layout 
jetzt gleich aufgebaut, und die Wildcards werden "live" ausgewertet und 
dir rechts die passenden Netze angezeigt.

Negativ: Netze, die infolge höherer Priorität schon weiter oben gematcht 
sind, werden trotzdem genauso noch mit als passend angezeigt. (Man 
könnte sie ja zumindest ausgrauen.)

Negativ: Explizit zugewiesene Netze (der "Pömpel") werden ebenfalls 
nicht hervorgehoben.

Negativ: der "Properties"-Dialog zeigt weder im Schaltplan noch im 
Layout die Netzklasse an.

Wofür die Limitierung in der GUI ist, dass man nur explizit benannten 
Netzen eine Klasse zuweisen kann, erschließt sich mir auch nicht.

Was ich mir vorstellen könnte, um meine ursprüngliche Idee aufzugreifen: 
man könnte im Schaltplan markierte Netze in Netzklassen-Dialog optional 
(per rechter Maustaste?) in das match-Feld für die Netzwerknamen 
einfügen. Allerdings darf man dort aktuell nur einen Wildcard-Ausdruck 
angeben, keine durch Komma getrennte Liste.

: Bearbeitet durch Moderator
von Max M. (Gast)


Angehängte Dateien:

Lesenswert?

Jörg W. schrieb:
> ich habe G* und V* ganz zur Netzklasse Power zugewiesen, die
> rot gezeichnet wird. Dann habe ich Q zur Netzklasse Signal zugewiesen,

Mit den Filtern zugewiesen?
Nun habe ich aber unzählige automatisch benannte Netze.
Die heißen alle Net-('Ref bezeichner'-'Pin-nr').
Wie soll ich die mit einem Filter zuweisen, wenn Net-(C109-Pad1) zu 
Netzklasse_0815_Standard und Net-(C109-Pad2) zu Netzklasse_4KV gehört?

Und wie soll ich 200 Netze manuel mit telling names benennen die auf 
Netzklasse-4KV dutzende an Bauteilen verbinden, oft mit Verbindungen die 
nur zwei aneinandergelegte Bauteil-Verbindungsstellen sind?

Muss ich jetzt die Verbingung zwischen Gate und Vorwiderstand lang genug 
machen um den Namen '4KV_T214_G' unterzubringen, damit ich nach 4KV* 
Filtern kann, oder muss ich jetzt jeder dieser Verbindungen lang genug 
machen damit da ein Netzklassenmarker draufpasst?

Das ist doch alles nicht zuende gedacht.

von Max M. (Gast)


Lesenswert?

Jörg W. schrieb:
> Was ich mir vorstellen könnte, um meine ursprüngliche Idee aufzugreifen:
> man könnte im Schaltplan markierte Netze in Netzklassen-Dialog optional
> (per rechter Maustaste?) in das match-Feld für die Netzwerknamen
> einfügen.

Das wäre mir recht.
Ich kann den ganz Filterkram komplett links liegen lassen, die 
Netzklassenmarker meiden, muss keine Beschriftungen machen und kann 
einfach selektieren, zuweisen, fertig.

Die Farbzuweisung der Netze ist zumindest hilfreich das kenntlich zu 
machen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Btw., habe gerade gesehen, dass sich die aktuelle Version 7.0.0-rc2 
nennt.

Da werden sie also maximal noch Bugfixes bis zum Release akzeptieren.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jörg W. schrieb:

> Negativ: Netze, die infolge höherer Priorität schon weiter oben gematcht
> sind, werden trotzdem genauso noch mit als passend angezeigt. (Man
> könnte sie ja zumindest ausgrauen.)
>
> Negativ: Explizit zugewiesene Netze (der "Pömpel") werden ebenfalls
> nicht hervorgehoben.

Die gesamte Tabelle wird nur anhand von Netznamen aufgebaut. Die 
Zuweisung der Netzklassen erfolgt offenbar erst, wenn der Dialog beendet 
wird. Dadurch ist es mit dem aktuellen Code nicht möglich, diese beiden 
Punkte einfach so in der Tabelle zu berücksichtigen.

> Wofür die Limitierung in der GUI ist, dass man nur explizit benannten
> Netzen eine Klasse zuweisen kann, erschließt sich mir auch nicht.

Die Limitierung ist rein technischer Natur: da wird irgendein Zeiger 
abgefragt, ob er nicht NULL ist, weil er danach dereferenziert werden 
soll. Könnte sich vielleicht beheben lassen.

von Max M. (Gast)


Lesenswert?

Jörg W. schrieb:
> mit dem aktuellen Code nicht möglich

Mist.
Hat ein wire überhaupt die Eigenschaften des verbundenen Netzes und wäre 
es über einen Eigenschaftsdialog eines Wires möglich Netzen Klassen 
zuzuordnen?
Farbe, breite und sonst nix.

Wie kompliziert schätzt Du wäre es diese Begrenzung der Netzzuweisung 
rauszunehmen? (Nur beschriftete Netze können zugewiesen werden)
Das wäre zwar immer noch Fleißarbeit jedes Netz per 'Kontexmenü - Netz 
zuweisen' zu beackern, aber durch die Farbzuweisung wäre das machbar.
Nur Wires mit der länge Null (Bauteile direkt aneinander) funktionierten 
dann nicht.

Oder wenn man die neuen Netzmarker komplett auf unsichtbar stellen 
könnte, wäre auch viel gewonnen.
Zuweisung über die Marker wie jetzt vorgesehen, aber ohne sich den 
Schaltplan weiter zuzumüllen und den unlesbar zu machen.
Will man das optisch unterscheiden kann man den Netzklassen ja 
unterschiedliche Farben zuordnen.

Ich kann das nur überhaupt nicht einschätzen da meine SW Skills mit Hut 
unterm Teppich durchpassen.

von Dirk F. (dirkf)


Lesenswert?

Max M. schrieb:
> Wie kompliziert schätzt Du wäre es diese Begrenzung der Netzzuweisung
> rauszunehmen? (Nur beschriftete Netze können zugewiesen werden)

Das halte ich auch für ein sehr wichtigen Punkt für die neue Version 
!!!!!

von Max M. (Gast)


Lesenswert?

Dirk F. schrieb:
> Das halte ich auch für ein sehr wichtigen Punkt

Bitte trage das auch im Bugtracker als Feature Request ein. Wurde damals 
leider abgelehnt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Max M. schrieb:
> Bitte trage das auch im Bugtracker als Feature Request ein.

Warum nicht als Bug?

Wenn man das von dir beschriebene Verhalten dokumentiert (Netznamen 
zuweisen, wieder wegnehmen, danach geht es trotzdem), dann ist es schwer 
erklärbar, warum das unbedingt so sein muss.

von Max M. (Gast)


Lesenswert?

Jörg W. schrieb:
> Warum nicht als Bug?
Ich glaube die wollen das so.
Ich habe eine Vermutung warum das schwer zu ändern ist. (s.u.)

> Wenn man das von dir beschriebene Verhalten dokumentiert (Netznamen
> zuweisen, wieder wegnehmen, danach geht es trotzdem), dann ist es schwer
> erklärbar, warum das unbedingt so sein muss.
Ich habe das gerade bei der 6er und 7er nochmal ausprobiert.
Da hab ich was falsches behauptet.
Bezeichner hinzufügen, Netz heißt jetzt wie der Bezeichner und kann 
zugewiesen werden.
Bezeichner löschen, Netz bekommt wieder den alten Namen und kann nicht 
mehr zugewiesen werden.

Ich vermute der Grund liegt irgendwo im Handling der Wires.
Ist ja auch auffällig das ein Wire nur die Eigenschaften einer 
grafischen Linie hat und das nur für das selektierte Segment.
Erst wenn ich eine Bezeichnung (oder den Marker in V7) ans Wire hänge, 
bekommt es einen zusätzlichen Eigenschaftdialog.
Das Wire Segment an sich, mit Farbe und Breite und separat die 
übergeordnete Eigenschaft mit dem Netznamen.
Da sind nun lustige Sachen möglich. (nur mit V6 getestet)
Ich kann zwar den Bezeichner nicht unsichtbar machen, aber ich kann den 
auf Schriftgröße 0,01mm stellen, was den unsichtbar macht.
Ich behalte die Fähigkeit eine Netzklasse zuzuordnen. (klar)
Man kann auch viele weitere Bezeichner auf das selbe Wire pappen.
Clickt man auf den jeweiligen Bezeichner, wird in der Statuszeile unten 
angezeigt Bezeichner 'xyz' Netz /Pgood (mein Testnetz).
D.H. jeder Bezeichner ist individuell benannt, der Netznahme bleibt aber 
der des ersten Bezeichners.
Nehme ich jetzt den ersten Bezeichner weg, erhält das Netz den Namen des 
zuletzt gesetzten Bezeichners. Nehme ich den weg, den Namen des davor 
gesetzten Bezeichners.
Der Bezeichner ändert also nicht eine Eigenschaft des Wires, er fügt dem 
Wire anscheinend seine eigene Eigenschaft hinzu.
Der Bezeichner hat die Eigenschaft 'Text' und die Eigenschaft 
'Netzname'.
Das Netz scheint auch intern seinen alten Namen zu behalten, sonst würde 
der ja nicht so wieder hergestellt werden wie er durch die Reihenfolge 
der Verdrahtung mal automatisch gesetzt wurde.
Die Eigenschaft 'Netzklasse' verbleibt aber beim Wire, wenn ich einzelne 
Bezeichner entferne.
Entferne ich alle Bezeichner, verliert das Netz die Netzklassenzuordnung 
und ist erst mit einem neuen Bezeichner wieder zuzuordnen.

Ganz anders bei einem Layout Track.
Bei dem kann ich über die Eigenschaften die Breite dieses Segmentes 
ändern UND das Netz des gesammten Tracks inkl. aller angeschlossener 
Pads.

Kannst Du damit was anfangen?

von Dirk F. (dirkf)


Lesenswert?

Folgendes Beispiel aus der Praxis:
Ich habe einen Spannungsteiler für Hochspannung aus 100 Widerstände in 
Reihe.
Dann muss ich 99 mal verschiedene Netznamen vergeben, bevor man die 
Netzklasse ändern kann ????

von Max M. (Gast)


Lesenswert?

Dirk F. schrieb:
> Dann muss ich 99 mal verschiedene Netznamen vergeben, bevor man die
> Netzklasse ändern kann ????

Derzeit ist das so.
Nur das Du das bei der V6 noch im Editor machen kannst, bei der V7 aber 
nur noch über 99 Marker, die ziemlich fett und störend daherkommen.

Ich denke das ist unseren Schwachstromartisten nicht ganz klar, was das 
für ein Hemmniss ist.
Ich habe gerade ein Netzteil wie anno dazumal unter Eagle layoutet, d.H. 
die Abstände selbst per Auge und Raster gehalten, weil die ganzen Custom 
Design Rules nunmal fürn Arsch sind, wenn ich dutzende an Netzen auf 
diese Art einer Klasse zuweisen muss.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Max M. schrieb:
> Nur das Du das bei der V6 noch im Editor machen kannst, bei der V7 aber
> nur noch über 99 Marker, die ziemlich fett und störend daherkommen.

Nein, du kannst das in der V7 über den globalen Dialog auch noch machen, 
ohne Marker.

von Max M. (Gast)


Lesenswert?

Jörg W. schrieb:
> du kannst das in der V7 über den globalen Dialog auch noch machen,

Mit den Filtern.
Um aber das Netz zu sehen das ich einer Klasse zuweisen will, muss ich 
einen Filter eingeben der nur dieses Netz anzeigt, weil man nicht dem 
Netz, sondern dem Filter eine Klasse zuweist.
Also im Schaltplan Netznamen herausfinden bzw, Telling Names vergeben 
und dann diesen einen Netznamen finden, bzw. alle Netz mit Namen '4KV*'.
Und da mehrere Filter auch mehrmals das gleiche Netz selektieren können, 
muss ich auf die Reihenfolge aufpassen, weil der erste Filter gewinnt.

Oder liege ich da falsch?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nee, passt schon.

Beitrag #7334974 wurde von einem Moderator gelöscht.
Beitrag #7335323 wurde von einem Moderator gelöscht.
Beitrag #7335324 wurde von einem Moderator gelöscht.
von Dirk F. (dirkf)


Angehängte Dateien:

Lesenswert?

Hallo,
habe eben KICAD 7 installiert.
Das mit den Netzklassen zuweisen ist jetzt schön gelöst:
Mit dem Netzklassenlabel kann man auch unbeschriftete Netze, auch 
mehrere  einfach über copy&Paste zuweisen.
Damit kann ich leben.

von Max M. (Gast)


Lesenswert?

Dirk F. schrieb:
> Damit kann ich leben.

Dann beschrifte mal 100 Netze auf der sek Seite eines Schaltwandlers, 
vom ersten bis zum allerletzen Schnipsel.
Die Vorraussetzung diese Netzklasse über custom rules besonderen Abstand 
zu geben.

Sieht toll aus, wenn 100 Netzlabels wie mit der Schrotflinte über den 
Schaltplan verteilt werden.
Wenn man wenigstens die Darstellung des Netzklassenlabels auf unsichtbar 
stellen könnte.

von Dirk F. (dirkf)


Lesenswert?

Max M. schrieb:
> Wenn man wenigstens die Darstellung des Netzklassenlabels auf unsichtbar
> stellen könnte.

Stimmt. Das wäre gut.

Noch was:  Ich liebe die neuen Shortcuts  X  und F in KICAD 7 beim 
routen.

von Wühlhase (Gast)


Lesenswert?

Dirk F. schrieb:
> Noch was:  Ich liebe die neuen Shortcuts  X  und F in KICAD 7 beim
> routen.

Aus reiner Neugier: Was machen die denn?

von Dirk F. (dirkf)


Lesenswert?

Wühlhase schrieb:
> Aus reiner Neugier: Was machen die denn?

X Startet Routing  (nicht neu)
F Finish  verlegt die Leiterbahn selbstständig fertig

von Martin Z. (Firma: Chiemgau Control) (maschdei)



Lesenswert?

Hallo Zusammen,

bin auch über die genannte KiCAD Verschlechterung gestolpert und habe 
einen  Workaround der unter Umständen etwas Zeit spart.

 1. Im Netzinspektor, mit dem Button "Protokolldatei erstellen" alle 
Netze in eine csv-Datei exportieren (siehe Bild 
PIC_Netzinspektor_2023-07-11.PNG)

2. In der csv-Datei eine weitere Spalte neben "Netzname" einfügen. In 
die eingefügte Spalte dann die Namen der Netzklassen eintragen (siehe 
Bild PIC_CSV-Ergaenzung_2023-07-11.PNG). Dann die beiden Spalten 
markieren und in die Zwischenablage kopieren.

3. Anschließend im PCB-Editor das Fenster "Netzklassen" öffnen. Dann 
muss leider im Fenster "Netzklassen-Zuweisungen" das + so oft gedrückt 
werden, wie die Anzahl der zuweisenden Netze ist. Dann die leeren Zeilen 
markieren und den Text aus der Zwischenablage einfügen (siehe Bild 
PIC_Netzklassen_2023-07-11.PNG)

Vielleicht hilft das dem Ein oder Anderen schon mal ein wenig.

Viele Grüße

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.