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
This commit is contained in:
jean-pierre charras 2022-07-15 16:33:01 +02:00
parent c98826c8b0
commit 64e1720f12
1 changed files with 13 additions and 3 deletions

View File

@ -1754,6 +1754,7 @@ void PCB_PLUGIN::format( const PAD* aPad, int aNestLevel ) const
m_out->Print( nested_level, "(gr_poly\n" ); m_out->Print( nested_level, "(gr_poly\n" );
formatPolyPts( outline, nested_level, ADVANCED_CFG::GetCfg().m_CompactSave ); 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; break;
@ -1764,11 +1765,20 @@ void PCB_PLUGIN::format( const PAD* aPad, int aNestLevel ) const
m_out->Print( 0, " (width %s)", m_out->Print( 0, " (width %s)",
FormatInternalUnits( primitive->GetWidth() ).c_str() ); FormatInternalUnits( primitive->GetWidth() ).c_str() );
// 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() ) if( primitive->IsFilled() )
m_out->Print( 0, " (fill yes)" ); 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"); m_out->Print( 0, "\n");
m_out->Print( aNestLevel+1, ")" ); // end of (basic_shapes m_out->Print( aNestLevel+1, ")" ); // end of (basic_shapes