Change Zone extra clearance magic number to AC
Rather than keeping a magic number in the code, we set the default in the advanced config setting and allow users/developers to modify it.
This commit is contained in:
parent
552dde8976
commit
6900f04ee0
|
@ -60,12 +60,12 @@ namespace AC_STACK
|
||||||
*/
|
*/
|
||||||
namespace AC_KEYS
|
namespace AC_KEYS
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In Pcbnew, pads can have a fabrication property
|
* When filling zones, we add an extra amount of clearance to each zone to ensure that rounding
|
||||||
* Because this feature adds a new keyword in *.kicad_pcb and *.kicad_modfiles,
|
* errors do not overrun minimum clearance distances. This is the extra in mm.
|
||||||
* this is an advanced feature until it is fully finalized
|
|
||||||
*/
|
*/
|
||||||
static const wxChar UsePadProperty[] = wxT( "UsePadProperty" );
|
static const wxChar ExtraFillMargin[] = wxT( "ExtraFillMargin" );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Testing mode for new connectivity algorithm. Setting this to on will cause all modifications
|
* Testing mode for new connectivity algorithm. Setting this to on will cause all modifications
|
||||||
|
@ -201,6 +201,9 @@ void ADVANCED_CFG::loadSettings( wxConfigBase& aCfg )
|
||||||
configParams.push_back( new PARAM_CFG_BOOL( true, AC_KEYS::RealtimeConnectivity,
|
configParams.push_back( new PARAM_CFG_BOOL( true, AC_KEYS::RealtimeConnectivity,
|
||||||
&m_realTimeConnectivity, false ) );
|
&m_realTimeConnectivity, false ) );
|
||||||
|
|
||||||
|
configParams.push_back( new PARAM_CFG_DOUBLE( true, AC_KEYS::ExtraFillMargin,
|
||||||
|
&m_extraClearance, 0.002, 0.0, 1.0 ) );
|
||||||
|
|
||||||
configParams.push_back( new PARAM_CFG_INT( true, AC_KEYS::CoroutineStackSize,
|
configParams.push_back( new PARAM_CFG_INT( true, AC_KEYS::CoroutineStackSize,
|
||||||
&m_coroutineStackSize, AC_STACK::default_stack,
|
&m_coroutineStackSize, AC_STACK::default_stack,
|
||||||
AC_STACK::min_stack, AC_STACK::max_stack ) );
|
AC_STACK::min_stack, AC_STACK::max_stack ) );
|
||||||
|
|
|
@ -68,6 +68,11 @@ public:
|
||||||
*/
|
*/
|
||||||
static const ADVANCED_CFG& GetCfg();
|
static const ADVANCED_CFG& GetCfg();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extra fill clearance for zone fills
|
||||||
|
*/
|
||||||
|
double m_extraClearance;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do real-time connectivity
|
* Do real-time connectivity
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <future>
|
#include <future>
|
||||||
|
|
||||||
|
#include <advanced_config.h>
|
||||||
#include <class_board.h>
|
#include <class_board.h>
|
||||||
#include <class_zone.h>
|
#include <class_zone.h>
|
||||||
#include <class_module.h>
|
#include <class_module.h>
|
||||||
|
@ -560,7 +561,7 @@ void ZONE_FILLER::buildCopperItemClearances( const ZONE_CONTAINER* aZone, PCB_LA
|
||||||
// than requested clearance due to many approximations in calculations,
|
// than requested clearance due to many approximations in calculations,
|
||||||
// like arc to segment approx, rounding issues...
|
// like arc to segment approx, rounding issues...
|
||||||
// 2 microns are a good value
|
// 2 microns are a good value
|
||||||
int extra_margin = Millimeter2iu( 0.002 );
|
int extra_margin = Millimeter2iu( ADVANCED_CFG::GetCfg().m_extraClearance );
|
||||||
|
|
||||||
BOARD_DESIGN_SETTINGS& bds = m_board->GetDesignSettings();
|
BOARD_DESIGN_SETTINGS& bds = m_board->GetDesignSettings();
|
||||||
int zone_clearance = aZone->GetLocalClearance();
|
int zone_clearance = aZone->GetLocalClearance();
|
||||||
|
|
Loading…
Reference in New Issue