Copper zone filling artifact depending on placement of nearby component

Bug #1527827 reported by Henner Zeller
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
High
Tomasz Wlostowski

Bug Description

Something going awry with polygons here.

== Application context ==
Application: pcbnew
Version: (2015-12-17 BZR 6382, Git 22fdfa6)-product release build
wxWidgets: Version 3.0.2 (debug,wchar_t,compiler with C++ ABI 1009,GCC 5.2.1,wx containers,compatible with 2.8)
Platform: Linux 4.2.0-1-amd64 x86_64, 64 bit, Little endian, wxGTK
Boost version: 1.58.0
         USE_WX_GRAPHICS_CONTEXT=OFF
         USE_WX_OVERLAY=OFF
         KICAD_SCRIPTING=ON
         KICAD_SCRIPTING_MODULES=ON
         KICAD_SCRIPTING_WXPYTHON=OFF
         USE_FP_LIB_TABLE=HARD_CODED_ON
         BUILD_GITHUB_PLUGIN=OFF

Starting point: a board (minimized kicad_pcb file attached), with two components and a copper zone with a 0.3mm fillet radius.

Then, two experiments with this file:
   * Open file and convince yourself that zone is correctly filled ('B'). Then move the LED 2.5mil to the right. Re-fill, and you get a 'stick' extending from the zone. It looks like an overflow error somewhere, as the stick is pretty _pretty_ large (couldn't find the end of it, got lost in the canvas).

Another experiment with the file:
   * Don't move the component, but change fillet radius to 0.4mm. Re-fill. Same artifact.

It is to note that the component does not touch the zone, however, it has a pad that shares that same net; and the 'stick' goes through that pad after the fill. Maybe that has something to do with it.

Related branches

Revision history for this message
Henner Zeller (hzeller) wrote :
Revision history for this message
Henner Zeller (hzeller) wrote :
Revision history for this message
Henner Zeller (hzeller) wrote :
Revision history for this message
Henner Zeller (hzeller) wrote :
description: updated
Revision history for this message
Tomasz Wlostowski (twlostow) wrote :

The bug is triggered by a duplicate vertex in the zone outline (CPolyLine::Fillet produces an incorrect polygon in such case).

Working on a fix...

Tom

Changed in kicad:
assignee: nobody → Tomasz Wlostowski (twlostow)
importance: Undecided → High
status: New → Confirmed
Revision history for this message
Rogier Lodewijks (rogier-f) wrote :

Don't seem to be able to reproduce this with the attached minimal pcbnew file. testing on Windows 10 64 bit, using nightly 6951

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

Looks similar to what can be provoked with the attached file.

I have found a pcb file on my computer, I am not sure of its origin, that has a buggy rendering both in legacy and GAL in different, but similar ways.

Revision history for this message
Tomasz Wlostowski (twlostow) wrote :

Hi Nick,

Can you post a screenshot? In my case the zone does not fill at all because it's not connected to any pad.

Tom

Revision history for this message
Tomasz Wlostowski (twlostow) wrote :

BTW. the original issue was fixed by JC on 06/26/2016.

T.

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

Tested the below info, and I have also seen the issue on windows before with the file I attached.

Application: pcbnew
Version: (2016-08-03 BZR 7003, Git 8dcf040)-product, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.49.1 OpenSSL/1.0.2h zlib/1.2.8 libidn/1.32 libssh2/1.7.0
Platform: Linux 4.6.4-1-ARCH x86_64, 64 bit, Little endian, wxGTK
- Build Info -
wxWidgets: 3.0.1 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.60.0
Curl: 7.49.1
KiCad - Compiler: GCC 6.1.1 with C++ ABI 1010
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=OFF
                  KICAD_SCRIPTING_MODULES=OFF
                  KICAD_SCRIPTING_WXPYTHON=OFF
                  USE_FP_LIB_TABLE=HARD_CODED_ON
                  BUILD_GITHUB_PLUGIN=ON

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

I just fill (and unfill it with the shortcut), but it should be filled when you open the file and the wierd render should be visible on all zoomlevels.

On a side note I can note that it crashes pcbnew if I open 4.0.2 with the board file. But that is becasus of an issue fixed in http://bazaar.launchpad.net/~kicad-product-committers/kicad/product/revision/7003 which is also ported to 4.0.3, so that is good at lesat.

Changed in kicad:
status: Confirmed → In Progress
status: In Progress → Fix Committed
Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

Does this fix need to be applied to the 4 stable branch?

Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

Never mind, I checked and I see that the stable version does indeed require this patch.

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.