Handle alt pins in plot code.
Fixes https://gitlab.com/kicad/code/kicad/issues/11728
(cherry picked from commit e4798199c6
)
This commit is contained in:
parent
797cb2aaac
commit
16d63b7772
|
@ -886,7 +886,7 @@ void SCH_SYMBOL::GetLibPins( std::vector<LIB_PIN*>& aPinsList ) const
|
|||
}
|
||||
|
||||
|
||||
SCH_PIN* SCH_SYMBOL::GetPin( LIB_PIN* aLibPin )
|
||||
SCH_PIN* SCH_SYMBOL::GetPin( LIB_PIN* aLibPin ) const
|
||||
{
|
||||
wxASSERT( m_pinMap.count( aLibPin ) );
|
||||
return m_pins[ m_pinMap.at( aLibPin ) ].get();
|
||||
|
@ -1877,10 +1877,32 @@ void SCH_SYMBOL::Plot( PLOTTER* aPlotter ) const
|
|||
{
|
||||
if( m_part )
|
||||
{
|
||||
LIB_PINS libPins;
|
||||
m_part->GetPins( libPins, GetUnit(), GetConvert() );
|
||||
|
||||
// Copy the source so we can re-orient and translate it.
|
||||
LIB_SYMBOL tempSymbol( *m_part );
|
||||
LIB_PINS tempPins;
|
||||
tempSymbol.GetPins( tempPins, GetUnit(), GetConvert() );
|
||||
|
||||
// Copy the pin info from the symbol to the temp pins
|
||||
for( unsigned i = 0; i < tempPins.size(); ++ i )
|
||||
{
|
||||
SCH_PIN* symbolPin = GetPin( libPins[ i ] );
|
||||
LIB_PIN* tempPin = tempPins[ i ];
|
||||
|
||||
tempPin->SetName( symbolPin->GetShownName() );
|
||||
tempPin->SetType( symbolPin->GetType() );
|
||||
tempPin->SetShape( symbolPin->GetShape() );
|
||||
|
||||
if( symbolPin->IsDangling() )
|
||||
tempPin->SetFlags( IS_DANGLING );
|
||||
}
|
||||
|
||||
TRANSFORM temp = GetTransform();
|
||||
aPlotter->StartBlock( nullptr );
|
||||
|
||||
m_part->Plot( aPlotter, GetUnit(), GetConvert(), m_pos, temp );
|
||||
tempSymbol.Plot( aPlotter, GetUnit(), GetConvert(), m_pos, temp );
|
||||
|
||||
for( SCH_FIELD field : m_fields )
|
||||
field.Plot( aPlotter );
|
||||
|
|
|
@ -456,7 +456,7 @@ public:
|
|||
*/
|
||||
void GetLibPins( std::vector<LIB_PIN*>& aPinsList ) const;
|
||||
|
||||
SCH_PIN* GetPin( LIB_PIN* aLibPin );
|
||||
SCH_PIN* GetPin( LIB_PIN* aLibPin ) const;
|
||||
|
||||
/**
|
||||
* Retrieve a list of the SCH_PINs for the given sheet path.
|
||||
|
|
Loading…
Reference in New Issue