From 1df5d9c48c8fd6a56cce6731782fd9342f2b1e37 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Sat, 4 Nov 2023 23:11:16 +0000 Subject: [PATCH] Make sure to add enough wiggle room when MaxError is very large. Fixes https://gitlab.com/kicad/code/kicad/-/issues/16024 --- pcbnew/zone_filler.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pcbnew/zone_filler.cpp b/pcbnew/zone_filler.cpp index df3486c98a..ee677513fa 100644 --- a/pcbnew/zone_filler.cpp +++ b/pcbnew/zone_filler.cpp @@ -1734,9 +1734,9 @@ void ZONE_FILLER::buildThermalSpokes( const ZONE* aZone, PCB_LAYER_ID aLayer, zoneBB.Inflate( std::max( bds.GetBiggestClearanceValue(), aZone->GetLocalClearance() ) ); - // Is a point on the boundary of the polygon inside or outside? This small epsilon lets - // us avoid the question. - int epsilon = KiROUND( pcbIUScale.IU_PER_MM * 0.04 ); // about 1.5 mil + // Is a point on the boundary of the polygon inside or outside? The boundary may be off by + // MaxError, and we add 1.5 mil for some wiggle room. + int epsilon = KiROUND( bds.m_MaxError + pcbIUScale.IU_PER_MM * 0.038 ); // 1.5 mil for( PAD* pad : aSpokedPadsList ) {