At 10:59 AM 5/31/2002 -0600, John W. Childers wrote:
>From: Abd ulRahman Lomax <[EMAIL PROTECTED]>
>... stubs which [do not] terminate at a
>pad ... could fairly easily be found by
>analyzing spreadsheet data from a PCB; essentially one would be looking
>for a track which has an endpoint which does not coincide with any other
>endpoint on the same layer, nor does it coincide with a via or pad.
>
>How would one generate a useful spreadsheet for this purpose?


Here is what I would do. I haven't actually done it, so there are probably 
obstacles to be overcome that I have not anticipated. However, even though 
this is off the top of my head, I'd expect it to work, perhaps with a few 
added twists.

On a copy of the database, convert all vias to free pads with a name of VIA.

Select all *free* pads. Unselect all non-VIA pads. Unselect all pads with 
hole size zero.

Export selected pads: layer, XY location, hole size.

Copy to Excel as database VIAS.

Unselect All.

Select all primitives on copper layers plus multilayer. Unselect all free pads.

Export selected track and pads.

I've assume there are no footprint vias, a rare complication....

Copy track to database TRACK, pads to database PADS.

Sort track endpoint data by layer and then by X and Y coordinates. Each 
endpoint should occur twice or more in this data, or it should terminate on 
a pad or via. A formula can be used to detect all unpaired track endpoints. 
These are kept, paired endpoints are discarded. merge unpaired track data 
with pad and via data. Similarly detect any remaining track endpoints that 
are not paired with a pad or via. Any track endpoint paired with a pad, 
discard. Any track paired with a via, set aside. Any remaining track is a stub.

(This assumes that endpoints are coincident, which is good design practice, 
but which is not necessarily true. However, I think the autorouter will 
restore missing track segments, but that is a whole can of worms I do not 
want to enter now. Formulas *could* be used to detect contact instead of 
exact coincidence, it merely gets more complicated.)

Tracks paired with vias, associated coordinate with the layer name; the 
above process will yield a set of data for each layer. Any via which does 
not show on two or more layers in this data will represent a stub 
terminating on a via (or free pad).

I have not considered blind or buried vias, which would require additional 
comparisons....

Unless one is going to do this all the time, in which case all the formulae 
and procedures, etc., would be ready, it would probably be faster to 
visually examine the database, (though that would not detect stubs 
terminating in an otherwise unconnected via). Note that fabricators 
frequently will query stubs of the simple kind....



* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* To post a message: mailto:[EMAIL PROTECTED]
*
* To leave this list visit:
* http://www.techservinc.com/protelusers/leave.html
*
* Contact the list manager:
* mailto:[EMAIL PROTECTED]
*
* Forum Guidelines Rules:
* http://www.techservinc.com/protelusers/forumrules.html
*
* Browse or Search previous postings:
* http://www.mail-archive.com/proteledaforum@techservinc.com
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Reply via email to