Créer un via avec l'API Python de pcbnew

Publié le 8 septembre 2026 par leZ

Ajoutez, positionnez et dimensionnez un via de traversée sur un PCB par script, avec pcbnew ou l'API IPC de KiCad.

Une grille de vias de stitching autour d’un plan de masse, ou une rangée de vias thermiques sous un footprint : dès qu’il faut poser plus de quelques vias identiques, le placement manuel devient long et peu précis. pcbnew comme l’API IPC permettent de créer ces vias par script, avec un contrôle exact de la position, du diamètre et du perçage.

Créer le via

On instancie un objet PCB_VIA rattaché à la board, puis on l’ajoute :

from pcbnew import PCB_VIA

via = PCB_VIA(board)
board.Add(via)

Avec l’API IPC, la board expose directement une méthode de création :

from kicad import KiCad

kicad = KiCad()
board = kicad.get_board()
via = board.create_via()

Positionner et dimensionner le via

Position, diamètre de pastille et perçage se fixent séparément, en unités internes (nanomètres), converties depuis des millimètres avec FromMM :

from pcbnew import VECTOR2I, FromMM

via.SetPosition(VECTOR2I(FromMM(40), FromMM(25)))
via.SetWidth(FromMM(0.6))
via.SetDrill(FromMM(0.3))

L’API IPC travaille directement en millimètres, sans conversion :

from kicad.geometry import Vector2

via.position = Vector2.from_mm(40, 25)
via.pad_diameter = 0.6
via.drill_diameter = 0.3
board.update_items(via)

Essayez ci-dessous : déplacez les curseurs pour voir comment position, diamètre de pastille et perçage affectent le via sur le PCB.

via.SetPosition(VECTOR2I(FromMM(40), FromMM(25)))
via.SetWidth(FromMM(0.6))
via.SetDrill(FromMM(0.3))
40
25
0.6
0.3

Relier le via à un net

Le via doit être rattaché à un net existant (typiquement GND pour un via de stitching) :

via.SetNet(board.FindNet("GND"))

Même logique côté API IPC, avec une synchronisation explicite :

via.net = board.get_net("GND")
board.update_items(via)

Pour aller plus loin

Placer un via isolé n’est presque jamais le but final. La vraie valeur du scripting est de générer une grille entière de vias de stitching autour d’un plan de masse, ou une rangée de vias thermiques sous un footprint de puissance, en quelques lignes de boucle plutôt qu’à la main.