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 :
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, en filtrant les éléments de la board par type :
from collections import Counter
vias = [item for item in board.get_items() if item.type == "via"]
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.