Auditer et compter les vias d'une board avec l'API Python de pcbnew
Listez et comptez les vias d'une board par net, pour repérer un excès ou vérifier une contrainte de fabrication — avec pcbnew ou l'API IPC de KiCad.

Avant d’envoyer une board en fabrication, savoir combien de vias elle contient — et sur quels nets ils sont concentrés — permet de repérer un oubli de dé-duplication ou de vérifier une limite imposée par le fabricant (certains facturent au-delà d’un certain nombre de vias, ou imposent un diamètre minimal selon le nombre).
Lister les vias et les compter par net
GetTracks() renvoie un mélange de pistes et de vias ; on filtre sur la classe de l’objet :
import pcbnew
board = pcbnew.GetBoard()
from collections import Counter
vias = [t for t in board.GetTracks() if t.GetClass() == "PCB_VIA"]
print(f"{len(vias)} vias trouvés")
by_net = Counter(v.GetNetname() for v in vias)
for net, count in by_net.most_common():
print(f"{net}: {count}")Même logique, avec la méthode dédiée aux vias exposée par la board :
from kipy import KiCad
board = KiCad().get_board()
from collections import Counter
vias = board.get_vias()
print(f"{len(vias)} vias found")
by_net = Counter(v.net.name for v in vias)
for net, count in by_net.most_common():
print(f"{net}: {count}")Pour aller plus loin
Le même filtre s’adapte facilement pour vérifier une règle précise — par exemple lever une alerte si un net dépasse un seuil de vias, ou si un via a un diamètre inférieur au minimum imposé par le fabricant — directement dans un script de validation exécuté avant export.