That has yet to be determined, IIRC.  Jeff expressed a preference for
keeping around the current "basic rules" GUI we have, but that doesn't
answer whether those rules are internally represented in the new rules
engine or via a different path.

I think it makes sense to express them as part of the new rules engine
internally so that we don't have two parallel paths of tests.  I don't
think it's a good idea to express them that way externally (i.e. put
them in a rules file as a template).

For one, putting them in the file would break the proposed priority
system Jeff and I were talking about earlier, where netclass rules
beat/combine with basic rules and file rules beat netclass rules.
This would open back up that whole can of worms which I'd rather not
at this point :)

So, I think what I'm suggesting is:

- A way to assign a severity to each of the basic and netclass rules
(and also adding severity to the custom rules syntax)
- Decoupling severity from DRC error code
- Simplifying and consolidating DRC error codes as much as possible,
since now they will mostly just be categories for grouping things in
reports.

I can handle these three things as part of the project settings branch
I'm working on now.  I do not want to try to tackle moving the basic
rules over to a new engine as part of that, but it could happen
afterwards.

-Jon


On Thu, Jun 11, 2020 at 2:25 PM Ian McInerney <ian.s.mciner...@ieee.org> wrote:
>
> I might have missed something, but how are the basic rules being specified? 
> Are we going to ship them as pre-built selectors that run through the same 
> DRC engine as the custom rules (so we only have one engine to worry about), 
> or are they being done differently? It would seem better to ship them as 
> pre-built selectors and use the same mechanisms for specifying the severity 
> of them as custom rules would. I think that is also nicer, because it 
> essentially provides an example rules file.
>
> -Ian
>
> On Thu, Jun 11, 2020 at 6:40 PM Jon Evans <j...@craftyjon.com> wrote:
>>
>> Yeah I like this.
>>
>> For the basic rules, we could still make it so that each basic rule had 
>> independent severity while generating common error codes, although that 
>> increases complexity. It might be better to keep one error code per "basic" 
>> rule, except for the ones we are already in agreement can be consolidated.
>>
>> Then for net class and custom rules, we can just have the severity be a rule 
>> property, not an error code property.
>>
>> -Jon
>>
>> On Thu, Jun 11, 2020, 13:36 Ian McInerney <ian.s.mciner...@ieee.org> wrote:
>>>
>>> Another example I just thought of (not involving costs): differential pair 
>>> rules. We could have a category "Trace length mismatch" (or some other 
>>> name...), and then someone could define rules such that:
>>> Rule 1) If mismatch > x, flag the "Trace length mismatch" as an error
>>> Rule 2) If mismatch > y, flag the "Trace length mismatch" as a warning
>>>
>>> When x > y and rule 1 is a higher priority, this can then basically allow 
>>> for a zone for the DRC to flag the length mismatch where the design will 
>>> still work, but is not ideal as a warning, and any larger values where the 
>>> design would fail as an error.
>>>
>>> -Ian
>>>
>>> On Thu, Jun 11, 2020 at 6:25 PM Ian McInerney <ian.s.mciner...@ieee.org> 
>>> wrote:
>>>>>
>>>>> On Thu, Jun 11, 2020 at 1:13 PM Jeff Young <j...@rokeby.ie> wrote:
>>>>> >
>>>>> > Imagine that violating the micro-via min bumps me up a classification 
>>>>> > but violating the through-via min drops me out of pooling.  There’s a 
>>>>> > big cost difference between those two.
>>>>> >
>>>>
>>>>
>>>> This is why I think switching to the severities coming from the rules 
>>>> would be a better way than defining them by the category of the violation. 
>>>> By doing that we can limit the need for a lot of categories of violations. 
>>>> We can for instance have a single code for "Minimum drill violated", and 
>>>> then have two different rules for the minimum u-via drill and the minimum 
>>>> through-via drill. Then those rules can treat the code "Minimum drill 
>>>> violated" as either a warning or an error as they see fit.
>>>>
>>>> -Ian
>>>>

_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to