Date:2017-05-07 19:27:56 (6 years 6 months ago)
Author:Werner Almesberger
Commit:d70dc71cfe3771ae1ca8c0e11b7e41b466b3c26e
Message:fab/drl2gerber: support metric drill files

Files: fab/drl2gerber (1 diff)

Change Details

fab/drl2gerber
1212#
1313
1414
15print "G04 MACHINE-GENERATED FROM DRILL FILE*\n" || die;
16print "G01*\n" || die; # linear Interpolation
17print "G70*\n" || die; # inch units
18print "G90*\n" || die; # absolute Mode
19print "%MOIN*%*\n" || die; # inches, RS274X-style
20print "%FSLAX34Y34*%\n" || die; # format
15sub begin
16{
17    return if $began;
18    $began = 1;
19
20    print "G04 MACHINE-GENERATED FROM DRILL FILE*\n" || die;
21    print "G01*\n" || die; # linear Interpolation
22    print "G70*\n" || die; # inch units
23    print "G90*\n" || die; # absolute Mode
24    if ($mm) {
25        print "%MOMM*%*\n" || die; # millimeters, RS274X-style
26    } else {
27        print "%MOIN*%*\n" || die; # inches, RS274X-style
28    }
29    print "%FSLAX34Y34*%\n" || die; # format
30}
2131
2232while (<>) {
2333    chop;
34    if (/^METRIC/) {
35        $mm = 1;
36        next;
37    }
2438    if (/^T(\d+)C/) {
39        &begin;
2540        print "%ADD", $1 + 10, "C,$'*%\n" || die;
2641        next;
2742    }
2843    if (/^T(\d+)$/) {
44        &begin;
2945        print "G54D", $1 + 10, "*\n" || die;
3046        next;
3147    }
3248    if (/^X([-0-9.]+)Y([-0-9.]+)$/) {
49        &begin;
3350        printf("X%dY%dD03*\n", $1 * 10000, $2 * 10000) || die;
3451        next;
3552    }
3653    if (/^X([-0-9.]+)Y([-0-9.]+)G85X([-0-9.]+)Y([-0-9.]+)$/) {
54        &begin;
3755        printf("X%dY%dD02*\nX%dY%dD01*\n",
3856            $1 * 10000, $2 * 10000, $3 * 10000, $4 * 10000) || die;
3957        next;
4058    }
4159}
4260
61&begin;
4362print "M02*\n" || die;

Archive Download the corresponding diff file

Branches:
master



interactive