Board manufacturers typically do not print silkscreen on areas without

soldermask. Nevertheless, it would be nice to have proper gerbers to
begin with, i.e., gerbers with no silkscreen in soldermaskless areas.
Of course, most of the problem can be taken care of by drawing the
footprints properly. However, sometimes the silkscreen of one
footprint ends up on the pads of another one (think components under a
so-dimm card, for example). The attached patch adds an option to
subtract the soldermask from the silkscreen when doing gerber output.

marco
This commit is contained in:
Marco Mattila
2010-12-06 16:05:12 -06:00
committed by Dick Hollenbeck
parent 249267edb4
commit 9dc9cc1f78
8 changed files with 2815 additions and 2698 deletions
+9
View File
@@ -35,6 +35,7 @@
// PCB_Plot_Options constructor: set the default values for plot options:
PCB_Plot_Options::PCB_Plot_Options()
{
subtractMaskFromSilk = true;
Sel_Texte_Reference = true;
Sel_Texte_Valeur = true;
Sel_Texte_Divers = true;
@@ -248,6 +249,8 @@ void DIALOG_PLOT::Init_Dialog()
// Option for excluding contents of "Edges Pcb" layer
m_Exclude_Edges_Pcb->SetValue( g_pcb_plot_options.Exclude_Edges_Pcb );
m_SubtractMaskFromSilk->SetValue( g_pcb_plot_options.GetSubtractMaskFromSilk() );
// Option to plot page references:
if( m_Parent->m_Print_Sheet_Ref )
{
@@ -364,6 +367,7 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event )
m_HPGLPenOverlayOpt->Enable( false );
m_Exclude_Edges_Pcb->SetValue( false );
m_Exclude_Edges_Pcb->Enable( false );
m_SubtractMaskFromSilk->Enable( false );
m_Use_Gerber_Extensions->Enable( false );
m_Scale_Opt->Enable( true );
m_FineAdjustXscaleOpt->Enable( true );
@@ -383,6 +387,7 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event )
m_HPGLPenSpeedOpt->Enable( false );
m_HPGLPenOverlayOpt->Enable( false );
m_Exclude_Edges_Pcb->Enable( true );
m_SubtractMaskFromSilk->Enable( true );
m_Use_Gerber_Extensions->Enable( true );
m_Scale_Opt->SetSelection( 1 );
m_Scale_Opt->Enable( false );
@@ -403,6 +408,7 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event )
m_HPGLPenOverlayOpt->Enable( true );
m_Exclude_Edges_Pcb->SetValue( false );
m_Exclude_Edges_Pcb->Enable( false );
m_SubtractMaskFromSilk->Enable( false );
m_Use_Gerber_Extensions->Enable( false );
m_Scale_Opt->Enable( true );
m_FineAdjustXscaleOpt->Enable( false );
@@ -423,6 +429,7 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event )
m_HPGLPenOverlayOpt->Enable( false );
m_Exclude_Edges_Pcb->SetValue( false );
m_Exclude_Edges_Pcb->Enable( false );
m_SubtractMaskFromSilk->Enable( false );
m_Use_Gerber_Extensions->Enable( false );
m_Scale_Opt->Enable( false );
m_Scale_Opt->SetSelection( 1 );
@@ -441,6 +448,8 @@ void DIALOG_PLOT::SaveOptPlot( wxCommandEvent& event )
{
g_pcb_plot_options.Exclude_Edges_Pcb = m_Exclude_Edges_Pcb->GetValue();
g_pcb_plot_options.SetSubtractMaskFromSilk( m_SubtractMaskFromSilk->GetValue() );
if( m_Plot_Sheet_Ref )
g_pcb_plot_options.Plot_Frame_Ref = m_Plot_Sheet_Ref->GetValue();