Plot option in GERBER format Plot (Exclude Edge Pcb layer) modification (now, default = off, and saved in config)
This commit is contained in:
parent
f3fcfce609
commit
bbae2b12b1
|
@ -4,6 +4,14 @@ Started 2007-June-11
|
||||||
Please add newer entries at the top, list the date and your name with
|
Please add newer entries at the top, list the date and your name with
|
||||||
email address.
|
email address.
|
||||||
|
|
||||||
|
2008-Jan-23 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
||||||
|
================================================================================
|
||||||
|
+pcbnew:
|
||||||
|
Plot option in GERBER format Plot (Exclude Edge Pcb layer) modification:
|
||||||
|
- the default is OFF (like odl pcbnew versions)
|
||||||
|
- this setup is now save in config (is persistant)
|
||||||
|
|
||||||
|
In Zone creation, now delete last created corner works.
|
||||||
|
|
||||||
2008-Jan-22 UPDATE Dick Hollenbeck <dick@softplc.com>
|
2008-Jan-22 UPDATE Dick Hollenbeck <dick@softplc.com>
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
COMMON_GLOBL wxString g_BuildVersion
|
COMMON_GLOBL wxString g_BuildVersion
|
||||||
#ifdef EDA_BASE
|
#ifdef EDA_BASE
|
||||||
(wxT("(2008-01-06)"))
|
(wxT("(2008-01-22)"))
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -554,7 +554,7 @@ enum main_id {
|
||||||
ID_POPUP_PCB_ADD_ZONE_CORNER,
|
ID_POPUP_PCB_ADD_ZONE_CORNER,
|
||||||
ID_POPUP_PCB_DELETE_ZONE_CORNER,
|
ID_POPUP_PCB_DELETE_ZONE_CORNER,
|
||||||
ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE,
|
ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE,
|
||||||
ID_POPUP_PCB_DELETE_EDGE_ZONE,
|
ID_POPUP_PCB_DELETE_ZONE_LAST_CREATED_CORNER,
|
||||||
ID_POPUP_PCB_FILL_ALL_ZONES,
|
ID_POPUP_PCB_FILL_ALL_ZONES,
|
||||||
ID_POPUP_PCB_FILL_ZONE,
|
ID_POPUP_PCB_FILL_ZONE,
|
||||||
ID_POPUP_PCB_DELETE_ZONE_CONTAINER,
|
ID_POPUP_PCB_DELETE_ZONE_CONTAINER,
|
||||||
|
@ -564,6 +564,9 @@ enum main_id {
|
||||||
ID_POPUP_PCB_DELETE_ZONE_CUTOUT,
|
ID_POPUP_PCB_DELETE_ZONE_CUTOUT,
|
||||||
ID_POPUP_PCB_MOVE_ZONE_OUTLINES,
|
ID_POPUP_PCB_MOVE_ZONE_OUTLINES,
|
||||||
ID_POPUP_PCB_PLACE_ZONE_OUTLINES,
|
ID_POPUP_PCB_PLACE_ZONE_OUTLINES,
|
||||||
|
ID_POPUP_ZONE_UNUSED1,
|
||||||
|
ID_POPUP_ZONE_UNUSED2,
|
||||||
|
ID_POPUP_ZONE_UNUSED3,
|
||||||
ID_POPUP_ZONE_UNUSED4,
|
ID_POPUP_ZONE_UNUSED4,
|
||||||
|
|
||||||
ID_POPUP_PCB_DELETE_MARKER,
|
ID_POPUP_PCB_DELETE_MARKER,
|
||||||
|
|
|
@ -488,7 +488,7 @@ public:
|
||||||
*/
|
*/
|
||||||
void Delete_Zone_Fill( wxDC* DC, SEGZONE* Track, long aTimestamp = 0 );
|
void Delete_Zone_Fill( wxDC* DC, SEGZONE* Track, long aTimestamp = 0 );
|
||||||
|
|
||||||
EDGE_ZONE* Del_SegmEdgeZone( wxDC* DC, EDGE_ZONE* edge_zone );
|
EDGE_ZONE* Del_LastSegmEdgeZone( wxDC* DC );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Begin_Zone
|
* Function Begin_Zone
|
||||||
|
|
Binary file not shown.
1841
internat/fr/kicad.po
1841
internat/fr/kicad.po
File diff suppressed because it is too large
Load Diff
|
@ -879,6 +879,24 @@ out:
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************************************************************************/
|
||||||
|
void BOARD::RedrawAreasOutlines(WinEDA_DrawPanel* panel, wxDC * aDC, int aDrawMode, int aLayer)
|
||||||
|
/***********************************************************************************************/
|
||||||
|
/**
|
||||||
|
* Function RedrawAreasOutlines
|
||||||
|
* Redraw all areas outlines on layer aLayer ( redraw all if aLayer < 0 )
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
if ( ! aDC ) return;
|
||||||
|
|
||||||
|
for( int ii = 0; ii < GetAreaCount(); ii++ )
|
||||||
|
{
|
||||||
|
ZONE_CONTAINER* edge_zone = GetArea(ii);
|
||||||
|
if( (aLayer < 0) || (aLayer == edge_zone->GetLayer()) )
|
||||||
|
edge_zone->Draw( panel, aDC, wxPoint( 0, 0 ), aDrawMode );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
|
|
|
@ -250,6 +250,12 @@ public:
|
||||||
/* Copper Areas handling */
|
/* Copper Areas handling */
|
||||||
/*************************/
|
/*************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function RedrawAreasOutlines
|
||||||
|
* Redraw all areas outlines on layer aLayer ( redraw all if aLayer < 0 )
|
||||||
|
*/
|
||||||
|
void RedrawAreasOutlines(WinEDA_DrawPanel* panel, wxDC * aDC, int aDrawMode, int aLayer);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function SetAreasNetCodesFromNetNames
|
* Function SetAreasNetCodesFromNetNames
|
||||||
* Set the .m_NetCode member of all copper areas, according to the area Net Name
|
* Set the .m_NetCode member of all copper areas, according to the area Net Name
|
||||||
|
|
|
@ -66,7 +66,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
case ID_POPUP_PCB_EXPORT_PAD_SETTINGS:
|
case ID_POPUP_PCB_EXPORT_PAD_SETTINGS:
|
||||||
case ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS:
|
case ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS:
|
||||||
case ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE:
|
case ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE:
|
||||||
case ID_POPUP_PCB_DELETE_EDGE_ZONE:
|
case ID_POPUP_PCB_DELETE_ZONE_LAST_CREATED_CORNER:
|
||||||
case ID_POPUP_PCB_FILL_ALL_ZONES:
|
case ID_POPUP_PCB_FILL_ALL_ZONES:
|
||||||
case ID_POPUP_PCB_PLACE_ZONE_CORNER:
|
case ID_POPUP_PCB_PLACE_ZONE_CORNER:
|
||||||
case ID_POPUP_PCB_PLACE_ZONE_OUTLINES:
|
case ID_POPUP_PCB_PLACE_ZONE_OUTLINES:
|
||||||
|
@ -815,12 +815,11 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_PCB_DELETE_EDGE_ZONE:
|
case ID_POPUP_PCB_DELETE_ZONE_LAST_CREATED_CORNER:
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
if( GetCurItem() && (GetCurItem()->m_Flags & IS_NEW) )
|
if( GetCurItem() && (GetCurItem()->m_Flags & IS_NEW) )
|
||||||
{
|
{
|
||||||
SetCurItem( Del_SegmEdgeZone( &dc,
|
SetCurItem( Del_LastSegmEdgeZone( &dc ) );
|
||||||
(EDGE_ZONE*) GetCurItem() ) );
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -275,8 +275,8 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
|
||||||
ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE,
|
ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE,
|
||||||
_( "End edge zone" ), apply_xpm );
|
_( "End edge zone" ), apply_xpm );
|
||||||
}
|
}
|
||||||
ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_DELETE_EDGE_ZONE,
|
ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_DELETE_ZONE_LAST_CREATED_CORNER,
|
||||||
_( "Delete edge zone" ), delete_xpm );
|
_( "Delete Current Edge" ), delete_xpm );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPEZONE_CONTAINER: // Item used to handle a zone area (outlines, holes ...)
|
case TYPEZONE_CONTAINER: // Item used to handle a zone area (outlines, holes ...)
|
||||||
|
|
|
@ -16,6 +16,11 @@
|
||||||
|
|
||||||
#define PLOT_DEFAULT_MARGE 300 // mils
|
#define PLOT_DEFAULT_MARGE 300 // mils
|
||||||
|
|
||||||
|
/* Keywords to r/w options in config */
|
||||||
|
#define EDGELAYER_GERBER_OPT_KEY wxT("EdgeLayerGerberOpt")
|
||||||
|
#define PLOT_XFINESCALE_ADJ_KEY wxT("PlotXFineScaleAdj")
|
||||||
|
#define PLOT_YFINESCALE_ADJ_KEY wxT("PlotYFineScaleAdj")
|
||||||
|
|
||||||
// variables locale :
|
// variables locale :
|
||||||
static long s_SelectedLayers = CUIVRE_LAYER | CMP_LAYER |
|
static long s_SelectedLayers = CUIVRE_LAYER | CMP_LAYER |
|
||||||
SILKSCREEN_LAYER_CMP | SILKSCREEN_LAYER_CU;
|
SILKSCREEN_LAYER_CMP | SILKSCREEN_LAYER_CU;
|
||||||
|
@ -222,8 +227,9 @@ wxString choice_plot_offset_msg[] =
|
||||||
m_XScaleAdjust = m_YScaleAdjust = 1.0;
|
m_XScaleAdjust = m_YScaleAdjust = 1.0;
|
||||||
if( m_Parent->m_Parent->m_EDA_Config )
|
if( m_Parent->m_Parent->m_EDA_Config )
|
||||||
{
|
{
|
||||||
m_Parent->m_Parent->m_EDA_Config->Read(wxT("PlotXFineScaleAdj"), &m_XScaleAdjust);
|
m_Parent->m_Parent->m_EDA_Config->Read( EDGELAYER_GERBER_OPT_KEY, &g_Exclude_Edges_Pcb);
|
||||||
m_Parent->m_Parent->m_EDA_Config->Read(wxT("PlotYFineScaleAdj"), &m_YScaleAdjust);
|
m_Parent->m_Parent->m_EDA_Config->Read( PLOT_XFINESCALE_ADJ_KEY, &m_XScaleAdjust);
|
||||||
|
m_Parent->m_Parent->m_EDA_Config->Read( PLOT_XFINESCALE_ADJ_KEY, &m_YScaleAdjust);
|
||||||
}
|
}
|
||||||
m_FineAdjustXscaleOpt = new WinEDA_DFloatValueCtrl(this, _("X Scale Adjust"), m_XScaleAdjust, RightBoxSizer);
|
m_FineAdjustXscaleOpt = new WinEDA_DFloatValueCtrl(this, _("X Scale Adjust"), m_XScaleAdjust, RightBoxSizer);
|
||||||
m_FineAdjustXscaleOpt->SetToolTip(_("Set X scale adjust for exact scale plotting"));
|
m_FineAdjustXscaleOpt->SetToolTip(_("Set X scale adjust for exact scale plotting"));
|
||||||
|
@ -253,9 +259,10 @@ wxString choice_plot_offset_msg[] =
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option for excluding contents of "Edges Pcb" layer
|
// Option for excluding contents of "Edges Pcb" layer
|
||||||
|
|
||||||
m_Exclude_Edges_Pcb = new wxCheckBox(this,
|
m_Exclude_Edges_Pcb = new wxCheckBox(this,
|
||||||
ID_EXCLUDE_EDGES_PCB, _("Exclude Edges Pcb layer") );
|
ID_EXCLUDE_EDGES_PCB, _("Exclude Edges Pcb Layer") );
|
||||||
m_Exclude_Edges_Pcb->SetValue(Exclude_Edges_Pcb);
|
m_Exclude_Edges_Pcb->SetValue(g_Exclude_Edges_Pcb);
|
||||||
m_Exclude_Edges_Pcb->SetToolTip(
|
m_Exclude_Edges_Pcb->SetToolTip(
|
||||||
_("Exclude contents of Edges Pcb layer from all other layers") );
|
_("Exclude contents of Edges Pcb layer from all other layers") );
|
||||||
LeftBoxSizer->Add(m_Exclude_Edges_Pcb, 0, wxGROW|wxALL, 1);
|
LeftBoxSizer->Add(m_Exclude_Edges_Pcb, 0, wxGROW|wxALL, 1);
|
||||||
|
@ -480,7 +487,7 @@ int format_list[] =
|
||||||
void WinEDA_PlotFrame::SaveOptPlot(wxCommandEvent & event)
|
void WinEDA_PlotFrame::SaveOptPlot(wxCommandEvent & event)
|
||||||
/*********************************************************/
|
/*********************************************************/
|
||||||
{
|
{
|
||||||
Exclude_Edges_Pcb = m_Exclude_Edges_Pcb->GetValue();
|
g_Exclude_Edges_Pcb = m_Exclude_Edges_Pcb->GetValue();
|
||||||
|
|
||||||
if( m_Plot_Sheet_Ref )
|
if( m_Plot_Sheet_Ref )
|
||||||
Plot_Sheet_Ref = m_Plot_Sheet_Ref->GetValue();
|
Plot_Sheet_Ref = m_Plot_Sheet_Ref->GetValue();
|
||||||
|
@ -516,8 +523,9 @@ void WinEDA_PlotFrame::SaveOptPlot(wxCommandEvent & event)
|
||||||
|
|
||||||
if( m_Parent->m_Parent->m_EDA_Config )
|
if( m_Parent->m_Parent->m_EDA_Config )
|
||||||
{
|
{
|
||||||
m_Parent->m_Parent->m_EDA_Config->Write(wxT("PlotXFineScaleAdj"), m_XScaleAdjust);
|
m_Parent->m_Parent->m_EDA_Config->Write( EDGELAYER_GERBER_OPT_KEY, g_Exclude_Edges_Pcb);
|
||||||
m_Parent->m_Parent->m_EDA_Config->Write(wxT("PlotYFineScaleAdj"), m_YScaleAdjust);
|
m_Parent->m_Parent->m_EDA_Config->Write( PLOT_XFINESCALE_ADJ_KEY, m_XScaleAdjust);
|
||||||
|
m_Parent->m_Parent->m_EDA_Config->Write( PLOT_YFINESCALE_ADJ_KEY, m_YScaleAdjust);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_Plot_PS_Negative = m_Plot_PS_Negative->GetValue();
|
g_Plot_PS_Negative = m_Plot_PS_Negative->GetValue();
|
||||||
|
|
|
@ -18,9 +18,9 @@
|
||||||
#define SCALE_HPGL 0.102041
|
#define SCALE_HPGL 0.102041
|
||||||
|
|
||||||
/* Options : */
|
/* Options : */
|
||||||
eda_global bool Exclude_Edges_Pcb // True to exclude contents of Edges Pcb layer
|
eda_global bool g_Exclude_Edges_Pcb // True to exclude contents of Edges Pcb layer
|
||||||
#ifdef MAIN
|
#ifdef MAIN
|
||||||
= TRUE
|
= FALSE
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
eda_global bool Plot_Sheet_Ref;
|
eda_global bool Plot_Sheet_Ref;
|
||||||
|
|
|
@ -90,7 +90,7 @@ int tracevia = 1;
|
||||||
int layer_mask = g_TabOneLayerMask[Layer];
|
int layer_mask = g_TabOneLayerMask[Layer];
|
||||||
// Specify that the contents of the "Edges Pcb" layer are also to be
|
// Specify that the contents of the "Edges Pcb" layer are also to be
|
||||||
// plotted, unless the option of excluding that layer has been selected.
|
// plotted, unless the option of excluding that layer has been selected.
|
||||||
if( ! Exclude_Edges_Pcb )
|
if( ! g_Exclude_Edges_Pcb )
|
||||||
layer_mask |= EDGE_LAYER;
|
layer_mask |= EDGE_LAYER;
|
||||||
|
|
||||||
switch( Layer )
|
switch( Layer )
|
||||||
|
|
|
@ -150,19 +150,14 @@ void WinEDA_PcbFrame::Delete_Zone_Fill( wxDC* DC, SEGZONE* aZone, long aTimestam
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
EDGE_ZONE* WinEDA_PcbFrame::Del_SegmEdgeZone( wxDC* DC, EDGE_ZONE* edge_zone )
|
EDGE_ZONE* WinEDA_PcbFrame::Del_LastSegmEdgeZone( wxDC* DC)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
/* Used only while creating a new zone outline
|
/* Used only while creating a new zone outline
|
||||||
* Remove and delete the current outline segment in progress
|
* Remove and delete the current outline segment in progress
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
EDGE_ZONE* segm;
|
EDGE_ZONE* segm = m_Pcb->m_CurrentLimitZone;
|
||||||
|
|
||||||
if( m_Pcb->m_CurrentLimitZone )
|
|
||||||
segm = m_Pcb->m_CurrentLimitZone;
|
|
||||||
else
|
|
||||||
segm = edge_zone;
|
|
||||||
|
|
||||||
if( segm == NULL )
|
if( segm == NULL )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -178,6 +173,7 @@ EDGE_ZONE* WinEDA_PcbFrame::Del_SegmEdgeZone( wxDC* DC, EDGE_ZONE* edge_zone )
|
||||||
if( segm )
|
if( segm )
|
||||||
{
|
{
|
||||||
segm->Pback = NULL;
|
segm->Pback = NULL;
|
||||||
|
segm->m_Flags |= IS_NEW | IS_MOVED;
|
||||||
if( DrawPanel->ManageCurseur )
|
if( DrawPanel->ManageCurseur )
|
||||||
DrawPanel->ManageCurseur( DrawPanel, DC, TRUE );
|
DrawPanel->ManageCurseur( DrawPanel, DC, TRUE );
|
||||||
}
|
}
|
||||||
|
@ -334,20 +330,9 @@ void WinEDA_PcbFrame::End_Move_Zone_Corner_Or_Outlines( wxDC* DC, ZONE_CONTAINER
|
||||||
|
|
||||||
int layer = zone_container->GetLayer();
|
int layer = zone_container->GetLayer();
|
||||||
|
|
||||||
for( int ii = 0; ii < m_Pcb->GetAreaCount(); ii++ )
|
m_Pcb->RedrawAreasOutlines(DrawPanel, DC, GR_XOR, layer);
|
||||||
{
|
|
||||||
ZONE_CONTAINER* edge_zone = m_Pcb->GetArea(ii);
|
|
||||||
if( layer == edge_zone->GetLayer() && DC)
|
|
||||||
edge_zone->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_XOR );
|
|
||||||
}
|
|
||||||
|
|
||||||
m_Pcb->AreaPolygonModified( zone_container, true, verbose );
|
m_Pcb->AreaPolygonModified( zone_container, true, verbose );
|
||||||
for( int ii = 0; ii < m_Pcb->GetAreaCount(); ii++ )
|
m_Pcb->RedrawAreasOutlines(DrawPanel, DC, GR_OR, layer);
|
||||||
{
|
|
||||||
ZONE_CONTAINER* edge_zone = m_Pcb->GetArea(ii);
|
|
||||||
if( layer == edge_zone->GetLayer() && DC)
|
|
||||||
edge_zone->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
|
|
||||||
}
|
|
||||||
|
|
||||||
int ii = m_Pcb->GetAreaIndex(zone_container); // test if zone_container exists
|
int ii = m_Pcb->GetAreaIndex(zone_container); // test if zone_container exists
|
||||||
if ( ii < 0 ) zone_container = NULL; // was removed by combining zones
|
if ( ii < 0 ) zone_container = NULL; // was removed by combining zones
|
||||||
|
@ -379,29 +364,13 @@ void WinEDA_PcbFrame::Remove_Zone_Corner( wxDC* DC, ZONE_CONTAINER * zone_contai
|
||||||
|
|
||||||
int layer = zone_container->GetLayer();
|
int layer = zone_container->GetLayer();
|
||||||
|
|
||||||
if ( DC )
|
m_Pcb->RedrawAreasOutlines(DrawPanel, DC, GR_XOR, layer);
|
||||||
{
|
|
||||||
for( int ii = 0; ii < m_Pcb->GetAreaCount(); ii++ )
|
|
||||||
{
|
|
||||||
ZONE_CONTAINER* edge_zone = m_Pcb->GetArea(ii);
|
|
||||||
if( layer == edge_zone->GetLayer() )
|
|
||||||
edge_zone->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_XOR );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
zone_container->m_Poly->DeleteCorner(zone_container->m_CornerSelection);
|
zone_container->m_Poly->DeleteCorner(zone_container->m_CornerSelection);
|
||||||
|
|
||||||
// modify zones outlines according to the new zone_container shape
|
// modify zones outlines according to the new zone_container shape
|
||||||
m_Pcb->AreaPolygonModified( zone_container, true, verbose );
|
m_Pcb->AreaPolygonModified( zone_container, true, verbose );
|
||||||
if ( DC )
|
m_Pcb->RedrawAreasOutlines(DrawPanel, DC, GR_OR, layer);
|
||||||
{
|
|
||||||
for( int ii = 0; ii < m_Pcb->GetAreaCount(); ii++ )
|
|
||||||
{
|
|
||||||
ZONE_CONTAINER* edge_zone = m_Pcb->GetArea(ii);
|
|
||||||
if( layer == edge_zone->GetLayer() )
|
|
||||||
edge_zone->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int ii = m_Pcb->GetAreaIndex(zone_container); // test if zone_container exists
|
int ii = m_Pcb->GetAreaIndex(zone_container); // test if zone_container exists
|
||||||
if ( ii < 0 ) zone_container = NULL; // was removed by combining zones
|
if ( ii < 0 ) zone_container = NULL; // was removed by combining zones
|
||||||
|
@ -678,12 +647,7 @@ bool WinEDA_PcbFrame::End_Zone( wxDC* DC )
|
||||||
DrawPanel->ForceCloseManageCurseur = NULL;
|
DrawPanel->ForceCloseManageCurseur = NULL;
|
||||||
|
|
||||||
// Undraw old drawings, because they can have important changes
|
// Undraw old drawings, because they can have important changes
|
||||||
for( int ii = 0; ii < m_Pcb->GetAreaCount(); ii++ )
|
m_Pcb->RedrawAreasOutlines(DrawPanel, DC, GR_XOR, layer);
|
||||||
{
|
|
||||||
ZONE_CONTAINER* area = m_Pcb->GetArea(ii);
|
|
||||||
if( layer == area->GetLayer() )
|
|
||||||
area->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_XOR );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Put edges in list */
|
/* Put edges in list */
|
||||||
ZONE_CONTAINER* new_zone_container;
|
ZONE_CONTAINER* new_zone_container;
|
||||||
|
@ -739,12 +703,7 @@ bool WinEDA_PcbFrame::End_Zone( wxDC* DC )
|
||||||
m_Pcb->AreaPolygonModified( new_zone_container, true, verbose );
|
m_Pcb->AreaPolygonModified( new_zone_container, true, verbose );
|
||||||
|
|
||||||
// Redraw the real edge zone :
|
// Redraw the real edge zone :
|
||||||
for( int ii = 0; ii < m_Pcb->GetAreaCount(); ii++ )
|
m_Pcb->RedrawAreasOutlines(DrawPanel, DC, GR_OR, layer);
|
||||||
{
|
|
||||||
ZONE_CONTAINER* edge_zone = m_Pcb->GetArea(ii);
|
|
||||||
if( layer == edge_zone->GetLayer() )
|
|
||||||
edge_zone->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
|
|
||||||
}
|
|
||||||
|
|
||||||
int ii = m_Pcb->GetAreaIndex(new_zone_container); // test if zone_container exists
|
int ii = m_Pcb->GetAreaIndex(new_zone_container); // test if zone_container exists
|
||||||
if ( ii < 0 ) new_zone_container = NULL; // was removed by combining zones
|
if ( ii < 0 ) new_zone_container = NULL; // was removed by combining zones
|
||||||
|
@ -845,12 +804,7 @@ void WinEDA_PcbFrame::Edit_Zone_Params( wxDC* DC, ZONE_CONTAINER* zone_container
|
||||||
m_Pcb->AreaPolygonModified( zone_container, true, verbose );
|
m_Pcb->AreaPolygonModified( zone_container, true, verbose );
|
||||||
|
|
||||||
// Redraw the real new zone outlines:
|
// Redraw the real new zone outlines:
|
||||||
for( int ii = 0; ii < m_Pcb->GetAreaCount(); ii++ )
|
m_Pcb->RedrawAreasOutlines(DrawPanel, DC, GR_OR, -1);
|
||||||
{
|
|
||||||
ZONE_CONTAINER* edge_zone = m_Pcb->GetArea(ii);
|
|
||||||
edge_zone->m_Flags = 0;
|
|
||||||
edge_zone->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
|
|
||||||
}
|
|
||||||
|
|
||||||
GetScreen()->SetModify();
|
GetScreen()->SetModify();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue