Bohrdaten für LinuxCNC erzeugen mit drl2gcode

Die mit KiCad erzeugten Bohrdaten im Excellon-Format habe ich bisher mittels einer leicht an LinuxCNC angepassten und erweiterten Version von drl2gcode.py in G-Code umgewandelt.

Download drl2gcode.py

Ich konnte mich mit Python eigentlich nie wirklich anfreunden. Zudem bin ich seit (wirklich) vielen Jahren C-Spezialist. Deshalb entschloss ich mich, mit drl2gcode.py als Vorbild, drl2gcode als C-Programm zu entwickeln. Die Bedienung sollte weitgehend gleich bleiben, die Optionen auch. Das Programm so fehlertolerant und fehlerfrei wie möglich zu implementieren erwies sich dann doch als aufwendiger als angenommen, andererseits hat es mir auch viel Spaß gemacht.
Ich freue mich schon auf Kommentare (und Fehlermeldungen, falls nötig).

8.6.2025
Heute ist die erste Version (V0.1.1) fertig geworden. Ich habe hier sowohl das Programm, als auch den mit sha512 gesicherten Quellcode zum Download bereitgestellt.

Download Programm

Download Quellcode

Download Checksumme

Bedienung von drl2gcode

Hilfe anzeigen

$ bin/drl2gcode -h

"drl2gcode" version V0.1.1, (c) Uwe Jantzen (Klabautermann-Software) 08.06.2025

Usage

bin/drl2gcode [options] <input file name>

--spindle-speed <speed> drill speed [rpm] (positive only)
--xy-move-speed <speed> x & y axis travel speed [mm/min] (positive only)
--z-move-speed <speed> z axis travel speed [mm/min] above 0.0 (positive only)
--drill-move-speed <speed> z axis drilling speed [mm/min] below 0.0 (positive only)
--drill-depth <depth> how deep [mm] to drill below 0.0 (positive value)
--safe-height <height> height [mm] above 0.0 for rapid move (positive only)
-s, --single-file one output file only instead a file for every tool
-o, --offset <x> <y> offset [mm] to all coordinates
-m, --mirror-x mirror the x output over 0 (zero). That means : multiply every x value by -1
-t, --tool-offset <offset> set the first tool (drill) number to be used (positive only)
-v, --verbose show what's going on
-h, -?, --help show this help and exit immediately

Lesen der "Excellon"-formatierten Bohrdatendatei testing.drl und Ausgeben der "G-Code"-formatierten Bohrdatendateien testing_Tn_<diameter>mm.ngc mit den Werkzeugnummern 3 bis 6

Jede Datei enthält die Daten für einen Bohrer mit dem Durchmesser <diameter>.

$ bin/drl2gcode --tool-offset 2 testing.drl

"drl2gcode" version V0.1.1, (c) Uwe Jantzen (Klabautermann-Software) 08.06.2025


drl2gcode finished

Lesen der "Excellon"-formatierten Bohrdatendatei testing.drl und Ausgeben der "G-Code"-formatierten Bohrdatendatei testing_Tall.ngc mit den Werkzeugnummern 3 bis 6.

Diese Datei enthält die Daten für alle Bohrer inklusive der "Werkzeug-Wechsel"-Befehle.

$ bin/drl2gcode --tool-offset 2 -s testing.drl

"drl2gcode" version V0.1.1, (c) Uwe Jantzen (Klabautermann-Software) 08.06.2025


drl2gcode finished

Alle Bohrdatendateien anzeigen

$ ls -l testing*
-rw-rw-r-- 1 tester tester 1561 21. Apr 22:45 testing.drl
-rw-rw-r-- 1 tester tester  862  8. Jun 10:18 testing_T03_0.700mm.ngc
-rw-rw-r-- 1 tester tester 5262  8. Jun 10:18 testing_T04_1.000mm.ngc
-rw-rw-r-- 1 tester tester  708  8. Jun 10:18 testing_T05_2.700mm.ngc
-rw-rw-r-- 1 tester tester  560  8. Jun 10:18 testing_T06_3.200mm.ngc
-rw-rw-r-- 1 tester tester 6249  8. Jun 10:20 testing_Tall.ngc

Ausgeben der Defaulteinstellungen

$ bin/drl2gcode -v testing.drl

"drl2gcode" version V0.1.1, (c) Uwe Jantzen (Klabautermann-Software) 08.06.2025

Configuration :
spindle_speed 32000.00 [rpm]
travel_speed 3000.00 [mm/min]
z_travel_speed 300.00 [mm/min]
drill_speed 100.00 [mm/min]
drill_depth 2.00 [mm]
safe_height 25.00 [mm]
single_file off
offset_x 0.00 [mm]
offset_y 0.00 [mm]
mirror_x off
tool_offset 0
Excellon file testing.drl

drl2gcode finished

© Uwe Jantzen 11.06.25
15