From 1d38030e34ab6b6dde3b886a4a08110ac43291b8 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Wed, 23 Jan 2013 16:52:25 -0700 Subject: [PATCH] script from DJ to select elements by value in pcb --- bin/select-elements-by-value | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 bin/select-elements-by-value diff --git a/bin/select-elements-by-value b/bin/select-elements-by-value new file mode 100755 index 0000000..4de3d00 --- /dev/null +++ b/bin/select-elements-by-value @@ -0,0 +1,36 @@ +#!/usr/bin/perl +# -*- perl -*- + +# In pcb-menu.res, add somewhere: +# +# {"grep" a={"G" "g"} ExecuteFile(/tmp/pcb.grep)} + +$reg = shift; +open(B, "board.bom"); + +$first = 1; + +open(G, ">/tmp/pcb.grep"); +print G "Unselect(All)\n"; + +while () { + chomp; + ($refdes, $value, $footprint, $device, $voltage, $manufacturer, $manufacturer_part_number, $vendor, $vendor_part_number, $qty) = split(':', $_); + + if ($first || /$reg/i) { + print "\033[34m" if $first; + printf("%-7s %-24s %-18s %s\n", $value, $manufacturer_part_number, $vendor_part_number, $refdes); + print "\033[0m" if $first; + if (!$first) { + for $r (split(',', $refdes)) { + print G "Select(ElementByName,$r)\n"; + $count ++; + } + } + $first = 0; + } +} + +print "\n\033[32m$count parts\033[0m\n"; + +close G; -- 2.47.2