ADDED: Copper zone island removal is now configurable
ADDED: Zones and keepouts can now be named (for DRC) Fixes https://gitlab.com/kicad/code/kicad/-/issues/4392
This commit is contained in:
parent
7532cf4ab0
commit
1d5e4f86af
|
@ -126,6 +126,9 @@ hatch_smoothing_level
|
||||||
hatch_smoothing_value
|
hatch_smoothing_value
|
||||||
hide
|
hide
|
||||||
hole_to_hole_min
|
hole_to_hole_min
|
||||||
|
island
|
||||||
|
island_removal_mode
|
||||||
|
island_area_min
|
||||||
italic
|
italic
|
||||||
justify
|
justify
|
||||||
keepout
|
keepout
|
||||||
|
|
|
@ -64,7 +64,7 @@ ZONE_CONTAINER::ZONE_CONTAINER( BOARD_ITEM_CONTAINER* aParent, bool aInModule )
|
||||||
SetLocalFlags( 0 ); // flags tempoarry used in zone calculations
|
SetLocalFlags( 0 ); // flags tempoarry used in zone calculations
|
||||||
m_Poly = new SHAPE_POLY_SET(); // Outlines
|
m_Poly = new SHAPE_POLY_SET(); // Outlines
|
||||||
m_FilledPolysUseThickness = true; // set the "old" way to build filled polygon areas (before 6.0.x)
|
m_FilledPolysUseThickness = true; // set the "old" way to build filled polygon areas (before 6.0.x)
|
||||||
m_removeIslands = true;
|
m_islandRemovalMode = ISLAND_REMOVAL_MODE::ALWAYS;
|
||||||
aParent->GetZoneSettings().ExportSetting( *this );
|
aParent->GetZoneSettings().ExportSetting( *this );
|
||||||
|
|
||||||
m_needRefill = false; // True only after some edition.
|
m_needRefill = false; // True only after some edition.
|
||||||
|
@ -103,6 +103,7 @@ ZONE_CONTAINER& ZONE_CONTAINER::operator=( const ZONE_CONTAINER& aOther )
|
||||||
m_RawPolysList = aOther.m_RawPolysList;
|
m_RawPolysList = aOther.m_RawPolysList;
|
||||||
m_filledPolysHash = aOther.m_filledPolysHash;
|
m_filledPolysHash = aOther.m_filledPolysHash;
|
||||||
m_FillSegmList = aOther.m_FillSegmList; // vector <> copy
|
m_FillSegmList = aOther.m_FillSegmList; // vector <> copy
|
||||||
|
m_insulatedIslands = aOther.m_insulatedIslands;
|
||||||
|
|
||||||
m_HatchFillTypeThickness = aOther.m_HatchFillTypeThickness;
|
m_HatchFillTypeThickness = aOther.m_HatchFillTypeThickness;
|
||||||
m_HatchFillTypeGap = aOther.m_HatchFillTypeGap;
|
m_HatchFillTypeGap = aOther.m_HatchFillTypeGap;
|
||||||
|
@ -154,6 +155,7 @@ void ZONE_CONTAINER::initDataFromSrcInCopyCtor( const ZONE_CONTAINER& aZone )
|
||||||
m_RawPolysList = aZone.m_RawPolysList;
|
m_RawPolysList = aZone.m_RawPolysList;
|
||||||
m_filledPolysHash = aZone.m_filledPolysHash;
|
m_filledPolysHash = aZone.m_filledPolysHash;
|
||||||
m_FillSegmList = aZone.m_FillSegmList; // vector <> copy
|
m_FillSegmList = aZone.m_FillSegmList; // vector <> copy
|
||||||
|
m_insulatedIslands = aZone.m_insulatedIslands;
|
||||||
|
|
||||||
m_doNotAllowCopperPour = aZone.m_doNotAllowCopperPour;
|
m_doNotAllowCopperPour = aZone.m_doNotAllowCopperPour;
|
||||||
m_doNotAllowVias = aZone.m_doNotAllowVias;
|
m_doNotAllowVias = aZone.m_doNotAllowVias;
|
||||||
|
@ -267,10 +269,11 @@ void ZONE_CONTAINER::SetLayerSet( LSET aLayerSet )
|
||||||
|
|
||||||
for( PCB_LAYER_ID layer : aLayerSet.Seq() )
|
for( PCB_LAYER_ID layer : aLayerSet.Seq() )
|
||||||
{
|
{
|
||||||
m_FillSegmList[layer] = {};
|
m_FillSegmList[layer] = {};
|
||||||
m_FilledPolysList[layer] = {};
|
m_FilledPolysList[layer] = {};
|
||||||
m_RawPolysList[layer] = {};
|
m_RawPolysList[layer] = {};
|
||||||
m_filledPolysHash[layer] = {};
|
m_filledPolysHash[layer] = {};
|
||||||
|
m_insulatedIslands[layer] = {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1143,6 +1146,18 @@ void ZONE_CONTAINER::CacheTriangulation()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool ZONE_CONTAINER::IsIsland( PCB_LAYER_ID aLayer, int aPolyIdx )
|
||||||
|
{
|
||||||
|
if( GetNetCode() < 1 )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if( !m_insulatedIslands.count( aLayer ) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return m_insulatedIslands.at( aLayer ).count( aPolyIdx );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Some intersecting zones, despite being on the same layer with the same net, cannot be
|
* Some intersecting zones, despite being on the same layer with the same net, cannot be
|
||||||
* merged due to other parameters such as fillet radius. The copper pour will end up
|
* merged due to other parameters such as fillet radius. The copper pour will end up
|
||||||
|
|
|
@ -582,7 +582,10 @@ public:
|
||||||
void ClearFilledPolysList()
|
void ClearFilledPolysList()
|
||||||
{
|
{
|
||||||
for( std::pair<const PCB_LAYER_ID, SHAPE_POLY_SET>& pair : m_FilledPolysList )
|
for( std::pair<const PCB_LAYER_ID, SHAPE_POLY_SET>& pair : m_FilledPolysList )
|
||||||
|
{
|
||||||
|
m_insulatedIslands[pair.first].clear();
|
||||||
pair.second.RemoveAllContours();
|
pair.second.RemoveAllContours();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -619,6 +622,18 @@ public:
|
||||||
m_RawPolysList[aLayer] = aPolysList;
|
m_RawPolysList[aLayer] = aPolysList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a given filled polygon is an insulated island
|
||||||
|
* @param aLayer is the layer to test
|
||||||
|
* @param aPolyIdx is an inndex into m_FilledPolysList[aLayer]
|
||||||
|
* @return true if the given polygon is insulated (i.e. has no net connection)
|
||||||
|
*/
|
||||||
|
bool IsIsland( PCB_LAYER_ID aLayer, int aPolyIdx );
|
||||||
|
|
||||||
|
void SetIsIsland( PCB_LAYER_ID aLayer, int aPolyIdx )
|
||||||
|
{
|
||||||
|
m_insulatedIslands[aLayer].insert( aPolyIdx );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetSmoothedPoly
|
* Function GetSmoothedPoly
|
||||||
|
@ -701,8 +716,12 @@ public:
|
||||||
void SetDoNotAllowPads( bool aEnable ) { m_doNotAllowPads = aEnable; }
|
void SetDoNotAllowPads( bool aEnable ) { m_doNotAllowPads = aEnable; }
|
||||||
void SetDoNotAllowFootprints( bool aEnable ) { m_doNotAllowFootprints = aEnable; }
|
void SetDoNotAllowFootprints( bool aEnable ) { m_doNotAllowFootprints = aEnable; }
|
||||||
|
|
||||||
bool GetRemoveIslands() const { return m_removeIslands; }
|
const ISLAND_REMOVAL_MODE GetIslandRemovalMode() const { return m_islandRemovalMode; }
|
||||||
void SetRemoveIslands( bool aRemove ) { m_removeIslands = aRemove; }
|
void SetIslandRemovalMode( ISLAND_REMOVAL_MODE aRemove ) {
|
||||||
|
m_islandRemovalMode = aRemove; }
|
||||||
|
|
||||||
|
long long int GetMinIslandArea() const { return m_minIslandArea; }
|
||||||
|
void SetMinIslandArea( long long int aArea ) { m_minIslandArea = aArea; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hatch related methods
|
* Hatch related methods
|
||||||
|
@ -828,8 +847,13 @@ protected:
|
||||||
int m_ZoneMinThickness; ///< Minimum thickness value in filled areas.
|
int m_ZoneMinThickness; ///< Minimum thickness value in filled areas.
|
||||||
bool m_FilledPolysUseThickness; ///< outline of filled polygons have thickness.
|
bool m_FilledPolysUseThickness; ///< outline of filled polygons have thickness.
|
||||||
|
|
||||||
/// True if isolated copper (islands) should be removed after fill (default)
|
ISLAND_REMOVAL_MODE m_islandRemovalMode;
|
||||||
bool m_removeIslands;
|
|
||||||
|
/**
|
||||||
|
* When island removal mode is set to AREA, islands below this area will be removed.
|
||||||
|
* If this value is negative, all islands will be removed.
|
||||||
|
*/
|
||||||
|
long long int m_minIslandArea;
|
||||||
|
|
||||||
/** True when a zone was filled, false after deleting the filled areas. */
|
/** True when a zone was filled, false after deleting the filled areas. */
|
||||||
bool m_IsFilled;
|
bool m_IsFilled;
|
||||||
|
@ -898,7 +922,9 @@ protected:
|
||||||
ZONE_HATCH_STYLE m_hatchStyle; // hatch style, see enum above
|
ZONE_HATCH_STYLE m_hatchStyle; // hatch style, see enum above
|
||||||
int m_hatchPitch; // for DIAGONAL_EDGE, distance between 2 hatch lines
|
int m_hatchPitch; // for DIAGONAL_EDGE, distance between 2 hatch lines
|
||||||
std::vector<SEG> m_HatchLines; // hatch lines
|
std::vector<SEG> m_HatchLines; // hatch lines
|
||||||
std::vector<int> m_insulatedIslands;
|
|
||||||
|
/// For each layer, a set of insulated islands that were not removed
|
||||||
|
std::map<PCB_LAYER_ID, std::set<int>> m_insulatedIslands;
|
||||||
|
|
||||||
bool m_hv45; // constrain edges to horizontal, vertical or 45º
|
bool m_hv45; // constrain edges to horizontal, vertical or 45º
|
||||||
|
|
||||||
|
|
|
@ -180,6 +180,13 @@ void CONNECTIVITY_DATA::RecalculateRatsnest( BOARD_COMMIT* aCommit )
|
||||||
{
|
{
|
||||||
int net = c->OriginNet();
|
int net = c->OriginNet();
|
||||||
|
|
||||||
|
// Don't add intentionally-kept zone islands to the ratsnest
|
||||||
|
if( c->IsOrphaned() && c->Size() == 1 )
|
||||||
|
{
|
||||||
|
if( dynamic_cast<CN_ZONE*>( *c->begin() ) )
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if( m_connAlgo->IsNetDirty( net ) )
|
if( m_connAlgo->IsNetDirty( net ) )
|
||||||
{
|
{
|
||||||
addRatsnestCluster( c );
|
addRatsnestCluster( c );
|
||||||
|
|
|
@ -65,6 +65,7 @@ private:
|
||||||
UNIT_BINDER m_gridStyleRotation;
|
UNIT_BINDER m_gridStyleRotation;
|
||||||
UNIT_BINDER m_gridStyleThickness;
|
UNIT_BINDER m_gridStyleThickness;
|
||||||
UNIT_BINDER m_gridStyleGap;
|
UNIT_BINDER m_gridStyleGap;
|
||||||
|
UNIT_BINDER m_islandThreshold;
|
||||||
|
|
||||||
bool TransferDataToWindow() override;
|
bool TransferDataToWindow() override;
|
||||||
bool TransferDataFromWindow() override;
|
bool TransferDataFromWindow() override;
|
||||||
|
@ -110,11 +111,13 @@ DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE( PCB_BASE_FRAME* aParent, ZONE_SETTINGS*
|
||||||
m_minWidth( aParent, m_minWidthLabel, m_minWidthCtrl, m_minWidthUnits, true ),
|
m_minWidth( aParent, m_minWidthLabel, m_minWidthCtrl, m_minWidthUnits, true ),
|
||||||
m_antipadClearance( aParent, m_antipadLabel, m_antipadCtrl, m_antipadUnits, true ),
|
m_antipadClearance( aParent, m_antipadLabel, m_antipadCtrl, m_antipadUnits, true ),
|
||||||
m_spokeWidth( aParent, m_spokeWidthLabel, m_spokeWidthCtrl, m_spokeWidthUnits, true ),
|
m_spokeWidth( aParent, m_spokeWidthLabel, m_spokeWidthCtrl, m_spokeWidthUnits, true ),
|
||||||
m_gridStyleRotation( aParent, m_staticTextGrindOrient, m_tcGridStyleOrientation, m_staticTextRotUnits,
|
m_gridStyleRotation( aParent, m_staticTextGrindOrient, m_tcGridStyleOrientation,
|
||||||
false ),
|
m_staticTextRotUnits, false ),
|
||||||
m_gridStyleThickness( aParent, m_staticTextStyleThickness,
|
m_gridStyleThickness( aParent, m_staticTextStyleThickness,
|
||||||
m_tcGridStyleThickness, m_GridStyleThicknessUnits, false ),
|
m_tcGridStyleThickness, m_GridStyleThicknessUnits, false ),
|
||||||
m_gridStyleGap( aParent, m_staticTextGridGap, m_tcGridStyleGap, m_GridStyleGapUnits, false )
|
m_gridStyleGap( aParent, m_staticTextGridGap, m_tcGridStyleGap, m_GridStyleGapUnits, false ),
|
||||||
|
m_islandThreshold( aParent, m_islandThresholdLabel,
|
||||||
|
m_tcIslandThreshold, m_islandThresholdUnits, false )
|
||||||
{
|
{
|
||||||
m_Parent = aParent;
|
m_Parent = aParent;
|
||||||
m_bitmapNoNetWarning->SetBitmap( KiBitmap( dialog_warning_xpm ) );
|
m_bitmapNoNetWarning->SetBitmap( KiBitmap( dialog_warning_xpm ) );
|
||||||
|
@ -130,6 +133,17 @@ DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE( PCB_BASE_FRAME* aParent, ZONE_SETTINGS*
|
||||||
|
|
||||||
m_sdbSizerOK->SetDefault();
|
m_sdbSizerOK->SetDefault();
|
||||||
|
|
||||||
|
m_cbRemoveIslands->Bind( wxEVT_CHOICE,
|
||||||
|
[&]( wxCommandEvent& )
|
||||||
|
{
|
||||||
|
// Area mode is index 2
|
||||||
|
bool val = m_cbRemoveIslands->GetSelection() == 2;
|
||||||
|
|
||||||
|
m_tcIslandThreshold->Enable( val );
|
||||||
|
m_islandThresholdLabel->Enable( val );
|
||||||
|
m_islandThresholdUnits->Enable( val );
|
||||||
|
} );
|
||||||
|
|
||||||
FinishDialogSettings();
|
FinishDialogSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,6 +193,17 @@ bool DIALOG_COPPER_ZONE::TransferDataToWindow()
|
||||||
m_antipadClearance.SetValue( m_settings.m_ThermalReliefGap );
|
m_antipadClearance.SetValue( m_settings.m_ThermalReliefGap );
|
||||||
m_spokeWidth.SetValue( m_settings.m_ThermalReliefCopperBridge );
|
m_spokeWidth.SetValue( m_settings.m_ThermalReliefCopperBridge );
|
||||||
|
|
||||||
|
m_islandThreshold.SetDataType( EDA_DATA_TYPE::AREA );
|
||||||
|
m_islandThreshold.SetDoubleValue( static_cast<double>( m_settings.GetMinIslandArea() ) );
|
||||||
|
|
||||||
|
m_cbRemoveIslands->SetSelection( static_cast<int>( m_settings.GetIslandRemovalMode() ) );
|
||||||
|
|
||||||
|
bool val = m_settings.GetIslandRemovalMode() == ISLAND_REMOVAL_MODE::AREA;
|
||||||
|
|
||||||
|
m_tcIslandThreshold->Enable( val );
|
||||||
|
m_islandThresholdLabel->Enable( val );
|
||||||
|
m_islandThresholdUnits->Enable( val );
|
||||||
|
|
||||||
wxString netNameDoNotShowFilter = wxT( "Net-*" );
|
wxString netNameDoNotShowFilter = wxT( "Net-*" );
|
||||||
m_NetFiltering = false;
|
m_NetFiltering = false;
|
||||||
m_NetSortingByPadCount = true;
|
m_NetSortingByPadCount = true;
|
||||||
|
@ -235,10 +260,14 @@ bool DIALOG_COPPER_ZONE::TransferDataToWindow()
|
||||||
m_spinCtrlSmoothLevel->SetValue( m_settings.m_HatchFillTypeSmoothingLevel );
|
m_spinCtrlSmoothLevel->SetValue( m_settings.m_HatchFillTypeSmoothingLevel );
|
||||||
m_spinCtrlSmoothValue->SetValue( m_settings.m_HatchFillTypeSmoothingValue );
|
m_spinCtrlSmoothValue->SetValue( m_settings.m_HatchFillTypeSmoothingValue );
|
||||||
|
|
||||||
|
m_tcZoneName->SetValue( m_settings.m_Name );
|
||||||
|
|
||||||
// Enable/Disable some widgets
|
// Enable/Disable some widgets
|
||||||
wxCommandEvent event;
|
wxCommandEvent event;
|
||||||
OnStyleSelection( event );
|
OnStyleSelection( event );
|
||||||
|
|
||||||
|
Fit();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,7 +277,16 @@ void DIALOG_COPPER_ZONE::OnUpdateUI( wxUpdateUIEvent& )
|
||||||
if( m_ListNetNameSelection->GetSelection() < 0 )
|
if( m_ListNetNameSelection->GetSelection() < 0 )
|
||||||
m_ListNetNameSelection->SetSelection( 0 );
|
m_ListNetNameSelection->SetSelection( 0 );
|
||||||
|
|
||||||
m_bNoNetWarning->Show( m_ListNetNameSelection->GetSelection() == 0 );
|
bool noNetSelected = m_ListNetNameSelection->GetSelection() == 0;
|
||||||
|
bool enableSize = !noNetSelected && ( m_cbRemoveIslands->GetSelection() == 2 );
|
||||||
|
|
||||||
|
m_bNoNetWarning->Show( noNetSelected );
|
||||||
|
|
||||||
|
// Zones with no net never have islands removed
|
||||||
|
m_cbRemoveIslands->Enable( !noNetSelected );
|
||||||
|
m_islandThresholdLabel->Enable( enableSize );
|
||||||
|
m_islandThresholdUnits->Enable( enableSize );
|
||||||
|
m_tcIslandThreshold->Enable( enableSize );
|
||||||
|
|
||||||
if( m_cornerSmoothingType != m_cornerSmoothingChoice->GetSelection() )
|
if( m_cornerSmoothingType != m_cornerSmoothingChoice->GetSelection() )
|
||||||
{
|
{
|
||||||
|
@ -390,6 +428,10 @@ bool DIALOG_COPPER_ZONE::AcceptOptions( bool aUseExportableSetupOnly )
|
||||||
cfg->m_Zones.thermal_relief_gap = Iu2Mils( m_settings.m_ThermalReliefGap );
|
cfg->m_Zones.thermal_relief_gap = Iu2Mils( m_settings.m_ThermalReliefGap );
|
||||||
cfg->m_Zones.thermal_relief_copper_width = Iu2Mils( m_settings.m_ThermalReliefCopperBridge );
|
cfg->m_Zones.thermal_relief_copper_width = Iu2Mils( m_settings.m_ThermalReliefCopperBridge );
|
||||||
|
|
||||||
|
m_settings.SetIslandRemovalMode(
|
||||||
|
static_cast<ISLAND_REMOVAL_MODE>( m_cbRemoveIslands->GetSelection() ) );
|
||||||
|
m_settings.SetMinIslandArea( m_islandThreshold.GetValue() );
|
||||||
|
|
||||||
// If we use only exportable to others zones parameters, exit here:
|
// If we use only exportable to others zones parameters, exit here:
|
||||||
if( aUseExportableSetupOnly )
|
if( aUseExportableSetupOnly )
|
||||||
return true;
|
return true;
|
||||||
|
@ -422,6 +464,8 @@ bool DIALOG_COPPER_ZONE::AcceptOptions( bool aUseExportableSetupOnly )
|
||||||
|
|
||||||
m_settings.m_NetcodeSelection = net ? net->GetNet() : 0;
|
m_settings.m_NetcodeSelection = net ? net->GetNet() : 0;
|
||||||
|
|
||||||
|
m_settings.m_Name = m_tcZoneName->GetValue();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version v3.8.0)
|
// C++ code generated with wxFormBuilder (version Oct 26 2018)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||||
|
@ -228,6 +228,15 @@ DIALOG_COPPER_ZONE_BASE::DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID i
|
||||||
m_spokeWidthUnits->Wrap( -1 );
|
m_spokeWidthUnits->Wrap( -1 );
|
||||||
gbSizerSettings->Add( m_spokeWidthUnits, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
|
gbSizerSettings->Add( m_spokeWidthUnits, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
|
||||||
|
|
||||||
|
m_staticText39 = new wxStaticText( sbSizer5->GetStaticBox(), wxID_ANY, _("Zone name:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_staticText39->Wrap( -1 );
|
||||||
|
m_staticText39->SetToolTip( _("A unique name for this zone to identify it for DRC") );
|
||||||
|
|
||||||
|
gbSizerSettings->Add( m_staticText39, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
|
m_tcZoneName = new wxTextCtrl( sbSizer5->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
gbSizerSettings->Add( m_tcZoneName, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
gbSizerSettings->AddGrowableCol( 1 );
|
gbSizerSettings->AddGrowableCol( 1 );
|
||||||
|
|
||||||
|
@ -239,85 +248,107 @@ DIALOG_COPPER_ZONE_BASE::DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID i
|
||||||
wxStaticBoxSizer* sbSizerZoneStyle;
|
wxStaticBoxSizer* sbSizerZoneStyle;
|
||||||
sbSizerZoneStyle = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Fill") ), wxVERTICAL );
|
sbSizerZoneStyle = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Fill") ), wxVERTICAL );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizerZoneStyle;
|
wxGridBagSizer* gbSizer3;
|
||||||
fgSizerZoneStyle = new wxFlexGridSizer( 0, 3, 0, 0 );
|
gbSizer3 = new wxGridBagSizer( 0, 0 );
|
||||||
fgSizerZoneStyle->AddGrowableCol( 1 );
|
gbSizer3->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizerZoneStyle->SetFlexibleDirection( wxBOTH );
|
gbSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
fgSizerZoneStyle->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
|
||||||
|
|
||||||
m_staticTextGridFillType = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Fill type:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextGridFillType = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Fill type:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextGridFillType->Wrap( -1 );
|
m_staticTextGridFillType->Wrap( -1 );
|
||||||
fgSizerZoneStyle->Add( m_staticTextGridFillType, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
gbSizer3->Add( m_staticTextGridFillType, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
wxString m_GridStyleCtrlChoices[] = { _("Solid shape"), _("Hatch pattern") };
|
wxString m_GridStyleCtrlChoices[] = { _("Solid shape"), _("Hatch pattern") };
|
||||||
int m_GridStyleCtrlNChoices = sizeof( m_GridStyleCtrlChoices ) / sizeof( wxString );
|
int m_GridStyleCtrlNChoices = sizeof( m_GridStyleCtrlChoices ) / sizeof( wxString );
|
||||||
m_GridStyleCtrl = new wxChoice( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_GridStyleCtrlNChoices, m_GridStyleCtrlChoices, 0 );
|
m_GridStyleCtrl = new wxChoice( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_GridStyleCtrlNChoices, m_GridStyleCtrlChoices, 0 );
|
||||||
m_GridStyleCtrl->SetSelection( 0 );
|
m_GridStyleCtrl->SetSelection( 0 );
|
||||||
fgSizerZoneStyle->Add( m_GridStyleCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
gbSizer3->Add( m_GridStyleCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
fgSizerZoneStyle->Add( 0, 0, 1, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
m_staticTextGrindOrient = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextGrindOrient = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextGrindOrient->Wrap( -1 );
|
m_staticTextGrindOrient->Wrap( -1 );
|
||||||
fgSizerZoneStyle->Add( m_staticTextGrindOrient, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
gbSizer3->Add( m_staticTextGrindOrient, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
m_tcGridStyleOrientation = new wxTextCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_tcGridStyleOrientation = new wxTextCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizerZoneStyle->Add( m_tcGridStyleOrientation, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
gbSizer3->Add( m_tcGridStyleOrientation, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_staticTextRotUnits = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextRotUnits = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextRotUnits->Wrap( -1 );
|
m_staticTextRotUnits->Wrap( -1 );
|
||||||
fgSizerZoneStyle->Add( m_staticTextRotUnits, 0, wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
gbSizer3->Add( m_staticTextRotUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
m_staticTextStyleThickness = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Hatch width:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextStyleThickness = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Hatch width:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextStyleThickness->Wrap( -1 );
|
m_staticTextStyleThickness->Wrap( -1 );
|
||||||
fgSizerZoneStyle->Add( m_staticTextStyleThickness, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
gbSizer3->Add( m_staticTextStyleThickness, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
m_tcGridStyleThickness = new wxTextCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_tcGridStyleThickness = new wxTextCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizerZoneStyle->Add( m_tcGridStyleThickness, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
gbSizer3->Add( m_tcGridStyleThickness, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_GridStyleThicknessUnits = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("units"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_GridStyleThicknessUnits = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("units"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_GridStyleThicknessUnits->Wrap( -1 );
|
m_GridStyleThicknessUnits->Wrap( -1 );
|
||||||
fgSizerZoneStyle->Add( m_GridStyleThicknessUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
|
gbSizer3->Add( m_GridStyleThicknessUnits, wxGBPosition( 2, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
m_staticTextGridGap = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Hatch gap:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextGridGap = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Hatch gap:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextGridGap->Wrap( -1 );
|
m_staticTextGridGap->Wrap( -1 );
|
||||||
fgSizerZoneStyle->Add( m_staticTextGridGap, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
gbSizer3->Add( m_staticTextGridGap, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
m_tcGridStyleGap = new wxTextCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_tcGridStyleGap = new wxTextCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizerZoneStyle->Add( m_tcGridStyleGap, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
gbSizer3->Add( m_tcGridStyleGap, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_GridStyleGapUnits = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("units"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_GridStyleGapUnits = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("units"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_GridStyleGapUnits->Wrap( -1 );
|
m_GridStyleGapUnits->Wrap( -1 );
|
||||||
fgSizerZoneStyle->Add( m_GridStyleGapUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
|
gbSizer3->Add( m_GridStyleGapUnits, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
m_staticTextGridSmoothingLevel = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Smoothing effort:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextGridSmoothingLevel = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Smoothing effort:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextGridSmoothingLevel->Wrap( -1 );
|
m_staticTextGridSmoothingLevel->Wrap( -1 );
|
||||||
m_staticTextGridSmoothingLevel->SetToolTip( _("Value of smoothing effort\n0 = no smoothing\n1 = chamfer\n2 = round corners\n3 = round corners (finer shape)") );
|
m_staticTextGridSmoothingLevel->SetToolTip( _("Value of smoothing effort\n0 = no smoothing\n1 = chamfer\n2 = round corners\n3 = round corners (finer shape)") );
|
||||||
|
|
||||||
fgSizerZoneStyle->Add( m_staticTextGridSmoothingLevel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
gbSizer3->Add( m_staticTextGridSmoothingLevel, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
m_spinCtrlSmoothLevel = new wxSpinCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 3, 0 );
|
m_spinCtrlSmoothLevel = new wxSpinCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 3, 0 );
|
||||||
fgSizerZoneStyle->Add( m_spinCtrlSmoothLevel, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
gbSizer3->Add( m_spinCtrlSmoothLevel, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
fgSizerZoneStyle->Add( 0, 0, 1, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
m_staticTextGridSmootingVal = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Smooth value (0..1):"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextGridSmootingVal = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Smooth value (0..1):"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextGridSmootingVal->Wrap( -1 );
|
m_staticTextGridSmootingVal->Wrap( -1 );
|
||||||
m_staticTextGridSmootingVal->SetToolTip( _("Ratio between smoothed corners size and the gap between lines\n0 = no smoothing\n1.0 = max radius/chamfer size (half gap value)") );
|
m_staticTextGridSmootingVal->SetToolTip( _("Ratio between smoothed corners size and the gap between lines\n0 = no smoothing\n1.0 = max radius/chamfer size (half gap value)") );
|
||||||
|
|
||||||
fgSizerZoneStyle->Add( m_staticTextGridSmootingVal, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
gbSizer3->Add( m_staticTextGridSmootingVal, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
m_spinCtrlSmoothValue = new wxSpinCtrlDouble( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 1, 0.100000, 0.1 );
|
m_spinCtrlSmoothValue = new wxSpinCtrlDouble( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 1, 0.100000, 0.1 );
|
||||||
m_spinCtrlSmoothValue->SetDigits( 0 );
|
m_spinCtrlSmoothValue->SetDigits( 0 );
|
||||||
fgSizerZoneStyle->Add( m_spinCtrlSmoothValue, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
gbSizer3->Add( m_spinCtrlSmoothValue, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
|
||||||
|
|
||||||
|
m_staticText40 = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Remove islands:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_staticText40->Wrap( -1 );
|
||||||
|
m_staticText40->SetToolTip( _("Choose what to do with unconnected copper islands") );
|
||||||
|
|
||||||
|
gbSizer3->Add( m_staticText40, wxGBPosition( 6, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
|
wxString m_cbRemoveIslandsChoices[] = { _("Always"), _("Never"), _("Below area limit") };
|
||||||
|
int m_cbRemoveIslandsNChoices = sizeof( m_cbRemoveIslandsChoices ) / sizeof( wxString );
|
||||||
|
m_cbRemoveIslands = new wxChoice( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_cbRemoveIslandsNChoices, m_cbRemoveIslandsChoices, 0 );
|
||||||
|
m_cbRemoveIslands->SetSelection( 0 );
|
||||||
|
gbSizer3->Add( m_cbRemoveIslands, wxGBPosition( 6, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
|
||||||
|
|
||||||
|
m_islandThresholdLabel = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("Minimum island size:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_islandThresholdLabel->Wrap( -1 );
|
||||||
|
m_islandThresholdLabel->Enable( false );
|
||||||
|
m_islandThresholdLabel->SetToolTip( _("Isolated islands smaller than this will be removed") );
|
||||||
|
|
||||||
|
gbSizer3->Add( m_islandThresholdLabel, wxGBPosition( 7, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
|
m_tcIslandThreshold = new wxTextCtrl( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_tcIslandThreshold->Enable( false );
|
||||||
|
|
||||||
|
gbSizer3->Add( m_tcIslandThreshold, wxGBPosition( 7, 1 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_islandThresholdUnits = new wxStaticText( sbSizerZoneStyle->GetStaticBox(), wxID_ANY, _("units"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_islandThresholdUnits->Wrap( -1 );
|
||||||
|
m_islandThresholdUnits->Enable( false );
|
||||||
|
|
||||||
|
gbSizer3->Add( m_islandThresholdUnits, wxGBPosition( 7, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
fgSizerZoneStyle->Add( 0, 0, 1, wxEXPAND, 5 );
|
gbSizer3->AddGrowableCol( 1 );
|
||||||
|
|
||||||
|
sbSizerZoneStyle->Add( gbSizer3, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||||
sbSizerZoneStyle->Add( fgSizerZoneStyle, 1, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizerMiddle->Add( sbSizerZoneStyle, 1, wxEXPAND|wxTOP|wxRIGHT, 10 );
|
bSizerMiddle->Add( sbSizerZoneStyle, 1, wxEXPAND|wxTOP|wxRIGHT, 10 );
|
||||||
|
|
|
@ -2498,6 +2498,137 @@
|
||||||
<property name="wrap">-1</property>
|
<property name="wrap">-1</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="gbsizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="colspan">1</property>
|
||||||
|
<property name="column">0</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
|
<property name="row">5</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
|
<object class="wxStaticText" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Zone name:</property>
|
||||||
|
<property name="markup">0</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_staticText39</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass">; ; forward_declare</property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip">A unique name for this zone to identify it for DRC</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<property name="wrap">-1</property>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="gbsizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="colspan">1</property>
|
||||||
|
<property name="column">1</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="row">5</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
|
<object class="wxTextCtrl" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="maxlength"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_tcZoneName</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass">; ; forward_declare</property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="validator_data_type"></property>
|
||||||
|
<property name="validator_style">wxFILTER_NONE</property>
|
||||||
|
<property name="validator_type">wxDefaultValidator</property>
|
||||||
|
<property name="validator_variable"></property>
|
||||||
|
<property name="value"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
@ -2516,24 +2647,26 @@
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxEXPAND</property>
|
<property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
|
||||||
<property name="proportion">1</property>
|
<property name="proportion">1</property>
|
||||||
<object class="wxFlexGridSizer" expanded="1">
|
<object class="wxGridBagSizer" expanded="1">
|
||||||
<property name="cols">3</property>
|
<property name="empty_cell_size"></property>
|
||||||
<property name="flexible_direction">wxBOTH</property>
|
<property name="flexible_direction">wxBOTH</property>
|
||||||
<property name="growablecols">1</property>
|
<property name="growablecols">1</property>
|
||||||
<property name="growablerows"></property>
|
<property name="growablerows"></property>
|
||||||
<property name="hgap">0</property>
|
<property name="hgap">0</property>
|
||||||
<property name="minimum_size"></property>
|
<property name="minimum_size"></property>
|
||||||
<property name="name">fgSizerZoneStyle</property>
|
<property name="name">gbSizer3</property>
|
||||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
<property name="rows">0</property>
|
|
||||||
<property name="vgap">0</property>
|
<property name="vgap">0</property>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">0</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
|
<property name="row">0</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxStaticText" expanded="1">
|
<object class="wxStaticText" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -2591,10 +2724,13 @@
|
||||||
<property name="wrap">-1</property>
|
<property name="wrap">-1</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">1</property>
|
||||||
|
<property name="flag">wxALL</property>
|
||||||
|
<property name="row">0</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxChoice" expanded="1">
|
<object class="wxChoice" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -2656,20 +2792,13 @@
|
||||||
<event name="OnChoice">OnStyleSelection</event>
|
<event name="OnChoice">OnStyleSelection</event>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxEXPAND</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">1</property>
|
<property name="column">0</property>
|
||||||
<object class="spacer" expanded="1">
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
<property name="height">0</property>
|
<property name="row">1</property>
|
||||||
<property name="permission">protected</property>
|
<property name="rowspan">1</property>
|
||||||
<property name="width">0</property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxStaticText" expanded="1">
|
<object class="wxStaticText" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -2727,10 +2856,13 @@
|
||||||
<property name="wrap">-1</property>
|
<property name="wrap">-1</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">1</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="row">1</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxTextCtrl" expanded="1">
|
<object class="wxTextCtrl" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -2791,10 +2923,13 @@
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">2</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
|
<property name="row">1</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxStaticText" expanded="1">
|
<object class="wxStaticText" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -2852,10 +2987,13 @@
|
||||||
<property name="wrap">-1</property>
|
<property name="wrap">-1</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">0</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
|
<property name="row">2</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxStaticText" expanded="1">
|
<object class="wxStaticText" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -2913,10 +3051,13 @@
|
||||||
<property name="wrap">-1</property>
|
<property name="wrap">-1</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">1</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="row">2</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxTextCtrl" expanded="1">
|
<object class="wxTextCtrl" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -2977,10 +3118,13 @@
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">2</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
|
<property name="row">2</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxStaticText" expanded="1">
|
<object class="wxStaticText" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -3038,10 +3182,13 @@
|
||||||
<property name="wrap">-1</property>
|
<property name="wrap">-1</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">0</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
|
<property name="row">3</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxStaticText" expanded="1">
|
<object class="wxStaticText" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -3099,10 +3246,13 @@
|
||||||
<property name="wrap">-1</property>
|
<property name="wrap">-1</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">1</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="row">3</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxTextCtrl" expanded="1">
|
<object class="wxTextCtrl" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -3163,10 +3313,13 @@
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">2</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
|
<property name="row">3</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxStaticText" expanded="1">
|
<object class="wxStaticText" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -3224,10 +3377,13 @@
|
||||||
<property name="wrap">-1</property>
|
<property name="wrap">-1</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">0</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
|
<property name="row">4</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxStaticText" expanded="1">
|
<object class="wxStaticText" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -3285,10 +3441,13 @@
|
||||||
<property name="wrap">-1</property>
|
<property name="wrap">-1</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">1</property>
|
||||||
|
<property name="flag">wxALL</property>
|
||||||
|
<property name="row">4</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxSpinCtrl" expanded="1">
|
<object class="wxSpinCtrl" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -3347,20 +3506,13 @@
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxEXPAND</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">1</property>
|
<property name="column">0</property>
|
||||||
<object class="spacer" expanded="1">
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
<property name="height">0</property>
|
<property name="row">5</property>
|
||||||
<property name="permission">protected</property>
|
<property name="rowspan">1</property>
|
||||||
<property name="width">0</property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxStaticText" expanded="1">
|
<object class="wxStaticText" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -3418,10 +3570,13 @@
|
||||||
<property name="wrap">-1</property>
|
<property name="wrap">-1</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">0</property>
|
<property name="column">1</property>
|
||||||
|
<property name="flag">wxALL</property>
|
||||||
|
<property name="row">5</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxSpinCtrlDouble" expanded="1">
|
<object class="wxSpinCtrlDouble" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -3482,14 +3637,330 @@
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="gbsizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxEXPAND</property>
|
<property name="colspan">1</property>
|
||||||
<property name="proportion">1</property>
|
<property name="column">0</property>
|
||||||
<object class="spacer" expanded="1">
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
<property name="height">0</property>
|
<property name="row">6</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
|
<object class="wxStaticText" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Remove islands:</property>
|
||||||
|
<property name="markup">0</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_staticText40</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
<property name="permission">protected</property>
|
<property name="permission">protected</property>
|
||||||
<property name="width">0</property>
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass">; ; forward_declare</property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip">Choose what to do with unconnected copper islands</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<property name="wrap">-1</property>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="gbsizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="colspan">1</property>
|
||||||
|
<property name="column">1</property>
|
||||||
|
<property name="flag">wxALL</property>
|
||||||
|
<property name="row">6</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
|
<object class="wxChoice" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="choices">"Always" "Never" "Below area limit"</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_cbRemoveIslands</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="selection">0</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass">; ; forward_declare</property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="validator_data_type"></property>
|
||||||
|
<property name="validator_style">wxFILTER_NONE</property>
|
||||||
|
<property name="validator_type">wxDefaultValidator</property>
|
||||||
|
<property name="validator_variable"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="gbsizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="colspan">1</property>
|
||||||
|
<property name="column">0</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
|
<property name="row">7</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
|
<object class="wxStaticText" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">0</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Minimum island size:</property>
|
||||||
|
<property name="markup">0</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_islandThresholdLabel</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass">; ; forward_declare</property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip">Isolated islands smaller than this will be removed</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<property name="wrap">-1</property>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="gbsizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="colspan">1</property>
|
||||||
|
<property name="column">1</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="row">7</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
|
<object class="wxTextCtrl" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">0</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="maxlength"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_tcIslandThreshold</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass">; ; forward_declare</property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="validator_data_type"></property>
|
||||||
|
<property name="validator_style">wxFILTER_NONE</property>
|
||||||
|
<property name="validator_type">wxDefaultValidator</property>
|
||||||
|
<property name="validator_variable"></property>
|
||||||
|
<property name="value"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="gbsizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="colspan">1</property>
|
||||||
|
<property name="column">2</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
|
<property name="row">7</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
|
<object class="wxStaticText" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">0</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">units</property>
|
||||||
|
<property name="markup">0</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_islandThresholdUnits</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass">; ; forward_declare</property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<property name="wrap">-1</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version v3.8.0)
|
// C++ code generated with wxFormBuilder (version Oct 26 2018)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||||
|
@ -98,6 +98,8 @@ class DIALOG_COPPER_ZONE_BASE : public DIALOG_SHIM
|
||||||
wxStaticText* m_spokeWidthLabel;
|
wxStaticText* m_spokeWidthLabel;
|
||||||
wxTextCtrl* m_spokeWidthCtrl;
|
wxTextCtrl* m_spokeWidthCtrl;
|
||||||
wxStaticText* m_spokeWidthUnits;
|
wxStaticText* m_spokeWidthUnits;
|
||||||
|
wxStaticText* m_staticText39;
|
||||||
|
wxTextCtrl* m_tcZoneName;
|
||||||
wxStaticText* m_staticTextGridFillType;
|
wxStaticText* m_staticTextGridFillType;
|
||||||
wxChoice* m_GridStyleCtrl;
|
wxChoice* m_GridStyleCtrl;
|
||||||
wxStaticText* m_staticTextGrindOrient;
|
wxStaticText* m_staticTextGrindOrient;
|
||||||
|
@ -113,6 +115,11 @@ class DIALOG_COPPER_ZONE_BASE : public DIALOG_SHIM
|
||||||
wxSpinCtrl* m_spinCtrlSmoothLevel;
|
wxSpinCtrl* m_spinCtrlSmoothLevel;
|
||||||
wxStaticText* m_staticTextGridSmootingVal;
|
wxStaticText* m_staticTextGridSmootingVal;
|
||||||
wxSpinCtrlDouble* m_spinCtrlSmoothValue;
|
wxSpinCtrlDouble* m_spinCtrlSmoothValue;
|
||||||
|
wxStaticText* m_staticText40;
|
||||||
|
wxChoice* m_cbRemoveIslands;
|
||||||
|
wxStaticText* m_islandThresholdLabel;
|
||||||
|
wxTextCtrl* m_tcIslandThreshold;
|
||||||
|
wxStaticText* m_islandThresholdUnits;
|
||||||
wxButton* m_ExportSetupButton;
|
wxButton* m_ExportSetupButton;
|
||||||
wxStdDialogButtonSizer* m_sdbSizer;
|
wxStdDialogButtonSizer* m_sdbSizer;
|
||||||
wxButton* m_sdbSizerOK;
|
wxButton* m_sdbSizerOK;
|
||||||
|
|
|
@ -97,6 +97,8 @@ bool DIALOG_KEEPOUT_AREA_PROPERTIES::TransferDataToWindow()
|
||||||
|
|
||||||
m_cbConstrainCtrl->SetValue( m_zonesettings.m_Zone_45_Only );
|
m_cbConstrainCtrl->SetValue( m_zonesettings.m_Zone_45_Only );
|
||||||
|
|
||||||
|
m_tcName->SetValue( m_zonesettings.m_Name );
|
||||||
|
|
||||||
switch( m_zonesettings.m_Zone_HatchingStyle )
|
switch( m_zonesettings.m_Zone_HatchingStyle )
|
||||||
{
|
{
|
||||||
case ZONE_HATCH_STYLE::NO_HATCH:
|
case ZONE_HATCH_STYLE::NO_HATCH:
|
||||||
|
@ -187,6 +189,8 @@ bool DIALOG_KEEPOUT_AREA_PROPERTIES::TransferDataFromWindow()
|
||||||
m_zonesettings.m_Zone_45_Only = m_cbConstrainCtrl->GetValue();
|
m_zonesettings.m_Zone_45_Only = m_cbConstrainCtrl->GetValue();
|
||||||
m_zonesettings.m_ZonePriority = 0; // for a keepout, this param is not used.
|
m_zonesettings.m_ZonePriority = 0; // for a keepout, this param is not used.
|
||||||
|
|
||||||
|
m_zonesettings.m_Name = m_tcName->GetValue();
|
||||||
|
|
||||||
*m_ptr = m_zonesettings;
|
*m_ptr = m_zonesettings;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,6 +78,21 @@ DIALOG_KEEPOUT_AREA_PROPERTIES_BASE::DIALOG_KEEPOUT_AREA_PROPERTIES_BASE( wxWind
|
||||||
|
|
||||||
bSizerRight->Add( bSizerLowerRight, 0, wxEXPAND, 5 );
|
bSizerRight->Add( bSizerLowerRight, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxBoxSizer* bSizer6;
|
||||||
|
bSizer6 = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
|
m_staticText3 = new wxStaticText( this, wxID_ANY, _("Keepout name:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_staticText3->Wrap( -1 );
|
||||||
|
m_staticText3->SetToolTip( _("A unique name for this zone to identify it for DRC") );
|
||||||
|
|
||||||
|
bSizer6->Add( m_staticText3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
|
m_tcName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
bSizer6->Add( m_tcName, 1, wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
bSizerRight->Add( bSizer6, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
bUpperSizer->Add( bSizerRight, 0, wxALL|wxEXPAND, 10 );
|
bUpperSizer->Add( bSizerRight, 0, wxALL|wxEXPAND, 10 );
|
||||||
|
|
||||||
|
|
|
@ -728,6 +728,142 @@
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxEXPAND</property>
|
||||||
|
<property name="proportion">1</property>
|
||||||
|
<object class="wxBoxSizer" expanded="1">
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">bSizer6</property>
|
||||||
|
<property name="orient">wxHORIZONTAL</property>
|
||||||
|
<property name="permission">none</property>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxStaticText" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Keepout name:</property>
|
||||||
|
<property name="markup">0</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_staticText3</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass">; ; forward_declare</property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip">A unique name for this zone to identify it for DRC</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<property name="wrap">-1</property>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL</property>
|
||||||
|
<property name="proportion">1</property>
|
||||||
|
<object class="wxTextCtrl" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="maxlength"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_tcName</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass">; ; forward_declare</property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="validator_data_type"></property>
|
||||||
|
<property name="validator_style">wxFILTER_NONE</property>
|
||||||
|
<property name="validator_type">wxDefaultValidator</property>
|
||||||
|
<property name="validator_variable"></property>
|
||||||
|
<property name="value"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include <wx/sizer.h>
|
#include <wx/sizer.h>
|
||||||
#include <wx/checkbox.h>
|
#include <wx/checkbox.h>
|
||||||
#include <wx/choice.h>
|
#include <wx/choice.h>
|
||||||
|
#include <wx/textctrl.h>
|
||||||
#include <wx/statline.h>
|
#include <wx/statline.h>
|
||||||
#include <wx/button.h>
|
#include <wx/button.h>
|
||||||
#include <wx/dialog.h>
|
#include <wx/dialog.h>
|
||||||
|
@ -46,6 +47,8 @@ class DIALOG_KEEPOUT_AREA_PROPERTIES_BASE : public DIALOG_SHIM
|
||||||
wxCheckBox* m_cbConstrainCtrl;
|
wxCheckBox* m_cbConstrainCtrl;
|
||||||
wxStaticText* m_staticTextStyle;
|
wxStaticText* m_staticTextStyle;
|
||||||
wxChoice* m_OutlineAppearanceCtrl;
|
wxChoice* m_OutlineAppearanceCtrl;
|
||||||
|
wxStaticText* m_staticText3;
|
||||||
|
wxTextCtrl* m_tcName;
|
||||||
wxStaticLine* m_staticline1;
|
wxStaticLine* m_staticline1;
|
||||||
wxStdDialogButtonSizer* m_sdbSizerButtons;
|
wxStdDialogButtonSizer* m_sdbSizerButtons;
|
||||||
wxButton* m_sdbSizerButtonsOK;
|
wxButton* m_sdbSizerButtonsOK;
|
||||||
|
|
|
@ -1793,7 +1793,7 @@ void PCB_IO::format( ZONE_CONTAINER* aZone, int aNestLevel ) const
|
||||||
m_out->Print( 0, " (tstamp %s)", TO_UTF8( aZone->m_Uuid.AsString() ) );
|
m_out->Print( 0, " (tstamp %s)", TO_UTF8( aZone->m_Uuid.AsString() ) );
|
||||||
|
|
||||||
if( !aZone->GetZoneName().empty() )
|
if( !aZone->GetZoneName().empty() )
|
||||||
m_out->Print( 0, " (name %s)", TO_UTF8( aZone->GetZoneName() ) );
|
m_out->Print( 0, " (name %s)", m_out->Quotew( aZone->GetZoneName() ).c_str() );
|
||||||
|
|
||||||
// Save the outline aux info
|
// Save the outline aux info
|
||||||
std::string hatch;
|
std::string hatch;
|
||||||
|
@ -1901,6 +1901,13 @@ void PCB_IO::format( ZONE_CONTAINER* aZone, int aNestLevel ) const
|
||||||
FormatInternalUnits( aZone->GetCornerRadius() ).c_str() );
|
FormatInternalUnits( aZone->GetCornerRadius() ).c_str() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( aZone->GetIslandRemovalMode() != ISLAND_REMOVAL_MODE::ALWAYS )
|
||||||
|
{
|
||||||
|
m_out->Print( 0, " (island_removal_mode %d) (island_area_min %s)",
|
||||||
|
static_cast<int>( aZone->GetIslandRemovalMode() ),
|
||||||
|
FormatInternalUnits( aZone->GetMinIslandArea() ).c_str() );
|
||||||
|
}
|
||||||
|
|
||||||
if( aZone->GetFillMode() == ZONE_FILL_MODE::HATCH_PATTERN )
|
if( aZone->GetFillMode() == ZONE_FILL_MODE::HATCH_PATTERN )
|
||||||
{
|
{
|
||||||
m_out->Print( 0, "\n" );
|
m_out->Print( 0, "\n" );
|
||||||
|
@ -1988,6 +1995,7 @@ void PCB_IO::format( ZONE_CONTAINER* aZone, int aNestLevel ) const
|
||||||
|
|
||||||
if( !fv.IsEmpty() )
|
if( !fv.IsEmpty() )
|
||||||
{
|
{
|
||||||
|
int poly_index = 0;
|
||||||
bool new_polygon = true;
|
bool new_polygon = true;
|
||||||
bool is_closed = false;
|
bool is_closed = false;
|
||||||
|
|
||||||
|
@ -1999,9 +2007,14 @@ void PCB_IO::format( ZONE_CONTAINER* aZone, int aNestLevel ) const
|
||||||
m_out->Print( aNestLevel + 1, "(filled_polygon\n" );
|
m_out->Print( aNestLevel + 1, "(filled_polygon\n" );
|
||||||
m_out->Print( aNestLevel + 2, "(layer %s)\n",
|
m_out->Print( aNestLevel + 2, "(layer %s)\n",
|
||||||
TO_UTF8( BOARD::GetStandardLayerName( layer ) ) );
|
TO_UTF8( BOARD::GetStandardLayerName( layer ) ) );
|
||||||
|
|
||||||
|
if( aZone->IsIsland( layer, poly_index ) )
|
||||||
|
m_out->Print( aNestLevel + 2, "(island)\n" );
|
||||||
|
|
||||||
m_out->Print( aNestLevel + 2, "(pts\n" );
|
m_out->Print( aNestLevel + 2, "(pts\n" );
|
||||||
new_polygon = false;
|
new_polygon = false;
|
||||||
is_closed = false;
|
is_closed = false;
|
||||||
|
poly_index++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( newLine == 0 )
|
if( newLine == 0 )
|
||||||
|
|
|
@ -70,7 +70,7 @@ class TEXTE_PCB;
|
||||||
//#define SEXPR_BOARD_FILE_VERSION 20200512 // page -> paper
|
//#define SEXPR_BOARD_FILE_VERSION 20200512 // page -> paper
|
||||||
//#define SEXPR_BOARD_FILE_VERSION 20200518 // save hole_to_hole_min
|
//#define SEXPR_BOARD_FILE_VERSION 20200518 // save hole_to_hole_min
|
||||||
//#define SEXPR_BOARD_FILE_VERSION 20200614 // Add support for fp_rects and gr_rects
|
//#define SEXPR_BOARD_FILE_VERSION 20200614 // Add support for fp_rects and gr_rects
|
||||||
#define SEXPR_BOARD_FILE_VERSION 20200623 // Multilayer zones and zone name property
|
#define SEXPR_BOARD_FILE_VERSION 20200625 // Multilayer zones, zone names, island controls
|
||||||
|
|
||||||
#define CTL_STD_LAYER_NAMES (1 << 0) ///< Use English Standard layer names
|
#define CTL_STD_LAYER_NAMES (1 << 0) ///< Use English Standard layer names
|
||||||
#define CTL_OMIT_NETS (1 << 1) ///< Omit pads net names (useless in library)
|
#define CTL_OMIT_NETS (1 << 1) ///< Omit pads net names (useless in library)
|
||||||
|
|
|
@ -3970,10 +3970,26 @@ ZONE_CONTAINER* PCB_PARSER::parseZONE_CONTAINER( BOARD_ITEM_CONTAINER* aParent )
|
||||||
NeedRIGHT();
|
NeedRIGHT();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
case T_island_removal_mode:
|
||||||
|
tmp = parseInt( "island_removal_mode" );
|
||||||
|
|
||||||
|
if( tmp >= 0 && tmp <= 2 )
|
||||||
|
zone->SetIslandRemovalMode( static_cast<ISLAND_REMOVAL_MODE>( tmp ) );
|
||||||
|
|
||||||
|
NeedRIGHT();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case T_island_area_min:
|
||||||
|
zone->SetMinIslandArea( parseBoardUnits( T_island_area_min ) );
|
||||||
|
NeedRIGHT();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Expecting( "mode, arc_segments, thermal_gap, thermal_bridge_width, "
|
Expecting( "mode, arc_segments, thermal_gap, thermal_bridge_width, "
|
||||||
"hatch_thickness, hatch_gap, hatch_orientation, "
|
"hatch_thickness, hatch_gap, hatch_orientation, "
|
||||||
"hatch_smoothing_level, hatch_smoothing_value, smoothing, or radius" );
|
"hatch_smoothing_level, hatch_smoothing_value, smoothing, radius"
|
||||||
|
"island_removal_mode, or island_area_min" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -4086,6 +4102,16 @@ ZONE_CONTAINER* PCB_PARSER::parseZONE_CONTAINER( BOARD_ITEM_CONTAINER* aParent )
|
||||||
filledLayer = zone->GetLayer();
|
filledLayer = zone->GetLayer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool island = false;
|
||||||
|
|
||||||
|
if( token == T_island )
|
||||||
|
{
|
||||||
|
island = true;
|
||||||
|
NeedRIGHT();
|
||||||
|
NeedLEFT();
|
||||||
|
token = NextTok();
|
||||||
|
}
|
||||||
|
|
||||||
if( token != T_pts )
|
if( token != T_pts )
|
||||||
Expecting( T_pts );
|
Expecting( T_pts );
|
||||||
|
|
||||||
|
@ -4094,7 +4120,10 @@ ZONE_CONTAINER* PCB_PARSER::parseZONE_CONTAINER( BOARD_ITEM_CONTAINER* aParent )
|
||||||
|
|
||||||
SHAPE_POLY_SET& poly = pts.at( filledLayer );
|
SHAPE_POLY_SET& poly = pts.at( filledLayer );
|
||||||
|
|
||||||
poly.NewOutline();
|
int idx = poly.NewOutline();
|
||||||
|
|
||||||
|
if( island )
|
||||||
|
zone->SetIsIsland( filledLayer, idx );
|
||||||
|
|
||||||
for( token = NextTok(); token != T_RIGHT; token = NextTok() )
|
for( token = NextTok(); token != T_RIGHT; token = NextTok() )
|
||||||
{
|
{
|
||||||
|
@ -4156,7 +4185,7 @@ ZONE_CONTAINER* PCB_PARSER::parseZONE_CONTAINER( BOARD_ITEM_CONTAINER* aParent )
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Expecting( "net, layer/layers, tstamp, hatch, priority, connect_pads, min_thickness, "
|
Expecting( "net, layer/layers, tstamp, hatch, priority, connect_pads, min_thickness, "
|
||||||
"fill, polygon, filled_polygon, fill_segments or name" );
|
"fill, polygon, filled_polygon, fill_segments, or name" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -481,6 +481,8 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
|
||||||
// zones touch each other.
|
// zones touch each other.
|
||||||
std::set<std::pair<PCB_LAYER_ID, ZONE_CONTAINER*>> plotted;
|
std::set<std::pair<PCB_LAYER_ID, ZONE_CONTAINER*>> plotted;
|
||||||
|
|
||||||
|
NETINFO_ITEM nonet( aBoard );
|
||||||
|
|
||||||
for( ZONE_CONTAINER* zone : aBoard->Zones() )
|
for( ZONE_CONTAINER* zone : aBoard->Zones() )
|
||||||
{
|
{
|
||||||
for( PCB_LAYER_ID layer : zone->GetLayerSet().Seq() )
|
for( PCB_LAYER_ID layer : zone->GetLayerSet().Seq() )
|
||||||
|
@ -493,10 +495,20 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
|
||||||
plotted.insert( pair );
|
plotted.insert( pair );
|
||||||
|
|
||||||
SHAPE_POLY_SET aggregateArea = zone->GetFilledPolysList( layer );
|
SHAPE_POLY_SET aggregateArea = zone->GetFilledPolysList( layer );
|
||||||
|
SHAPE_POLY_SET islands;
|
||||||
bool needFracture = false; // If 2 or more filled areas are combined, resulting
|
bool needFracture = false; // If 2 or more filled areas are combined, resulting
|
||||||
// aggregateArea will be simplified and fractured
|
// aggregateArea will be simplified and fractured
|
||||||
// (Long calculation time)
|
// (Long calculation time)
|
||||||
|
|
||||||
|
for( int i = 0; i < aggregateArea.OutlineCount(); i++ )
|
||||||
|
{
|
||||||
|
if( zone->IsIsland( layer, i ) )
|
||||||
|
{
|
||||||
|
islands.AddOutline( aggregateArea.CPolygon( i )[0] );
|
||||||
|
aggregateArea.DeletePolygon( i );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for( ZONE_CONTAINER* candidate : aBoard->Zones() )
|
for( ZONE_CONTAINER* candidate : aBoard->Zones() )
|
||||||
{
|
{
|
||||||
if( !candidate->IsOnLayer( layer ) )
|
if( !candidate->IsOnLayer( layer ) )
|
||||||
|
@ -524,7 +536,19 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
plotted.insert( candidate_pair );
|
plotted.insert( candidate_pair );
|
||||||
aggregateArea.Append( candidate->GetFilledPolysList( layer ) );
|
|
||||||
|
SHAPE_POLY_SET candidateArea = candidate->GetFilledPolysList( layer );
|
||||||
|
|
||||||
|
for( int i = 0; i < candidateArea.OutlineCount(); i++ )
|
||||||
|
{
|
||||||
|
if( candidate->IsIsland( layer, i ) )
|
||||||
|
{
|
||||||
|
islands.AddOutline( candidateArea.CPolygon( i )[0] );
|
||||||
|
candidateArea.DeletePolygon( i );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
aggregateArea.Append( candidateArea );
|
||||||
needFracture = true;
|
needFracture = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -535,6 +559,13 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
|
||||||
}
|
}
|
||||||
|
|
||||||
itemplotter.PlotFilledAreas( zone, aggregateArea );
|
itemplotter.PlotFilledAreas( zone, aggregateArea );
|
||||||
|
|
||||||
|
if( !islands.IsEmpty() )
|
||||||
|
{
|
||||||
|
ZONE_CONTAINER dummy( *zone );
|
||||||
|
dummy.SetNet( &nonet );
|
||||||
|
itemplotter.PlotFilledAreas( &dummy, islands );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
aPlotter->EndBlock( NULL );
|
aPlotter->EndBlock( NULL );
|
||||||
|
|
|
@ -215,14 +215,26 @@ bool ZONE_FILLER::Fill( const std::vector<ZONE_CONTAINER*>& aZones, bool aCheck
|
||||||
std::sort( zone.m_islands.begin(), zone.m_islands.end(), std::greater<int>() );
|
std::sort( zone.m_islands.begin(), zone.m_islands.end(), std::greater<int>() );
|
||||||
SHAPE_POLY_SET poly = zone.m_zone->GetFilledPolysList( zone.m_layer );
|
SHAPE_POLY_SET poly = zone.m_zone->GetFilledPolysList( zone.m_layer );
|
||||||
|
|
||||||
|
long long int minArea = zone.m_zone->GetMinIslandArea();
|
||||||
|
ISLAND_REMOVAL_MODE mode = zone.m_zone->GetIslandRemovalMode();
|
||||||
|
|
||||||
// Remove solid areas outside the board cutouts and the insulated islands
|
// Remove solid areas outside the board cutouts and the insulated islands
|
||||||
// only zones with net code > 0 can have insulated islands by definition
|
// only zones with net code > 0 can have insulated islands by definition
|
||||||
if( zone.m_zone->GetNetCode() > 0 && zone.m_zone->GetRemoveIslands() )
|
if( zone.m_zone->GetNetCode() > 0 && mode != ISLAND_REMOVAL_MODE::NEVER )
|
||||||
{
|
{
|
||||||
// solid areas outside the board cutouts are also removed, because they are usually insulated islands
|
// Area threshold is stored 1-D in internal units
|
||||||
|
if( mode == ISLAND_REMOVAL_MODE::AREA )
|
||||||
|
minArea *= minArea;
|
||||||
|
|
||||||
|
// solid areas outside the board cutouts are also removed, because they are usually
|
||||||
|
// insulated islands
|
||||||
for( auto idx : zone.m_islands )
|
for( auto idx : zone.m_islands )
|
||||||
{
|
{
|
||||||
poly.DeletePolygon( idx );
|
if( mode == ISLAND_REMOVAL_MODE::ALWAYS || poly.Outline( idx ).Area() < minArea
|
||||||
|
|| !m_boardOutline.Contains( poly.Polygon( idx ).front().CPoint( 0 ) ) )
|
||||||
|
poly.DeletePolygon( idx );
|
||||||
|
else
|
||||||
|
zone.m_zone->SetIsIsland( zone.m_layer, idx );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Zones with no net can have areas outside the board cutouts.
|
// Zones with no net can have areas outside the board cutouts.
|
||||||
|
|
|
@ -62,6 +62,7 @@ ZONE_SETTINGS::ZONE_SETTINGS()
|
||||||
//short hatches or full hatches
|
//short hatches or full hatches
|
||||||
|
|
||||||
m_Layers.reset().set( F_Cu );
|
m_Layers.reset().set( F_Cu );
|
||||||
|
m_Name = wxEmptyString;
|
||||||
|
|
||||||
// thickness of the gap in thermal reliefs:
|
// thickness of the gap in thermal reliefs:
|
||||||
m_ThermalReliefGap = Mils2iu( ZONE_THERMAL_RELIEF_GAP_MIL );
|
m_ThermalReliefGap = Mils2iu( ZONE_THERMAL_RELIEF_GAP_MIL );
|
||||||
|
@ -75,7 +76,8 @@ ZONE_SETTINGS::ZONE_SETTINGS()
|
||||||
m_cornerSmoothingType = SMOOTHING_NONE;
|
m_cornerSmoothingType = SMOOTHING_NONE;
|
||||||
m_cornerRadius = 0;
|
m_cornerRadius = 0;
|
||||||
|
|
||||||
m_removeIslands = true;
|
m_removeIslands = ISLAND_REMOVAL_MODE::ALWAYS;
|
||||||
|
m_minIslandArea = 0;
|
||||||
|
|
||||||
SetIsKeepout( false );
|
SetIsKeepout( false );
|
||||||
SetDoNotAllowCopperPour( false );
|
SetDoNotAllowCopperPour( false );
|
||||||
|
@ -88,30 +90,32 @@ ZONE_SETTINGS::ZONE_SETTINGS()
|
||||||
|
|
||||||
ZONE_SETTINGS& ZONE_SETTINGS::operator << ( const ZONE_CONTAINER& aSource )
|
ZONE_SETTINGS& ZONE_SETTINGS::operator << ( const ZONE_CONTAINER& aSource )
|
||||||
{
|
{
|
||||||
m_ZonePriority = aSource.GetPriority();
|
m_ZonePriority = aSource.GetPriority();
|
||||||
m_FillMode = aSource.GetFillMode();
|
m_FillMode = aSource.GetFillMode();
|
||||||
m_ZoneClearance = aSource.GetZoneClearance();
|
m_ZoneClearance = aSource.GetZoneClearance();
|
||||||
m_ZoneMinThickness = aSource.GetMinThickness();
|
m_ZoneMinThickness = aSource.GetMinThickness();
|
||||||
m_HatchFillTypeThickness = aSource.GetHatchFillTypeThickness();
|
m_HatchFillTypeThickness = aSource.GetHatchFillTypeThickness();
|
||||||
m_HatchFillTypeGap = aSource.GetHatchFillTypeGap();
|
m_HatchFillTypeGap = aSource.GetHatchFillTypeGap();
|
||||||
m_HatchFillTypeOrientation = aSource.GetHatchFillTypeOrientation();
|
m_HatchFillTypeOrientation = aSource.GetHatchFillTypeOrientation();
|
||||||
m_HatchFillTypeSmoothingLevel = aSource.GetHatchFillTypeSmoothingLevel();
|
m_HatchFillTypeSmoothingLevel = aSource.GetHatchFillTypeSmoothingLevel();
|
||||||
m_HatchFillTypeSmoothingValue = aSource.GetHatchFillTypeSmoothingValue();
|
m_HatchFillTypeSmoothingValue = aSource.GetHatchFillTypeSmoothingValue();
|
||||||
m_NetcodeSelection = aSource.GetNetCode();
|
m_NetcodeSelection = aSource.GetNetCode();
|
||||||
m_Zone_HatchingStyle = aSource.GetHatchStyle();
|
m_Name = aSource.GetZoneName();
|
||||||
m_ThermalReliefGap = aSource.GetThermalReliefGap();
|
m_Zone_HatchingStyle = aSource.GetHatchStyle();
|
||||||
m_ThermalReliefCopperBridge = aSource.GetThermalReliefCopperBridge();
|
m_ThermalReliefGap = aSource.GetThermalReliefGap();
|
||||||
m_PadConnection = aSource.GetPadConnection();
|
m_ThermalReliefCopperBridge = aSource.GetThermalReliefCopperBridge();
|
||||||
m_cornerSmoothingType = aSource.GetCornerSmoothingType();
|
m_PadConnection = aSource.GetPadConnection();
|
||||||
m_cornerRadius = aSource.GetCornerRadius();
|
m_cornerSmoothingType = aSource.GetCornerSmoothingType();
|
||||||
m_isKeepout = aSource.GetIsKeepout();
|
m_cornerRadius = aSource.GetCornerRadius();
|
||||||
|
m_isKeepout = aSource.GetIsKeepout();
|
||||||
m_keepoutDoNotAllowCopperPour = aSource.GetDoNotAllowCopperPour();
|
m_keepoutDoNotAllowCopperPour = aSource.GetDoNotAllowCopperPour();
|
||||||
m_keepoutDoNotAllowVias = aSource.GetDoNotAllowVias();
|
m_keepoutDoNotAllowVias = aSource.GetDoNotAllowVias();
|
||||||
m_keepoutDoNotAllowTracks = aSource.GetDoNotAllowTracks();
|
m_keepoutDoNotAllowTracks = aSource.GetDoNotAllowTracks();
|
||||||
m_keepoutDoNotAllowPads = aSource.GetDoNotAllowPads();
|
m_keepoutDoNotAllowPads = aSource.GetDoNotAllowPads();
|
||||||
m_keepoutDoNotAllowFootprints = aSource.GetDoNotAllowFootprints();
|
m_keepoutDoNotAllowFootprints = aSource.GetDoNotAllowFootprints();
|
||||||
m_Zone_45_Only = aSource.GetHV45();
|
m_Zone_45_Only = aSource.GetHV45();
|
||||||
m_removeIslands = aSource.GetRemoveIslands();
|
m_removeIslands = aSource.GetIslandRemovalMode();
|
||||||
|
m_minIslandArea = aSource.GetMinIslandArea();
|
||||||
|
|
||||||
m_Layers = aSource.GetLayerSet();
|
m_Layers = aSource.GetLayerSet();
|
||||||
|
|
||||||
|
@ -141,12 +145,14 @@ void ZONE_SETTINGS::ExportSetting( ZONE_CONTAINER& aTarget, bool aFullExport ) c
|
||||||
aTarget.SetDoNotAllowPads( GetDoNotAllowPads() );
|
aTarget.SetDoNotAllowPads( GetDoNotAllowPads() );
|
||||||
aTarget.SetDoNotAllowFootprints( GetDoNotAllowFootprints() );
|
aTarget.SetDoNotAllowFootprints( GetDoNotAllowFootprints() );
|
||||||
aTarget.SetHV45( m_Zone_45_Only );
|
aTarget.SetHV45( m_Zone_45_Only );
|
||||||
aTarget.SetRemoveIslands( GetRemoveIslands() );
|
aTarget.SetIslandRemovalMode( GetIslandRemovalMode() );
|
||||||
|
aTarget.SetMinIslandArea( GetMinIslandArea() );
|
||||||
|
|
||||||
if( aFullExport )
|
if( aFullExport )
|
||||||
{
|
{
|
||||||
aTarget.SetPriority( m_ZonePriority );
|
aTarget.SetPriority( m_ZonePriority );
|
||||||
aTarget.SetLayerSet( m_Layers );
|
aTarget.SetLayerSet( m_Layers );
|
||||||
|
aTarget.SetZoneName( m_Name );
|
||||||
|
|
||||||
if( !m_isKeepout )
|
if( !m_isKeepout )
|
||||||
aTarget.SetNetCode( m_NetcodeSelection );
|
aTarget.SetNetCode( m_NetcodeSelection );
|
||||||
|
|
|
@ -49,6 +49,14 @@ enum class ZONE_HATCH_STYLE
|
||||||
DIAGONAL_EDGE
|
DIAGONAL_EDGE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Whether or not to remove isolated islands from a zone
|
||||||
|
enum class ISLAND_REMOVAL_MODE
|
||||||
|
{
|
||||||
|
ALWAYS,
|
||||||
|
NEVER,
|
||||||
|
AREA
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ZONE_SETTINGS
|
* ZONE_SETTINGS
|
||||||
* handles zones parameters.
|
* handles zones parameters.
|
||||||
|
@ -83,6 +91,8 @@ public:
|
||||||
|
|
||||||
int m_NetcodeSelection; ///< Net code selection for the current zone
|
int m_NetcodeSelection; ///< Net code selection for the current zone
|
||||||
|
|
||||||
|
wxString m_Name; ///< Unique name for the current zone (can be blank)
|
||||||
|
|
||||||
LSET m_Layers; ///< Layers that this zone exists on
|
LSET m_Layers; ///< Layers that this zone exists on
|
||||||
|
|
||||||
/// Option to show the zone area (outlines only, short hatches or full hatches
|
/// Option to show the zone area (outlines only, short hatches or full hatches
|
||||||
|
@ -112,7 +122,8 @@ private:
|
||||||
bool m_keepoutDoNotAllowPads;
|
bool m_keepoutDoNotAllowPads;
|
||||||
bool m_keepoutDoNotAllowFootprints;
|
bool m_keepoutDoNotAllowFootprints;
|
||||||
|
|
||||||
bool m_removeIslands;
|
ISLAND_REMOVAL_MODE m_removeIslands;
|
||||||
|
long long int m_minIslandArea;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ZONE_SETTINGS();
|
ZONE_SETTINGS();
|
||||||
|
@ -181,8 +192,11 @@ public:
|
||||||
void SetDoNotAllowPads( bool aEnable ) { m_keepoutDoNotAllowPads = aEnable; }
|
void SetDoNotAllowPads( bool aEnable ) { m_keepoutDoNotAllowPads = aEnable; }
|
||||||
void SetDoNotAllowFootprints( bool aEnable ) { m_keepoutDoNotAllowFootprints = aEnable; }
|
void SetDoNotAllowFootprints( bool aEnable ) { m_keepoutDoNotAllowFootprints = aEnable; }
|
||||||
|
|
||||||
const bool GetRemoveIslands() const { return m_removeIslands; }
|
const ISLAND_REMOVAL_MODE GetIslandRemovalMode() const { return m_removeIslands; }
|
||||||
void SetRemoveIslands( bool aRemove ) { m_removeIslands = aRemove; }
|
void SetIslandRemovalMode( ISLAND_REMOVAL_MODE aRemove ) { m_removeIslands = aRemove; }
|
||||||
|
|
||||||
|
long long int GetMinIslandArea() const { return m_minIslandArea; }
|
||||||
|
void SetMinIslandArea( long long int aArea ) { m_minIslandArea = aArea; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue