Separate post-machining into its own property manager category.
This commit is contained in:
+136
-107
@@ -3177,6 +3177,7 @@ static struct TRACK_VIA_DESC
|
||||
// TODO test drill, use getdrillvalue?
|
||||
const wxString groupVia = _HKI( "Via Properties" );
|
||||
const wxString groupBackdrill = _HKI( "Backdrill" );
|
||||
const wxString groupPostMachining = _HKI( "Post-machining" );
|
||||
|
||||
propMgr.Mask( TYPE_HASH( PCB_VIA ), TYPE_HASH( BOARD_CONNECTED_ITEM ), _HKI( "Layer" ) );
|
||||
|
||||
@@ -3212,142 +3213,170 @@ static struct TRACK_VIA_DESC
|
||||
propMgr.AddProperty( new PROPERTY_ENUM<PCB_VIA, FILLING_MODE>( _HKI( "Filling" ),
|
||||
&PCB_VIA::SetFillingMode, &PCB_VIA::GetFillingMode ), groupVia );
|
||||
|
||||
auto canHaveBackdrill = []( INSPECTABLE* aItem )
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
auto canHaveBackdrill =
|
||||
[]( INSPECTABLE* aItem )
|
||||
{
|
||||
if( via->GetViaType() == VIATYPE::THROUGH )
|
||||
return true;
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
if( via->GetViaType() == VIATYPE::THROUGH )
|
||||
return true;
|
||||
|
||||
if( via->Padstack().GetBackdrillMode() != BACKDRILL_MODE::NO_BACKDRILL )
|
||||
return true;
|
||||
}
|
||||
if( via->Padstack().GetBackdrillMode() != BACKDRILL_MODE::NO_BACKDRILL )
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
return false;
|
||||
};
|
||||
|
||||
propMgr.AddProperty( new PROPERTY_ENUM<PCB_VIA, BACKDRILL_MODE>( _HKI( "Backdrill Mode" ),
|
||||
&PCB_VIA::SetBackdrillMode, &PCB_VIA::GetBackdrillMode ), groupBackdrill ).SetAvailableFunc( canHaveBackdrill );
|
||||
&PCB_VIA::SetBackdrillMode, &PCB_VIA::GetBackdrillMode ), groupBackdrill )
|
||||
.SetAvailableFunc( canHaveBackdrill );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<PCB_VIA, std::optional<int>>( _HKI( "Bottom Backdrill Size" ),
|
||||
&PCB_VIA::SetBottomBackdrillSize, &PCB_VIA::GetBottomBackdrillSize, PROPERTY_DISPLAY::PT_SIZE ), groupBackdrill )
|
||||
.SetAvailableFunc( []( INSPECTABLE* aItem ) -> bool
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackdrillMode();
|
||||
return mode == BACKDRILL_MODE::BACKDRILL_BOTTOM || mode == BACKDRILL_MODE::BACKDRILL_BOTH;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
&PCB_VIA::SetBottomBackdrillSize, &PCB_VIA::GetBottomBackdrillSize, PROPERTY_DISPLAY::PT_SIZE ),
|
||||
groupBackdrill )
|
||||
.SetAvailableFunc(
|
||||
[]( INSPECTABLE* aItem ) -> bool
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackdrillMode();
|
||||
return mode == BACKDRILL_MODE::BACKDRILL_BOTTOM || mode == BACKDRILL_MODE::BACKDRILL_BOTH;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY_ENUM<PCB_VIA, PCB_LAYER_ID>( _HKI( "Bottom Backdrill Must-Cut" ),
|
||||
&PCB_VIA::SetBottomBackdrillLayer, &PCB_VIA::GetBottomBackdrillLayer ), groupBackdrill )
|
||||
.SetAvailableFunc( []( INSPECTABLE* aItem ) -> bool
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackdrillMode();
|
||||
return mode == BACKDRILL_MODE::BACKDRILL_BOTTOM || mode == BACKDRILL_MODE::BACKDRILL_BOTH;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
&PCB_VIA::SetBottomBackdrillLayer, &PCB_VIA::GetBottomBackdrillLayer ), groupBackdrill )
|
||||
.SetAvailableFunc(
|
||||
[]( INSPECTABLE* aItem ) -> bool
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackdrillMode();
|
||||
return mode == BACKDRILL_MODE::BACKDRILL_BOTTOM || mode == BACKDRILL_MODE::BACKDRILL_BOTH;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<PCB_VIA, std::optional<int>>( _HKI( "Top Backdrill Size" ),
|
||||
&PCB_VIA::SetTopBackdrillSize, &PCB_VIA::GetTopBackdrillSize, PROPERTY_DISPLAY::PT_SIZE ), groupBackdrill )
|
||||
.SetAvailableFunc( []( INSPECTABLE* aItem ) -> bool
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackdrillMode();
|
||||
return mode == BACKDRILL_MODE::BACKDRILL_TOP || mode == BACKDRILL_MODE::BACKDRILL_BOTH;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
&PCB_VIA::SetTopBackdrillSize, &PCB_VIA::GetTopBackdrillSize, PROPERTY_DISPLAY::PT_SIZE ),
|
||||
groupBackdrill )
|
||||
.SetAvailableFunc(
|
||||
[]( INSPECTABLE* aItem ) -> bool
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackdrillMode();
|
||||
return mode == BACKDRILL_MODE::BACKDRILL_TOP || mode == BACKDRILL_MODE::BACKDRILL_BOTH;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY_ENUM<PCB_VIA, PCB_LAYER_ID>( _HKI( "Top Backdrill Must-Cut" ),
|
||||
&PCB_VIA::SetTopBackdrillLayer, &PCB_VIA::GetTopBackdrillLayer ), groupBackdrill )
|
||||
.SetAvailableFunc( []( INSPECTABLE* aItem ) -> bool
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackdrillMode();
|
||||
return mode == BACKDRILL_MODE::BACKDRILL_TOP || mode == BACKDRILL_MODE::BACKDRILL_BOTH;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
&PCB_VIA::SetTopBackdrillLayer, &PCB_VIA::GetTopBackdrillLayer ), groupBackdrill )
|
||||
.SetAvailableFunc(
|
||||
[]( INSPECTABLE* aItem ) -> bool
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackdrillMode();
|
||||
return mode == BACKDRILL_MODE::BACKDRILL_TOP || mode == BACKDRILL_MODE::BACKDRILL_BOTH;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY_ENUM<PCB_VIA, PAD_DRILL_POST_MACHINING_MODE>( _HKI( "Front Post-machining" ),
|
||||
&PCB_VIA::SetFrontPostMachiningMode, &PCB_VIA::GetFrontPostMachiningMode ), groupVia );
|
||||
&PCB_VIA::SetFrontPostMachiningMode, &PCB_VIA::GetFrontPostMachiningMode ), groupPostMachining );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<PCB_VIA, int>( _HKI( "Front Post-machining Size" ),
|
||||
&PCB_VIA::SetFrontPostMachiningSize, &PCB_VIA::GetFrontPostMachiningSize, PROPERTY_DISPLAY::PT_SIZE ), groupVia )
|
||||
.SetAvailableFunc( []( INSPECTABLE* aItem ) {
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetFrontPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERBORE || mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERSINK;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
&PCB_VIA::SetFrontPostMachiningSize, &PCB_VIA::GetFrontPostMachiningSize, PROPERTY_DISPLAY::PT_SIZE ),
|
||||
groupPostMachining )
|
||||
.SetAvailableFunc(
|
||||
[]( INSPECTABLE* aItem )
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetFrontPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERBORE
|
||||
|| mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERSINK;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<PCB_VIA, int>( _HKI( "Front Post-machining Depth" ),
|
||||
&PCB_VIA::SetFrontPostMachiningDepth, &PCB_VIA::GetFrontPostMachiningDepth, PROPERTY_DISPLAY::PT_SIZE ), groupVia )
|
||||
.SetAvailableFunc( []( INSPECTABLE* aItem ) {
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetFrontPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERBORE;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
&PCB_VIA::SetFrontPostMachiningDepth, &PCB_VIA::GetFrontPostMachiningDepth, PROPERTY_DISPLAY::PT_SIZE ),
|
||||
groupPostMachining )
|
||||
.SetAvailableFunc(
|
||||
[]( INSPECTABLE* aItem )
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetFrontPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERBORE;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<PCB_VIA, int>( _HKI( "Front Post-machining Angle" ),
|
||||
&PCB_VIA::SetFrontPostMachiningAngle, &PCB_VIA::GetFrontPostMachiningAngle, PROPERTY_DISPLAY::PT_DECIDEGREE ), groupVia )
|
||||
.SetAvailableFunc( []( INSPECTABLE* aItem ) {
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetFrontPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERSINK;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
&PCB_VIA::SetFrontPostMachiningAngle, &PCB_VIA::GetFrontPostMachiningAngle, PROPERTY_DISPLAY::PT_DECIDEGREE ),
|
||||
groupPostMachining )
|
||||
.SetAvailableFunc(
|
||||
[]( INSPECTABLE* aItem )
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetFrontPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERSINK;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY_ENUM<PCB_VIA, PAD_DRILL_POST_MACHINING_MODE>( _HKI( "Back Post-machining" ),
|
||||
&PCB_VIA::SetBackPostMachiningMode, &PCB_VIA::GetBackPostMachiningMode ), groupVia );
|
||||
&PCB_VIA::SetBackPostMachiningMode, &PCB_VIA::GetBackPostMachiningMode ), groupPostMachining );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<PCB_VIA, int>( _HKI( "Back Post-machining Size" ),
|
||||
&PCB_VIA::SetBackPostMachiningSize, &PCB_VIA::GetBackPostMachiningSize, PROPERTY_DISPLAY::PT_SIZE ), groupVia )
|
||||
.SetAvailableFunc( []( INSPECTABLE* aItem ) {
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERBORE || mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERSINK;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
&PCB_VIA::SetBackPostMachiningSize, &PCB_VIA::GetBackPostMachiningSize, PROPERTY_DISPLAY::PT_SIZE ),
|
||||
groupPostMachining )
|
||||
.SetAvailableFunc(
|
||||
[]( INSPECTABLE* aItem )
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERBORE
|
||||
|| mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERSINK;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<PCB_VIA, int>( _HKI( "Back Post-machining Depth" ),
|
||||
&PCB_VIA::SetBackPostMachiningDepth, &PCB_VIA::GetBackPostMachiningDepth, PROPERTY_DISPLAY::PT_SIZE ), groupVia )
|
||||
.SetAvailableFunc( []( INSPECTABLE* aItem ) {
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERBORE;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
&PCB_VIA::SetBackPostMachiningDepth, &PCB_VIA::GetBackPostMachiningDepth, PROPERTY_DISPLAY::PT_SIZE ),
|
||||
groupPostMachining )
|
||||
.SetAvailableFunc(
|
||||
[]( INSPECTABLE* aItem )
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERBORE;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
|
||||
propMgr.AddProperty( new PROPERTY<PCB_VIA, int>( _HKI( "Back Post-machining Angle" ),
|
||||
&PCB_VIA::SetBackPostMachiningAngle, &PCB_VIA::GetBackPostMachiningAngle, PROPERTY_DISPLAY::PT_DECIDEGREE ), groupVia )
|
||||
.SetAvailableFunc( []( INSPECTABLE* aItem ) {
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERSINK;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
&PCB_VIA::SetBackPostMachiningAngle, &PCB_VIA::GetBackPostMachiningAngle, PROPERTY_DISPLAY::PT_DECIDEGREE ),
|
||||
groupPostMachining )
|
||||
.SetAvailableFunc(
|
||||
[]( INSPECTABLE* aItem )
|
||||
{
|
||||
if( PCB_VIA* via = dynamic_cast<PCB_VIA*>( aItem ) )
|
||||
{
|
||||
auto mode = via->GetBackPostMachining();
|
||||
return mode == PAD_DRILL_POST_MACHINING_MODE::COUNTERSINK;
|
||||
}
|
||||
return false;
|
||||
} );
|
||||
// clang-format on: the suggestion is less readable
|
||||
}
|
||||
} _TRACK_VIA_DESC;
|
||||
|
||||
Reference in New Issue
Block a user