Commit 908f6d93 authored by g_harland's avatar g_harland

Option now provided for Gerber files to exclude contents of Edges Pcb layer

parent c92e9e93
...@@ -5,6 +5,14 @@ Please add newer entries at the top, list the date and your name with ...@@ -5,6 +5,14 @@ Please add newer entries at the top, list the date and your name with
email address. email address.
2007-Aug-24 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ pcbnew
A new option has now been provided which permits Gerber files to be generated
in which the contents of the Edges Pcb layer are not also included with the
contents of each other layer.
2007-Aug-23 UPDATE Dick Hollenbeck <dick@softplc.com> 2007-Aug-23 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================ ================================================================================
+ eeschema & pcbnew + eeschema & pcbnew
......
This diff is collapsed.
...@@ -18,6 +18,11 @@ ...@@ -18,6 +18,11 @@
#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
#ifdef MAIN
= TRUE
#endif
;
eda_global bool Plot_Sheet_Ref; eda_global bool Plot_Sheet_Ref;
eda_global bool g_DrawViaOnMaskLayer; // True if vias are drawn on Mask layer (ie protected by mask) eda_global bool g_DrawViaOnMaskLayer; // True if vias are drawn on Mask layer (ie protected by mask)
eda_global int Plot_Mode // = FILAIRE, FILL ou SKETCH eda_global int Plot_Mode // = FILAIRE, FILL ou SKETCH
...@@ -190,3 +195,4 @@ void trace_1_pad_TRAPEZE_POST(wxPoint centre, wxSize size, wxSize delta, ...@@ -190,3 +195,4 @@ void trace_1_pad_TRAPEZE_POST(wxPoint centre, wxSize size, wxSize delta,
#endif /* #define PCBPLOT_H */ #endif /* #define PCBPLOT_H */
...@@ -47,23 +47,24 @@ wxString msg; ...@@ -47,23 +47,24 @@ wxString msg;
switch( PtStruct->m_StructType ) switch( PtStruct->m_StructType )
{ {
case TYPEDRAWSEGMENT: case TYPEDRAWSEGMENT:
PlotDrawSegment( (DRAWSEGMENT*) PtStruct, format_plot, PlotDrawSegment( (DRAWSEGMENT*) PtStruct, format_plot, masque_layer );
EDGE_LAYER | masque_layer ); // (Following line has been superceded by new commands elsewhere.)
// EDGE_LAYER | masque_layer );
break; break;
case TYPETEXTE: case TYPETEXTE:
PlotTextePcb((TEXTE_PCB*) PtStruct,format_plot, PlotTextePcb( (TEXTE_PCB*) PtStruct,format_plot, masque_layer );
EDGE_LAYER | masque_layer); // EDGE_LAYER | masque_layer );
break; break;
case TYPECOTATION: case TYPECOTATION:
PlotCotation((COTATION*) PtStruct, format_plot, PlotCotation( (COTATION*) PtStruct, format_plot, masque_layer );
EDGE_LAYER | masque_layer); // EDGE_LAYER | masque_layer );
break; break;
case TYPEMIRE: case TYPEMIRE:
PlotMirePcb((MIREPCB*) PtStruct, format_plot, PlotMirePcb( (MIREPCB*) PtStruct, format_plot, masque_layer );
EDGE_LAYER | masque_layer); // EDGE_LAYER | masque_layer );
break; break;
case TYPEMARQUEUR: case TYPEMARQUEUR:
...@@ -285,7 +286,8 @@ DRAWSEGMENT *DrawTmp; ...@@ -285,7 +286,8 @@ DRAWSEGMENT *DrawTmp;
DrawTmp = new DRAWSEGMENT(NULL); DrawTmp = new DRAWSEGMENT(NULL);
masque_layer |= EDGE_LAYER; // (Following command has been superceded by new commands elsewhere.)
// masque_layer |= EDGE_LAYER;
DrawTmp->m_Width = Cotation->m_Width; DrawTmp->m_Width = Cotation->m_Width;
DrawTmp->SetLayer( Cotation->GetLayer() ); DrawTmp->SetLayer( Cotation->GetLayer() );
...@@ -334,7 +336,8 @@ int dx1,dx2, dy1, dy2, rayon; ...@@ -334,7 +336,8 @@ int dx1,dx2, dy1, dy2, rayon;
DrawTmp = new DRAWSEGMENT(NULL); DrawTmp = new DRAWSEGMENT(NULL);
masque_layer |= EDGE_LAYER; // (Following command has been superceded by new commands elsewhere.)
// masque_layer |= EDGE_LAYER;
DrawTmp->m_Width = Mire->m_Width; DrawTmp->m_Width = Mire->m_Width;
DrawTmp->SetLayer( Mire->GetLayer() ); DrawTmp->SetLayer( Mire->GetLayer() );
......
...@@ -87,6 +87,11 @@ int tracevia = 1; ...@@ -87,6 +87,11 @@ int tracevia = 1;
nb_plot_erreur = 0 ; nb_plot_erreur = 0 ;
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
// plotted, unless the option of excluding that layer has been selected.
if( ! Exclude_Edges_Pcb )
layer_mask |= EDGE_LAYER;
switch(Layer) switch(Layer)
{ {
case CUIVRE_N : case CUIVRE_N :
...@@ -105,7 +110,7 @@ int tracevia = 1; ...@@ -105,7 +110,7 @@ int tracevia = 1;
case LAYER_N_14 : case LAYER_N_14 :
case LAYER_N_15 : case LAYER_N_15 :
case CMP_N : case CMP_N :
Plot_Layer_GERBER(dest,layer_mask, 0, 1); Plot_Layer_GERBER(dest, layer_mask, 0, 1);
break; break;
case SOLDERMASK_N_CU : case SOLDERMASK_N_CU :
...@@ -121,7 +126,7 @@ int tracevia = 1; ...@@ -121,7 +126,7 @@ int tracevia = 1;
break; break;
default: default:
Plot_Serigraphie(PLOT_FORMAT_GERBER,dest, layer_mask); Plot_Serigraphie(PLOT_FORMAT_GERBER, dest, layer_mask);
break; break;
} }
...@@ -145,7 +150,8 @@ TRACK * track ; ...@@ -145,7 +150,8 @@ TRACK * track ;
EDA_BaseStruct * PtStruct; EDA_BaseStruct * PtStruct;
wxString msg; wxString msg;
masque_layer |= EDGE_LAYER; /* Les elements de la couche EDGE sont tj traces */ // (Following command has been superceded by new command on lines 92 and 93.)
// masque_layer |= EDGE_LAYER; /* Les elements de la couche EDGE sont tj traces */
/* trace des elements type Drawings Pcb : */ /* trace des elements type Drawings Pcb : */
PtStruct = m_Pcb->m_Drawings; PtStruct = m_Pcb->m_Drawings;
...@@ -155,22 +161,22 @@ wxString msg; ...@@ -155,22 +161,22 @@ wxString msg;
{ {
case TYPEDRAWSEGMENT: case TYPEDRAWSEGMENT:
PlotDrawSegment( (DRAWSEGMENT*) PtStruct, PLOT_FORMAT_GERBER, PlotDrawSegment( (DRAWSEGMENT*) PtStruct, PLOT_FORMAT_GERBER,
masque_layer); masque_layer );
break; break;
case TYPETEXTE: case TYPETEXTE:
PlotTextePcb((TEXTE_PCB*) PtStruct,PLOT_FORMAT_GERBER, PlotTextePcb( (TEXTE_PCB*) PtStruct, PLOT_FORMAT_GERBER,
masque_layer); masque_layer );
break; break;
case TYPECOTATION: case TYPECOTATION:
PlotCotation((COTATION*) PtStruct, PLOT_FORMAT_GERBER, PlotCotation( (COTATION*) PtStruct, PLOT_FORMAT_GERBER,
masque_layer); masque_layer );
break; break;
case TYPEMIRE: case TYPEMIRE:
PlotMirePcb((MIREPCB*) PtStruct, PLOT_FORMAT_GERBER, PlotMirePcb( (MIREPCB*) PtStruct, PLOT_FORMAT_GERBER,
masque_layer); masque_layer );
break; break;
case TYPEMARQUEUR: case TYPEMARQUEUR:
......
...@@ -48,7 +48,7 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer ) ...@@ -48,7 +48,7 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer )
// Compute pen_dim (from g_HPGL_Pen_Diam in mils) in pcb units, // Compute pen_dim (from g_HPGL_Pen_Diam in mils) in pcb units,
// with plot scale (if Scale is 2, pen diametre is always g_HPGL_Pen_Diam // with plot scale (if Scale is 2, pen diametre is always g_HPGL_Pen_Diam
// so apparent pen diam is real pen diam / Scale // so apparent pen diam is real pen diam / Scale
pen_diam = (int) round( (g_HPGL_Pen_Diam * 10.0) / Scale_X ); // Assume Scale_X # Scale_Y pen_diam = (int) round( (g_HPGL_Pen_Diam * U_PCB) / Scale_X ); // Assume Scale_X # Scale_Y
pen_rayon = pen_diam / 2; pen_rayon = pen_diam / 2;
nb_plot_erreur = 0; nb_plot_erreur = 0;
...@@ -130,6 +130,10 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer ) ...@@ -130,6 +130,10 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer )
InitPlotParametresHPGL( g_PlotOffset, scale_x, scale_y, g_PlotOrient ); InitPlotParametresHPGL( g_PlotOffset, scale_x, scale_y, g_PlotOrient );
// Specify that the contents of the "Edges Pcb" layer are to be plotted
// in addition to the contents of the currently specified layer.
int layer_mask = g_TabOneLayerMask[Layer] | EDGE_LAYER;
switch( Layer ) switch( Layer )
{ {
case CUIVRE_N: case CUIVRE_N:
...@@ -148,12 +152,12 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer ) ...@@ -148,12 +152,12 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer )
case LAYER_N_14: case LAYER_N_14:
case LAYER_N_15: case LAYER_N_15:
case CMP_N: case CMP_N:
Plot_Layer_HPGL( dest, g_TabOneLayerMask[Layer], 0, 1, modetrace ); Plot_Layer_HPGL( dest, layer_mask, 0, 1, modetrace );
break; break;
case SILKSCREEN_N_CU: case SILKSCREEN_N_CU:
case SILKSCREEN_N_CMP: case SILKSCREEN_N_CMP:
Plot_Serigraphie( PLOT_FORMAT_HPGL, dest, g_TabOneLayerMask[Layer] ); Plot_Serigraphie( PLOT_FORMAT_HPGL, dest, layer_mask );
break; break;
case SOLDERMASK_N_CU: case SOLDERMASK_N_CU:
...@@ -164,18 +168,18 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer ) ...@@ -164,18 +168,18 @@ void WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer )
tracevia = 1; tracevia = 1;
else else
tracevia = 0; tracevia = 0;
Plot_Layer_HPGL( dest, g_TabOneLayerMask[Layer], Plot_Layer_HPGL( dest, layer_mask,
g_DesignSettings.m_MaskMargin, tracevia, modetrace ); g_DesignSettings.m_MaskMargin, tracevia, modetrace );
} }
break; break;
case SOLDERPASTE_N_CU: case SOLDERPASTE_N_CU:
case SOLDERPASTE_N_CMP: /* Trace du masque de pate de soudure */ case SOLDERPASTE_N_CMP: /* Trace du masque de pate de soudure */
Plot_Layer_HPGL( dest, g_TabOneLayerMask[Layer], 0, 0, modetrace ); Plot_Layer_HPGL( dest, layer_mask, 0, 0, modetrace );
break; break;
default: /* Trace des autres couches (dessin, adhesives,eco,comment) */ default: /* Trace des autres couches (dessin, adhesives,eco,comment) */
Plot_Serigraphie( PLOT_FORMAT_HPGL, dest, g_TabOneLayerMask[Layer] ); Plot_Serigraphie( PLOT_FORMAT_HPGL, dest, layer_mask );
break; break;
} }
...@@ -202,7 +206,8 @@ void WinEDA_BasePcbFrame::Plot_Layer_HPGL( FILE* File, int masque_layer, ...@@ -202,7 +206,8 @@ void WinEDA_BasePcbFrame::Plot_Layer_HPGL( FILE* File, int masque_layer,
BOARD_ITEM* PtStruct; BOARD_ITEM* PtStruct;
wxString msg; wxString msg;
masque_layer |= EDGE_LAYER; /* Les elements de la couche EDGE sont tj traces */ // (Following command has been superceded by new command on line 135.)
// masque_layer |= EDGE_LAYER; /* Les elements de la couche EDGE sont tj traces */
/* trace des elements type Drawings Pcb : */ /* trace des elements type Drawings Pcb : */
PtStruct = m_Pcb->m_Drawings; PtStruct = m_Pcb->m_Drawings;
......
...@@ -168,10 +168,14 @@ void WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer ) ...@@ -168,10 +168,14 @@ void WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer )
SetColorMapPS( WHITE ); SetColorMapPS( WHITE );
} }
// Specify that the contents of the "Edges Pcb" layer are to be plotted
// in addition to the contents of the currently specified layer.
int layer_mask = g_TabOneLayerMask[Layer] | EDGE_LAYER;
switch( Layer ) switch( Layer )
{ {
case - 1: case - 1:
Plot_Layer_PS( dest, g_TabOneLayerMask[Layer], 0, 1, modetrace ); Plot_Layer_PS( dest, layer_mask, 0, 1, modetrace );
break; break;
case CUIVRE_N: case CUIVRE_N:
...@@ -190,12 +194,12 @@ void WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer ) ...@@ -190,12 +194,12 @@ void WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer )
case LAYER_N_14: case LAYER_N_14:
case LAYER_N_15: case LAYER_N_15:
case CMP_N: case CMP_N:
Plot_Layer_PS( dest, g_TabOneLayerMask[Layer], 0, 1, modetrace ); Plot_Layer_PS( dest, layer_mask, 0, 1, modetrace );
break; break;
case SILKSCREEN_N_CU: case SILKSCREEN_N_CU:
case SILKSCREEN_N_CMP: case SILKSCREEN_N_CMP:
Plot_Serigraphie( PLOT_FORMAT_POST, dest, g_TabOneLayerMask[Layer] ); Plot_Serigraphie( PLOT_FORMAT_POST, dest, layer_mask );
break; break;
case SOLDERMASK_N_CU: case SOLDERMASK_N_CU:
...@@ -204,17 +208,17 @@ void WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer ) ...@@ -204,17 +208,17 @@ void WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer )
tracevia = 1; tracevia = 1;
else else
tracevia = 0; tracevia = 0;
Plot_Layer_PS( dest, g_TabOneLayerMask[Layer], g_DesignSettings.m_MaskMargin, Plot_Layer_PS( dest, layer_mask, g_DesignSettings.m_MaskMargin,
tracevia, modetrace ); tracevia, modetrace );
break; break;
case SOLDERPASTE_N_CU: case SOLDERPASTE_N_CU:
case SOLDERPASTE_N_CMP: // Trace du masque de pate de soudure case SOLDERPASTE_N_CMP: // Trace du masque de pate de soudure
Plot_Layer_PS( dest, g_TabOneLayerMask[Layer], 0, 0, modetrace ); Plot_Layer_PS( dest, layer_mask, 0, 0, modetrace );
break; break;
default: default:
Plot_Serigraphie( PLOT_FORMAT_POST, dest, g_TabOneLayerMask[Layer] ); Plot_Serigraphie( PLOT_FORMAT_POST, dest, layer_mask );
break; break;
} }
...@@ -240,7 +244,8 @@ void WinEDA_BasePcbFrame::Plot_Layer_PS( FILE* File, int masque_layer, ...@@ -240,7 +244,8 @@ void WinEDA_BasePcbFrame::Plot_Layer_PS( FILE* File, int masque_layer,
BOARD_ITEM* PtStruct; BOARD_ITEM* PtStruct;
wxString msg; wxString msg;
masque_layer |= EDGE_LAYER; // Les elements de la couche EDGE sont tj traces // (Following command has been superceded by new command on line 173.)
// masque_layer |= EDGE_LAYER; // Les elements de la couche EDGE sont tj traces
// trace des elements type Drawings Pcb : // trace des elements type Drawings Pcb :
PtStruct = m_Pcb->m_Drawings; PtStruct = m_Pcb->m_Drawings;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment