Running DRC in Pcbnew changes a flooded layer

Bug #1619066 reported by Michael Costanzo
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
Medium
Unassigned

Bug Description

A two-layer board design included a mostly flooded ground plane on the bottom layer.
Presumably after moving the location of a via, the flooded ground plane clearance area didn't move along with it. Running a DRC actually causes the ground plane layer to update and correctly clear the via.

The DRC reports no errors and the report does not indicate that any layers were changed.

This is not a rendering artifact, as this error made it into the artwork (and subsequently boards I had made).

As I ran my final DRC _after_ uploading artwork to the board house (but before committing the order) I was lead to believe that the design was clear.

To reproduce this all I have to do is open my design in Pcbnew, zoom in to the via in question, which is erroneously tied to the flooded ground plane, run a DRC check and right in front of me I see the flood clearance update to become correct.

Upon closing Pcbnew, it asks me to save changes, despite having only run a DRC and performed no other operations. If I save the changes, the kicad_pcb file is changed, and doing a diff with the previous version indicates that indeed, some geometries have changed.

Application: kicad
Version: 4.0.3-stable release build
wxWidgets: Version 3.0.2 (debug,wchar_t,compiler with C++ ABI 1009,GCC 5.2.0,wx containers,compatible with 2.8)
Platform: Windows 7 (build 7601, Service Pack 1), 64-bit edition, 64 bit, Little endian, wxMSW
Boost version: 1.57.0
         USE_WX_GRAPHICS_CONTEXT=OFF
         USE_WX_OVERLAY=OFF
         KICAD_SCRIPTING=ON
         KICAD_SCRIPTING_MODULES=ON
         KICAD_SCRIPTING_WXPYTHON=ON
         USE_FP_LIB_TABLE=HARD_CODED_ON
         BUILD_GITHUB_PLUGIN=ON

Tags: drc
Revision history for this message
PCB Wiz (1-pcb-wiz) wrote :

"Running DRC in Pcbnew changes a flooded layer "

Well, yes, this should really be called DRRC, for Design Regenerate/Reflood and Rule Check.

"This is not a rendering artifact, as this error made it into the artwork (and subsequently boards I had made)."

See another thread on this exact topic.

The suggestion was made that Reflood be made the default, on entering Plot (but with an option, for those very rare cases where someone really does know what they are doing, and has manually adjusted things between DRC and Plot). That covers all use cases.

Strangely, the KiCad developers seem to prefer users can shoot themselves in the foot more easily.

Personally, I prefer the tedious/simple housekeeping stuff to be managed by the PC, as I have more than enough other things to worry about.

Note: Other CAD tools DO warn if you have old-flood-data, on entering Plot, so they have found and seek to avoid this exact problem.

Guess they also got customer feedback around this issue ;) ?

Revision history for this message
PCB Wiz (1-pcb-wiz) wrote :

 I can find a Bug report from 2014, which also suggests this fix of
{Option Design Reflood on Gerber Plot (Default = On)}
and another in 2016.
 The 2014 report has quite a few 'affects me' support tags.

Revision history for this message
Michael Costanzo (mrcostanzo) wrote :

So it seems the message 'Fill zones...' in the DRC message window is actually an indication, but it really is a bear trap in my opinion.

How about a conditional extra line in the message window for each affected layer:
"Layer B.Cu updated during fill"
for each layer that actually gets changed by this process.

This would also make a lot of sense to put into the report.

I think it makes sense to have visibility/traceability of processes that modify the design output.

Revision history for this message
PCB Wiz (1-pcb-wiz) wrote :

Yes, it could be a good idea to add those to the report file, but I think a better name is a good first step.

ie change the terse 'DRC Control' heading to

'Design Regenerate and Rule Check Control'

and the actions of can also go into the report file.

Compile ratsnest...
Pad clearances...
Track clearances...
Fill zones...
Test zones...
Unconnected pads...
Keepout areas ...
Test texts...
Finished

I have found that 'B' for manual refill, is not_quite_the_same as DRC (DRRC), as B does not re-check connectivity, and there are some Pour cases like moved or added vias, where that "Compile ratsnest" step is an important detail.

Another reason to properly label it DRRC..

Revision history for this message
Nick Østergaard (nickoe) wrote :

This is sort of related to:
https://bugs.launchpad.net/kicad/+bug/1394262
[Zones Not Automatically Regenerated Before Creating Gerbers]

This is also related to the discusison here:
https://lists.launchpad.net/kicad-developers/msg25566.html

It contains also some reasoning behind the current implementation. The message have not received any more comments from developers yet.

tags: added: drc
Revision history for this message
Jeff Young (jeyjey) wrote :

@Wayne, I remember a discussion about this, but I couldn't find another bug report. Is this something you fixed?

Changed in kicad:
importance: Undecided → Medium
Revision history for this message
Wayne Stambaugh (stambaughw) wrote : Re: [Bug 1619066] Re: Running DRC in Pcbnew changes a flooded layer

Yes, there is now an option (disabled by default) in the DRC dialog so
users can choose if they want to refill zones before running the DRC.
We must have missed this duplicate bug report. I went ahead and set the
status to fix committed.

On 02/17/2018 12:07 PM, Jeff Young wrote:
> @Wayne, I remember a discussion about this, but I couldn't find another
> bug report. Is this something you fixed?
>
> ** Changed in: kicad
> Importance: Undecided => Medium
>

Changed in kicad:
status: New → Fix Committed
Changed in kicad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.