12PANEL_SETUP_MASK_AND_PASTE_BASE::PANEL_SETUP_MASK_AND_PASTE_BASE( wxWindow* parent, wxWindowID
id,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString&
name ) : wxPanel( parent, id, pos, size, style,
name )
14 wxBoxSizer* bMainSizer;
15 bMainSizer =
new wxBoxSizer( wxVERTICAL );
18 bSizer3 =
new wxBoxSizer( wxVERTICAL );
20 wxBoxSizer* bMessages;
21 bMessages =
new wxBoxSizer( wxHORIZONTAL );
24 bMessages->Add( 4, 0, 0, wxEXPAND, 5 );
27 bMessages->Add(
m_bitmapWarning, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
30 bSizer4 =
new wxBoxSizer( wxVERTICAL );
32 m_staticTextInfoMaskMinWidth =
new wxStaticText(
this, wxID_ANY,
_(
"Use your board manufacturer's recommendations for solder mask expansion and minimum web width."), wxDefaultPosition, wxDefaultSize, 0 );
36 m_staticTextInfoMaskMinWidth1 =
new wxStaticText(
this, wxID_ANY,
_(
"If none are provided, setting the values to zero is suggested."), wxDefaultPosition, wxDefaultSize, 0 );
41 bMessages->Add( bSizer4, 1, wxEXPAND|wxLEFT, 5 );
44 bSizer3->Add( bMessages, 0, wxEXPAND|wxTOP|wxBOTTOM, 10 );
46 m_staticline1 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
49 wxGridBagSizer* gbSizer1;
50 gbSizer1 =
new wxGridBagSizer( 5, 0 );
51 gbSizer1->SetFlexibleDirection( wxBOTH );
52 gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
54 m_maskMarginLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Solder mask expansion:"), wxDefaultPosition, wxDefaultSize, 0 );
56 m_maskMarginLabel->SetToolTip(
_(
"Global clearance between pads and the solder mask.\nThis value can be superseded by local values for a footprint or a pad.") );
58 gbSizer1->Add(
m_maskMarginLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
60 m_stSolderMaskSettings =
new wxStaticText(
this, wxID_ANY,
_(
"Solder mask settings:"), wxDefaultPosition, wxDefaultSize, 0 );
62 m_stSolderMaskSettings->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD,
false, wxEmptyString ) );
64 gbSizer1->Add(
m_stSolderMaskSettings, wxGBPosition( 0, 0 ), wxGBSpan( 1, 3 ), wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
66 m_maskMarginCtrl =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
67 m_maskMarginCtrl->SetToolTip(
_(
"Positive clearance means area bigger than the pad (usual for solder mask clearance).") );
69 gbSizer1->Add(
m_maskMarginCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
71 m_maskMarginUnits =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
73 gbSizer1->Add(
m_maskMarginUnits, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
75 m_maskMinWidthLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Solder mask minimum web width:"), wxDefaultPosition, wxDefaultSize, 0 );
77 m_maskMinWidthLabel->SetToolTip(
_(
"Min. dist between 2 pad areas.\nTwo pad areas nearer than this value will be merged during plotting.\nThis parameter is only used to plot solder mask layers.\nLeave at 0 unless you know what you are doing.") );
79 gbSizer1->Add(
m_maskMinWidthLabel, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
81 m_maskMinWidthCtrl =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
82 m_maskMinWidthCtrl->SetToolTip(
_(
"Minimum distance between openings in the solder mask. Pad openings closer than this distance will be plotted as a single opening.") );
84 gbSizer1->Add(
m_maskMinWidthCtrl, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
86 m_maskMinWidthUnits =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
88 gbSizer1->Add(
m_maskMinWidthUnits, wxGBPosition( 2, 2 ), wxGBSpan( 1, 1 ), wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
90 m_maskToCopperClearanceLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Solder mask to copper clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
92 m_maskToCopperClearanceLabel->SetToolTip(
_(
"For DRC tests:\nmax distance between a solder mask opening and a copper item having a different net than the parent solder mask opening to create a DRC error") );
103 m_allowBridges =
new wxCheckBox(
this, wxID_ANY,
_(
"Allow bridged solder mask apertures between pads within footprints"), wxDefaultPosition, wxDefaultSize, 0 );
104 m_allowBridges->SetToolTip(
_(
"For DRC tests:\nDisable DRC error type solder mask aperture bridge between pads of the same footprint (useful for net ties)") );
106 gbSizer1->Add(
m_allowBridges, wxGBPosition( 4, 0 ), wxGBSpan( 1, 3 ), wxALL, 5 );
109 bSizer6 =
new wxBoxSizer( wxHORIZONTAL );
111 m_stTenting =
new wxStaticText(
this, wxID_ANY,
_(
"Tent vias:"), wxDefaultPosition, wxDefaultSize, 0 );
113 bSizer6->Add(
m_stTenting, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxLEFT|wxRIGHT, 5 );
115 m_tentViasFront =
new wxCheckBox(
this, wxID_ANY,
_(
"Front"), wxDefaultPosition, wxDefaultSize, 0 );
116 m_tentViasFront->SetToolTip(
_(
"Tented vias: not plotted on soldermask layer\nNot tented: vias are plotted on soldermask layer\n(Solder mask is a negative layer)") );
120 m_tentViasBack =
new wxCheckBox(
this, wxID_ANY,
_(
"Back"), wxDefaultPosition, wxDefaultSize, 0 );
121 m_tentViasBack->SetToolTip(
_(
"Tented vias: not plotted on soldermask layer\nNot tented: vias are plotted on soldermask layer\n(Solder mask is a negative layer)") );
126 gbSizer1->Add( bSizer6, wxGBPosition( 5, 0 ), wxGBSpan( 1, 3 ), wxEXPAND, 5 );
128 m_stSolderPasteSettings =
new wxStaticText(
this, wxID_ANY,
_(
"Solder paste settings:"), wxDefaultPosition, wxDefaultSize, 0 );
130 m_stSolderPasteSettings->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD,
false, wxEmptyString ) );
132 gbSizer1->Add(
m_stSolderPasteSettings, wxGBPosition( 6, 0 ), wxGBSpan( 1, 3 ), wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
134 m_pasteMarginLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Solder paste absolute clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
136 m_pasteMarginLabel->SetToolTip(
_(
"Global clearance between pads and the solder paste.\nThis value can be superseded by local values for a footprint or a pad.\nFinal clearance value is the sum of this value and the clearance value ratio.") );
138 gbSizer1->Add(
m_pasteMarginLabel, wxGBPosition( 7, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
140 m_pasteMarginCtrl =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
141 m_pasteMarginCtrl->SetToolTip(
_(
"Negative clearance means area smaller than the pad (usual for solder paste clearance).") );
143 gbSizer1->Add(
m_pasteMarginCtrl, wxGBPosition( 8, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
145 m_pasteMarginUnits =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
147 gbSizer1->Add(
m_pasteMarginUnits, wxGBPosition( 7, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
149 m_pasteMarginRatioLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Solder paste relative clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
151 m_pasteMarginRatioLabel->SetToolTip(
_(
"Global clearance ratio in percent between pads and the solder paste.\nA value of 10 means the clearance value is 10 percent of the pad size.\nThis value can be superseded by local values for a footprint or a pad.\nFinal clearance value is the sum of this value and the clearance value.") );
153 gbSizer1->Add(
m_pasteMarginRatioLabel, wxGBPosition( 8, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
155 m_pasteMarginRatioCtrl =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
158 gbSizer1->Add(
m_pasteMarginRatioCtrl, wxGBPosition( 7, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
162 gbSizer1->Add(
m_pasteMarginRatioUnits, wxGBPosition( 8, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
165 bSizer3->Add( gbSizer1, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
167 m_staticTextInfoPaste =
new wxStaticText(
this, wxID_ANY,
_(
"Note: Solder paste clearances (absolute and relative) are added to determine the final clearance."), wxDefaultPosition, wxDefaultSize, 0 );
172 bMainSizer->Add( bSizer3, 1, wxRIGHT|wxLEFT|wxEXPAND, 5 );
175 this->SetSizer( bMainSizer );
wxStaticText * m_staticTextInfoMaskMinWidth
wxTextCtrl * m_maskToCopperClearanceCtrl
~PANEL_SETUP_MASK_AND_PASTE_BASE()
wxStaticText * m_maskMarginLabel
wxStaticText * m_stSolderPasteSettings
wxTextCtrl * m_maskMarginCtrl
wxCheckBox * m_allowBridges
wxStaticLine * m_staticline1
wxCheckBox * m_tentViasFront
wxStaticText * m_maskToCopperClearanceLabel
wxStaticText * m_stSolderMaskSettings
PANEL_SETUP_MASK_AND_PASTE_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(606, 401), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
wxTextCtrl * m_pasteMarginRatioCtrl
wxStaticText * m_pasteMarginUnits
wxStaticBitmap * m_bitmapWarning
wxStaticText * m_maskToCopperClearanceUnits
wxStaticText * m_maskMarginUnits
wxStaticText * m_maskMinWidthUnits
wxTextCtrl * m_pasteMarginCtrl
wxStaticText * m_maskMinWidthLabel
wxStaticText * m_stTenting
wxStaticText * m_pasteMarginRatioUnits
wxStaticText * m_pasteMarginRatioLabel
wxStaticText * m_pasteMarginLabel
wxCheckBox * m_tentViasBack
wxTextCtrl * m_maskMinWidthCtrl
wxStaticText * m_staticTextInfoPaste
wxStaticText * m_staticTextInfoMaskMinWidth1