Router une piste avec l'API Python de pcbnew
Créez une piste de cuivre entre deux points, avec une largeur définie, par script — avec pcbnew ou l'API IPC de KiCad.
Router à la souris une nappe de pistes identiques (un bus de données, une série de connexions vers un connecteur) est répétitif et propice aux erreurs de largeur. Scripter la création de pistes garantit une largeur et un tracé reproductibles, point de départ de tout routeur automatique maison.
Créer la piste
On instancie un objet PCB_TRACK rattaché à la board, puis on l’ajoute :
from pcbnew import PCB_TRACK
track = PCB_TRACK(board)
board.Add(track)Avec l’API IPC, la board expose directement une méthode de création :
from kicad import KiCad
kicad = KiCad()
board = kicad.get_board()
track = board.create_track()Définir le tracé, la largeur et la couche
Le début et la fin de la piste se fixent en unités internes, la largeur et la couche séparément :
from pcbnew import VECTOR2I, FromMM, F_Cu
track.SetStart(VECTOR2I(FromMM(10), FromMM(20)))
track.SetEnd(VECTOR2I(FromMM(40), FromMM(20)))
track.SetWidth(FromMM(0.25))
track.SetLayer(F_Cu)L’API IPC travaille directement en millimètres, sans conversion :
from kicad.geometry import Vector2
track.start = Vector2.from_mm(10, 20)
track.end = Vector2.from_mm(40, 20)
track.width = 0.25
track.layer = "F.Cu"
board.update_items(track)Essayez ci-dessous : ajustez la longueur et la largeur pour voir la piste évoluer sur le PCB.
Relier la piste à un net
Comme pour un via, la piste doit être rattachée à un net existant :
track.SetNet(board.FindNet("GND"))Même logique côté API IPC, avec une synchronisation explicite :
track.net = board.get_net("GND")
board.update_items(track)Pour aller plus loin
Ce squelette se généralise à une boucle qui relie automatiquement une série de pads entre eux — la base d’un petit routeur maison pour des topologies répétitives (bus, rangées de connecteurs), plutôt que de tracer chaque piste à la main.