Ian, 

let me try:

Rule Name       Scope                             Min        Max
All holes       Board                             28mil      280mil
Drill 42mil     Power Tracks (Net class)    42mil      42mil
Drill 35mil     Signal Tracks (Net class)   35mil      35mil
Drill 28mil     Special Tracks (Region)     28mil        28mil

It is true that P99SE is limited in what you can do when defining a rule. Otherwise it 
would not be necessary to introduce a scripting language in the new version of Protel.

There are always workarounds, and it is true that they won't cover all the cases. As 
long as the designer is aware of the limits and of special setup of his/her design, it 
can be done.

The above example shows how I would do it. It differs a bit from suggestions in my 
initial post in that I included all drill holes in the general rule, otherwise the DRC 
would have found holes of smaller then permitted sizes. With a careful design this 
example can be implemented. If requirements are more general, then he will have to 
write a check for a version with a scripting language.

Alexandre's question was not detailed, so wasn't my answer, but I hoped to give him an 
idea of how to set the rules up, so he could implement it to his own requirements.

Hope this post is clearer then the previous ones.

Regards,

Igor

-----Original Message-----
From: Ian Wilson [mailto:[EMAIL PROTECTED]
Sent: Monday, 24 February 2003 11:36 AM
To: Protel EDA Forum
Subject: Re: [PEDA] Hole Size Constraint


At 10:55 AM 24/02/03 +1100, you wrote:
>Ian,
>
>you wrote:
>
> >The first rule has the highest priority.  Rules are tested against all
> >objects.  So your first rule will generate an error on all holes not equal
> >to 42mil.  It won't help that you have alternative rules following.
>
>I would say, that the rules are tested against all objects covered by the 
>rule's scope.
>
>Create a rule that covers only the objects you want to test or excludes 
>the objects you don't want to test. E.g. in this case, in the general rule 
>with the scope 'board' (if there is such a rule) he should exclude the 
>holes of the sizes he wants to check specifically, and create rules to 
>check each of them individually.
>
>The problem is how to distinguish those hole sizes from the rest. They 
>could belong to a net, a component, a class or something else.

Igor,

That is certainly true, and is a technique that is very useful in DXP  (use 
the NOT function to exclude objects from a rule rather than including 
objects).

The problem here, as you say, is constructing a sensible rule that is 
guaranteed to test correctly all holes.  What if one net was not part of a 
class? Or what about free holes not connected to a net?  What about nets 
with a mix of permitted holes?

It is also made more complex as vias are not an object in the hole 
constraint scope list (neither is pad specification an allowable scope in 
the hole size rule).  So you would have to use nets or net classes and then 
you have a problem ensuring full coverage, don't you.

How would you frame a rule that checked that all holes on a board were 
either 28 or 35 mils.  Interesting exercise.  Should include free vias and 
pads, component pads, anything connected to nets and anything not connected 
to a net.  A further restriction would be that if the net classes etc, or 
whatever, were used were not correctly maintained, that the system was 
failsafe and would not let through un-wanted hole size (in other words, if 
I forgot to maintain the class info correctly, I would not potentially 
allow an unwanted hole to get through the system - this may be best done by 
a "whole board" scope checking against one of the desired hole sizes (the 
most common presumably)).

Lets try a simpler case.  How would you check, reliably that for a given 
net, say VCC, that holes were either 28 or 35 mils and nothing else. Test 
this against a VCC net that has both 28 and 35 mil holes. I can't see a 
method of doing this in P99SE.

P99SE does not have a ready method of selectively excluding things from a 
check.  If something meets the scope (in net VCC, say) it will be tested 
against the rule.  So a 35 mil hole will generate an error when tested 
against the VCC/28 mil rule, and visa versa.  Now if we could exclude 
anything that had a hole size of 35 mils from the 28 mil test then we may 
be getting somewhere - but again P99SE does not allow a pad specification 
to be used in a hole constraint scope - and it does not allow a via hole 
size to be a valid scope and, anyway, it does not support "not equal to" 
operations on via and pad specifications even if these scopes were 
supported in the hole size constraint rule.

I may be missing something but I can't see hole a rule set could be 
constructed to ensure reliable full coverage and to restrict holes to one 
of a number of possible sizes when on any given net any of these permitted 
holes is acceptable.  The problem is not so hard if *all* vias/pads on any 
particular net are the same.  Then a series of net classes can be used.

Maybe I am missing something.  Igor, I'd certainly be interested in seeing 
how it could be done,
Ian Wilson




* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* 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/[EMAIL PROTECTED]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Reply via email to