I guess we just think about this differently. I would not use "errors" for anything that is a cost difference. I would only use errors to mean "this can't be built at any cost from my preferred manufacturer" or "this design won't work if I try to build it"
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. > > > > On 11 Jun 2020, at 16:47, Jon Evans <j...@craftyjon.com> wrote: > > > > Unconnected copper can also have electrical impacts. I agree it makes > > sense to have some separation between copper and non-copper (not > > connected vs. non-connected). > > > > I'm okay in general with the idea of trying to have different > > severities for production vs. design performance constraints and so > > on. Keeping annulus separate from via diameter is fine. > > > > Can you explain a situation where it makes sense to have e.g. > > through-via drill be a warning but uVia drill be an error or > > vice-versa? This is what I don't understand. > > > > On Thu, Jun 11, 2020 at 11:24 AM Jeff Young <j...@rokeby.ie> wrote: > >> > >> I’d definitely want to set edge clearance apart from other clearance. > >> > >> And I’d definitely want to set connected-item clearance (an electrical > >> constraint) apart from non-connected-copper-item clearance (a production > >> constraint). > >> > >> And I’d definitely want different violations for via annulus (a production > >> constraint) and via size (possibly just a current/heat constraint). > >> > >> I’m still on the fence with throughVia drill vs. uVia drill. The rest I > >> can agree with. > >> > >> Cheers, > >> Jeff. > >> > >> > >>> On 11 Jun 2020, at 15:56, Jon Evans <j...@craftyjon.com> wrote: > >>> > >>> I think having fewer codes is something to strive for, especially > >>> since we are auto-generating severity options from the list of codes. > >>> > >>> Having a bunch of severity settings where people wouldn't reasonably > >>> need to change them clutters the UI. > >>> > >>> Having excessive categorization in the DRC window makes it harder to > >>> sort through that information (for me at least). > >>> > >>> I don't think we need to be able to set severities independently for > >>> each rule in the "classic" system, we just need enough different > >>> severity settings to make sense. > >>> > >>> For example, going down the classic DRC rules dialog: > >>> > >>> Allowed features: both checkboxes generate DRCE_ALLOWED_FEATURES > >>> Arc/circle and zone fill: these aren't actually DRC checks > >>> Copper min clearance: generates DRCE_CLEARANCE > >>> Min track width: generates DRCE_WIDTH > >>> Min via annulus: generates DRCE_VIA_SIZE > >>> Min via diameter: generates DRCE_VIA_SIZE > >>> Copper edge clearance: generates DRCE_CLEARANCE > >>> Min through hole: generates DRCE_HOLE_SIZE > >>> Hole to hole: generates DRCE_HOLE_CLEARANCE > >>> uVia diameter: generates DRCE_VIA_SIZE > >>> uVia drill: generates DRCE_HOLE_SIZE > >>> > >>> > >>> > >>> On Thu, Jun 11, 2020 at 10:42 AM Jeff Young <j...@rokeby.ie> wrote: > >>>> > >>>> What does that buy us? The only things the error code gives us is a > >>>> string and a severity. The data storage (items, locations, etc.) is > >>>> already completely orthogonal. > >>>> > >>>>> On 11 Jun 2020, at 15:36, Jon Evans <j...@craftyjon.com> wrote: > >>>>> > >>>>> But couldn't this taxonomy be separate from the DRC_ITEM (i.e. error > >>>>> code) taxonomy? > >>>>> > >>>>> For example you could have a "classic minimum clearance" severity > >>>>> setting. > >>>>> This would set the severity of any DRCE_CLEARANCE items generated > >>>>> where the rule source is the classic system. > >>>>> This would replace all of the "X too close to Y" error codes > >>>>> > >>>>> I think if we did this, the minimum set of error codes would look > >>>>> something like one error code per setting in the Constraints setup > >>>>> dialog. > >>>>> Maybe even smaller than that number of settings, because you can set > >>>>> separate numbers for vias and microvias and I still don't think you > >>>>> need separate severities for those. > >>>>> > >>>>> On Thu, Jun 11, 2020 at 10:24 AM Jeff Young <j...@rokeby.ie> wrote: > >>>>>> > >>>>>> (But I do like being able to assign a severity to a rule.) > >>>>>> > >>>>>> On 11 Jun 2020, at 15:22, Jeff Young <j...@rokeby.ie> wrote: > >>>>>> > >>>>>> I think we’d still need some sort of taxonomy to put the severities on > >>>>>> for the “classic” system. > >>>>>> > >>>>>> On 11 Jun 2020, at 15:01, Ian McInerney <ian.s.mciner...@ieee.org> > >>>>>> wrote: > >>>>>> > >>>>>> Why not make the severity attached to the rule being used instead of > >>>>>> the error code type. I think being able to say "this rule is very > >>>>>> important and should be treated as an error" and "this rule is just a > >>>>>> guideline and can be treated as a warning" while they are both the > >>>>>> same error code would make more sense. > >>>>>> > >>>>>> -Ian > >>>>>> > >>>>>> On Thu, Jun 11, 2020 at 2:53 PM Jon Evans <j...@craftyjon.com> wrote: > >>>>>>> > >>>>>>> The only reasons to have multiple violation error codes is to be able > >>>>>>> to set a different severity for them, or to be able to filter/sort > >>>>>>> them. > >>>>>>> > >>>>>>> I can't think of a situation in which I would want to do either of > >>>>>>> those things for different via types. > >>>>>>> > >>>>>>> On Thu, Jun 11, 2020 at 9:48 AM Wayne Stambaugh > >>>>>>> <stambau...@gmail.com> wrote: > >>>>>>>> > >>>>>>>> I was thinking along the same lines. Wouldn't it make more sense to > >>>>>>>> define the objects that violate a DRC rule and generate the error > >>>>>>>> message on the fly rather than adding violation error codes for every > >>>>>>>> possible error? > >>>>>>>> > >>>>>>>> On 6/11/20 9:26 AM, Jon Evans wrote: > >>>>>>>>> I think microvias and vias using different technologies means they > >>>>>>>>> need different *rules*, not different error codes. > >>>>>>>>> > >>>>>>>>> Whether a hole is laser or mechanically drilled, it will have some > >>>>>>>>> rules, and those rules could generate an error "hole size is outside > >>>>>>>>> allowed range". > >>>>>>>>> > >>>>>>>>> You can tell from the affected items whether the hole in question > >>>>>>>>> is a > >>>>>>>>> via, microvia, blind via, buried via. > >>>>>>>>> You can tell from the rule source whether this came from a microvia > >>>>>>>>> rule, normal via rule, custom rule, etc. > >>>>>>>>> > >>>>>>>>> Why should we have separate violations per via type? (not separate > >>>>>>>>> *rules* but separate violations) I still don't get the use case. > >>>>>>>>> > >>>>>>>>> As mentioned in the last taxonomy discussion, I still think we could > >>>>>>>>> get rid of the tons of different "X close to Y" errors and just call > >>>>>>>>> it a "clearance error", but I understand that might be more > >>>>>>>>> contentious so I'd like to focus for now on just the keepouts and > >>>>>>>>> vias. > >>>>>>>>> > >>>>>>>>> -Jon > >>>>>>>>> > >>>>>>>>> On Thu, Jun 11, 2020 at 6:51 AM Jeff Young <j...@rokeby.ie> wrote: > >>>>>>>>>> > >>>>>>>>>> The “Inside Keepout” issue might be a bad example. I’d definitely > >>>>>>>>>> be in favour of folding all of those into a single violation > >>>>>>>>>> because a keepout already specifies which types of things are > >>>>>>>>>> excluded. > >>>>>>>>>> > >>>>>>>>>> But other things I’d be less in favour of. I want a warning about > >>>>>>>>>> NPTHs in courtyards; I don’t want one for PTHs (the former likely > >>>>>>>>>> has a mechanical fixing, the later likely doesn't). > >>>>>>>>>> > >>>>>>>>>> While I don’t personally use uVias, I’d certainly think we’d want > >>>>>>>>>> separate violations for their holes (as they’re made with > >>>>>>>>>> different technologies). On the flip side, I’m not sure there’s > >>>>>>>>>> any value in distinguishing between throughVia holes and pad holes. > >>>>>>>>>> > >>>>>>>>>> But that gives us a different taxonomy for size vs. hole, as the > >>>>>>>>>> difference between uVia and throughVia size may not be important. > >>>>>>>>>> (We already have this to some extent as I didn’t bother with > >>>>>>>>>> separate annulus violations for via types, although there’s a TODO > >>>>>>>>>> in the code). > >>>>>>>>>> > >>>>>>>>>> This all begs the question “how bad is an uneven taxonomy”? Is it > >>>>>>>>>> just an ivory-tower kind of thing, or will it actually cause > >>>>>>>>>> confusion? > >>>>>>>>>> > >>>>>>>>>> Back to specific instances, I like being able to treat > >>>>>>>>>> track-too-close-to-connected-item separately from > >>>>>>>>>> track-to-close-to-unconnected-item, but I’m less fussed about the > >>>>>>>>>> differences between the type of connected item > >>>>>>>>>> (track-to-close-to-via vs track-to-close-to-track). (For what > >>>>>>>>>> it’s worth, unconnected items are already grouped as we don’t have > >>>>>>>>>> separate errors for track-to-close-to-graphics vs > >>>>>>>>>> track-to-close-to-text. Yet another bit of unevenness in the > >>>>>>>>>> existing taxonomy.) > >>>>>>>>>> > >>>>>>>>>> Oddly I find the parallel-tracks vs crossing-tracks useful, but I > >>>>>>>>>> have no idea why. I guess it just gives me a better idea of what > >>>>>>>>>> I’m looking for on the board? > >>>>>>>>>> > >>>>>>>>>> One last note: Greg’s request for specific exclusions is already > >>>>>>>>>> in the nightlies. > >>>>>>>>>> > >>>>>>>>>> Cheers, > >>>>>>>>>> Jeff > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>> On 11 Jun 2020, at 06:19, Greg Smith <ecomput...@yahoo.com> wrote: > >>>>>>>>>>> > >>>>>>>>>>> I think more grouping in general categories is good. I also think > >>>>>>>>>>> that it would be nice to exclude *specific* DRCs that once a > >>>>>>>>>>> designer checks the error, they can flag it to ignore in the > >>>>>>>>>>> future. The specific check could be identified by a unique id: a > >>>>>>>>>>> hash of specific information, like unique error and objects > >>>>>>>>>>> involved (identified by geometries and properties involved). If > >>>>>>>>>>> anything changes, then the rule violation reappears under a > >>>>>>>>>>> different unique id. I think this would help greatly on > >>>>>>>>>>> near-tapeout activities where sifting over the same DRC errors > >>>>>>>>>>> becomes tedious and prone to missing valid DRC violations in the > >>>>>>>>>>> midst of “designer checked and allowed” ones. > >>>>>>>>>>> > >>>>>>>>>>> Greg S. > >>>>>>>>>>> > >>>>>>>>>>>> On Jun 10, 2020, at 7:59 PM, Jon Evans <j...@craftyjon.com> > >>>>>>>>>>>> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> Hi all, > >>>>>>>>>>>> > >>>>>>>>>>>> A DRC error code is something like "Via inside keepout area", or > >>>>>>>>>>>> in > >>>>>>>>>>>> the code, DRCE_VIA_INSIDE_KEEPOUT. It describes a "type" of DRC > >>>>>>>>>>>> error. This type is used for organizing the errors in the DRC > >>>>>>>>>>>> report, > >>>>>>>>>>>> and more recently, for letting you set a severity > >>>>>>>>>>>> (error/warning/ignore) for each code. > >>>>>>>>>>>> > >>>>>>>>>>>> Currently we have a lot of DRC violation types, probably because > >>>>>>>>>>>> the > >>>>>>>>>>>> violation types match up to the underlying code that is doing the > >>>>>>>>>>>> checking. So, we also have a DRCE_MICROVIA_INSIDE_KEEPOUT and > >>>>>>>>>>>> DRCE_BBVIA_INSIDE_KEEPOUT, because a lot of KiCad code has > >>>>>>>>>>>> separate > >>>>>>>>>>>> paths for those three types of vias. > >>>>>>>>>>>> > >>>>>>>>>>>> Do people find this useful? I think it is too specific: I would > >>>>>>>>>>>> rather see a single code DRCE_VIA_INSIDE_KEEPOUT to include all > >>>>>>>>>>>> types > >>>>>>>>>>>> of vias. I could even see having a single code for any object > >>>>>>>>>>>> inside > >>>>>>>>>>>> a keepout that isn't supposed to be there. I can't imagine a > >>>>>>>>>>>> situation where I would want to have a via inside a keepout be an > >>>>>>>>>>>> error, but a microvia inside a keepout be a warning or an ignore > >>>>>>>>>>>> (having the separate error codes means you can have seperate > >>>>>>>>>>>> severity > >>>>>>>>>>>> settings). If I wanted to know if a particular DRC error > >>>>>>>>>>>> referred to > >>>>>>>>>>>> a via or a microvia, I can do that from the linked item > >>>>>>>>>>>> information -- > >>>>>>>>>>>> I don't need a category to tell me that. > >>>>>>>>>>>> > >>>>>>>>>>>> What do you think? Does having a lot of very specific error > >>>>>>>>>>>> codes > >>>>>>>>>>>> help your workflow? Would you miss these categories if some of > >>>>>>>>>>>> them > >>>>>>>>>>>> got consolidated like the example I gave? If so, are there other > >>>>>>>>>>>> changes we could make (or features we could add) that would make > >>>>>>>>>>>> it > >>>>>>>>>>>> easier to deal with having less specific error codes? > >>>>>>>>>>>> > >>>>>>>>>>>> Thanks, > >>>>>>>>>>>> Jon > >>>>>>>>>>>> > >>>>>>>>>>>> _______________________________________________ > >>>>>>>>>>>> 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 > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> _______________________________________________ > >>>>>>>>>>> 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 > >>>>>>>>>> > >>>>>>>>> > >>>>>>>>> _______________________________________________ > >>>>>>>>> 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 > >>>>>>>>> > >>>>>>>> > >>>>>>>> _______________________________________________ > >>>>>>>> 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 > >>>>>>> > >>>>>>> _______________________________________________ > >>>>>>> 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 > >>>>>> > >>>>>> _______________________________________________ > >>>>>> 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 > >>>>>> > >>>>>> > >>>>>> > >>>> > >> > _______________________________________________ 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