Es gibt zwei nutzbare Programme, um aus Gerberdaten den GCode für die Fräse zu erzeugen: pcb2gcode und flatcam. Ersteres ist ein Kommandozeilenprogramm, das den großen Vorteil hat, das es eine Textdatei namens millproject ausliest, welche man von Projekt zu Projekt kopieren kann und somit nichts mehr einstellen muss. Leider muss man Versionen, die metrischen Export beherrschen, oft selbst kompilieren, da die in Distributionen enthaltene Version zu alt ist.
flatcam ist ein Pythonprogramm, das reichlich Abhängigkeiten mitbringt und relativ viele Zwischenschritte benötigt. Dafür sieht man den Werkzeugpfad und es kann (laut Anleitung) z. B. Bohrungen erzeugen, um das Wenden einer zweiseitigen Platine zu vereinfachen. Momentan wird flatcam von Python 2.x auf Python 3 und von Qt 4 auf Qt 5 umgestellt, weshalb man auf aktuellen Systemen den Entwicklungszweig mit git klonen sollte. Die in der Datei setup_ubuntu.sh aufgeführten Pakete sind für die Python 2/Qt 4 Version, weshalb es sinnvoller ist ./flatcam zu starten und anhand der Fehlermeldungen die nötigen python3-* Pakete nachzuinstallieren bis es startet.
Grundlegende Fräsparameter
| Parameter | Wert | Kommentar |
|---|---|---|
| Feedrate | xy: 250 mm/min z: 150 mm/min | falls nur ein Wert angegeben werden kann, muss man 150 mm/min nehmen, da die z-Achse relativ viel Trägheit besitzt und sonst zu tief eintaucht |
| z-Tiefe | -0,08 mm | Nullpunkt ist die Platinenoberfläche, die z-Achse zeigt aus der Platine heraus |
| z-Move | 2 mm | Kann so knapp gewählt werden, da die Platine eben ist und man damit Zeit spart. Vorsicht, falls Einspannungen/Halterungen nah am Rand der Platine liegen! |
| z-Change | 50 mm | Höhe für manuellen Werkzeugwechsel |
| Durchmesser Fräser | 0,1 mm | |
| z-Tiefe für Bohrungen | -3 mm | Platinen sind typischerweise 1,6 mm dick, damit kann man auch -2 mm nutzen, falls man doppelseitig arbeiten möchte, sind hier ggf. mehr nützlich (Vorsicht auf die Maximaldicke der Unterlage!) |
| Speed | 20 000 U/Min | kann prinzipiell beliebig sein, da unsere Fräse das nicht per GCode steuert |
Beispiel millproject
front = schaltplan-Top.gbr back = schaltplan-Bottom.gbr drill = schaltplan.drl #outline = schaltplan-Edge.Cuts.gbr output-dir = gcode metric = true metricoutput = true zsafe = 2mm zchange = 50mm zwork = -0.08mm mill-diameters = 0.1mm mill-feed = 250mm/min mill-vertfeed = 150mm/min mill-speed = 20000 zdrill = -3mm drill-feed = 150mm/min drill-speed = 20000 # Wir wollen wenig/keine Bohrer wechseln drills-available = 0.8mm onedrill = 1 # Idee: Schnittkanten wie Leiterbahnen "anzeichnen", aktuell ungetestet zcut = -0.08mm cut-feed = 150mm/min cut-speed = 20000 cut-infeed = 1mm cutter-diameter = 0.1mm