Créer une zone d'interdiction de routage (keepout) avec l'API Python de pcbnew

Publié le 13 septembre 2026 par leZ

Réservez par script une zone où aucune piste, via ou cuivre ne pourra être placé — autour d'un connecteur ou d'une antenne — avec pcbnew ou l'API IPC.

Une zone d’interdiction (keepout) empêche pistes, vias et remplissage de cuivre d’empiéter sur une région précise — typiquement autour d’un connecteur mécanique, d’une antenne, ou d’une découpe de board. Elle se construit comme une zone de cuivre classique, avec des drapeaux d’interdiction en plus.

Créer une zone de type “rule area”

SetIsRuleArea(True) transforme la zone en zone de règle plutôt qu’en zone de cuivre remplie, puis chaque drapeau active une interdiction spécifique :

from pcbnew import ZONE, F_Cu

zone = ZONE(board)
zone.SetIsRuleArea(True)
zone.SetLayer(F_Cu)
zone.SetDoNotAllowTracks(True)
zone.SetDoNotAllowVias(True)
zone.SetDoNotAllowCopperPour(True)
board.Add(zone)

Avec l’API IPC, les mêmes interdictions se déclarent à la création :

from kicad import KiCad

kicad = KiCad()
board = kicad.get_board()
zone = board.create_zone(layer="F.Cu", rule_area=True)
zone.keepout_tracks = True
zone.keepout_vias = True
zone.keepout_copper_pour = True
board.update_items(zone)

Définir le contour

Le contour se construit exactement comme pour une zone de cuivre classique :

from pcbnew import SHAPE_POLY_SET, FromMM

outline = SHAPE_POLY_SET()
outline.NewOutline()
for x, y in [(0, 0), (50, 0), (50, 30), (0, 30)]:
    outline.Append(FromMM(x), FromMM(y))
zone.SetOutline(outline)

Là aussi, même logique que pour la zone de cuivre standard :

from kicad.geometry import Vector2

points = [(0, 0), (50, 0), (50, 30), (0, 30)]
zone.outline = [Vector2.from_mm(x, y) for x, y in points]
board.update_items(zone)

Essayez ci-dessous : ajustez largeur et hauteur pour voir la zone d’interdiction évoluer sur le PCB.

outline.NewOutline()
for x, y in [(0, 0), (50, 0), (50, 30), (0, 30)]:
    outline.Append(FromMM(x), FromMM(y))
50
30
INTERDIT

Pour aller plus loin

La même mécanique sert à protéger une zone de montage mécanique, à garder une antenne dégagée de tout plan de masse, ou à interdire le routage sous un connecteur à travers plusieurs zones de règle empilées sur les couches concernées.