Der Filter plt2cnc.py (Rechte Maustaste, Ziel speichern unter...) kann mit folgenden Argumenten gestartet werden:
Wir haben ein Elektronikprojekt mit KiCad entwickelt und ein Platinen
Layout mit KiCad PCB erstellt. Die Platine ist entweder einseitig mit
Kupfer beschichtet, oder wie hier beschrieben eine Lochraster Platine
mit durchgehenden horizontalen Leiterbahnen.
Um die Funktion zu verdeutlichen wurde eine Testzeichnung mit KiCad
PCB erstellt. Der Weg des Gravierfräsers wird z.B. auf dem User.Drawings
erstellt.

(Für Vollbild, rechte Maustaste, Grafik in Menü Tab öffnen)
Um Kreise, Bögen und schräge Linien zu testen, wurden solche
gezeichnet. Außerdem soll das Filter Programm zusammenhängende Objekte
erkennen und den Weg des Fräsers so optimieren, dass möglichst wenig
Z-Bewegungen nötig sind. Um zusammenhängend zu fräsen, schließt man
Linien und Bögen möglichst ohne Abstände. Um Stummel oder Sackgassen
anzuschließen, kann man diese leicht versetzt anordnen und auch einen
"Rückweg" zeichnen so dass diese nicht als einzelne Linien bearbeitet
werden sondern auch als zusammenhängende Linie. Dazu müssen die Abstände
größer als die Toleranz sein (siehe weiter Unten bei Rundungsfehler und
Toleranz)

PCB Plot Referenz ist Unten-Links im Blatt-Begrenzungsrahmen. Auf dem
PCB Programm ist Y aber oben. Deshalb hat Y den Offset der Blattgröße,
z.B. 210mm (Koordinaten werden im KiCad angezeigt). Um 1:1 auf CNC
umzuwandeln, muss also keine Achse gespiegelt werden. Beim Spiegeln
ändert das Vorzeichen der entsprechenden Achse.
Der Board Nullpunkt ist dann also von Unten-Links gemessen bzw. vom
KiCad PCB die X-Position und die Blatt-Höhe minus Y-Position.
Beispiel: Board Unten-Links ist im KiCad PCB bei X127.00, Y127.00,
Blatthöhe=210, somit ist -zy=83 (210 - 127), X und Y gespiegelt (als
Test).
Die Datei PLT2CNC-User_Drawings.plt wird von KiCad so generiert (Projektname-Layername.plt)
V12
F200
PX0Y0
:...> ./plt2cnc.py PLT2CNC-User_Drawings.plt -zx=127 -zy=83 -mx -my -i=V12 -i=F200 -i=PX0Y0 PLT2CNC.cnc
Daraus resultiert dieses CNC Programm.
Die ersten Zeilen sind:
-i=V12, Simulationsmodus um das erst zu simulieren.
-i=F200, Fräsvorschub 200mm/min ist zwingend nötig da die Maschine sonst stehen bleibt.
-i=PX0Y0, starte zuerst bei X0 und Y0 im Eilgang.
Nach dem Umwandeln kann das CNC Programm mit der Simulation getestet werden, wie im CNC Projekt beschrieben. Lässt man es laufen und zeichnet die Daten in eine .csv-Datei auf, kann man diese im Excel/Libreoffice importieren und daraus ein X-Y Diagramm einfügen. In dem Beispiel zeigt sich folgendes Bild:

Das entspricht der Zeichnung von KiCad. Die beiden Achsen wurden
dabei gespiegelt wie beim Umwandeln in der Kommandozeile mit -mx und -my
angegeben.
Bei dem Projekt wurde das Layout für eine Lochraster-Platine mit horizontalen einseitigen Leiterbahnen erstellt.

Im User.Drawings Layer wurde der Weg des Gravierfräsers gezeichnet um die Leiterbahnen schnell und zuverlässig zu unterbrechen.

Danach wird wie oben beschrieben eine HPGL Plotdatei exportiert und danach mit plt2cnc.py umgewandelt. In diesem Fall wird nur die Y-Achse gespiegelt, da die Platine horizontal überschlagen auf der Rückseite bearbeitet werden soll. Um Sicherzustellen, dass der Fräser am richtigen Ort läuft, wurde ein Rechteck gezeichnet und separat exportiert und umgewandelt. Lässt man das separat laufen, kann man sicherstellen, dass die Platine auf der Maschine korrekt ausgerichtet wurde.
Die bearbeitete Platine sieht dann so aus.

Es gibt ein zweites Filter-Programm um eine Bohrloch-Datei in ein CNC Programm umzuwandeln, nämlich drl2cnc.py (Rechte Maustaste, Ziel speichern unter...). Damit kann man die Platine auch aus dem Vollen Fräsen und Bohren. So können 2-Seitige Platinen hergestellt werden. Entsprechend benötigt man 2-Seitig mit Kupfer beschichtete Platinen. Das drl2cnc.py kann mit folgenden Argumenten gestartet werden:
drl2cnc [-i=init] [-t=cmd] Input.drl [Output.cnc], wobei:
-i=Init cnc, mehrfach möglich z.B -i=V12 -i="P X0 Y0"
-t=Tool Header, vor dem T Kommando um eine Position zum Werkzeugwechsel einzufügen, z.B -t="X -10 Y -20"
Input.drl = Eingabedatei, Output.cnc = Ausgabedatei oder Console falls keine angegeben.
Um von der Rückseite zu bohren, bei den Optionen "Datei - Fabrication Outputs - Drill Files" "Spiegelung an Y-Achse" wählen. So kann man die Unterbrücke Fräsen und Löcher bohren ohne neu einzurichten. Der Drill Nullpunkt und der Board Nullpunkt beim Umwandeln mit plt2cnc.py müssen aber übereinstimmen.
Dann den Knopf "Bohrdatei erzeugen" anklicken.
Nun die Datei Platine.kicad_pcb mit drl2cnc.py umwandeln bzw. filtern z.B. mit:
:...> ./drl2cnc.py -i=V12 -i="P X0 Y0" -t="X -10 Y -20" PlatineNew.drl PlatineNew.cnc
KiCad schließen.
Drill Werte listen mit :...> grep drill Platine.kicad_pcb
Nun sieht man eine Liste der Objekte mit Bohr-Werten. z.B.
(pad "1" thru_hole circle (at 0 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)Um nun alle Löcher von 0.8 1mm zu ändern, kann man mit dem Tool "sed" den Text mit dem Parameter 's/(drill 0.8)/(drill 1)/g' ersetzen. Die Filter Parameter 's/(drill 0.8)/(drill 1)/g' entsprechend anpassen für andere Löcher bzw. für jeden zu ändernden Bohrer einen neuen. z.B.:
:...> cat Platine.kicad_pcb | sed 's/(drill 0.8)/(drill 1)/g;s/(drill 0.762)/(drill 1)/g;s/(drill 0.7)/(drill 1)/g;s/(drill 0.89)/(drill 1)/g' > PlatineNew.kicad_pcb
ersetzt die Werte 0.8, 0.89, 0.762, 0.7 mit 1. So benötigt man für alle diese Löcher einen einzigen Bohrer.
Danach PlatineNew.kicad_pcb mit KiCad öffnen und wie Oben beschrieben die Bohrdatei erzeugen und in ein CNC Programm umwandeln.