Mail Archives: geda-user/2013/11/07/16:02:20
X-Authentication-Warning: | delorie.com: mail set sender to geda-user-bounces using -f
|
X-Recipient: | geda-user AT delorie DOT com
|
DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed;
|
| d=gmail.com; s=20120113;
|
| h=mime-version:in-reply-to:references:from:date:message-id:subject:to
|
| :content-type;
|
| bh=NxKqz8dPb73iMyxbe2NxqQSVgQgEQncWWP40CT+ji1k=;
|
| b=YQtLPsyps10GcO96tq+efI+TQZABvONY2epzQ/tRQBC3Gyw/hBPCNT8FKWKogbzvr+
|
| HbJ2pQyL8SCjd6cDAiZeYXKYkmR6cW67OOhgUmUF1QN8nSrNEhtBvqbDvbiipdXHQ1ZI
|
| GgjUz++NCL4cIY/ybTbdajkKHGT0Dk5R9gr6v64JG7F3vN18DbgQq/LhXNNmTGvwWj7k
|
| 3pdRcJBYa4MC650A8yseklPiq0sECqo9YnJRKMC7NPvIiyKXC5+pVyazA4oMhoKJbmAA
|
| nhshal4kMyU9EFQXHZTfWSW4wc1+E5aOpMNi+nIVI+kzmYEhtpkEmerAzP3gyZMzODhP
|
| i5OA==
|
X-Received: | by 10.112.130.105 with SMTP id od9mr72153lbb.45.1383858060768;
|
| Thu, 07 Nov 2013 13:01:00 -0800 (PST)
|
MIME-Version: | 1.0
|
In-Reply-To: | <CAGojTMExP001M3CG5Xd8LtpA8aq+VzMGmBixU_Z9Cjqccmc-dg@mail.gmail.com>
|
References: | <CAGojTMExP001M3CG5Xd8LtpA8aq+VzMGmBixU_Z9Cjqccmc-dg AT mail DOT gmail DOT com>
|
From: | Martin Held <diver DOT martin AT gmail DOT com>
|
Date: | Thu, 7 Nov 2013 13:00:40 -0800
|
Message-ID: | <CAGojTMFGemXHt+nWeFJGWG10q0J5E252jx-24V5kccjFim_Agw@mail.gmail.com>
|
Subject: | [geda-user] Re: Perl hack for bulk updates of refdes'
|
To: | geda-user <geda-user AT delorie DOT com>
|
Reply-To: | geda-user AT delorie DOT com
|
Errors-To: | nobody AT delorie DOT com
|
X-Mailing-List: | geda-user AT delorie DOT com
|
X-Unsubscribes-To: | listserv AT delorie DOT com
|
--e89a8f64733d21c86d04ea9c9051
Content-Type: multipart/alternative; boundary=e89a8f64733d21c86904ea9c904f
--e89a8f64733d21c86904ea9c904f
Content-Type: text/plain; charset=ISO-8859-1
Oh, I didn't attach the actual file, derp.
On Thu, Nov 7, 2013 at 12:43 PM, Martin Held <diver DOT martin AT gmail DOT com> wrote:
> DJ suggested I send this hack to the mailing list directly. This is an
> ugly perl hack, but then again, most perl hacks are. I used it again today
> and remembered I forgot to mail this one in.
>
> I'm not a normal geda-user subscriber, so your best bet is to reply
> directly to me.
>
> I've found myself doing some big designs recently, wherein I add lots of
> components, redo stuff, do a layout, make some schematic changes, split off
> schematic files, split off board, recombine boards, make more changes, more
> pcb changes, etc etc. In the end, the reference designators get all sorts
> of out-of-whack. C200 near R1, stupid little OCD annoying stuff like that.
>
> The problem is that if you re-annotate your schematic (refdes, current
> page, overwrite all existing) when you have a PCB layout that's complete,
> there's no current 'good' way to forward annotate those changes without
> gnetlist (in my system) deleting half the components, only to make you add
> them all back in again, redo the refdes locations, yadda yadda.
>
> So here's a perl script to do what I needed. Do this where you have a
> schematic and a corresponding layout. You can probably break things by
> adding/removing components during this process.
>
> The first step is to grep refdes file.sch > pre.txt. This creates a file
> of all reference designators.
> Then go into gschem with your schematic, and attributes -> autonumber text
> (or shortcut 'tu'), and wipe out all your reference designators with new
> ones. Save and exit (backing up along the way might be a good idea too.. I
> commit to SVN each time before/after I do this). You can also do any
> manual changes, e.g. if you don't like the top to bottom, diagonal/etc
> options in the autonumber menu.
>
> Then grep refdes file.sch > post.txt
>
> Now run the perl script. It'll create a hash out of pre and post.txt, and
> then scan through the pcb file and change the reference designators as
> necessary. Naturally, if you add or remove components, you can change the
> order of pre/post.txt... that will screw things up in the hash table.
>
> ./update.pl pre.txt post.txt file.pcb output.pcb
>
> You may also wish to re-run gnetlist, and then when you open the
> output.pcb file, reload the new netlist and ensure you didn't get any
> munged connectivity.
>
> If all goes well, you have reference designators that make more sense.
>
> License: None, I don't care if you sell it or something, I use it for
> myself, it works for my needs. You can even take credit for all I care.
>
> Cheers,
> Martin
> AE7IK
>
>
> -------------------------------------------------------------------------------
> If there aren't any questions, then what is there to learn?
>
--
Martin Held - PADI MSDT-190219
diver DOT martin AT gmail DOT com
http://www.raindroppro.com
-------------------------------------------------------------------------------
If there aren't any questions, then what is there to learn?
--e89a8f64733d21c86904ea9c904f
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Oh, I didn't attach the actual file, derp.<br></div><d=
iv class=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On Thu, Nov 7, =
2013 at 12:43 PM, Martin Held <span dir=3D"ltr"><<a href=3D"mailto:diver=
.martin AT gmail DOT com" target=3D"_blank">diver DOT martin AT gmail DOT com</a>></span> =
wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div>DJ suggested I send th=
is hack to the mailing list directly.=A0 This=20
is an ugly perl hack, but then again, most perl hacks are.=A0 I used it=20
again today and remembered I forgot to mail this one in.<br><br></div>I'=
;m not a normal geda-user subscriber, so your best bet is to reply directly=
to me.<br><div>
<br>I've found myself doing some big designs recently, wherein I add=20
lots of components, redo stuff, do a layout, make some schematic=20
changes, split off schematic files, split off board, recombine boards,=20
make more changes, more pcb changes, etc etc.=A0 In the end, the reference
designators get all sorts of out-of-whack.=A0 C200 near R1, stupid little
OCD annoying stuff like that.<br>
<div><br>The problem is that if you re-annotate your schematic=20
(refdes, current page, overwrite all existing) when you have a PCB=20
layout that's complete, there's no current 'good' way to fo=
rward=20
annotate those changes without gnetlist (in my system) deleting half the
components, only to make you add them all back in again, redo the=20
refdes locations, yadda yadda.<br>
<br>So here's a perl script to do what I needed.=A0 Do this where you h=
ave
a schematic and a corresponding layout.=A0 You can probably break things=
=20
by adding/removing components during this process.<br><br></div><div>The fi=
rst step is to grep refdes file.sch > pre.txt.=A0 This creates a file of=
all reference designators.<br>
</div><div>Then go into gschem with your schematic, and=20
attributes -> autonumber text (or shortcut 'tu'), and wipe out a=
ll=20
your reference designators with new ones.=A0 Save and exit (backing up=20
along the way might be a good idea too.. I commit to SVN each time=20
before/after I do this).=A0 You can also do any manual changes, e.g. if=20
you don't like the top to bottom, diagonal/etc options in the autonumbe=
r
menu.<br>
<br></div><div>Then grep refdes file.sch > post.txt<br><br></div><div>No=
w
run the perl script.=A0 It'll create a hash out of pre and post.txt, a=
nd=20
then scan through the pcb file and change the reference designators as=20
necessary.=A0 Naturally, if you add or remove components, you can change=20
the order of pre/post.txt... that will screw things up in the hash=20
table.<br>
<br></div><div>./<a href=3D"http://update.pl" target=3D"_blank">update.pl</=
a> pre.txt post.txt file.pcb output.pcb<br><br></div><div>You
may also wish to re-run gnetlist, and then when you open the output.pcb
file, reload the new netlist and ensure you didn't get any munged=20
connectivity.<br>
<br>If all goes well, you have reference designators that make more sense.<=
br><br></div><div>License:=A0
None, I don't care if you sell it or something, I use it for myself, i=
t
works for my needs.=A0 You can even take credit for all I care.<br>
<br></div><div>Cheers,<br></div><div>Martin<br></div><div>AE7IK<br></div><b=
r>-------------------------------------------------------------------------=
------<br>If there aren't any questions, then what is there to learn?
</div></div>
</blockquote></div><br><br clear=3D"all"><br>-- <br>Martin Held - PADI MSDT=
-190219<br><a href=3D"mailto:diver DOT martin AT gmail DOT com" target=3D"_blank">dive=
r DOT martin AT gmail DOT com</a><br><a href=3D"http://www.raindroppro.com" target=3D"=
_blank">http://www.raindroppro.com</a><br>
---------------------------------------------------------------------------=
----<br>If there aren't any questions, then what is there to learn?
</div>
--e89a8f64733d21c86904ea9c904f--
--e89a8f64733d21c86d04ea9c9051
Content-Type: application/x-perl; name="update.pl"
Content-Disposition: attachment; filename="update.pl"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hnqhcf960
IyEvdXNyL2Jpbi9wZXJsCgojICBBIHNpbXBsZSBoYXNoIGdlbmVyYXRvciBhbmQgZmluZC1yZXBs
YWNlIHNjcmlwdCBmb3IgdXNlIHdpdGggZ0VEQS9nc2NoZW0gYW5kCiMgIGdFREEvcGNiCiMKIyAg
VXNhZ2U6ICBncmVwIHJlZmRlcyBmaWxlLnNjaCA+IHByZS50eHQKIyAgICAgICAgICBUaGVuIGVk
aXQgeW91ciBmaWxlLnNjaCwgbWFraW5nIG5vIGNvbXBvbmVudCBjaGFuZ2VzL2FkZGl0aW9ucy9k
ZWxldGlvbnMKIwkgICAgIEZvciBleGFtcGxlLCBhdHRyaWJzIC0+IGF1dG9udW1iZXIgdGV4dCAt
PiBnbG9iYWwgb3ZlcndyaXRlCiMJICAgQ2xvc2UgZ3NjaGVtCiMgICAgICAgICAgZ3JlcCByZWZk
ZXMgZmlsZS5zY2ggPiBwb3N0LnR4dAojCiMJICAgTmV4dCwgcnVuIHRoaXMgc2NyaXB0LCBlLmcu
IC4vdXBkYXRlLnBsIHByZS50eHQgcG9zdC50eHQgZmlsZS5wY2Igb3V0cHV0LnBjYgojCiMJICAg
VGhpcyBzY3JpcHQgd2lsbCBOT1Qgb3ZlcndyaXRlIHlvdXIgb2xkIFBDQiBmaWxlLgojCiMJICAg
QWZ0ZXIgeW91J3ZlIGdlbmVyYXRlZCB0aGUgbmV3IFBDQiBmaWxlLCBydW4gZ25ldGxpc3QsIGNy
ZWF0ZSBhIG5ldwojICAgICAgICAgICAgbmV0bGlzdCBhbmQgaW1wb3J0IGl0IGludG8gUENCLCBh
bmQgZW5zdXJlIHlvdXIgY29ubmVjdGl2aXR5IHN0YXllZAojICAgICAgICAgICAgdGhlIHNhbWUu
CiMgICAgICAgICAKIyAgICAgICAgICBJZiB5b3UgZG9uJ3QgdXNlIGFueSBiYWNrdXBzIGFuZCBz
Y3JldyBzb21ldGhpbmcgdXAsIGJvbyBob28gZm9yIHlvdS4KIwkgICBOTyBXQVJSQU5USUVTLiAg
CiMJICAgCiMgICAgICAgICAgVGhpcyBzY3JpcHQgY2FycnJpZXMgbm8gbGljZW5zZS4gIEl0IHdv
cmtzIGZvciBtZSwgSSBkb24ndCBjYXJlIHdoYXQKIyAgICAgICAgICAgIHlvdSBkbyB3aXRoIGl0
LiAgTm8gYXR0cmlidXRpb24vc291cmNlIG5lZWRlZC4KIwojCSAgIE1hcnRpbiBIZWxkCiMgICAg
ICAgICAgQUU3SUsKIwkgICBPY3QgMjl0aCwgMjAxMwoKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5n
czsKCm15ICRvcmlnID0gJEFSR1ZbMF0gb3IgZGllICJOZWVkIGFuIG9yaWdpbmFsIGZpbGVcbiI7
Cm15ICRuZXcgPSAkQVJHVlsxXSBvciBkaWUgIk5lZWQgYSBuZXcgZmlsZVxuIjsKbXkgJG1vZGZp
bGUgPSAkQVJHVlsyXSBvciBkaWUgIk5lZWQgYSBQQ0IgZmlsZSB0byBlZGl0XG4iOwpteSAkb3V0
ZmlsZSA9ICRBUkdWWzNdIG9yIGRpZSAiTmVlZCBhbiBvdXRwdXQgZmlsZS5cbiI7CgpvcGVuICht
eSAkZG9yaWcsICc8JywgJG9yaWcpIG9yIGRpZSAiQ291bGQgbm90IG9wZW4gJyRvcmlnJyAkXG4i
OwpvcGVuIChteSAkZG5ldywgJzwnLCAkbmV3KSBvciBkaWUgIkNvdWxkIG5vdCBvcGVuICckbmV3
JyAkXG4iOwpvcGVuIChteSAkZG1vZCwgJzwnLCAkbW9kZmlsZSkgb3IgZGllICJDb3VsZCBub3Qg
b3BlbiAnJG1vZGZpbGUnICRcbiI7Cm9wZW4gKEQsICc+JywgJG91dGZpbGUpIG9yIGRpZSAiQ291
bGQgbm90IG9wZW4gJyRvdXRmaWxlJyBmb3Igd3JpdGUgJFxuIjsKCm15ICVjaGFuZ2VzID0gKCk7
Cgp3aGlsZSAobXkgJG9yaWdsaW5lID0gPCRkb3JpZz4pIHsKICBteSAkY2hnbGluZSA9IDwkZG5l
dz47CgogIAogIG15IEBvcmlnZmllbGRzID0gc3BsaXQgIj0iICwgJG9yaWdsaW5lOwogIG15IEBj
aGdmaWVsZHMgPSBzcGxpdCAiPSIgLCAkY2hnbGluZTsKIAogIGNob21wICRvcmlnZmllbGRzWzFd
OwogIGNob21wICRjaGdmaWVsZHNbMV07CiAgJGNoYW5nZXN7JG9yaWdmaWVsZHNbMV19ID0gJGNo
Z2ZpZWxkc1sxXTsKICAKICAKfQoKY2xvc2UgKCRkb3JpZyk7CmNsb3NlICgkZG5ldyk7CgojTm93
IHByb2Nlc3MgdGhlIFBDQiBmaWxlCgp3aGlsZSAobXkgJGxpbmUgPSA8JGRtb2Q+KSB7CgogIGlm
KCRsaW5lID1+IC9FbGVtZW50XFsvICkKICB7CiAgICBteSBAbCA9IHNwbGl0ICIgIiAsICRsaW5l
OwogICAgcHJpbnQgRCAiJGxbMF0gJGxbMV0iOwogICAgCiAgICAkbFsyXSA9fiBzL1snXCInXS8v
ZzsKICAgIHByaW50IEQgIiBcIiRjaGFuZ2VzeyRsWzJdfVwiICI7ICAgIAogICAgcHJpbnQgRCAi
JGxbM10gJGxbNF0gJGxbNV0gJGxbNl0gJGxbN10gJGxbOF0gJGxbOV0gJGxbMTBdXG4iOwogICAg
aWYoJGxbMTFdKSAKICAgIHsKICAgICAgcHJpbnQgRCAiRVJST1IiOwogICAgfQogICAgCiAgfQog
IGVsc2UKICB7CiAgICBwcmludCBEICRsaW5lOwogIH0KICAKfQoKY2xvc2UgKEQpOwpjbG9zZSAo
JGRtb2QpOwoKICAK
--e89a8f64733d21c86d04ea9c9051--
- Raw text -