chiark / gitweb /
hole reports
authorian <ian>
Fri, 3 Sep 2004 23:19:18 +0000 (23:19 +0000)
committerian <ian>
Fri, 3 Sep 2004 23:19:18 +0000 (23:19 +0000)
.cvsignore
pcb/Makefile
pcb/hole-report.pl [new file with mode: 0755]
pic.make
spice/Makefile

index 0334ec4d0ccefc90364c654180af2d7be9d52220..69f93167d6970d6c91e7b04bb6dce7ac9f8e4465 100644 (file)
@@ -39,3 +39,4 @@ detectors.net-spec
 *.pcb.output_*.txt
 ours-*.ps
 parts.ps
+*.hole-rep
index 4a66576591f2a92241487d21c78e4ed57cb35d02..3990e4facfc30fd2ed1163d2565311c35afe3ec8 100644 (file)
@@ -29,7 +29,8 @@ BULKRESPARTS= bulkres-select.partlist bulkres-items.partlist
 
 picprogs:      flasher.hex flash-all.hex
 
-netlists:      reversers.net detectors.net
+netlists:      reversers.net detectors.net \
+               reversers.hole-rep detectors.hole-rep
 
 # print from pcb(1) as follows:
 #   File / Print Layout / ...
@@ -48,6 +49,9 @@ OPRINTS=      %.oprint-copper.ps              \
                %.pcb.output_frontsilk.ps       \
                %.oprint-assembly.ps
 
+%.hole-rep:    %.pcb hole-report.pl
+               ./hole-report.pl <$< $o
+
 %.oprints:     $(OPRINTS)
                        echo $^ >$@-l-tmp
 
diff --git a/pcb/hole-report.pl b/pcb/hole-report.pl
new file mode 100755 (executable)
index 0000000..5cee6d6
--- /dev/null
@@ -0,0 +1,29 @@
+#!/usr/bin/perl
+while (<>) {
+    if (m/^\s*(Pin|Via)\[\-?\d+ \-?\d+ (\d+) (\d+) (\d+) (\d+) .*\]$/) {
+       $have{ sprintf "%05d %05d %05d %05d %s",
+             $5,$2,$4,$3,$1 }++;
+    } elsif (m/^ \s* (?:
+                     PCB | Grid | Cursor | Thermal | DRC |
+                     Flags | Groups | Styles |
+                     Layer | Line | Text | Arc | Polygon |
+                     Symbol | SymbolLine |
+                     Element | ElementLine | ElementArc |
+                     NetList | Net | Connect ) \s* (?: \( | \[ ) /x ||
+            m/^ \s* [()\#] /x ||
+            !m/\S/ ||
+            m/^ (?: \s* \[ \d+ \s \d+ \] )+ \s* $/x) {
+    } else {
+       die "$_ ?";
+    }
+}
+
+printf "%5s %5s %5s %5s %-3s  %5s\n",
+    qw(drill pad rsist poclr pv count)
+    or die $!;
+
+foreach $k (sort keys %have) {
+    printf("%5d %5d %5d %5d %-3s  %5d\n",
+          split(/ /, $k), $have{$k})
+       or die $!;
+}
index 4a66576591f2a92241487d21c78e4ed57cb35d02..3990e4facfc30fd2ed1163d2565311c35afe3ec8 100644 (file)
--- a/pic.make
+++ b/pic.make
@@ -29,7 +29,8 @@ BULKRESPARTS= bulkres-select.partlist bulkres-items.partlist
 
 picprogs:      flasher.hex flash-all.hex
 
-netlists:      reversers.net detectors.net
+netlists:      reversers.net detectors.net \
+               reversers.hole-rep detectors.hole-rep
 
 # print from pcb(1) as follows:
 #   File / Print Layout / ...
@@ -48,6 +49,9 @@ OPRINTS=      %.oprint-copper.ps              \
                %.pcb.output_frontsilk.ps       \
                %.oprint-assembly.ps
 
+%.hole-rep:    %.pcb hole-report.pl
+               ./hole-report.pl <$< $o
+
 %.oprints:     $(OPRINTS)
                        echo $^ >$@-l-tmp
 
index 4a66576591f2a92241487d21c78e4ed57cb35d02..3990e4facfc30fd2ed1163d2565311c35afe3ec8 100644 (file)
@@ -29,7 +29,8 @@ BULKRESPARTS= bulkres-select.partlist bulkres-items.partlist
 
 picprogs:      flasher.hex flash-all.hex
 
-netlists:      reversers.net detectors.net
+netlists:      reversers.net detectors.net \
+               reversers.hole-rep detectors.hole-rep
 
 # print from pcb(1) as follows:
 #   File / Print Layout / ...
@@ -48,6 +49,9 @@ OPRINTS=      %.oprint-copper.ps              \
                %.pcb.output_frontsilk.ps       \
                %.oprint-assembly.ps
 
+%.hole-rep:    %.pcb hole-report.pl
+               ./hole-report.pl <$< $o
+
 %.oprints:     $(OPRINTS)
                        echo $^ >$@-l-tmp