Créer une zone de cuivre sur plusieurs couches avec l'API Python de pcbnew

Publié le 22 septembre 2026 par leZ

Appliquez une même zone à plusieurs couches à la fois via un LSET, plutôt que de la dupliquer couche par couche — avec pcbnew ou l'API IPC.

Une seule zone de cuivre remplie à la fois sur F.Cu et B.Cu, définie par un LSET en Python dans KiCad
Une seule zone, remplie sur F.Cu et B.Cu.

Le tuto zone de cuivre crée une zone sur une seule couche via SetLayer. Pour un plan de masse identique sur le dessus et le dessous de la board, SetLayerSet applique la même zone à un ensemble de couches en un seul objet, plutôt que d’en dupliquer une par couche.

Appliquer la zone à plusieurs couches

LSET (Layer Set) représente un ensemble de couches ; on l’assigne à la zone avec SetLayerSet :

from pcbnew import LSET, F_Cu, B_Cu

layers = LSET()
layers.AddLayer(F_Cu)
layers.AddLayer(B_Cu)
zone.SetLayerSet(layers)

Même idée : zone.layers accepte directement une liste de couches (résolues par nom via get_layer_by_name), plutôt qu’une seule couche :

from kipy import KiCad

board = KiCad().get_board()
zone.layers = [board.get_layer_by_name("F.Cu"), board.get_layer_by_name("B.Cu")]
board.update_items(zone)

Pour aller plus loin

Une zone multicouche partage le même contour sur toutes les couches sélectionnées — utile pour un plan de masse symétrique, mais si les couches doivent avoir des contours différents (par exemple pour éviter des composants différents de chaque côté), il faut repasser par des zones séparées, une par couche.