| fab/drl2gerber |
| 2 | 2 | # |
| 3 | 3 | # drl2gerber - Convert a KiCAD-generated Excellon drill file to Gerber |
| 4 | 4 | # |
| 5 | | # Written 2011 by Werner Almesberger |
| 6 | | # Copyright 2011 Werner Almesberger |
| 5 | # Written 2011, 2017 by Werner Almesberger |
| 6 | # Copyright 2011, 2017 Werner Almesberger |
| 7 | 7 | # |
| 8 | 8 | # This program is free software; you can redistribute it and/or modify |
| 9 | 9 | # it under the terms of the GNU General Public License as published by |
| ... | ... | |
| 22 | 22 | while (<>) { |
| 23 | 23 | chop; |
| 24 | 24 | if (/^T(\d+)C/) { |
| 25 | | print "%ADD", $1+10, "C,$'*%\n" || die; |
| 25 | print "%ADD", $1 + 10, "C,$'*%\n" || die; |
| 26 | 26 | next; |
| 27 | 27 | } |
| 28 | 28 | if (/^T(\d+)$/) { |
| 29 | | print "G54D", $1+10, "*\n" || die; |
| 29 | print "G54D", $1 + 10, "*\n" || die; |
| 30 | 30 | next; |
| 31 | 31 | } |
| 32 | 32 | if (/^X([-0-9.]+)Y([-0-9.]+)$/) { |
| 33 | | printf("X%dY%dD03*\n", $1*10000, $2*10000) || die; |
| 33 | printf("X%dY%dD03*\n", $1 * 10000, $2 * 10000) || die; |
| 34 | 34 | next; |
| 35 | 35 | } |
| 36 | 36 | if (/^X([-0-9.]+)Y([-0-9.]+)G85X([-0-9.]+)Y([-0-9.]+)$/) { |
| 37 | 37 | printf("X%dY%dD02*\nX%dY%dD01*\n", |
| 38 | | $1*10000, $2*10000, $3*10000, $4*10000) || die; |
| 38 | $1 * 10000, $2 * 10000, $3 * 10000, $4 * 10000) || die; |
| 39 | 39 | next; |
| 40 | 40 | } |
| 41 | 41 | } |