ADDED support for pin and fp filtering in FOOTPRINT_CHOOSER.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7176
This commit is contained in:
Jeff Young
2023-09-29 17:03:50 +01:00
parent 98685b37ff
commit fa11e9138d
27 changed files with 367 additions and 194 deletions
+9 -17
View File
@@ -64,27 +64,19 @@ static wxString netList( SCH_SYMBOL* aSymbol, SCH_SHEET_PATH& aSheetPath )
{
/*
* Symbol netlist format:
* library:footprint
* reference
* value
* pinName,netName,pinFunction,pinType
* pinName,netName,pinFunction,pinType
* ...
* pinCount
* fpFilters
*/
wxString netlist;
netlist << EscapeString( aSymbol->GetFootprintFieldText( true, &aSheetPath, false ), CTX_LINE ) << wxS( "\r" );
netlist << EscapeString( aSymbol->GetRef( &aSheetPath ), CTX_LINE ) << wxS( "\r" );
netlist << EscapeString( aSymbol->GetValueFieldText( true, &aSheetPath, false ), CTX_LINE );
netlist << wxString::Format( wxS( "%d\r" ), aSymbol->GetPins().size() );
for( SCH_PIN* pin : aSymbol->GetPins( &aSheetPath ) )
{
netlist << wxS( "\r" );
netlist << EscapeString( pin->GetNumber(), CTX_CSV ) << wxS( "," );
netlist << EscapeString( pin->GetDefaultNetName( aSheetPath ), CTX_CSV ) << wxS( "," );
netlist << EscapeString( pin->GetName(), CTX_CSV ) << wxS( "," );
netlist << EscapeString( pin->GetCanonicalElectricalTypeName(), CTX_CSV );
}
wxArrayString fpFilters = aSymbol->GetLibSymbolRef()->GetFPFilters();
if( !fpFilters.IsEmpty() )
netlist << EscapeString( wxJoin( fpFilters, ' ' ), CTX_LINE );
netlist << wxS( "\r" );
return netlist;
}