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(
m_bitmapWarning, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
27 bSizer4 =
new wxBoxSizer( wxVERTICAL );
29 m_staticTextInfoMaskMinWidth =
new wxStaticText(
this, wxID_ANY,
_(
"Consult your PCB manufacturer's specifications for solder mask expansion, web width, and clearance settings."), wxDefaultPosition, wxDefaultSize, 0 );
33 m_staticTextInfoMaskMinWidth1 =
new wxStaticText(
this, wxID_ANY,
_(
"If no specifications are provided, setting these values to zero is recommended."), wxDefaultPosition, wxDefaultSize, 0 );
38 bMessages->Add( bSizer4, 1, wxEXPAND|wxLEFT, 5 );
41 bSizer3->Add( bMessages, 0, wxEXPAND|wxTOP|wxBOTTOM, 10 );
44 bSizer3->Add( 0, 5, 0, wxEXPAND, 5 );
46 m_stSolderMaskSettings =
new wxStaticText(
this, wxID_ANY,
_(
"Solder Mask Settings"), wxDefaultPosition, wxDefaultSize, 0 );
48 m_stSolderMaskSettings->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
52 m_staticline1 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
55 wxGridBagSizer* gbSizer1;
56 gbSizer1 =
new wxGridBagSizer( 3, 5 );
57 gbSizer1->SetFlexibleDirection( wxBOTH );
58 gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
60 m_maskMarginLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Solder mask expansion:"), wxDefaultPosition, wxDefaultSize, 0 );
62 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.\nPositive clearance means a solder mask opening bigger than the pad (typical for solder mask clearance).") );
64 gbSizer1->Add(
m_maskMarginLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
66 m_maskMarginCtrl =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
67 m_maskMarginCtrl->SetToolTip(
_(
"Global clearance between pads and the solder mask.\nThis value can be superseded by local values for a footprint or a pad.\nPositive clearance means a solder mask opening bigger than the pad (typical for solder mask clearance).") );
69 gbSizer1->Add(
m_maskMarginCtrl, wxGBPosition( 0, 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( 0, 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(
_(
"Minimum distance between openings in the solder mask.\nPad openings closer than this distance will be plotted as a single opening.") );
79 gbSizer1->Add(
m_maskMinWidthLabel, wxGBPosition( 1, 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.\nPad openings closer than this distance will be plotted as a single opening.") );
84 gbSizer1->Add(
m_maskMinWidthCtrl, wxGBPosition( 1, 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( 1, 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(
_(
"Minimum distance between a solder mask opening and a copper item with a different net than the solder mask opening's parent.\nDistances smaller than this minimum will create a DRC error.") );
97 m_maskToCopperClearanceCtrl->SetToolTip(
_(
"Minimum distance between a solder mask opening and a copper item with a different net than the solder mask opening's parent.\nDistances smaller than this minimum will create a DRC error.") );
105 m_allowBridges =
new wxCheckBox(
this, wxID_ANY,
_(
"Allow bridged solder mask apertures between pads within footprints"), wxDefaultPosition, wxDefaultSize, 0 );
106 m_allowBridges->SetToolTip(
_(
"Disable DRC error checking for solder mask aperture bridging between pads in the same footprint.") );
108 gbSizer1->Add(
m_allowBridges, wxGBPosition( 3, 0 ), wxGBSpan( 1, 3 ), wxTOP|wxLEFT, 5 );
111 bSizer6 =
new wxBoxSizer( wxHORIZONTAL );
113 m_stTenting =
new wxStaticText(
this, wxID_ANY,
_(
"Tent vias:"), wxDefaultPosition, wxDefaultSize, 0 );
115 bSizer6->Add(
m_stTenting, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
117 m_tentViasFront =
new wxCheckBox(
this, wxID_ANY,
_(
"Front"), wxDefaultPosition, wxDefaultSize, 0 );
118 m_tentViasFront->SetToolTip(
_(
"Tented: vias are covered with solder mask.\nNot tented: vias are not covered with solder mask.") );
120 bSizer6->Add(
m_tentViasFront, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
122 m_tentViasBack =
new wxCheckBox(
this, wxID_ANY,
_(
"Back"), wxDefaultPosition, wxDefaultSize, 0 );
123 m_tentViasBack->SetToolTip(
_(
"Tented: vias are covered with solder mask.\nNot tented: vias are not covered with solder mask.") );
125 bSizer6->Add(
m_tentViasBack, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
128 gbSizer1->Add( bSizer6, wxGBPosition( 4, 0 ), wxGBSpan( 1, 3 ), wxEXPAND|wxTOP|wxBOTTOM, 5 );
131 bSizer3->Add( gbSizer1, 0, wxBOTTOM|wxEXPAND|wxTOP, 5 );
134 bSizer3->Add( 0, 10, 0, wxEXPAND, 5 );
136 m_stSolderPasteSettings =
new wxStaticText(
this, wxID_ANY,
_(
"Solder Paste Settings"), wxDefaultPosition, wxDefaultSize, 0 );
138 m_stSolderPasteSettings->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL,
false, wxEmptyString ) );
142 m_staticline2 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
143 bSizer3->Add(
m_staticline2, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
145 wxGridBagSizer* gbSizer2;
146 gbSizer2 =
new wxGridBagSizer( 3, 5 );
147 gbSizer2->SetFlexibleDirection( wxBOTH );
148 gbSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
150 m_pasteMarginLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Solder paste clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
152 m_pasteMarginLabel->SetToolTip(
_(
"Solder paste clearance relative to pad size.\nEnter an absolute value (e.g., -0.1mm), a percentage (e.g., -5%), or both (e.g., -0.1mm - 5%).\nThis value can be superseded by local values for a footprint or a pad.") );
154 gbSizer2->Add(
m_pasteMarginLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
156 m_pasteMarginCtrl =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
157 m_pasteMarginCtrl->SetToolTip(
_(
"Solder paste clearance relative to pad size.\nEnter an absolute value (e.g., -0.1mm), a percentage (e.g., -5%), or both (e.g., -0.1mm - 5%).\nThis value can be superseded by local values for a footprint or a pad.") );
159 gbSizer2->Add(
m_pasteMarginCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
161 m_pasteMarginUnits =
new wxStaticText(
this, wxID_ANY,
_(
"mm"), wxDefaultPosition, wxDefaultSize, 0 );
163 gbSizer2->Add(
m_pasteMarginUnits, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
165 m_pasteMarginRatioLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Solder paste relative clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
167 m_pasteMarginRatioLabel->SetToolTip(
_(
"Global clearance ratio between pads and the solder paste as a percentage of the pad size.\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 absolute clearance value.") );
169 gbSizer2->Add(
m_pasteMarginRatioLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
171 m_pasteMarginRatioCtrl =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
172 m_pasteMarginRatioCtrl->SetToolTip(
_(
"Global clearance ratio between pads and the solder paste as a percentage of the pad size.\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 absolute clearance value.") );
174 gbSizer2->Add(
m_pasteMarginRatioCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
181 bSizer3->Add( gbSizer2, 0, wxBOTTOM|wxEXPAND|wxTOP, 5 );
184 bSizer3->Add( 0, 0, 2, wxEXPAND, 5 );
186 m_staticTextInfoPaste =
new wxStaticText(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
191 bSizer3->Add( 0, 0, 1, wxEXPAND, 5 );
194 bMainSizer->Add( bSizer3, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
197 this->SetSizer( bMainSizer );
199 bMainSizer->Fit(
this );