Générer les fichiers de fabrication (Gerber) avec l'API Python de pcbnew

Publié le 12 septembre 2026 par leZ

Exportez les fichiers Gerber d'une board par script, sans passer par le dialogue de tracé de KiCad — avec pcbnew ou l'API IPC.

Régénérer manuellement les Gerbers à chaque révision de board depuis le dialogue Fichier → Tracer est vite oublié. Scripter l’export garantit des fichiers de fabrication à jour à chaque build, et s’intègre naturellement dans un pipeline CI qui valide une board avant de l’envoyer chez le fabricant.

Configurer et lancer le tracé

PLOT_CONTROLLER pilote l’export couche par couche. On configure le dossier de sortie, puis on ouvre et referme un fichier de tracé pour chaque couche :

from pcbnew import PLOT_CONTROLLER, PLOT_FORMAT_GERBER, F_Cu

pctl = PLOT_CONTROLLER(board)
popt = pctl.GetPlotOptions()
popt.SetOutputDirectory("gerbers")

pctl.SetLayer(F_Cu)
pctl.OpenPlotfile("F_Cu", PLOT_FORMAT_GERBER)
pctl.PlotLayer()
pctl.ClosePlot()

Avec l’API IPC, l’export passe par un appel de plus haut niveau sur la board, qui gère la configuration des couches en interne :

from kicad import KiCad

kicad = KiCad()
board = kicad.get_board()
board.export_gerbers(output_dir="gerbers", layers=["F.Cu", "B.Cu"])

Exporter le fichier de perçage

Le perçage utilise un contrôleur dédié, EXCELLON_WRITER, séparé du tracé des couches cuivre :

from pcbnew import EXCELLON_WRITER

drill_writer = EXCELLON_WRITER(board)
drill_writer.SetOptions(False, False, board.GetDesignSettings().GetAuxOrigin(), False)
drill_writer.CreateDrillandMapFilesSet("gerbers", True, False)

Même logique côté API IPC, en un seul appel :

board.export_drill_files(output_dir="gerbers")

Pour aller plus loin

Ce script s’intègre directement dans une étape de CI : à chaque commit modifiant un .kicad_pcb, régénérer automatiquement les Gerbers et les comparer à la version précédente permet de détecter tout changement de fabrication non intentionnel avant l’envoi chez le fabricant.