From 64e1720f12c8d6de48e706ca5129a3f467c1b8fe Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Fri, 15 Jul 2022 16:33:01 +0200 Subject: [PATCH] FP_SHAPE in pads: always specify fill mode for shapes that can be filled or not. Fixes #12012 https://gitlab.com/kicad/code/kicad/issues/12012 --- pcbnew/plugins/kicad/pcb_plugin.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pcbnew/plugins/kicad/pcb_plugin.cpp b/pcbnew/plugins/kicad/pcb_plugin.cpp index d24b8167d6..c6fd81c9a9 100644 --- a/pcbnew/plugins/kicad/pcb_plugin.cpp +++ b/pcbnew/plugins/kicad/pcb_plugin.cpp @@ -1754,6 +1754,7 @@ void PCB_PLUGIN::format( const PAD* aPad, int aNestLevel ) const m_out->Print( nested_level, "(gr_poly\n" ); formatPolyPts( outline, nested_level, ADVANCED_CFG::GetCfg().m_CompactSave ); + m_out->Print( nested_level, "" ); // just to align the next info at the right place } break; @@ -1764,10 +1765,19 @@ void PCB_PLUGIN::format( const PAD* aPad, int aNestLevel ) const m_out->Print( 0, " (width %s)", FormatInternalUnits( primitive->GetWidth() ).c_str() ); - if( primitive->IsFilled() ) - m_out->Print( 0, " (fill yes)" ); + // The filled flag represents if a solid fill is present on circles, + // rectangles and polygons + if( ( primitive->GetShape() == SHAPE_T::POLY ) + || ( primitive->GetShape() == SHAPE_T::RECT ) + || ( primitive->GetShape() == SHAPE_T::CIRCLE ) ) + { + if( primitive->IsFilled() ) + m_out->Print( 0, " (fill yes)" ); + else + m_out->Print( 0, " (fill none)" ); - m_out->Print( 0, ")" ); + m_out->Print( 0, ")" ); + } } m_out->Print( 0, "\n");