altium pcbs: import pad to die length and delay

This commit is contained in:
Quentin Freimanis 2025-07-17 22:00:35 -07:00
parent 8556bd45c2
commit 7664d92028
3 changed files with 17 additions and 0 deletions

View File

@ -787,6 +787,9 @@ APAD6::APAD6( ALTIUM_BINARY_PARSER& aReader )
soldermaskexpansionmode = static_cast<ALTIUM_MODE>( aReader.Read<uint8_t>() ); soldermaskexpansionmode = static_cast<ALTIUM_MODE>( aReader.Read<uint8_t>() );
aReader.Skip( 3 ); // to 106 aReader.Skip( 3 ); // to 106
pad_to_die_length = 0;
pad_to_die_delay = 0;
if( subrecord5 == 110 ) if( subrecord5 == 110 )
{ {
// Don't know exactly what this is, but it's always been 0 in the files with // Don't know exactly what this is, but it's always been 0 in the files with
@ -820,6 +823,14 @@ APAD6::APAD6( ALTIUM_BINARY_PARSER& aReader )
{ {
} }
if( subrecord5 >= 202 )
{
aReader.Skip( 40 );
pad_to_die_length = aReader.ReadKicadUnit();
aReader.Skip( 32 );
pad_to_die_delay = KiROUND( aReader.Read<double>() * 1e18 );
}
aReader.SkipSubrecord(); aReader.SkipSubrecord();
// Subrecord 6 // Subrecord 6

View File

@ -681,6 +681,9 @@ struct APAD6
ALTIUM_LAYER tolayer; ALTIUM_LAYER tolayer;
ALTIUM_LAYER fromlayer; ALTIUM_LAYER fromlayer;
int32_t pad_to_die_length;
int32_t pad_to_die_delay;
std::unique_ptr<APAD6_SIZE_AND_SHAPE> sizeAndShape; std::unique_ptr<APAD6_SIZE_AND_SHAPE> sizeAndShape;
explicit APAD6( ALTIUM_BINARY_PARSER& aReader ); explicit APAD6( ALTIUM_BINARY_PARSER& aReader );

View File

@ -3609,6 +3609,9 @@ void ALTIUM_PCB::ConvertPads6ToFootprintItemOnCopper( FOOTPRINT* aFootprint, con
if( aElem.is_tent_bottom ) if( aElem.is_tent_bottom )
pad->SetLayerSet( pad->GetLayerSet().reset( B_Mask ) ); pad->SetLayerSet( pad->GetLayerSet().reset( B_Mask ) );
pad->SetPadToDieLength( aElem.pad_to_die_length );
pad->SetPadToDieDelay( aElem.pad_to_die_delay );
aFootprint->Add( pad.release(), ADD_MODE::APPEND ); aFootprint->Add( pad.release(), ADD_MODE::APPEND );
} }