KiCAD8.0.9: Netzklassen zuweisen, Netzklassen abstände

OP #7844115
Lesenswert?

Hallo zusammen,

  • gibt es eine Möglichkeit, im EESchema einer Gruppe von Netzen, z.B. durch Rechteckauswahl oder eine ganze Seite, eine gemeinsame Netzklasse zuzuweisen? Das wäre wirklich komfortabel! Die Zuweisung an benannte Netze habe ich bereits gefunden...

  • Wo kann ich Abstände Netzklasse zu Netzklasse einstellen? Ich meine, daß es das in frühren Versionen gab. Jetzt finde ich es aber nicht mehr.

Gibt es zu der Problematik "Netzklassen" evtl. ein empfehlenswertes Plugin?

Danke & Gruß Axel

OP #7845466
Lesenswert?

Also, heute habe ich mich nochmals mit dem Thema beschäftigt, Doku gelesen, herumgesucht und ausprobiert. Folgendes ist dabei herausgekommen:

  • man kann mehrere Netze mit gedrückter Shift-Taste auswählen; ABER man kann dieser Auswahl nicht direkt eine Netzklasse zuweisen.

  • Es müssen zum zuweisen einer Netzklasse die entsprechenden Netze benannt werden, auch wenn diese bereits intern einen Namen bekommen haben. Wenn Netze nicht schon einen Namen hatten, wie z.B. "CSn_XY", dann habe ich diese mit einem Präfix und eine laufenden Nummer versehen z.B. "CPU_26".

  • Diese durchnummerierten Netze lassen sich dann in einem Editor relativ komfortabel eine Netzklasse zuweisen (Sicherungskopie vorher machen!!). Die Netzklassenzuordnung ist im *.kicad_pro zu finden, das sieht dann in etwa so aus:

    1
    {
    
    2
      "netclass": "LT2",
    
    3
      "pattern": "/Leistungsteil2/LT2_54"
    
    4
    },
    
    5
    {
    
    6
      "netclass": "LT2",
    
    7
      "pattern": "/Leistungsteil2/LT2_55"
    
    8
    },
    
    9
    {
    
    10
      "netclass": "LT2",
    
    11
      "pattern": "/Leistungsteil2/LT2_56"
    
    12
    },
    
  • Dann kommt der zweite Teil, das eigentliche 'constraining'.

  • Im Leiterplatteneditor unter 'Platinenkonfiguration-> Benutzerdefinierte Regeln' habe ich folgendes eingetragen:

1
(version 1)
2
# Clearance for CPU nets to anything else
3
(rule CPU_global_clear
4
   (constraint clearance (min "1mm"))
5
   (condition "A.NetClass == 'CPU' && B.NetClass == 'LT1'"))
6
 # Clearance for Leistungsteil1 (LT1) nets to anything else
7
(rule LT1__global_clear
8
   (constraint clearance (min "1mm"))
9
   (condition "A.NetClass == 'CPU' && B.NetClass == 'LT2'"))
10
 # Clearance for Leistungsteil2 (LT2) nets to anything else
11
(rule LT2_global_clear
12
   (constraint clearance (min "1mm"))
13
   (condition "A.NetClass == 'LT1' && B.NetClass == 'LT2'"))

Die Angabe (version x) ist zwingend. Der Regelname ist unerheblich (rule XYZ). Mit den obenstehenden constraints habe ich es dann geschafft, drei galvanische Inseln mit min. 1 mm auf Abstand zu halten.

In Sachen Benutzerfreundlichkeit ist natürlich noch Luft nach oben.

Gruß Axel

#7846384
Lesenswert?

Axel V. schrieb:

  • gibt es eine Möglichkeit, im EESchema einer Gruppe von Netzen, z.B. durch Rechteckauswahl oder eine ganze Seite, eine gemeinsame Netzklasse

Ab KiCAD 9.0 funktioniert das, mit den 8.x Versionen nicht.

Suche mal hier: https://www.kicad.org/blog/2025/02/Version-9.0.0-Released/ "Net class rule areas"

Damit kannst du (wie es in Altium schon länger geht) Netzklassen über mehrere Netzt anlegen (Rechteck Auswahl)

Du kannst auch so auswählen: https://forum.kicad.info/t/how-do-i-use-the-new-creepage-custom-rules-v9-0-0/59328/9

Ein Grund mehr auf V9 zu wechseln.

Cheers

OP #7846472
Lesenswert?

Ja, das geht schon mal in die richtige Richtung. Dazu muß ich aber erst noch mein Linux hochziehen, um auf die 9er wechseln zu können.

Im Moment habe ich es so gemacht, wie oben beschrieben. Das hat auf jeden Fall den Vorteil, daß man im PCB nichts übersieht.

Danke & Gruß Axel

#8004585
Lesenswert?

Axel V. schrieb:

...

  • Diese durchnummerierten Netze lassen sich dann in einem Editor relativ komfortabel eine Netzklasse zuweisen (Sicherungskopie vorher machen!!). ...

Das geht (mittlerweile?) auch einfach im in den "Netclass Assignments" mit bestimmten Pattern. Man kann z.B. "*" als Wildcard oder den "|" als Trennzeichen verwenden:

https://gitlab.com/kicad/code/kicad/-/issues/21451#note_2682858904

In deinem Fall also z.B.: CPU_(1|2|3|...|26|...)

Grüße

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren