38 const wxSize& size,
long style,
const wxString&
name ) :
52 for(
int ii = 0; ii < 9; ii++ )
59 _(
"'Constant': εr and tan δ applied at all frequencies.\n"
60 "'Djordjevic-Sarkar': causal wideband Debye anchored at the spec frequency." ) );
65 _(
"Enable solder resist / LPI overlay correction. Affects εeff, Z0, and "
66 "dielectric loss for microstrip, coupled microstrip, CPW, and CBCPW." ) );
69 _(
"Cured mask thickness. Typical LPI is 15-30 um; set to 0 or uncheck to "
74 _(
"Mask relative permittivity. Default 3.5 for standard green LPI. Range "
75 "3.3-3.8 for typical resins." ) );
79 _(
"Mask loss tangent. Default 0.025 for LPI." ) );
83 _(
"Enable when the mask fills the CPW slots (standard LPI process).\n"
84 "Disable for selective mask that covers only the traces." ) );
151 if( std::isfinite( thicknessUm ) )
156 if( std::isfinite( epsR ) )
161 if( std::isfinite( tand ) )
167 transline->WriteConfig();
177 if( modelSel < 0 || modelSel > 1 )
200 transline->ReadConfig();
208 GetSizer()->SetSizeHints(
this );
220 const bool dsActive =
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap, int aMinHeight)
PANEL_TRANSLINE_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
wxStaticText * m_soldermaskTanDLabel
UNIT_SELECTOR_FREQUENCY * m_choiceUnit_SpecFrequency
wxStaticText * m_soldermaskEpsilonRLabel
wxStaticText * m_EpsilonR_label
wxChoice * m_dielectricModelChoice
wxTextCtrl * m_soldermaskThicknessValue
wxButton * m_AnalyseButton
wxCheckBox * m_soldermaskPresentCheck
wxStaticText * m_substrate_prm3_labelUnit
wxStaticText * m_soldermaskThicknessUnit
wxCheckBox * m_soldermaskFillsGapsCheck
wxButton * m_SynthetizeButton
wxStaticBitmap * m_translineBitmap
wxRadioBox * m_TranslineSelection
wxTextCtrl * m_soldermaskTanDValue
wxTextCtrl * m_soldermaskEpsilonRValue
wxStaticText * m_soldermaskThicknessLabel
wxTextCtrl * m_Value_SpecFrequency_Ctrl
void OnTranslineSynthetize(wxCommandEvent &event) override
Run a new synthesis for the current transline with current parameters and displays the geometrical pa...
TRANSLINE * m_currTransLine
void TranslineTypeSelection(enum TRANSLINE_TYPE_ID aType)
Must be called after selection of a new transline.
void OnDielectricModelChanged(wxCommandEvent &event) override
Called when the user picks a different dielectric-dispersion model.
void updateSoldermaskEnables()
Apply the enabled state for the soldermask row based on the present checkbox and the current calculat...
void TransfDlgDataToTranslineParams()
Read values entered in dialog frame, and transfer these values in current transline parameters,...
std::vector< TRANSLINE_IDENT * > m_transline_list
void ThemeChanged() override
Update UI elements of the panel when the theme changes to ensure the images and fonts/colors are appr...
void SaveSettings(PCB_CALCULATOR_SETTINGS *aCfg) override
Save the settings from the panel.
PANEL_TRANSLINE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
void UpdateSpecFrequencyEnable()
Enables the Spec frequency controls only when Djordjevic-Sarkar is selected.
enum TRANSLINE_TYPE_ID m_currTransLineType
void OnTranslineAnalyse(wxCommandEvent &event) override
Run a new analyze for the current transline with current parameters and displays the electrical param...
void OnSoldermaskChanged(wxCommandEvent &event) override
Called when the user toggles the soldermask checkboxes.
void LoadSettings(PCB_CALCULATOR_SETTINGS *aCfg) override
Load the settings into the panel.
TRANSMISSION_LINE m_TransLine
A class to handle a list of parameters of a given transline.
double DoubleFromString(const wxString &TextValue)
double DoubleFromString(const wxString &TextValue)
int soldermask_fills_gaps
CPW / CBCPW only.
int soldermask_present
Soldermask / LPI overlay correction.
double soldermask_epsilonr
Mask relative permittivity. 3.5 is representative of green LPI.
int spec_frequency_unit
UNIT_SELECTOR_FREQUENCY index: 0 = GHz, 1 = MHz, 2 = kHz, 3 = Hz.
int dielectric_model
Dielectric dispersion model. 0 = CONSTANT (default), 1 = Djordjevic-Sarkar causal.
wxString spec_frequency
Spec frequency at which EpsilonR and TanD are specified (user-entered text).
double soldermask_thickness
Cured mask thickness in metres. 20 um is typical for modern green LPI.
double soldermask_tand
Mask loss tangent.