chiark / gitweb /
more peco part numbers and some info about pecofguess_l
[trains.git] / pcb / hole-report.pl
1 #!/usr/bin/perl
2 while (<>) {
3     if (m/^\s*(Pin|Via)\[\-?\d+ \-?\d+ (\d+) (\d+) (\d+) (\d+) .*\]$/) {
4         $have{ sprintf "%s %05d %05d %05d %05d",
5               $1,$2,$3,$4,$5 }++;
6     } elsif (m/^ \s* (?:
7                       PCB | Grid | Cursor | Thermal | DRC |
8                       Flags | Groups | Styles |
9                       Layer | Line | Text | Arc | Polygon |
10                       Symbol | SymbolLine |
11                       Element | ElementLine | ElementArc |
12                       NetList | Net | Connect ) \s* (?: \( | \[ ) /x ||
13              m/^ \s* [()\#] /x ||
14              !m/\S/ ||
15              m/^ (?: \s* \[ \d+ \s \d+ \] )+ \s* $/x) {
16     } else {
17         die "$_ ?";
18     }
19 }
20
21 @i= qw(Pv Pad Poclr Rsist Drill PaRs DrPa Count);
22 $ix=0; map { $i{$_}= $ix++; } @i;
23
24 printf "%-3s %5s %5s %5s %5s  %6s %6s  %5s\n", @i
25     or die $!;
26
27 foreach $k (sort keys %have) {
28     @v= split / /, $k;
29     $v[$i{Count}]= $have{$k};
30     $v[$i{PaRs}]= 0.005 * ($v[$i{Rsist}]-$v[$i{Pad}]);
31     $v[$i{DrPa}]= 0.005 * ($v[$i{Pad}]-$v[$i{Drill}]);
32     printf "%-3s %5d %5d %5d %5d  %6.2f %6.2f  %5d\n", @v
33         or die $!;
34 }