PCB calculator enhancement: track width units change auto-recalculation:
* Automatically update results on input change * Allow user to specify trace width and calculate maximum current it can handle * Allow the trace thickness to be set separately for external and internal layers * Allow specification of the resistivity * Change the non-editable text boxes (resistance, power loss etc) to labels
This commit is contained in:
parent
f58e288140
commit
61818578fb
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Jun 5 2014)
|
// C++ code generated with wxFormBuilder (version Mar 21 2015)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
@ -60,7 +60,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
wxStaticBoxSizer* sbSizerRegFormula;
|
wxStaticBoxSizer* sbSizerRegFormula;
|
||||||
sbSizerRegFormula = new wxStaticBoxSizer( new wxStaticBox( m_panelRegulators, wxID_ANY, _("Formula") ), wxVERTICAL );
|
sbSizerRegFormula = new wxStaticBoxSizer( new wxStaticBox( m_panelRegulators, wxID_ANY, _("Formula") ), wxVERTICAL );
|
||||||
|
|
||||||
m_RegulFormula = new wxStaticText( m_panelRegulators, wxID_ANY, _("Vout = Vref * (R1 + R2) / R2"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_RegulFormula = new wxStaticText( sbSizerRegFormula->GetStaticBox(), wxID_ANY, _("Vout = Vref * (R1 + R2) / R2"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_RegulFormula->Wrap( -1 );
|
m_RegulFormula->Wrap( -1 );
|
||||||
m_RegulFormula->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
|
m_RegulFormula->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
|
||||||
|
|
||||||
|
@ -189,11 +189,11 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
sbSizerRegulatorsChooser = new wxStaticBoxSizer( new wxStaticBox( m_panelRegulators, wxID_ANY, _("Regulator") ), wxVERTICAL );
|
sbSizerRegulatorsChooser = new wxStaticBoxSizer( new wxStaticBox( m_panelRegulators, wxID_ANY, _("Regulator") ), wxVERTICAL );
|
||||||
|
|
||||||
wxArrayString m_choiceRegulatorSelectorChoices;
|
wxArrayString m_choiceRegulatorSelectorChoices;
|
||||||
m_choiceRegulatorSelector = new wxChoice( m_panelRegulators, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceRegulatorSelectorChoices, 0 );
|
m_choiceRegulatorSelector = new wxChoice( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceRegulatorSelectorChoices, 0 );
|
||||||
m_choiceRegulatorSelector->SetSelection( 0 );
|
m_choiceRegulatorSelector->SetSelection( 0 );
|
||||||
sbSizerRegulatorsChooser->Add( m_choiceRegulatorSelector, 0, wxALL|wxEXPAND, 5 );
|
sbSizerRegulatorsChooser->Add( m_choiceRegulatorSelector, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_staticTextRegFile = new wxStaticText( m_panelRegulators, wxID_ANY, _("Regulators data file:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextRegFile = new wxStaticText( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, _("Regulators data file:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextRegFile->Wrap( -1 );
|
m_staticTextRegFile->Wrap( -1 );
|
||||||
m_staticTextRegFile->SetToolTip( _("The name of the data file which stores known regulators parameters.") );
|
m_staticTextRegFile->SetToolTip( _("The name of the data file which stores known regulators parameters.") );
|
||||||
|
|
||||||
|
@ -202,11 +202,11 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
wxBoxSizer* bSizerDataFile;
|
wxBoxSizer* bSizerDataFile;
|
||||||
bSizerDataFile = new wxBoxSizer( wxHORIZONTAL );
|
bSizerDataFile = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
m_regulators_fileNameCtrl = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_regulators_fileNameCtrl = new wxTextCtrl( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_regulators_fileNameCtrl->SetMaxLength( 0 );
|
m_regulators_fileNameCtrl->SetMaxLength( 0 );
|
||||||
bSizerDataFile->Add( m_regulators_fileNameCtrl, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
bSizerDataFile->Add( m_regulators_fileNameCtrl, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_buttonDataFile = new wxButton( m_panelRegulators, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonDataFile = new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
bSizerDataFile->Add( m_buttonDataFile, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
bSizerDataFile->Add( m_buttonDataFile, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
@ -215,17 +215,17 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
wxBoxSizer* bSizerReulBtn;
|
wxBoxSizer* bSizerReulBtn;
|
||||||
bSizerReulBtn = new wxBoxSizer( wxHORIZONTAL );
|
bSizerReulBtn = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
m_buttonEditItem = new wxButton( m_panelRegulators, wxID_ANY, _("Edit Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonEditItem = new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, _("Edit Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_buttonEditItem->SetToolTip( _("Edit the current selected regulator.") );
|
m_buttonEditItem->SetToolTip( _("Edit the current selected regulator.") );
|
||||||
|
|
||||||
bSizerReulBtn->Add( m_buttonEditItem, 0, wxALL, 5 );
|
bSizerReulBtn->Add( m_buttonEditItem, 0, wxALL, 5 );
|
||||||
|
|
||||||
m_buttonAddItem = new wxButton( m_panelRegulators, wxID_ANY, _("Add Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonAddItem = new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, _("Add Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_buttonAddItem->SetToolTip( _("Enter a new item to the current list of available regulators") );
|
m_buttonAddItem->SetToolTip( _("Enter a new item to the current list of available regulators") );
|
||||||
|
|
||||||
bSizerReulBtn->Add( m_buttonAddItem, 1, wxALL, 5 );
|
bSizerReulBtn->Add( m_buttonAddItem, 1, wxALL, 5 );
|
||||||
|
|
||||||
m_buttonRemoveItem = new wxButton( m_panelRegulators, wxID_ANY, _("Remove Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonRemoveItem = new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, _("Remove Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_buttonRemoveItem->SetToolTip( _("Remove an item from the current list of available regulators") );
|
m_buttonRemoveItem->SetToolTip( _("Remove an item from the current list of available regulators") );
|
||||||
|
|
||||||
bSizerReulBtn->Add( m_buttonRemoveItem, 1, wxALL, 5 );
|
bSizerReulBtn->Add( m_buttonRemoveItem, 1, wxALL, 5 );
|
||||||
|
@ -247,19 +247,16 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
m_panelRegulators->SetSizer( bSizerMainReg );
|
m_panelRegulators->SetSizer( bSizerMainReg );
|
||||||
m_panelRegulators->Layout();
|
m_panelRegulators->Layout();
|
||||||
bSizerMainReg->Fit( m_panelRegulators );
|
bSizerMainReg->Fit( m_panelRegulators );
|
||||||
m_Notebook->AddPage( m_panelRegulators, _("Regulators"), true );
|
m_Notebook->AddPage( m_panelRegulators, _("Regulators"), false );
|
||||||
m_panelTrackWidth = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
m_panelTrackWidth = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||||
wxBoxSizer* bSizerTrackWidth;
|
wxBoxSizer* bSizerTrackWidth;
|
||||||
bSizerTrackWidth = new wxBoxSizer( wxHORIZONTAL );
|
bSizerTrackWidth = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
|
wxBoxSizer* bSizeLeft;
|
||||||
|
bSizeLeft = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbSizerTW_Prms;
|
wxStaticBoxSizer* sbSizerTW_Prms;
|
||||||
sbSizerTW_Prms = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("Parameters:") ), wxVERTICAL );
|
sbSizerTW_Prms = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("Parameters") ), wxVERTICAL );
|
||||||
|
|
||||||
m_staticTextTW_WarningMessage = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Valid max values:\n35A for external traces and 17.5A for internal.\n400mil widths.\nMaximum temperature rise of 100 deg C."), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticTextTW_WarningMessage->Wrap( -1 );
|
|
||||||
m_staticTextTW_WarningMessage->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
|
|
||||||
|
|
||||||
sbSizerTW_Prms->Add( m_staticTextTW_WarningMessage, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizerTWprms;
|
wxFlexGridSizer* fgSizerTWprms;
|
||||||
fgSizerTWprms = new wxFlexGridSizer( 4, 3, 0, 0 );
|
fgSizerTWprms = new wxFlexGridSizer( 4, 3, 0, 0 );
|
||||||
|
@ -267,138 +264,152 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
fgSizerTWprms->SetFlexibleDirection( wxBOTH );
|
fgSizerTWprms->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizerTWprms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizerTWprms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_staticTextCurrent = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Current"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextCurrent = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Current"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextCurrent->Wrap( -1 );
|
m_staticTextCurrent->Wrap( -1 );
|
||||||
fgSizerTWprms->Add( m_staticTextCurrent, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerTWprms->Add( m_staticTextCurrent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
|
||||||
|
|
||||||
m_TrackCurrentValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_TrackCurrentValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_TrackCurrentValue->SetMaxLength( 0 );
|
m_TrackCurrentValue->SetMaxLength( 0 );
|
||||||
fgSizerTWprms->Add( m_TrackCurrentValue, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTWprms->Add( m_TrackCurrentValue, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_staticText62 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("A"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText62 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("A"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText62->Wrap( -1 );
|
m_staticText62->Wrap( -1 );
|
||||||
fgSizerTWprms->Add( m_staticText62, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTWprms->Add( m_staticText62, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_staticText63 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Temperature rise"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText63 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Temperature rise"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText63->Wrap( -1 );
|
m_staticText63->Wrap( -1 );
|
||||||
fgSizerTWprms->Add( m_staticText63, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerTWprms->Add( m_staticText63, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_TrackDeltaTValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_TrackDeltaTValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_TrackDeltaTValue->SetMaxLength( 0 );
|
m_TrackDeltaTValue->SetMaxLength( 0 );
|
||||||
fgSizerTWprms->Add( m_TrackDeltaTValue, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTWprms->Add( m_TrackDeltaTValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
m_staticText64 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("deg C"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText64 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("deg C"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText64->Wrap( -1 );
|
m_staticText64->Wrap( -1 );
|
||||||
fgSizerTWprms->Add( m_staticText64, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTWprms->Add( m_staticText64, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_staticText65 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Cu thickness"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText66 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Conductor length"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText65->Wrap( -1 );
|
|
||||||
fgSizerTWprms->Add( m_staticText65, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
|
||||||
|
|
||||||
m_TrackThicknessValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_TrackThicknessValue->SetMaxLength( 0 );
|
|
||||||
fgSizerTWprms->Add( m_TrackThicknessValue, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
|
||||||
|
|
||||||
wxArrayString m_TW_CuThickness_choiceUnitChoices;
|
|
||||||
m_TW_CuThickness_choiceUnit = new UNIT_SELECTOR_LEN( m_panelTrackWidth, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_CuThickness_choiceUnitChoices, 0 );
|
|
||||||
m_TW_CuThickness_choiceUnit->SetSelection( 0 );
|
|
||||||
fgSizerTWprms->Add( m_TW_CuThickness_choiceUnit, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
|
||||||
|
|
||||||
m_staticText66 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Conductor length"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticText66->Wrap( -1 );
|
m_staticText66->Wrap( -1 );
|
||||||
fgSizerTWprms->Add( m_staticText66, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
fgSizerTWprms->Add( m_staticText66, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_TrackLengthValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_TrackLengthValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_TrackLengthValue->SetMaxLength( 0 );
|
m_TrackLengthValue->SetMaxLength( 0 );
|
||||||
fgSizerTWprms->Add( m_TrackLengthValue, 0, wxEXPAND|wxALL, 5 );
|
fgSizerTWprms->Add( m_TrackLengthValue, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxArrayString m_TW_CuLength_choiceUnitChoices;
|
wxArrayString m_TW_CuLength_choiceUnitChoices;
|
||||||
m_TW_CuLength_choiceUnit = new UNIT_SELECTOR_LEN( m_panelTrackWidth, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_CuLength_choiceUnitChoices, 0 );
|
m_TW_CuLength_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_CuLength_choiceUnitChoices, 0 );
|
||||||
m_TW_CuLength_choiceUnit->SetSelection( 0 );
|
m_TW_CuLength_choiceUnit->SetSelection( 0 );
|
||||||
fgSizerTWprms->Add( m_TW_CuLength_choiceUnit, 0, wxEXPAND|wxALL, 5 );
|
fgSizerTWprms->Add( m_TW_CuLength_choiceUnit, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_staticText103 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Resistivity"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_staticText103->Wrap( -1 );
|
||||||
|
fgSizerTWprms->Add( m_staticText103, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
|
||||||
|
|
||||||
|
m_TWResistivity = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fgSizerTWprms->Add( m_TWResistivity, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_staticText104 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Ohm-meter"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_staticText104->Wrap( -1 );
|
||||||
|
fgSizerTWprms->Add( m_staticText104, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
sbSizerTW_Prms->Add( fgSizerTWprms, 0, wxEXPAND, 5 );
|
sbSizerTW_Prms->Add( fgSizerTWprms, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
bSizeLeft->Add( sbSizerTW_Prms, 1, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_htmlWinFormulas = new wxHtmlWindow( m_panelTrackWidth, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_NO_SELECTION|wxHW_SCROLLBAR_AUTO|wxSIMPLE_BORDER );
|
m_htmlWinFormulas = new wxHtmlWindow( m_panelTrackWidth, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_NO_SELECTION|wxHW_SCROLLBAR_AUTO|wxSIMPLE_BORDER );
|
||||||
sbSizerTW_Prms->Add( m_htmlWinFormulas, 1, wxEXPAND|wxTOP, 5 );
|
m_htmlWinFormulas->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
|
||||||
|
m_htmlWinFormulas->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
|
||||||
|
|
||||||
|
bSizeLeft->Add( m_htmlWinFormulas, 1, wxEXPAND|wxTOP, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizerTrackWidth->Add( sbSizerTW_Prms, 1, wxALL|wxEXPAND, 5 );
|
bSizerTrackWidth->Add( bSizeLeft, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
m_buttonTW = new wxButton( m_panelTrackWidth, wxID_ANY, _(">>>"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
|
|
||||||
bSizerTrackWidth->Add( m_buttonTW, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
|
|
||||||
|
|
||||||
wxBoxSizer* bSizeRight;
|
wxBoxSizer* bSizeRight;
|
||||||
bSizeRight = new wxBoxSizer( wxVERTICAL );
|
bSizeRight = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbSizerTW_Result;
|
wxStaticBoxSizer* sbSizerTW_Result;
|
||||||
sbSizerTW_Result = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("Track Characteristics (External Layers):") ), wxVERTICAL );
|
sbSizerTW_Result = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("External layer traces") ), wxVERTICAL );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizerTW_Results;
|
wxFlexGridSizer* fgSizerTW_Results;
|
||||||
fgSizerTW_Results = new wxFlexGridSizer( 5, 3, 0, 0 );
|
fgSizerTW_Results = new wxFlexGridSizer( 6, 3, 0, 0 );
|
||||||
fgSizerTW_Results->AddGrowableCol( 1 );
|
fgSizerTW_Results->AddGrowableCol( 1 );
|
||||||
fgSizerTW_Results->SetFlexibleDirection( wxBOTH );
|
fgSizerTW_Results->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizerTW_Results->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizerTW_Results->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_staticTextWidth = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Required trace width"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextExtWidth = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Trace width"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextWidth->Wrap( -1 );
|
m_staticTextExtWidth->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_staticTextWidth, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerTW_Results->Add( m_staticTextExtWidth, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5 );
|
||||||
|
|
||||||
m_ExtTrackWidthValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_ExtTrackWidthValue = new wxTextCtrl( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_ExtTrackWidthValue->SetMaxLength( 0 );
|
m_ExtTrackWidthValue->SetMaxLength( 0 );
|
||||||
fgSizerTW_Results->Add( m_ExtTrackWidthValue, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results->Add( m_ExtTrackWidthValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
wxArrayString m_TW_ExtTrackWidth_choiceUnitChoices;
|
wxArrayString m_TW_ExtTrackWidth_choiceUnitChoices;
|
||||||
m_TW_ExtTrackWidth_choiceUnit = new UNIT_SELECTOR_LEN( m_panelTrackWidth, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_ExtTrackWidth_choiceUnitChoices, 0 );
|
m_TW_ExtTrackWidth_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_ExtTrackWidth_choiceUnitChoices, 0 );
|
||||||
m_TW_ExtTrackWidth_choiceUnit->SetSelection( 0 );
|
m_TW_ExtTrackWidth_choiceUnit->SetSelection( 0 );
|
||||||
fgSizerTW_Results->Add( m_TW_ExtTrackWidth_choiceUnit, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results->Add( m_TW_ExtTrackWidth_choiceUnit, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
m_staticTextArea = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Cross-section area"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText65 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Trace thickness"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_staticText65->Wrap( -1 );
|
||||||
|
fgSizerTW_Results->Add( m_staticText65, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
m_ExtTrackThicknessValue = new wxTextCtrl( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_ExtTrackThicknessValue->SetMaxLength( 0 );
|
||||||
|
fgSizerTW_Results->Add( m_ExtTrackThicknessValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
|
wxArrayString m_ExtTrackThicknessUnitChoices;
|
||||||
|
m_ExtTrackThicknessUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ExtTrackThicknessUnitChoices, 0 );
|
||||||
|
m_ExtTrackThicknessUnit->SetSelection( 0 );
|
||||||
|
fgSizerTW_Results->Add( m_ExtTrackThicknessUnit, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
|
m_staticTextArea = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Cross-section area"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextArea->Wrap( -1 );
|
m_staticTextArea->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_staticTextArea, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerTW_Results->Add( m_staticTextArea, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_ExtTrackAreaValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_ExtTrackAreaValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_ExtTrackAreaValue->SetMaxLength( 0 );
|
m_ExtTrackAreaValue->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_ExtTrackAreaValue, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results->Add( m_ExtTrackAreaValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
m_ExtTrackAreaUnitLabel = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("mm ^ 2"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_ExtTrackAreaUnitLabel = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("mm ^ 2"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_ExtTrackAreaUnitLabel->Wrap( -1 );
|
m_ExtTrackAreaUnitLabel->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_ExtTrackAreaUnitLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTW_Results->Add( m_ExtTrackAreaUnitLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_staticText651 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Resistance"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText651 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Resistance"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText651->Wrap( -1 );
|
m_staticText651->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_staticText651, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results->Add( m_staticText651, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_ExtTrackResistValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_ExtTrackResistValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_ExtTrackResistValue->SetMaxLength( 0 );
|
m_ExtTrackResistValue->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_ExtTrackResistValue, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results->Add( m_ExtTrackResistValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
m_staticText84 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Ohm"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText84 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Ohm"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText84->Wrap( -1 );
|
m_staticText84->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_staticText84, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTW_Results->Add( m_staticText84, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_staticText661 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Voltage drop"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText661 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Voltage drop"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText661->Wrap( -1 );
|
m_staticText661->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_staticText661, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results->Add( m_staticText661, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_ExtTrackVDropValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_ExtTrackVDropValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_ExtTrackVDropValue->SetMaxLength( 0 );
|
m_ExtTrackVDropValue->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_ExtTrackVDropValue, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results->Add( m_ExtTrackVDropValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
m_staticText83 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Volt"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText83 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Volt"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText83->Wrap( -1 );
|
m_staticText83->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_staticText83, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTW_Results->Add( m_staticText83, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_staticText79 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Loss"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText79 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Power loss"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText79->Wrap( -1 );
|
m_staticText79->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_staticText79, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTW_Results->Add( m_staticText79, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_ExtTrackLossValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_ExtTrackLossValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_ExtTrackLossValue->SetMaxLength( 0 );
|
m_ExtTrackLossValue->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_ExtTrackLossValue, 0, wxALL|wxEXPAND, 5 );
|
fgSizerTW_Results->Add( m_ExtTrackLossValue, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_staticText791 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Watt"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText791 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Watt"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText791->Wrap( -1 );
|
m_staticText791->Wrap( -1 );
|
||||||
fgSizerTW_Results->Add( m_staticText791, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTW_Results->Add( m_staticText791, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
@ -409,7 +420,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
bSizeRight->Add( sbSizerTW_Result, 1, wxEXPAND|wxALL, 5 );
|
bSizeRight->Add( sbSizerTW_Result, 1, wxEXPAND|wxALL, 5 );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbSizerTW_Result1;
|
wxStaticBoxSizer* sbSizerTW_Result1;
|
||||||
sbSizerTW_Result1 = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("Track Characteristics (Internal Layers):") ), wxVERTICAL );
|
sbSizerTW_Result1 = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("Internal layer traces") ), wxVERTICAL );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizerTW_Results1;
|
wxFlexGridSizer* fgSizerTW_Results1;
|
||||||
fgSizerTW_Results1 = new wxFlexGridSizer( 6, 3, 0, 0 );
|
fgSizerTW_Results1 = new wxFlexGridSizer( 6, 3, 0, 0 );
|
||||||
|
@ -417,64 +428,77 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
fgSizerTW_Results1->SetFlexibleDirection( wxBOTH );
|
fgSizerTW_Results1->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizerTW_Results1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizerTW_Results1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_staticTextWidth11 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Required trace width"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextIntWidth = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Trace width"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextWidth11->Wrap( -1 );
|
m_staticTextIntWidth->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_staticTextWidth11, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTW_Results1->Add( m_staticTextIntWidth, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
|
||||||
|
|
||||||
m_IntTrackWidthValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_IntTrackWidthValue = new wxTextCtrl( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_IntTrackWidthValue->SetMaxLength( 0 );
|
m_IntTrackWidthValue->SetMaxLength( 0 );
|
||||||
fgSizerTW_Results1->Add( m_IntTrackWidthValue, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results1->Add( m_IntTrackWidthValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
wxArrayString m_TW_IntTrackWidth_choiceUnitChoices;
|
wxArrayString m_TW_IntTrackWidth_choiceUnitChoices;
|
||||||
m_TW_IntTrackWidth_choiceUnit = new UNIT_SELECTOR_LEN( m_panelTrackWidth, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_IntTrackWidth_choiceUnitChoices, 0 );
|
m_TW_IntTrackWidth_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_IntTrackWidth_choiceUnitChoices, 0 );
|
||||||
m_TW_IntTrackWidth_choiceUnit->SetSelection( 0 );
|
m_TW_IntTrackWidth_choiceUnit->SetSelection( 0 );
|
||||||
fgSizerTW_Results1->Add( m_TW_IntTrackWidth_choiceUnit, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results1->Add( m_TW_IntTrackWidth_choiceUnit, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_staticTextArea1 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Cross-section area"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText652 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Trace thickness"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_staticText652->Wrap( -1 );
|
||||||
|
fgSizerTW_Results1->Add( m_staticText652, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
|
||||||
|
|
||||||
|
m_IntTrackThicknessValue = new wxTextCtrl( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_IntTrackThicknessValue->SetMaxLength( 0 );
|
||||||
|
fgSizerTW_Results1->Add( m_IntTrackThicknessValue, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxArrayString m_IntTrackThicknessUnitChoices;
|
||||||
|
m_IntTrackThicknessUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_IntTrackThicknessUnitChoices, 0 );
|
||||||
|
m_IntTrackThicknessUnit->SetSelection( 0 );
|
||||||
|
fgSizerTW_Results1->Add( m_IntTrackThicknessUnit, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
m_staticTextArea1 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Cross-section area"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextArea1->Wrap( -1 );
|
m_staticTextArea1->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_staticTextArea1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerTW_Results1->Add( m_staticTextArea1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_IntTrackAreaValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_IntTrackAreaValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_IntTrackAreaValue->SetMaxLength( 0 );
|
m_IntTrackAreaValue->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_IntTrackAreaValue, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results1->Add( m_IntTrackAreaValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
m_IntTrackAreaUnitLabel = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("mm ^ 2"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_IntTrackAreaUnitLabel = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("mm ^ 2"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_IntTrackAreaUnitLabel->Wrap( -1 );
|
m_IntTrackAreaUnitLabel->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_IntTrackAreaUnitLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTW_Results1->Add( m_IntTrackAreaUnitLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_staticText6511 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Resistance"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText6511 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Resistance"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText6511->Wrap( -1 );
|
m_staticText6511->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_staticText6511, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results1->Add( m_staticText6511, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_IntTrackResistValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_IntTrackResistValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_IntTrackResistValue->SetMaxLength( 0 );
|
m_IntTrackResistValue->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_IntTrackResistValue, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results1->Add( m_IntTrackResistValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
m_staticText841 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Ohm"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText841 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Ohm"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText841->Wrap( -1 );
|
m_staticText841->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_staticText841, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTW_Results1->Add( m_staticText841, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_staticText6611 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Voltage drop"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText6611 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Voltage drop"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText6611->Wrap( -1 );
|
m_staticText6611->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_staticText6611, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results1->Add( m_staticText6611, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_IntTrackVDropValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_IntTrackVDropValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_IntTrackVDropValue->SetMaxLength( 0 );
|
m_IntTrackVDropValue->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_IntTrackVDropValue, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerTW_Results1->Add( m_IntTrackVDropValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||||
|
|
||||||
m_staticText831 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Volt"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText831 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Volt"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText831->Wrap( -1 );
|
m_staticText831->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_staticText831, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTW_Results1->Add( m_staticText831, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_staticText792 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Loss"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText792 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Power loss"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText792->Wrap( -1 );
|
m_staticText792->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_staticText792, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTW_Results1->Add( m_staticText792, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_IntTrackLossValue = new wxTextCtrl( m_panelTrackWidth, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_IntTrackLossValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_IntTrackLossValue->SetMaxLength( 0 );
|
m_IntTrackLossValue->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_IntTrackLossValue, 0, wxALL|wxEXPAND, 5 );
|
fgSizerTW_Results1->Add( m_IntTrackLossValue, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_staticText7911 = new wxStaticText( m_panelTrackWidth, wxID_ANY, _("Watt"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText7911 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Watt"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText7911->Wrap( -1 );
|
m_staticText7911->Wrap( -1 );
|
||||||
fgSizerTW_Results1->Add( m_staticText7911, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTW_Results1->Add( m_staticText7911, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
@ -491,7 +515,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
m_panelTrackWidth->SetSizer( bSizerTrackWidth );
|
m_panelTrackWidth->SetSizer( bSizerTrackWidth );
|
||||||
m_panelTrackWidth->Layout();
|
m_panelTrackWidth->Layout();
|
||||||
bSizerTrackWidth->Fit( m_panelTrackWidth );
|
bSizerTrackWidth->Fit( m_panelTrackWidth );
|
||||||
m_Notebook->AddPage( m_panelTrackWidth, _("Track Width"), false );
|
m_Notebook->AddPage( m_panelTrackWidth, _("Track Width"), true );
|
||||||
m_panelElectricalSpacing = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
m_panelElectricalSpacing = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||||
wxBoxSizer* bSizerElectricalClearance;
|
wxBoxSizer* bSizerElectricalClearance;
|
||||||
bSizerElectricalClearance = new wxBoxSizer( wxHORIZONTAL );
|
bSizerElectricalClearance = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
@ -620,116 +644,116 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
fgSizerSubstPrms->SetFlexibleDirection( wxBOTH );
|
fgSizerSubstPrms->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizerSubstPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizerSubstPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_EpsilonR_label = new wxStaticText( m_panelTransline, wxID_ANY, _("Er"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_EpsilonR_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Er"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_EpsilonR_label->Wrap( -1 );
|
m_EpsilonR_label->Wrap( -1 );
|
||||||
fgSizerSubstPrms->Add( m_EpsilonR_label, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerSubstPrms->Add( m_EpsilonR_label, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_Value_EpsilonR = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Value_EpsilonR = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Value_EpsilonR->SetMaxLength( 0 );
|
m_Value_EpsilonR->SetMaxLength( 0 );
|
||||||
fgSizerSubstPrms->Add( m_Value_EpsilonR, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerSubstPrms->Add( m_Value_EpsilonR, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_button_EpsilonR = new wxButton( m_panelTransline, wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
|
m_button_EpsilonR = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
|
||||||
fgSizerSubstPrms->Add( m_button_EpsilonR, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerSubstPrms->Add( m_button_EpsilonR, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_TanD_label = new wxStaticText( m_panelTransline, wxID_ANY, _("TanD"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_TanD_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("TanD"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_TanD_label->Wrap( -1 );
|
m_TanD_label->Wrap( -1 );
|
||||||
fgSizerSubstPrms->Add( m_TanD_label, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerSubstPrms->Add( m_TanD_label, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_Value_TanD = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Value_TanD = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Value_TanD->SetMaxLength( 0 );
|
m_Value_TanD->SetMaxLength( 0 );
|
||||||
fgSizerSubstPrms->Add( m_Value_TanD, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizerSubstPrms->Add( m_Value_TanD, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_button_TanD = new wxButton( m_panelTransline, wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
|
m_button_TanD = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
|
||||||
fgSizerSubstPrms->Add( m_button_TanD, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerSubstPrms->Add( m_button_TanD, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_Rho_label = new wxStaticText( m_panelTransline, wxID_ANY, _("Rho"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_Rho_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Rho"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Rho_label->Wrap( -1 );
|
m_Rho_label->Wrap( -1 );
|
||||||
m_Rho_label->SetToolTip( _("Specific resistance in ohms * meters") );
|
m_Rho_label->SetToolTip( _("Specific resistance in ohms * meters") );
|
||||||
|
|
||||||
fgSizerSubstPrms->Add( m_Rho_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerSubstPrms->Add( m_Rho_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Value_Rho = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Value_Rho = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Value_Rho->SetMaxLength( 0 );
|
m_Value_Rho->SetMaxLength( 0 );
|
||||||
fgSizerSubstPrms->Add( m_Value_Rho, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizerSubstPrms->Add( m_Value_Rho, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_button_Rho = new wxButton( m_panelTransline, wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
|
m_button_Rho = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
|
||||||
fgSizerSubstPrms->Add( m_button_Rho, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerSubstPrms->Add( m_button_Rho, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_substrate_prm4_label = new wxStaticText( m_panelTransline, wxID_ANY, _("H"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_substrate_prm4_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("H"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_substrate_prm4_label->Wrap( -1 );
|
m_substrate_prm4_label->Wrap( -1 );
|
||||||
fgSizerSubstPrms->Add( m_substrate_prm4_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerSubstPrms->Add( m_substrate_prm4_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Substrate_prm4_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Substrate_prm4_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Substrate_prm4_Value->SetMaxLength( 0 );
|
m_Substrate_prm4_Value->SetMaxLength( 0 );
|
||||||
fgSizerSubstPrms->Add( m_Substrate_prm4_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerSubstPrms->Add( m_Substrate_prm4_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxArrayString m_SubsPrm4_choiceUnitChoices;
|
wxArrayString m_SubsPrm4_choiceUnitChoices;
|
||||||
m_SubsPrm4_choiceUnit = new UNIT_SELECTOR_LEN( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm4_choiceUnitChoices, 0 );
|
m_SubsPrm4_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm4_choiceUnitChoices, 0 );
|
||||||
m_SubsPrm4_choiceUnit->SetSelection( 0 );
|
m_SubsPrm4_choiceUnit->SetSelection( 0 );
|
||||||
fgSizerSubstPrms->Add( m_SubsPrm4_choiceUnit, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerSubstPrms->Add( m_SubsPrm4_choiceUnit, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_substrate_prm5_label = new wxStaticText( m_panelTransline, wxID_ANY, _("H_t"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_substrate_prm5_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("H_t"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_substrate_prm5_label->Wrap( -1 );
|
m_substrate_prm5_label->Wrap( -1 );
|
||||||
fgSizerSubstPrms->Add( m_substrate_prm5_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerSubstPrms->Add( m_substrate_prm5_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Substrate_prm5_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Substrate_prm5_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Substrate_prm5_Value->SetMaxLength( 0 );
|
m_Substrate_prm5_Value->SetMaxLength( 0 );
|
||||||
fgSizerSubstPrms->Add( m_Substrate_prm5_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerSubstPrms->Add( m_Substrate_prm5_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxArrayString m_SubsPrm5_choiceUnitChoices;
|
wxArrayString m_SubsPrm5_choiceUnitChoices;
|
||||||
m_SubsPrm5_choiceUnit = new UNIT_SELECTOR_LEN( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm5_choiceUnitChoices, 0 );
|
m_SubsPrm5_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm5_choiceUnitChoices, 0 );
|
||||||
m_SubsPrm5_choiceUnit->SetSelection( 0 );
|
m_SubsPrm5_choiceUnit->SetSelection( 0 );
|
||||||
fgSizerSubstPrms->Add( m_SubsPrm5_choiceUnit, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizerSubstPrms->Add( m_SubsPrm5_choiceUnit, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_substrate_prm6_label = new wxStaticText( m_panelTransline, wxID_ANY, _("T"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_substrate_prm6_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("T"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_substrate_prm6_label->Wrap( -1 );
|
m_substrate_prm6_label->Wrap( -1 );
|
||||||
fgSizerSubstPrms->Add( m_substrate_prm6_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerSubstPrms->Add( m_substrate_prm6_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Substrate_prm6_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Substrate_prm6_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Substrate_prm6_Value->SetMaxLength( 0 );
|
m_Substrate_prm6_Value->SetMaxLength( 0 );
|
||||||
fgSizerSubstPrms->Add( m_Substrate_prm6_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerSubstPrms->Add( m_Substrate_prm6_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxArrayString m_SubsPrm6_choiceUnitChoices;
|
wxArrayString m_SubsPrm6_choiceUnitChoices;
|
||||||
m_SubsPrm6_choiceUnit = new UNIT_SELECTOR_LEN( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm6_choiceUnitChoices, 0 );
|
m_SubsPrm6_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm6_choiceUnitChoices, 0 );
|
||||||
m_SubsPrm6_choiceUnit->SetSelection( 0 );
|
m_SubsPrm6_choiceUnit->SetSelection( 0 );
|
||||||
fgSizerSubstPrms->Add( m_SubsPrm6_choiceUnit, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizerSubstPrms->Add( m_SubsPrm6_choiceUnit, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_substrate_prm7_label = new wxStaticText( m_panelTransline, wxID_ANY, _("Rough"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_substrate_prm7_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Rough"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_substrate_prm7_label->Wrap( -1 );
|
m_substrate_prm7_label->Wrap( -1 );
|
||||||
fgSizerSubstPrms->Add( m_substrate_prm7_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
fgSizerSubstPrms->Add( m_substrate_prm7_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_Substrate_prm7_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Substrate_prm7_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Substrate_prm7_Value->SetMaxLength( 0 );
|
m_Substrate_prm7_Value->SetMaxLength( 0 );
|
||||||
fgSizerSubstPrms->Add( m_Substrate_prm7_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerSubstPrms->Add( m_Substrate_prm7_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxArrayString m_SubsPrm7_choiceUnitChoices;
|
wxArrayString m_SubsPrm7_choiceUnitChoices;
|
||||||
m_SubsPrm7_choiceUnit = new UNIT_SELECTOR_LEN( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm7_choiceUnitChoices, 0 );
|
m_SubsPrm7_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm7_choiceUnitChoices, 0 );
|
||||||
m_SubsPrm7_choiceUnit->SetSelection( 0 );
|
m_SubsPrm7_choiceUnit->SetSelection( 0 );
|
||||||
fgSizerSubstPrms->Add( m_SubsPrm7_choiceUnit, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerSubstPrms->Add( m_SubsPrm7_choiceUnit, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_substrate_prm8_label = new wxStaticText( m_panelTransline, wxID_ANY, _("mu Rel"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_substrate_prm8_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("mu Rel"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_substrate_prm8_label->Wrap( -1 );
|
m_substrate_prm8_label->Wrap( -1 );
|
||||||
fgSizerSubstPrms->Add( m_substrate_prm8_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
fgSizerSubstPrms->Add( m_substrate_prm8_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_Substrate_prm8_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Substrate_prm8_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Substrate_prm8_Value->SetMaxLength( 0 );
|
m_Substrate_prm8_Value->SetMaxLength( 0 );
|
||||||
fgSizerSubstPrms->Add( m_Substrate_prm8_Value, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizerSubstPrms->Add( m_Substrate_prm8_Value, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
wxArrayString m_SubsPrm8_choiceUnitChoices;
|
wxArrayString m_SubsPrm8_choiceUnitChoices;
|
||||||
m_SubsPrm8_choiceUnit = new UNIT_SELECTOR_LEN( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm8_choiceUnitChoices, 0 );
|
m_SubsPrm8_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm8_choiceUnitChoices, 0 );
|
||||||
m_SubsPrm8_choiceUnit->SetSelection( 0 );
|
m_SubsPrm8_choiceUnit->SetSelection( 0 );
|
||||||
fgSizerSubstPrms->Add( m_SubsPrm8_choiceUnit, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizerSubstPrms->Add( m_SubsPrm8_choiceUnit, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_substrate_prm9_label = new wxStaticText( m_panelTransline, wxID_ANY, _("mu Rel C"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_substrate_prm9_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("mu Rel C"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_substrate_prm9_label->Wrap( -1 );
|
m_substrate_prm9_label->Wrap( -1 );
|
||||||
fgSizerSubstPrms->Add( m_substrate_prm9_label, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerSubstPrms->Add( m_substrate_prm9_label, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Substrate_prm9_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Substrate_prm9_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Substrate_prm9_Value->SetMaxLength( 0 );
|
m_Substrate_prm9_Value->SetMaxLength( 0 );
|
||||||
fgSizerSubstPrms->Add( m_Substrate_prm9_Value, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizerSubstPrms->Add( m_Substrate_prm9_Value, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
wxArrayString m_SubsPrm9_choiceUnitChoices;
|
wxArrayString m_SubsPrm9_choiceUnitChoices;
|
||||||
m_SubsPrm9_choiceUnit = new UNIT_SELECTOR_LEN( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm9_choiceUnitChoices, 0 );
|
m_SubsPrm9_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm9_choiceUnitChoices, 0 );
|
||||||
m_SubsPrm9_choiceUnit->SetSelection( 0 );
|
m_SubsPrm9_choiceUnit->SetSelection( 0 );
|
||||||
fgSizerSubstPrms->Add( m_SubsPrm9_choiceUnit, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerSubstPrms->Add( m_SubsPrm9_choiceUnit, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
@ -748,16 +772,16 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
fgSizeCmpPrms->SetFlexibleDirection( wxBOTH );
|
fgSizeCmpPrms->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizeCmpPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizeCmpPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_Frequency_label = new wxStaticText( m_panelTransline, wxID_ANY, _("Frequency"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_Frequency_label = new wxStaticText( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, _("Frequency"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Frequency_label->Wrap( -1 );
|
m_Frequency_label->Wrap( -1 );
|
||||||
fgSizeCmpPrms->Add( m_Frequency_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizeCmpPrms->Add( m_Frequency_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Value_Frequency_Ctrl = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Value_Frequency_Ctrl = new wxTextCtrl( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Value_Frequency_Ctrl->SetMaxLength( 0 );
|
m_Value_Frequency_Ctrl->SetMaxLength( 0 );
|
||||||
fgSizeCmpPrms->Add( m_Value_Frequency_Ctrl, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizeCmpPrms->Add( m_Value_Frequency_Ctrl, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxArrayString m_choiceUnit_FrequencyChoices;
|
wxArrayString m_choiceUnit_FrequencyChoices;
|
||||||
m_choiceUnit_Frequency = new UNIT_SELECTOR_FREQUENCY( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_FrequencyChoices, 0 );
|
m_choiceUnit_Frequency = new UNIT_SELECTOR_FREQUENCY( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_FrequencyChoices, 0 );
|
||||||
m_choiceUnit_Frequency->SetSelection( 0 );
|
m_choiceUnit_Frequency->SetSelection( 0 );
|
||||||
fgSizeCmpPrms->Add( m_choiceUnit_Frequency, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizeCmpPrms->Add( m_choiceUnit_Frequency, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
@ -785,48 +809,48 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
fgSizerPhysPrms->SetFlexibleDirection( wxBOTH );
|
fgSizerPhysPrms->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizerPhysPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizerPhysPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_phys_prm1_label = new wxStaticText( m_panelTransline, wxID_ANY, _("Prm1"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_phys_prm1_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("Prm1"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_phys_prm1_label->Wrap( -1 );
|
m_phys_prm1_label->Wrap( -1 );
|
||||||
fgSizerPhysPrms->Add( m_phys_prm1_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerPhysPrms->Add( m_phys_prm1_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Phys_prm1_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Phys_prm1_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Phys_prm1_Value->SetMaxLength( 0 );
|
m_Phys_prm1_Value->SetMaxLength( 0 );
|
||||||
fgSizerPhysPrms->Add( m_Phys_prm1_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerPhysPrms->Add( m_Phys_prm1_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxArrayString m_choiceUnit_Param1Choices;
|
wxArrayString m_choiceUnit_Param1Choices;
|
||||||
m_choiceUnit_Param1 = new UNIT_SELECTOR_LEN( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param1Choices, 0 );
|
m_choiceUnit_Param1 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param1Choices, 0 );
|
||||||
m_choiceUnit_Param1->SetSelection( 0 );
|
m_choiceUnit_Param1->SetSelection( 0 );
|
||||||
fgSizerPhysPrms->Add( m_choiceUnit_Param1, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerPhysPrms->Add( m_choiceUnit_Param1, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_radioBtnPrm1 = new wxRadioButton( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
|
m_radioBtnPrm1 = new wxRadioButton( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
|
||||||
fgSizerPhysPrms->Add( m_radioBtnPrm1, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerPhysPrms->Add( m_radioBtnPrm1, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_phys_prm2_label = new wxStaticText( m_panelTransline, wxID_ANY, _("prm2"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_phys_prm2_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("prm2"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_phys_prm2_label->Wrap( -1 );
|
m_phys_prm2_label->Wrap( -1 );
|
||||||
fgSizerPhysPrms->Add( m_phys_prm2_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerPhysPrms->Add( m_phys_prm2_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Phys_prm2_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Phys_prm2_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Phys_prm2_Value->SetMaxLength( 0 );
|
m_Phys_prm2_Value->SetMaxLength( 0 );
|
||||||
fgSizerPhysPrms->Add( m_Phys_prm2_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerPhysPrms->Add( m_Phys_prm2_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxArrayString m_choiceUnit_Param2Choices;
|
wxArrayString m_choiceUnit_Param2Choices;
|
||||||
m_choiceUnit_Param2 = new UNIT_SELECTOR_LEN( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param2Choices, 0 );
|
m_choiceUnit_Param2 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param2Choices, 0 );
|
||||||
m_choiceUnit_Param2->SetSelection( 0 );
|
m_choiceUnit_Param2->SetSelection( 0 );
|
||||||
fgSizerPhysPrms->Add( m_choiceUnit_Param2, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerPhysPrms->Add( m_choiceUnit_Param2, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_radioBtnPrm2 = new wxRadioButton( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_radioBtnPrm2 = new wxRadioButton( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizerPhysPrms->Add( m_radioBtnPrm2, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerPhysPrms->Add( m_radioBtnPrm2, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_phys_prm3_label = new wxStaticText( m_panelTransline, wxID_ANY, _("prm3"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_phys_prm3_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("prm3"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_phys_prm3_label->Wrap( -1 );
|
m_phys_prm3_label->Wrap( -1 );
|
||||||
fgSizerPhysPrms->Add( m_phys_prm3_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerPhysPrms->Add( m_phys_prm3_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Phys_prm3_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Phys_prm3_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Phys_prm3_Value->SetMaxLength( 0 );
|
m_Phys_prm3_Value->SetMaxLength( 0 );
|
||||||
fgSizerPhysPrms->Add( m_Phys_prm3_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerPhysPrms->Add( m_Phys_prm3_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxArrayString m_choiceUnit_Param3Choices;
|
wxArrayString m_choiceUnit_Param3Choices;
|
||||||
m_choiceUnit_Param3 = new UNIT_SELECTOR_LEN( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param3Choices, 0 );
|
m_choiceUnit_Param3 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param3Choices, 0 );
|
||||||
m_choiceUnit_Param3->SetSelection( 0 );
|
m_choiceUnit_Param3->SetSelection( 0 );
|
||||||
fgSizerPhysPrms->Add( m_choiceUnit_Param3, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerPhysPrms->Add( m_choiceUnit_Param3, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
@ -875,42 +899,42 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
fgSizerResults->SetFlexibleDirection( wxBOTH );
|
fgSizerResults->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizerResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizerResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_elec_prm1_label = new wxStaticText( m_panelTransline, wxID_ANY, _("Z"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_elec_prm1_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Z"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_elec_prm1_label->Wrap( -1 );
|
m_elec_prm1_label->Wrap( -1 );
|
||||||
fgSizerResults->Add( m_elec_prm1_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerResults->Add( m_elec_prm1_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Elec_prm1_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Elec_prm1_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Elec_prm1_Value->SetMaxLength( 0 );
|
m_Elec_prm1_Value->SetMaxLength( 0 );
|
||||||
fgSizerResults->Add( m_Elec_prm1_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerResults->Add( m_Elec_prm1_Value, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxArrayString m_choiceUnit_ElecPrm1Choices;
|
wxArrayString m_choiceUnit_ElecPrm1Choices;
|
||||||
m_choiceUnit_ElecPrm1 = new UNIT_SELECTOR_RESISTOR( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm1Choices, 0 );
|
m_choiceUnit_ElecPrm1 = new UNIT_SELECTOR_RESISTOR( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm1Choices, 0 );
|
||||||
m_choiceUnit_ElecPrm1->SetSelection( 0 );
|
m_choiceUnit_ElecPrm1->SetSelection( 0 );
|
||||||
fgSizerResults->Add( m_choiceUnit_ElecPrm1, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizerResults->Add( m_choiceUnit_ElecPrm1, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_elec_prm2_label = new wxStaticText( m_panelTransline, wxID_ANY, _("Z"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_elec_prm2_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Z"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_elec_prm2_label->Wrap( -1 );
|
m_elec_prm2_label->Wrap( -1 );
|
||||||
fgSizerResults->Add( m_elec_prm2_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerResults->Add( m_elec_prm2_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Elec_prm2_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Elec_prm2_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Elec_prm2_Value->SetMaxLength( 0 );
|
m_Elec_prm2_Value->SetMaxLength( 0 );
|
||||||
fgSizerResults->Add( m_Elec_prm2_Value, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizerResults->Add( m_Elec_prm2_Value, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
wxArrayString m_choiceUnit_ElecPrm2Choices;
|
wxArrayString m_choiceUnit_ElecPrm2Choices;
|
||||||
m_choiceUnit_ElecPrm2 = new UNIT_SELECTOR_RESISTOR( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm2Choices, 0 );
|
m_choiceUnit_ElecPrm2 = new UNIT_SELECTOR_RESISTOR( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm2Choices, 0 );
|
||||||
m_choiceUnit_ElecPrm2->SetSelection( 0 );
|
m_choiceUnit_ElecPrm2->SetSelection( 0 );
|
||||||
fgSizerResults->Add( m_choiceUnit_ElecPrm2, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerResults->Add( m_choiceUnit_ElecPrm2, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_elec_prm3_label = new wxStaticText( m_panelTransline, wxID_ANY, _("Angle"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_elec_prm3_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Angle"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_elec_prm3_label->Wrap( -1 );
|
m_elec_prm3_label->Wrap( -1 );
|
||||||
fgSizerResults->Add( m_elec_prm3_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerResults->Add( m_elec_prm3_label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Elec_prm3_Value = new wxTextCtrl( m_panelTransline, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Elec_prm3_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Elec_prm3_Value->SetMaxLength( 0 );
|
m_Elec_prm3_Value->SetMaxLength( 0 );
|
||||||
fgSizerResults->Add( m_Elec_prm3_Value, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizerResults->Add( m_Elec_prm3_Value, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
wxArrayString m_choiceUnit_ElecPrm3Choices;
|
wxArrayString m_choiceUnit_ElecPrm3Choices;
|
||||||
m_choiceUnit_ElecPrm3 = new UNIT_SELECTOR_ANGLE( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm3Choices, 0 );
|
m_choiceUnit_ElecPrm3 = new UNIT_SELECTOR_ANGLE( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm3Choices, 0 );
|
||||||
m_choiceUnit_ElecPrm3->SetSelection( 0 );
|
m_choiceUnit_ElecPrm3->SetSelection( 0 );
|
||||||
fgSizerResults->Add( m_choiceUnit_ElecPrm3, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerResults->Add( m_choiceUnit_ElecPrm3, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
@ -929,59 +953,59 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
fgSizerTranslResults->SetFlexibleDirection( wxBOTH );
|
fgSizerTranslResults->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizerTranslResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizerTranslResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_left_message1 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_left_message1 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_left_message1->Wrap( -1 );
|
m_left_message1->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_left_message1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerTranslResults->Add( m_left_message1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Message1 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_Message1 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Message1->Wrap( -1 );
|
m_Message1->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_Message1, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerTranslResults->Add( m_Message1, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_left_message2 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_left_message2 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_left_message2->Wrap( -1 );
|
m_left_message2->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_left_message2, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerTranslResults->Add( m_left_message2, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Message2 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_Message2 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Message2->Wrap( -1 );
|
m_Message2->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_Message2, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerTranslResults->Add( m_Message2, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_left_message3 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_left_message3 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_left_message3->Wrap( -1 );
|
m_left_message3->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_left_message3, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerTranslResults->Add( m_left_message3, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Message3 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_Message3 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Message3->Wrap( -1 );
|
m_Message3->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_Message3, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerTranslResults->Add( m_Message3, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_left_message4 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_left_message4 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_left_message4->Wrap( -1 );
|
m_left_message4->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_left_message4, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerTranslResults->Add( m_left_message4, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Message4 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_Message4 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Message4->Wrap( -1 );
|
m_Message4->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_Message4, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerTranslResults->Add( m_Message4, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_left_message5 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_left_message5 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_left_message5->Wrap( -1 );
|
m_left_message5->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_left_message5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxALIGN_RIGHT, 5 );
|
fgSizerTranslResults->Add( m_left_message5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Message5 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_Message5 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Message5->Wrap( -1 );
|
m_Message5->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_Message5, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerTranslResults->Add( m_Message5, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_left_message6 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_left_message6 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_left_message6->Wrap( -1 );
|
m_left_message6->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_left_message6, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerTranslResults->Add( m_left_message6, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Message6 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_Message6 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Message6->Wrap( -1 );
|
m_Message6->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_Message6, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerTranslResults->Add( m_Message6, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_left_message7 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_left_message7 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_left_message7->Wrap( -1 );
|
m_left_message7->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_left_message7, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
fgSizerTranslResults->Add( m_left_message7, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
m_Message7 = new wxStaticText( m_panelTransline, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_Message7 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Message7->Wrap( -1 );
|
m_Message7->Wrap( -1 );
|
||||||
fgSizerTranslResults->Add( m_Message7, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
fgSizerTranslResults->Add( m_Message7, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
@ -1008,11 +1032,11 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
|
|
||||||
wxString m_AttenuatorsSelectionChoices[] = { _("PI"), _("Tee"), _("Bridged Tee"), _("Resistive Splitter") };
|
wxString m_AttenuatorsSelectionChoices[] = { _("PI"), _("Tee"), _("Bridged Tee"), _("Resistive Splitter") };
|
||||||
int m_AttenuatorsSelectionNChoices = sizeof( m_AttenuatorsSelectionChoices ) / sizeof( wxString );
|
int m_AttenuatorsSelectionNChoices = sizeof( m_AttenuatorsSelectionChoices ) / sizeof( wxString );
|
||||||
m_AttenuatorsSelection = new wxRadioBox( m_panelAttenuators, wxID_ANY, _("Attenuators:"), wxDefaultPosition, wxDefaultSize, m_AttenuatorsSelectionNChoices, m_AttenuatorsSelectionChoices, 1, wxRA_SPECIFY_COLS );
|
m_AttenuatorsSelection = new wxRadioBox( sbSizerAtt->GetStaticBox(), wxID_ANY, _("Attenuators:"), wxDefaultPosition, wxDefaultSize, m_AttenuatorsSelectionNChoices, m_AttenuatorsSelectionChoices, 1, wxRA_SPECIFY_COLS );
|
||||||
m_AttenuatorsSelection->SetSelection( 0 );
|
m_AttenuatorsSelection->SetSelection( 0 );
|
||||||
bLeftSizerAtt->Add( m_AttenuatorsSelection, 0, wxEXPAND|wxALL, 5 );
|
bLeftSizerAtt->Add( m_AttenuatorsSelection, 0, wxEXPAND|wxALL, 5 );
|
||||||
|
|
||||||
m_panelDisplayAttenuator = new wxPanel( m_panelAttenuators, wxID_ANY, wxDefaultPosition, wxSize( 256,256 ), wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
|
m_panelDisplayAttenuator = new wxPanel( sbSizerAtt->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxSize( 256,256 ), wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
|
||||||
bLeftSizerAtt->Add( m_panelDisplayAttenuator, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
|
bLeftSizerAtt->Add( m_panelDisplayAttenuator, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
@ -1022,7 +1046,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
bMiddleSizerAtt = new wxBoxSizer( wxVERTICAL );
|
bMiddleSizerAtt = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbSizerAttPrms;
|
wxStaticBoxSizer* sbSizerAttPrms;
|
||||||
sbSizerAttPrms = new wxStaticBoxSizer( new wxStaticBox( m_panelAttenuators, wxID_ANY, _("Parameters:") ), wxVERTICAL );
|
sbSizerAttPrms = new wxStaticBoxSizer( new wxStaticBox( sbSizerAtt->GetStaticBox(), wxID_ANY, _("Parameters:") ), wxVERTICAL );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizerAttPrms;
|
wxFlexGridSizer* fgSizerAttPrms;
|
||||||
fgSizerAttPrms = new wxFlexGridSizer( 3, 3, 0, 0 );
|
fgSizerAttPrms = new wxFlexGridSizer( 3, 3, 0, 0 );
|
||||||
|
@ -1030,39 +1054,39 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
fgSizerAttPrms->SetFlexibleDirection( wxBOTH );
|
fgSizerAttPrms->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizerAttPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizerAttPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_attenuationLabel = new wxStaticText( m_panelAttenuators, wxID_ANY, _("Attenuation"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_attenuationLabel = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("Attenuation"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_attenuationLabel->Wrap( -1 );
|
m_attenuationLabel->Wrap( -1 );
|
||||||
fgSizerAttPrms->Add( m_attenuationLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttPrms->Add( m_attenuationLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_AttValueCtrl = new wxTextCtrl( m_panelAttenuators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_AttValueCtrl = new wxTextCtrl( sbSizerAttPrms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_AttValueCtrl->SetMaxLength( 0 );
|
m_AttValueCtrl->SetMaxLength( 0 );
|
||||||
fgSizerAttPrms->Add( m_AttValueCtrl, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerAttPrms->Add( m_AttValueCtrl, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_attUnit = new wxStaticText( m_panelAttenuators, wxID_ANY, _("dB"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_attUnit = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("dB"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_attUnit->Wrap( -1 );
|
m_attUnit->Wrap( -1 );
|
||||||
fgSizerAttPrms->Add( m_attUnit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttPrms->Add( m_attUnit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_attenuationZinLabel = new wxStaticText( m_panelAttenuators, wxID_ANY, _("Zin"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_attenuationZinLabel = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("Zin"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_attenuationZinLabel->Wrap( -1 );
|
m_attenuationZinLabel->Wrap( -1 );
|
||||||
fgSizerAttPrms->Add( m_attenuationZinLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttPrms->Add( m_attenuationZinLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_ZinValueCtrl = new wxTextCtrl( m_panelAttenuators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_ZinValueCtrl = new wxTextCtrl( sbSizerAttPrms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_ZinValueCtrl->SetMaxLength( 0 );
|
m_ZinValueCtrl->SetMaxLength( 0 );
|
||||||
fgSizerAttPrms->Add( m_ZinValueCtrl, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerAttPrms->Add( m_ZinValueCtrl, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_attZinUnit = new wxStaticText( m_panelAttenuators, wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_attZinUnit = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_attZinUnit->Wrap( -1 );
|
m_attZinUnit->Wrap( -1 );
|
||||||
fgSizerAttPrms->Add( m_attZinUnit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttPrms->Add( m_attZinUnit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_ZoutLabel = new wxStaticText( m_panelAttenuators, wxID_ANY, _("Zout"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_ZoutLabel = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("Zout"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_ZoutLabel->Wrap( -1 );
|
m_ZoutLabel->Wrap( -1 );
|
||||||
fgSizerAttPrms->Add( m_ZoutLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttPrms->Add( m_ZoutLabel, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_ZoutValueCtrl = new wxTextCtrl( m_panelAttenuators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_ZoutValueCtrl = new wxTextCtrl( sbSizerAttPrms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_ZoutValueCtrl->SetMaxLength( 0 );
|
m_ZoutValueCtrl->SetMaxLength( 0 );
|
||||||
fgSizerAttPrms->Add( m_ZoutValueCtrl, 0, wxALL, 5 );
|
fgSizerAttPrms->Add( m_ZoutValueCtrl, 0, wxALL, 5 );
|
||||||
|
|
||||||
m_attZoutUnit = new wxStaticText( m_panelAttenuators, wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_attZoutUnit = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_attZoutUnit->Wrap( -1 );
|
m_attZoutUnit->Wrap( -1 );
|
||||||
fgSizerAttPrms->Add( m_attZoutUnit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttPrms->Add( m_attZoutUnit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
@ -1075,17 +1099,17 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
wxBoxSizer* bSizerAttButt;
|
wxBoxSizer* bSizerAttButt;
|
||||||
bSizerAttButt = new wxBoxSizer( wxHORIZONTAL );
|
bSizerAttButt = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
m_buttonAlcAtt = new wxButton( m_panelAttenuators, wxID_ANY, _("Calculate"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonAlcAtt = new wxButton( sbSizerAtt->GetStaticBox(), wxID_ANY, _("Calculate"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
bSizerAttButt->Add( m_buttonAlcAtt, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
bSizerAttButt->Add( m_buttonAlcAtt, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_bitmapAnalyse1 = new wxStaticBitmap( m_panelAttenuators, wxID_ANY, wxBitmap( arrow_bottom_xpm ), wxDefaultPosition, wxDefaultSize, 0 );
|
m_bitmapAnalyse1 = new wxStaticBitmap( sbSizerAtt->GetStaticBox(), wxID_ANY, wxBitmap( arrow_bottom_xpm ), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
bSizerAttButt->Add( m_bitmapAnalyse1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
bSizerAttButt->Add( m_bitmapAnalyse1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
|
||||||
bMiddleSizerAtt->Add( bSizerAttButt, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
|
bMiddleSizerAtt->Add( bSizerAttButt, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbSizerAttValues;
|
wxStaticBoxSizer* sbSizerAttValues;
|
||||||
sbSizerAttValues = new wxStaticBoxSizer( new wxStaticBox( m_panelAttenuators, wxID_ANY, _("Values") ), wxVERTICAL );
|
sbSizerAttValues = new wxStaticBoxSizer( new wxStaticBox( sbSizerAtt->GetStaticBox(), wxID_ANY, _("Values") ), wxVERTICAL );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizerAttResults;
|
wxFlexGridSizer* fgSizerAttResults;
|
||||||
fgSizerAttResults = new wxFlexGridSizer( 3, 3, 0, 0 );
|
fgSizerAttResults = new wxFlexGridSizer( 3, 3, 0, 0 );
|
||||||
|
@ -1093,39 +1117,39 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
fgSizerAttResults->SetFlexibleDirection( wxBOTH );
|
fgSizerAttResults->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizerAttResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizerAttResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_attenuatorR1Label = new wxStaticText( m_panelAttenuators, wxID_ANY, _("R1"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_attenuatorR1Label = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("R1"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_attenuatorR1Label->Wrap( -1 );
|
m_attenuatorR1Label->Wrap( -1 );
|
||||||
fgSizerAttResults->Add( m_attenuatorR1Label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttResults->Add( m_attenuatorR1Label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_Att_R1_Value = new wxTextCtrl( m_panelAttenuators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Att_R1_Value = new wxTextCtrl( sbSizerAttValues->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Att_R1_Value->SetMaxLength( 0 );
|
m_Att_R1_Value->SetMaxLength( 0 );
|
||||||
fgSizerAttResults->Add( m_Att_R1_Value, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerAttResults->Add( m_Att_R1_Value, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_attR1Unit = new wxStaticText( m_panelAttenuators, wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_attR1Unit = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_attR1Unit->Wrap( -1 );
|
m_attR1Unit->Wrap( -1 );
|
||||||
fgSizerAttResults->Add( m_attR1Unit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttResults->Add( m_attR1Unit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_attenuatorR2Label = new wxStaticText( m_panelAttenuators, wxID_ANY, _("R2"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_attenuatorR2Label = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("R2"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_attenuatorR2Label->Wrap( -1 );
|
m_attenuatorR2Label->Wrap( -1 );
|
||||||
fgSizerAttResults->Add( m_attenuatorR2Label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttResults->Add( m_attenuatorR2Label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_Att_R2_Value = new wxTextCtrl( m_panelAttenuators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Att_R2_Value = new wxTextCtrl( sbSizerAttValues->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Att_R2_Value->SetMaxLength( 0 );
|
m_Att_R2_Value->SetMaxLength( 0 );
|
||||||
fgSizerAttResults->Add( m_Att_R2_Value, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
fgSizerAttResults->Add( m_Att_R2_Value, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_attR2Unit1 = new wxStaticText( m_panelAttenuators, wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_attR2Unit1 = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_attR2Unit1->Wrap( -1 );
|
m_attR2Unit1->Wrap( -1 );
|
||||||
fgSizerAttResults->Add( m_attR2Unit1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttResults->Add( m_attR2Unit1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_attenuatorR3Label = new wxStaticText( m_panelAttenuators, wxID_ANY, _("R3"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_attenuatorR3Label = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("R3"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_attenuatorR3Label->Wrap( -1 );
|
m_attenuatorR3Label->Wrap( -1 );
|
||||||
fgSizerAttResults->Add( m_attenuatorR3Label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttResults->Add( m_attenuatorR3Label, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_Att_R3_Value = new wxTextCtrl( m_panelAttenuators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_Att_R3_Value = new wxTextCtrl( sbSizerAttValues->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_Att_R3_Value->SetMaxLength( 0 );
|
m_Att_R3_Value->SetMaxLength( 0 );
|
||||||
fgSizerAttResults->Add( m_Att_R3_Value, 0, wxALL, 5 );
|
fgSizerAttResults->Add( m_Att_R3_Value, 0, wxALL, 5 );
|
||||||
|
|
||||||
m_attR3Unit = new wxStaticText( m_panelAttenuators, wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_attR3Unit = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_attR3Unit->Wrap( -1 );
|
m_attR3Unit->Wrap( -1 );
|
||||||
fgSizerAttResults->Add( m_attR3Unit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerAttResults->Add( m_attR3Unit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
@ -1135,20 +1159,20 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
|
|
||||||
bMiddleSizerAtt->Add( sbSizerAttValues, 0, wxEXPAND|wxTOP, 5 );
|
bMiddleSizerAtt->Add( sbSizerAttValues, 0, wxEXPAND|wxTOP, 5 );
|
||||||
|
|
||||||
m_staticTextAttMsg = new wxStaticText( m_panelAttenuators, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextAttMsg = new wxStaticText( sbSizerAtt->GetStaticBox(), wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextAttMsg->Wrap( -1 );
|
m_staticTextAttMsg->Wrap( -1 );
|
||||||
bMiddleSizerAtt->Add( m_staticTextAttMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
bMiddleSizerAtt->Add( m_staticTextAttMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_Attenuator_Messages = new wxHtmlWindow( m_panelAttenuators, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_NO_SELECTION|wxHW_SCROLLBAR_AUTO|wxSUNKEN_BORDER );
|
m_Attenuator_Messages = new wxHtmlWindow( sbSizerAtt->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_NO_SELECTION|wxHW_SCROLLBAR_AUTO|wxSUNKEN_BORDER );
|
||||||
bMiddleSizerAtt->Add( m_Attenuator_Messages, 1, wxALL|wxEXPAND, 5 );
|
bMiddleSizerAtt->Add( m_Attenuator_Messages, 1, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
sbSizerAtt->Add( bMiddleSizerAtt, 0, wxEXPAND, 5 );
|
sbSizerAtt->Add( bMiddleSizerAtt, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbRightSizerFormula;
|
wxStaticBoxSizer* sbRightSizerFormula;
|
||||||
sbRightSizerFormula = new wxStaticBoxSizer( new wxStaticBox( m_panelAttenuators, wxID_ANY, _("Formula") ), wxVERTICAL );
|
sbRightSizerFormula = new wxStaticBoxSizer( new wxStaticBox( sbSizerAtt->GetStaticBox(), wxID_ANY, _("Formula") ), wxVERTICAL );
|
||||||
|
|
||||||
m_panelAttFormula = new wxPanel( m_panelAttenuators, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
|
m_panelAttFormula = new wxPanel( sbRightSizerFormula->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
|
||||||
m_panelAttFormula->SetMinSize( wxSize( 200,-1 ) );
|
m_panelAttFormula->SetMinSize( wxSize( 200,-1 ) );
|
||||||
|
|
||||||
sbRightSizerFormula->Add( m_panelAttFormula, 1, wxALL|wxEXPAND, 5 );
|
sbRightSizerFormula->Add( m_panelAttFormula, 1, wxALL|wxEXPAND, 5 );
|
||||||
|
@ -1311,7 +1335,19 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
|
||||||
m_buttonEditItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnEditRegulator ), NULL, this );
|
m_buttonEditItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnEditRegulator ), NULL, this );
|
||||||
m_buttonAddItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAddRegulator ), NULL, this );
|
m_buttonAddItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAddRegulator ), NULL, this );
|
||||||
m_buttonRemoveItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRemoveRegulator ), NULL, this );
|
m_buttonRemoveItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRemoveRegulator ), NULL, this );
|
||||||
m_buttonTW->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateButt ), NULL, this );
|
m_TrackCurrentValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromCurrent ), NULL, this );
|
||||||
|
m_TrackDeltaTValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_TrackLengthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_TW_CuLength_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_TWResistivity->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_ExtTrackWidthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromExtWidth ), NULL, this );
|
||||||
|
m_TW_ExtTrackWidth_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_ExtTrackThicknessValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_ExtTrackThicknessUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_IntTrackWidthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromIntWidth ), NULL, this );
|
||||||
|
m_TW_IntTrackWidth_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_IntTrackThicknessValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_IntTrackThicknessUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
m_ElectricalSpacingUnitsSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingUnitsSelection ), NULL, this );
|
m_ElectricalSpacingUnitsSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingUnitsSelection ), NULL, this );
|
||||||
m_buttonElectSpacingRefresh->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingRefresh ), NULL, this );
|
m_buttonElectSpacingRefresh->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingRefresh ), NULL, this );
|
||||||
m_TranslineSelection->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSelection ), NULL, this );
|
m_TranslineSelection->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSelection ), NULL, this );
|
||||||
|
@ -1340,7 +1376,19 @@ PCB_CALCULATOR_FRAME_BASE::~PCB_CALCULATOR_FRAME_BASE()
|
||||||
m_buttonEditItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnEditRegulator ), NULL, this );
|
m_buttonEditItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnEditRegulator ), NULL, this );
|
||||||
m_buttonAddItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAddRegulator ), NULL, this );
|
m_buttonAddItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAddRegulator ), NULL, this );
|
||||||
m_buttonRemoveItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRemoveRegulator ), NULL, this );
|
m_buttonRemoveItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRemoveRegulator ), NULL, this );
|
||||||
m_buttonTW->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateButt ), NULL, this );
|
m_TrackCurrentValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromCurrent ), NULL, this );
|
||||||
|
m_TrackDeltaTValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_TrackLengthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_TW_CuLength_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_TWResistivity->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_ExtTrackWidthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromExtWidth ), NULL, this );
|
||||||
|
m_TW_ExtTrackWidth_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_ExtTrackThicknessValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_ExtTrackThicknessUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_IntTrackWidthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromIntWidth ), NULL, this );
|
||||||
|
m_TW_IntTrackWidth_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_IntTrackThicknessValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
|
m_IntTrackThicknessUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
|
||||||
m_ElectricalSpacingUnitsSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingUnitsSelection ), NULL, this );
|
m_ElectricalSpacingUnitsSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingUnitsSelection ), NULL, this );
|
||||||
m_buttonElectSpacingRefresh->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingRefresh ), NULL, this );
|
m_buttonElectSpacingRefresh->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingRefresh ), NULL, this );
|
||||||
m_TranslineSelection->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSelection ), NULL, this );
|
m_TranslineSelection->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSelection ), NULL, this );
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Jun 5 2014)
|
// C++ code generated with wxFormBuilder (version Mar 21 2015)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
@ -92,50 +92,54 @@ class PCB_CALCULATOR_FRAME_BASE : public KIWAY_PLAYER
|
||||||
wxButton* m_buttonRemoveItem;
|
wxButton* m_buttonRemoveItem;
|
||||||
wxStaticText* m_RegulMessage;
|
wxStaticText* m_RegulMessage;
|
||||||
wxPanel* m_panelTrackWidth;
|
wxPanel* m_panelTrackWidth;
|
||||||
wxStaticText* m_staticTextTW_WarningMessage;
|
|
||||||
wxStaticText* m_staticTextCurrent;
|
wxStaticText* m_staticTextCurrent;
|
||||||
wxTextCtrl* m_TrackCurrentValue;
|
wxTextCtrl* m_TrackCurrentValue;
|
||||||
wxStaticText* m_staticText62;
|
wxStaticText* m_staticText62;
|
||||||
wxStaticText* m_staticText63;
|
wxStaticText* m_staticText63;
|
||||||
wxTextCtrl* m_TrackDeltaTValue;
|
wxTextCtrl* m_TrackDeltaTValue;
|
||||||
wxStaticText* m_staticText64;
|
wxStaticText* m_staticText64;
|
||||||
wxStaticText* m_staticText65;
|
|
||||||
wxTextCtrl* m_TrackThicknessValue;
|
|
||||||
UNIT_SELECTOR_LEN* m_TW_CuThickness_choiceUnit;
|
|
||||||
wxStaticText* m_staticText66;
|
wxStaticText* m_staticText66;
|
||||||
wxTextCtrl* m_TrackLengthValue;
|
wxTextCtrl* m_TrackLengthValue;
|
||||||
UNIT_SELECTOR_LEN* m_TW_CuLength_choiceUnit;
|
UNIT_SELECTOR_LEN* m_TW_CuLength_choiceUnit;
|
||||||
|
wxStaticText* m_staticText103;
|
||||||
|
wxTextCtrl* m_TWResistivity;
|
||||||
|
wxStaticText* m_staticText104;
|
||||||
wxHtmlWindow* m_htmlWinFormulas;
|
wxHtmlWindow* m_htmlWinFormulas;
|
||||||
wxButton* m_buttonTW;
|
wxStaticText* m_staticTextExtWidth;
|
||||||
wxStaticText* m_staticTextWidth;
|
|
||||||
wxTextCtrl* m_ExtTrackWidthValue;
|
wxTextCtrl* m_ExtTrackWidthValue;
|
||||||
UNIT_SELECTOR_LEN* m_TW_ExtTrackWidth_choiceUnit;
|
UNIT_SELECTOR_LEN* m_TW_ExtTrackWidth_choiceUnit;
|
||||||
|
wxStaticText* m_staticText65;
|
||||||
|
wxTextCtrl* m_ExtTrackThicknessValue;
|
||||||
|
UNIT_SELECTOR_LEN* m_ExtTrackThicknessUnit;
|
||||||
wxStaticText* m_staticTextArea;
|
wxStaticText* m_staticTextArea;
|
||||||
wxTextCtrl* m_ExtTrackAreaValue;
|
wxStaticText* m_ExtTrackAreaValue;
|
||||||
wxStaticText* m_ExtTrackAreaUnitLabel;
|
wxStaticText* m_ExtTrackAreaUnitLabel;
|
||||||
wxStaticText* m_staticText651;
|
wxStaticText* m_staticText651;
|
||||||
wxTextCtrl* m_ExtTrackResistValue;
|
wxStaticText* m_ExtTrackResistValue;
|
||||||
wxStaticText* m_staticText84;
|
wxStaticText* m_staticText84;
|
||||||
wxStaticText* m_staticText661;
|
wxStaticText* m_staticText661;
|
||||||
wxTextCtrl* m_ExtTrackVDropValue;
|
wxStaticText* m_ExtTrackVDropValue;
|
||||||
wxStaticText* m_staticText83;
|
wxStaticText* m_staticText83;
|
||||||
wxStaticText* m_staticText79;
|
wxStaticText* m_staticText79;
|
||||||
wxTextCtrl* m_ExtTrackLossValue;
|
wxStaticText* m_ExtTrackLossValue;
|
||||||
wxStaticText* m_staticText791;
|
wxStaticText* m_staticText791;
|
||||||
wxStaticText* m_staticTextWidth11;
|
wxStaticText* m_staticTextIntWidth;
|
||||||
wxTextCtrl* m_IntTrackWidthValue;
|
wxTextCtrl* m_IntTrackWidthValue;
|
||||||
UNIT_SELECTOR_LEN* m_TW_IntTrackWidth_choiceUnit;
|
UNIT_SELECTOR_LEN* m_TW_IntTrackWidth_choiceUnit;
|
||||||
|
wxStaticText* m_staticText652;
|
||||||
|
wxTextCtrl* m_IntTrackThicknessValue;
|
||||||
|
UNIT_SELECTOR_LEN* m_IntTrackThicknessUnit;
|
||||||
wxStaticText* m_staticTextArea1;
|
wxStaticText* m_staticTextArea1;
|
||||||
wxTextCtrl* m_IntTrackAreaValue;
|
wxStaticText* m_IntTrackAreaValue;
|
||||||
wxStaticText* m_IntTrackAreaUnitLabel;
|
wxStaticText* m_IntTrackAreaUnitLabel;
|
||||||
wxStaticText* m_staticText6511;
|
wxStaticText* m_staticText6511;
|
||||||
wxTextCtrl* m_IntTrackResistValue;
|
wxStaticText* m_IntTrackResistValue;
|
||||||
wxStaticText* m_staticText841;
|
wxStaticText* m_staticText841;
|
||||||
wxStaticText* m_staticText6611;
|
wxStaticText* m_staticText6611;
|
||||||
wxTextCtrl* m_IntTrackVDropValue;
|
wxStaticText* m_IntTrackVDropValue;
|
||||||
wxStaticText* m_staticText831;
|
wxStaticText* m_staticText831;
|
||||||
wxStaticText* m_staticText792;
|
wxStaticText* m_staticText792;
|
||||||
wxTextCtrl* m_IntTrackLossValue;
|
wxStaticText* m_IntTrackLossValue;
|
||||||
wxStaticText* m_staticText7911;
|
wxStaticText* m_staticText7911;
|
||||||
wxPanel* m_panelElectricalSpacing;
|
wxPanel* m_panelElectricalSpacing;
|
||||||
UNIT_SELECTOR_LEN* m_ElectricalSpacingUnitsSelector;
|
UNIT_SELECTOR_LEN* m_ElectricalSpacingUnitsSelector;
|
||||||
|
@ -273,7 +277,10 @@ class PCB_CALCULATOR_FRAME_BASE : public KIWAY_PLAYER
|
||||||
virtual void OnEditRegulator( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnEditRegulator( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnAddRegulator( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnAddRegulator( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnRemoveRegulator( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnRemoveRegulator( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnTWCalculateButt( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnTWCalculateFromCurrent( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnTWParametersChanged( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnTWCalculateFromExtWidth( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnTWCalculateFromIntWidth( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnElectricalSpacingUnitsSelection( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnElectricalSpacingUnitsSelection( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnElectricalSpacingRefresh( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnElectricalSpacingRefresh( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnTranslineSelection( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnTranslineSelection( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
|
|
@ -1,3 +1,26 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KICAD, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 1992-2015 Kicad Developers, see change_log.txt for contributors.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file pcb_calculator.h
|
* @file pcb_calculator.h
|
||||||
*/
|
*/
|
||||||
|
@ -26,6 +49,16 @@ private:
|
||||||
bool m_RegulatorListChanged; // set to true when m_RegulatorList
|
bool m_RegulatorListChanged; // set to true when m_RegulatorList
|
||||||
// was modified, and the corresponging file
|
// was modified, and the corresponging file
|
||||||
// must be rewritten
|
// must be rewritten
|
||||||
|
|
||||||
|
enum // Which dimension is controlling the track
|
||||||
|
{ // width / current calculations:
|
||||||
|
TW_MASTER_CURRENT, // the maximum current,
|
||||||
|
TW_MASTER_EXT_WIDTH, // the external trace width,
|
||||||
|
TW_MASTER_INT_WIDTH // or the internal trace width?
|
||||||
|
} m_TWMode;
|
||||||
|
|
||||||
|
bool m_TWNested; // Used to stop events caused by setting the answers.
|
||||||
|
|
||||||
wxSize m_FrameSize;
|
wxSize m_FrameSize;
|
||||||
wxPoint m_FramePos;
|
wxPoint m_FramePos;
|
||||||
wxConfigBase* m_Config;
|
wxConfigBase* m_Config;
|
||||||
|
@ -39,6 +72,7 @@ private:
|
||||||
wxString m_lastSelectedRegulatorName; // last regulator name selected
|
wxString m_lastSelectedRegulatorName; // last regulator name selected
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PCB_CALCULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent );
|
PCB_CALCULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent );
|
||||||
~PCB_CALCULATOR_FRAME();
|
~PCB_CALCULATOR_FRAME();
|
||||||
|
@ -74,12 +108,7 @@ private:
|
||||||
*/
|
*/
|
||||||
void SetDataFilename( const wxString & aFilename);
|
void SetDataFilename( const wxString & aFilename);
|
||||||
|
|
||||||
// tracks width versus current functions:
|
// Trace width / maximum current capability calculations.
|
||||||
/**
|
|
||||||
* Function OnTWCalculateButt
|
|
||||||
* Called by clicking on the calculate button
|
|
||||||
*/
|
|
||||||
void OnTWCalculateButt( wxCommandEvent& event );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function TW_Init
|
* Function TW_Init
|
||||||
|
@ -94,12 +123,62 @@ private:
|
||||||
void TW_WriteConfig();
|
void TW_WriteConfig();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function TWCalculate
|
* Function OnTWParametersChanged
|
||||||
* Performs track caracteristics values calculations.
|
* Called when the user changes the general parameters (i.e., anything that
|
||||||
|
* is not one of the controlling values). This update the calculations.
|
||||||
*/
|
*/
|
||||||
double TWCalculate( double aCurrent, double aThickness, double aDeltaT_C,
|
void OnTWParametersChanged( wxCommandEvent& event );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function OnTWCalculateFromCurrent
|
||||||
|
* Called when the user changes the desired maximum current. This sets the
|
||||||
|
* current as the controlling value and performs the calculations.
|
||||||
|
*/
|
||||||
|
void OnTWCalculateFromCurrent( wxCommandEvent& event );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function OnTWCalculateFromExtWidth
|
||||||
|
* Called when the user changes the desired external trace width. This sets
|
||||||
|
* the external width as the controlling value and performs the calculations.
|
||||||
|
*/
|
||||||
|
void OnTWCalculateFromExtWidth( wxCommandEvent& event );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function OnTWCalculateFromIntWidth
|
||||||
|
* Called when the user changes the desired internal trace width. This sets
|
||||||
|
* the internal width as the controlling value and performs the calculations.
|
||||||
|
*/
|
||||||
|
void OnTWCalculateFromIntWidth( wxCommandEvent& event );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function TWCalculateWidth
|
||||||
|
* Calculate track width required based on given current and temperature rise.
|
||||||
|
*/
|
||||||
|
double TWCalculateWidth( double aCurrent, double aThickness, double aDeltaT_C,
|
||||||
bool aUseInternalLayer );
|
bool aUseInternalLayer );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function TWCalculateCurrent
|
||||||
|
* Calculate maximum current based on given width and temperature rise.
|
||||||
|
*/
|
||||||
|
double TWCalculateCurrent( double aWidth, double aThickness, double aDeltaT_C,
|
||||||
|
bool aUseInternalLayer );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function TWDisplayValues
|
||||||
|
* Displays the results of a calculation (including resulting values such
|
||||||
|
* as the resistance and power loss).
|
||||||
|
*/
|
||||||
|
void TWDisplayValues( double aCurrent, double aExtWidth, double aIntWidth,
|
||||||
|
double aExtThickness, double aIntThickness );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function TWUpdateModeDisplay
|
||||||
|
* Updates the fields to show whether the maximum current, external trace
|
||||||
|
* width, or internal trace width is currently the controlling parameter.
|
||||||
|
*/
|
||||||
|
void TWUpdateModeDisplay();
|
||||||
|
|
||||||
// Electrical spacing panel:
|
// Electrical spacing panel:
|
||||||
void OnElectricalSpacingUnitsSelection( wxCommandEvent& event );
|
void OnElectricalSpacingUnitsSelection( wxCommandEvent& event );
|
||||||
void OnElectricalSpacingRefresh( wxCommandEvent& event );
|
void OnElectricalSpacingRefresh( wxCommandEvent& event );
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* This program source code file is part of KICAD, a free EDA CAD application.
|
* This program source code file is part of KICAD, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1992-2011 jean-pierre.charras
|
* Copyright (C) 1992-2011 jean-pierre.charras
|
||||||
* Copyright (C) 1992-2011 Kicad Developers, see change_log.txt for contributors.
|
* Copyright (C) 1992-2015 Kicad Developers, see change_log.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -62,6 +62,8 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||||
m_currTransLineType = DEFAULT_TYPE;
|
m_currTransLineType = DEFAULT_TYPE;
|
||||||
m_currAttenuator = NULL;
|
m_currAttenuator = NULL;
|
||||||
m_RegulatorListChanged = false;
|
m_RegulatorListChanged = false;
|
||||||
|
m_TWMode = TW_MASTER_CURRENT;
|
||||||
|
m_TWNested = false;
|
||||||
m_Config = GetNewConfig( Pgm().App().GetAppName() );
|
m_Config = GetNewConfig( Pgm().App().GetAppName() );
|
||||||
|
|
||||||
// Populate transline list ordered like in dialog menu list
|
// Populate transline list ordered like in dialog menu list
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* This program source code file is part of KICAD, a free EDA CAD application.
|
* This program source code file is part of KICAD, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011 jean-pierre.charras
|
* Copyright (C) 2011 jean-pierre.charras
|
||||||
* Copyright (C) 1992-2011 Kicad Developers, see change_log.txt for contributors.
|
* Copyright (C) 1992-2015 Kicad Developers, see change_log.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -28,6 +28,7 @@
|
||||||
* for more info
|
* for more info
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cassert>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <wx/wx.h>
|
#include <wx/wx.h>
|
||||||
#include <wx/config.h>
|
#include <wx/config.h>
|
||||||
|
@ -43,100 +44,321 @@ extern double DoubleFromString( const wxString& TextValue );
|
||||||
// Key words to read/write some parameters in config:
|
// Key words to read/write some parameters in config:
|
||||||
#define KEYWORD_TW_CURRENT wxT( "TW_Track_Current" )
|
#define KEYWORD_TW_CURRENT wxT( "TW_Track_Current" )
|
||||||
#define KEYWORD_TW_DELTA_TC wxT( "TW_Delta_TC" )
|
#define KEYWORD_TW_DELTA_TC wxT( "TW_Delta_TC" )
|
||||||
#define KEYWORD_TW_TRACK_COPPER_THICKNESS wxT( "TW_Track_CopperThickness" )
|
|
||||||
#define KEYWORD_TW_TRACK_LEN wxT( "TW_Track_Len" )
|
#define KEYWORD_TW_TRACK_LEN wxT( "TW_Track_Len" )
|
||||||
#define KEYWORD_TW_TRACK_COPPER_THICKNESS_UNIT wxT( "TW_Track_CopperThickness_Unit" )
|
|
||||||
#define KEYWORD_TW_TRACK_LEN_UNIT wxT( "TW_Track_Len_Unit" )
|
#define KEYWORD_TW_TRACK_LEN_UNIT wxT( "TW_Track_Len_Unit" )
|
||||||
|
#define KEYWORD_TW_RESISTIVITY wxT( "TW_Resistivity" )
|
||||||
|
#define KEYWORD_TW_EXTTRACK_WIDTH wxT( "TW_ExtTrack_Width" )
|
||||||
#define KEYWORD_TW_EXTTRACK_WIDTH_UNIT wxT( "TW_ExtTrack_Width_Unit" )
|
#define KEYWORD_TW_EXTTRACK_WIDTH_UNIT wxT( "TW_ExtTrack_Width_Unit" )
|
||||||
|
#define KEYWORD_TW_EXTTRACK_THICKNESS wxT( "TW_ExtTrack_Thickness" )
|
||||||
|
#define KEYWORD_TW_EXTTRACK_THICKNESS_UNIT wxT( "TW_ExtTrack_Thickness_Unit" )
|
||||||
|
#define KEYWORD_TW_INTTRACK_WIDTH wxT( "TW_IntTrack_Width" )
|
||||||
#define KEYWORD_TW_INTTRACK_WIDTH_UNIT wxT( "TW_IntTrack_Width_Unit" )
|
#define KEYWORD_TW_INTTRACK_WIDTH_UNIT wxT( "TW_IntTrack_Width_Unit" )
|
||||||
|
#define KEYWORD_TW_INTTRACK_THICKNESS wxT( "TW_IntTrack_Thickness" )
|
||||||
|
#define KEYWORD_TW_INTTRACK_THICKNESS_UNIT wxT( "TW_IntTrack_Thickness_Unit" )
|
||||||
|
|
||||||
void PCB_CALCULATOR_FRAME::TW_WriteConfig()
|
void PCB_CALCULATOR_FRAME::TW_WriteConfig()
|
||||||
{
|
{
|
||||||
// Save current parameters values in config:
|
// Save current parameters values in config.
|
||||||
m_Config->Write( KEYWORD_TW_EXTTRACK_WIDTH_UNIT, m_TW_ExtTrackWidth_choiceUnit->GetSelection() );
|
m_Config->Write( KEYWORD_TW_CURRENT, m_TrackCurrentValue->GetValue() );
|
||||||
m_Config->Write( KEYWORD_TW_INTTRACK_WIDTH_UNIT, m_TW_IntTrackWidth_choiceUnit->GetSelection() );
|
m_Config->Write( KEYWORD_TW_DELTA_TC, m_TrackDeltaTValue->GetValue() );
|
||||||
m_Config->Write( KEYWORD_TW_TRACK_COPPER_THICKNESS_UNIT,
|
m_Config->Write( KEYWORD_TW_TRACK_LEN, m_TrackLengthValue->GetValue() );
|
||||||
m_TW_CuThickness_choiceUnit->GetSelection() );
|
m_Config->Write( KEYWORD_TW_TRACK_LEN_UNIT, m_TW_CuLength_choiceUnit->GetSelection() );
|
||||||
m_Config->Write( KEYWORD_TW_TRACK_LEN_UNIT, m_TW_CuLength_choiceUnit->GetSelection() );
|
m_Config->Write( KEYWORD_TW_RESISTIVITY, m_TWResistivity->GetValue() );
|
||||||
m_Config->Write( KEYWORD_TW_CURRENT, m_TrackCurrentValue->GetValue() );
|
m_Config->Write( KEYWORD_TW_EXTTRACK_WIDTH, m_ExtTrackWidthValue->GetValue() );
|
||||||
m_Config->Write( KEYWORD_TW_DELTA_TC, m_TrackDeltaTValue->GetValue() );
|
m_Config->Write( KEYWORD_TW_EXTTRACK_WIDTH_UNIT, m_TW_ExtTrackWidth_choiceUnit->GetSelection() );
|
||||||
m_Config->Write( KEYWORD_TW_TRACK_COPPER_THICKNESS, m_TrackThicknessValue->GetValue() );
|
m_Config->Write( KEYWORD_TW_EXTTRACK_THICKNESS, m_ExtTrackThicknessValue->GetValue() );
|
||||||
m_Config->Write( KEYWORD_TW_TRACK_LEN, m_TrackLengthValue->GetValue() );
|
m_Config->Write( KEYWORD_TW_EXTTRACK_THICKNESS_UNIT, m_ExtTrackThicknessUnit->GetSelection() );
|
||||||
|
m_Config->Write( KEYWORD_TW_INTTRACK_WIDTH, m_IntTrackWidthValue->GetValue() );
|
||||||
|
m_Config->Write( KEYWORD_TW_INTTRACK_WIDTH_UNIT, m_TW_IntTrackWidth_choiceUnit->GetSelection() );
|
||||||
|
m_Config->Write( KEYWORD_TW_INTTRACK_THICKNESS, m_IntTrackThicknessValue->GetValue() );
|
||||||
|
m_Config->Write( KEYWORD_TW_INTTRACK_THICKNESS_UNIT, m_IntTrackThicknessUnit->GetSelection() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PCB_CALCULATOR_FRAME::OnTWCalculateButt( wxCommandEvent& event )
|
void PCB_CALCULATOR_FRAME::OnTWParametersChanged( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
|
switch(m_TWMode)
|
||||||
|
{
|
||||||
|
case TW_MASTER_CURRENT:
|
||||||
|
OnTWCalculateFromCurrent( event );
|
||||||
|
break;
|
||||||
|
case TW_MASTER_EXT_WIDTH:
|
||||||
|
OnTWCalculateFromExtWidth( event );
|
||||||
|
break;
|
||||||
|
case TW_MASTER_INT_WIDTH:
|
||||||
|
OnTWCalculateFromIntWidth( event );
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
#ifdef DEBUG
|
||||||
|
assert( false );
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PCB_CALCULATOR_FRAME::OnTWCalculateFromCurrent( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
// Setting the calculated values generates further events. Stop them.
|
||||||
|
if( m_TWNested )
|
||||||
|
{
|
||||||
|
event.StopPropagation();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_TWNested = true;
|
||||||
|
|
||||||
|
// Update state.
|
||||||
|
if( m_TWMode != TW_MASTER_CURRENT )
|
||||||
|
{
|
||||||
|
m_TWMode = TW_MASTER_CURRENT;
|
||||||
|
TWUpdateModeDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
// Prepare parameters:
|
// Prepare parameters:
|
||||||
double current = std::abs( DoubleFromString( m_TrackCurrentValue->GetValue() ) );
|
double current = std::abs( DoubleFromString( m_TrackCurrentValue->GetValue() ) );
|
||||||
double thickness = std::abs( DoubleFromString( m_TrackThicknessValue->GetValue() ) );
|
double extThickness = std::abs( DoubleFromString( m_ExtTrackThicknessValue->GetValue() ) );
|
||||||
double deltaT_C = std::abs( DoubleFromString( m_TrackDeltaTValue->GetValue() ) );
|
double intThickness = std::abs( DoubleFromString( m_IntTrackThicknessValue->GetValue() ) );
|
||||||
double track_len = std::abs( DoubleFromString( m_TrackLengthValue->GetValue() ) );
|
double deltaT_C = std::abs( DoubleFromString( m_TrackDeltaTValue->GetValue() ) );
|
||||||
double extTrackWidth;
|
double extTrackWidth;
|
||||||
double intTrackWidth;
|
double intTrackWidth;
|
||||||
|
|
||||||
// Normalize units:
|
// Normalize units.
|
||||||
thickness *= m_TW_CuThickness_choiceUnit->GetUnitScale();
|
extThickness *= m_ExtTrackThicknessUnit->GetUnitScale();
|
||||||
track_len *= m_TW_CuLength_choiceUnit->GetUnitScale();
|
intThickness *= m_IntTrackThicknessUnit->GetUnitScale();
|
||||||
extTrackWidth = TWCalculate( current, thickness, deltaT_C, false );
|
|
||||||
intTrackWidth = TWCalculate( current, thickness, deltaT_C, true );
|
|
||||||
|
|
||||||
// Display values:
|
// Calculate the widths.
|
||||||
|
extTrackWidth = TWCalculateWidth( current, extThickness, deltaT_C, false );
|
||||||
|
intTrackWidth = TWCalculateWidth( current, intThickness, deltaT_C, true );
|
||||||
|
|
||||||
|
// Update the display.
|
||||||
|
TWDisplayValues( current, extTrackWidth, intTrackWidth, extThickness, intThickness );
|
||||||
|
|
||||||
|
// Re-enable the events.
|
||||||
|
m_TWNested = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PCB_CALCULATOR_FRAME::OnTWCalculateFromExtWidth( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
// Setting the calculated values generates further events. Stop them.
|
||||||
|
if( m_TWNested )
|
||||||
|
{
|
||||||
|
event.StopPropagation();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_TWNested = true;
|
||||||
|
|
||||||
|
// Update state.
|
||||||
|
if( m_TWMode != TW_MASTER_EXT_WIDTH )
|
||||||
|
{
|
||||||
|
m_TWMode = TW_MASTER_EXT_WIDTH;
|
||||||
|
TWUpdateModeDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load parameters.
|
||||||
|
double current;
|
||||||
|
double extThickness = std::abs( DoubleFromString( m_ExtTrackThicknessValue->GetValue() ) );
|
||||||
|
double intThickness = std::abs( DoubleFromString( m_IntTrackThicknessValue->GetValue() ) );
|
||||||
|
double deltaT_C = std::abs( DoubleFromString( m_TrackDeltaTValue->GetValue() ) );
|
||||||
|
double extTrackWidth = std::abs( DoubleFromString( m_ExtTrackWidthValue->GetValue() ) );
|
||||||
|
double intTrackWidth;
|
||||||
|
|
||||||
|
// Normalize units.
|
||||||
|
extThickness *= m_ExtTrackThicknessUnit->GetUnitScale();
|
||||||
|
intThickness *= m_IntTrackThicknessUnit->GetUnitScale();
|
||||||
|
extTrackWidth *= m_TW_ExtTrackWidth_choiceUnit->GetUnitScale();
|
||||||
|
|
||||||
|
// Calculate the maximum current.
|
||||||
|
current = TWCalculateCurrent( extTrackWidth, extThickness, deltaT_C, false );
|
||||||
|
|
||||||
|
// And now calculate the corresponding internal width.
|
||||||
|
intTrackWidth = TWCalculateWidth( current, intThickness, deltaT_C, true );
|
||||||
|
|
||||||
|
// Update the display.
|
||||||
|
TWDisplayValues( current, extTrackWidth, intTrackWidth, extThickness, intThickness );
|
||||||
|
|
||||||
|
// Re-enable the events.
|
||||||
|
m_TWNested = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PCB_CALCULATOR_FRAME::OnTWCalculateFromIntWidth( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
// Setting the calculated values generates further events. Stop them.
|
||||||
|
if( m_TWNested )
|
||||||
|
{
|
||||||
|
event.StopPropagation();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_TWNested = true;
|
||||||
|
|
||||||
|
// Update state.
|
||||||
|
if( m_TWMode != TW_MASTER_INT_WIDTH )
|
||||||
|
{
|
||||||
|
m_TWMode = TW_MASTER_INT_WIDTH;
|
||||||
|
TWUpdateModeDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load parameters.
|
||||||
|
double current;
|
||||||
|
double extThickness = std::abs( DoubleFromString( m_ExtTrackThicknessValue->GetValue() ) );
|
||||||
|
double intThickness = std::abs( DoubleFromString( m_IntTrackThicknessValue->GetValue() ) );
|
||||||
|
double deltaT_C = std::abs( DoubleFromString( m_TrackDeltaTValue->GetValue() ) );
|
||||||
|
double extTrackWidth;
|
||||||
|
double intTrackWidth = std::abs( DoubleFromString( m_IntTrackWidthValue->GetValue() ) );
|
||||||
|
|
||||||
|
// Normalize units.
|
||||||
|
extThickness *= m_ExtTrackThicknessUnit->GetUnitScale();
|
||||||
|
intThickness *= m_IntTrackThicknessUnit->GetUnitScale();
|
||||||
|
intTrackWidth *= m_TW_IntTrackWidth_choiceUnit->GetUnitScale();
|
||||||
|
|
||||||
|
// Calculate the maximum current.
|
||||||
|
current = TWCalculateCurrent( intTrackWidth, intThickness, deltaT_C, true );
|
||||||
|
|
||||||
|
// And now calculate the corresponding external width.
|
||||||
|
extTrackWidth = TWCalculateWidth( current, extThickness, deltaT_C, false );
|
||||||
|
|
||||||
|
// Update the display.
|
||||||
|
TWDisplayValues( current, extTrackWidth, intTrackWidth, extThickness, intThickness );
|
||||||
|
|
||||||
|
// Re-enable the events.
|
||||||
|
m_TWNested = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PCB_CALCULATOR_FRAME::TWDisplayValues( double aCurrent, double aExtWidth,
|
||||||
|
double aIntWidth, double aExtThickness, double aIntThickness )
|
||||||
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
msg.Printf( wxT( "%g" ), extTrackWidth / m_TW_ExtTrackWidth_choiceUnit->GetUnitScale() );
|
|
||||||
m_ExtTrackWidthValue->SetValue( msg );
|
|
||||||
msg.Printf( wxT( "%g" ), intTrackWidth / m_TW_IntTrackWidth_choiceUnit->GetUnitScale() );
|
|
||||||
m_IntTrackWidthValue->SetValue( msg );
|
|
||||||
|
|
||||||
// Display areas:
|
// Show the current.
|
||||||
double scale = m_TW_ExtTrackWidth_choiceUnit->GetUnitScale();
|
if( m_TWMode != TW_MASTER_CURRENT )
|
||||||
double ext_area = thickness * extTrackWidth;
|
{
|
||||||
msg.Printf( wxT( "%g" ), ext_area / (scale * scale) );
|
msg.Printf( wxT( "%g" ), aCurrent );
|
||||||
|
m_TrackCurrentValue->SetValue( msg );
|
||||||
|
}
|
||||||
|
|
||||||
m_ExtTrackAreaValue->SetValue( msg );
|
// Load scale factors to convert into output units.
|
||||||
|
double extScale = m_TW_ExtTrackWidth_choiceUnit->GetUnitScale();
|
||||||
|
double intScale = m_TW_IntTrackWidth_choiceUnit->GetUnitScale();
|
||||||
|
|
||||||
|
// Display the widths.
|
||||||
|
if( m_TWMode != TW_MASTER_EXT_WIDTH )
|
||||||
|
{
|
||||||
|
msg.Printf( wxT( "%g" ), aExtWidth / extScale );
|
||||||
|
m_ExtTrackWidthValue->SetValue( msg );
|
||||||
|
}
|
||||||
|
if( m_TWMode != TW_MASTER_INT_WIDTH )
|
||||||
|
{
|
||||||
|
msg.Printf( wxT( "%g" ), aIntWidth / intScale );
|
||||||
|
m_IntTrackWidthValue->SetValue( msg );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display cross-sectional areas.
|
||||||
|
msg.Printf( wxT( "%g" ), (aExtWidth * aExtThickness) / (extScale * extScale) );
|
||||||
|
m_ExtTrackAreaValue->SetLabel( msg );
|
||||||
|
msg.Printf( wxT( "%g" ), (aIntWidth * aIntThickness) / (intScale * intScale) );
|
||||||
|
m_IntTrackAreaValue->SetLabel( msg );
|
||||||
|
|
||||||
|
// Show area units.
|
||||||
wxString strunit = m_TW_ExtTrackWidth_choiceUnit->GetUnitName();
|
wxString strunit = m_TW_ExtTrackWidth_choiceUnit->GetUnitName();
|
||||||
msg = strunit + wxT( " x " ) + strunit;
|
msg = strunit + wxT( " x " ) + strunit;
|
||||||
m_ExtTrackAreaUnitLabel->SetLabel( msg );
|
m_ExtTrackAreaUnitLabel->SetLabel( msg );
|
||||||
|
|
||||||
scale = m_TW_IntTrackWidth_choiceUnit->GetUnitScale();
|
|
||||||
double int_area = thickness * intTrackWidth;
|
|
||||||
msg.Printf( wxT( "%g" ), int_area / (scale * scale) );
|
|
||||||
|
|
||||||
m_IntTrackAreaValue->SetValue( msg );
|
|
||||||
strunit = m_TW_IntTrackWidth_choiceUnit->GetUnitName();
|
strunit = m_TW_IntTrackWidth_choiceUnit->GetUnitName();
|
||||||
msg = strunit + wxT( " x " ) + strunit;
|
msg = strunit + wxT( " x " ) + strunit;
|
||||||
m_IntTrackAreaUnitLabel->SetLabel( msg );
|
m_IntTrackAreaUnitLabel->SetLabel( msg );
|
||||||
|
|
||||||
// Display resistance (assuming using copper ):
|
// Load resistivity and length of traces.
|
||||||
double rho = 1.72e-008; // In Ohms*meter
|
double rho = std::abs( DoubleFromString( m_TWResistivity->GetValue() ) );
|
||||||
double ext_res = rho / ext_area * track_len;
|
double trackLen = std::abs( DoubleFromString( m_TrackLengthValue->GetValue() ) );
|
||||||
msg.Printf( wxT( "%g" ), ext_res );
|
trackLen *= m_TW_CuLength_choiceUnit->GetUnitScale();
|
||||||
m_ExtTrackResistValue->SetValue( msg );
|
|
||||||
|
|
||||||
double int_res = rho / int_area * track_len;
|
// Calculate resistance.
|
||||||
msg.Printf( wxT( "%g" ), int_res );
|
double extResistance = ( rho * trackLen ) / ( aExtWidth * aExtThickness );
|
||||||
m_IntTrackResistValue->SetValue( msg );
|
double intResistance = ( rho * trackLen ) / ( aIntWidth * aIntThickness );
|
||||||
|
|
||||||
// Display drop voltage
|
// Display resistance.
|
||||||
double ext_drop_volt = ext_res * current;
|
msg.Printf( wxT( "%g" ), extResistance );
|
||||||
msg.Printf( wxT( "%g" ), ext_drop_volt );
|
m_ExtTrackResistValue->SetLabel( msg );
|
||||||
m_ExtTrackVDropValue->SetValue( msg );
|
msg.Printf( wxT( "%g" ), intResistance );
|
||||||
|
m_IntTrackResistValue->SetLabel( msg );
|
||||||
|
|
||||||
double int_drop_volt = int_res * current;
|
// Display voltage drop along trace.
|
||||||
msg.Printf( wxT( "%g" ), int_drop_volt );
|
double extV = extResistance * aCurrent;
|
||||||
m_IntTrackVDropValue->SetValue( msg );
|
msg.Printf( wxT( "%g" ), extV );
|
||||||
|
m_ExtTrackVDropValue->SetLabel( msg );
|
||||||
|
double intV = intResistance * aCurrent;
|
||||||
|
msg.Printf( wxT( "%g" ), intV );
|
||||||
|
m_IntTrackVDropValue->SetLabel( msg );
|
||||||
|
|
||||||
// Display power loss
|
// And power loss.
|
||||||
double loss = ext_drop_volt * current;
|
msg.Printf( wxT( "%g" ), extV * aCurrent );
|
||||||
msg.Printf( wxT( "%g" ), loss );
|
m_ExtTrackLossValue->SetLabel( msg );
|
||||||
m_ExtTrackLossValue->SetValue( msg );
|
msg.Printf( wxT( "%g" ), intV * aCurrent );
|
||||||
|
m_IntTrackLossValue->SetLabel( msg );
|
||||||
loss = int_drop_volt * current;
|
|
||||||
msg.Printf( wxT( "%g" ), loss );
|
|
||||||
m_IntTrackLossValue->SetValue( msg );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PCB_CALCULATOR_FRAME::TWUpdateModeDisplay()
|
||||||
|
{
|
||||||
|
wxFont labelfont;
|
||||||
|
wxFont controlfont;
|
||||||
|
|
||||||
|
// Set the font weight of the current.
|
||||||
|
labelfont = m_staticTextCurrent->GetFont();
|
||||||
|
controlfont = m_TrackCurrentValue->GetFont();
|
||||||
|
|
||||||
|
if( m_TWMode == TW_MASTER_CURRENT )
|
||||||
|
{
|
||||||
|
labelfont.SetWeight( wxFONTWEIGHT_BOLD );
|
||||||
|
controlfont.SetWeight( wxFONTWEIGHT_BOLD );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
labelfont.SetWeight( wxFONTWEIGHT_NORMAL );
|
||||||
|
controlfont.SetWeight( wxFONTWEIGHT_NORMAL );
|
||||||
|
}
|
||||||
|
|
||||||
|
m_staticTextCurrent->SetFont( labelfont );
|
||||||
|
m_TrackCurrentValue->SetFont( controlfont );
|
||||||
|
|
||||||
|
// Set the font weight of the external track width.
|
||||||
|
labelfont = m_staticTextExtWidth->GetFont();
|
||||||
|
controlfont = m_ExtTrackWidthValue->GetFont();
|
||||||
|
|
||||||
|
if( m_TWMode == TW_MASTER_EXT_WIDTH )
|
||||||
|
{
|
||||||
|
labelfont.SetWeight( wxFONTWEIGHT_BOLD );
|
||||||
|
controlfont.SetWeight( wxFONTWEIGHT_BOLD );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
labelfont.SetWeight( wxFONTWEIGHT_NORMAL );
|
||||||
|
controlfont.SetWeight( wxFONTWEIGHT_NORMAL );
|
||||||
|
}
|
||||||
|
|
||||||
|
m_staticTextExtWidth->SetFont( labelfont );
|
||||||
|
m_ExtTrackWidthValue->SetFont( controlfont );
|
||||||
|
|
||||||
|
// Set the font weight of the internal track width.
|
||||||
|
labelfont = m_staticTextIntWidth->GetFont();
|
||||||
|
controlfont = m_IntTrackWidthValue->GetFont();
|
||||||
|
|
||||||
|
if( m_TWMode == TW_MASTER_INT_WIDTH )
|
||||||
|
{
|
||||||
|
labelfont.SetWeight( wxFONTWEIGHT_BOLD );
|
||||||
|
controlfont.SetWeight( wxFONTWEIGHT_BOLD );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
labelfont.SetWeight( wxFONTWEIGHT_NORMAL );
|
||||||
|
controlfont.SetWeight( wxFONTWEIGHT_NORMAL );
|
||||||
|
}
|
||||||
|
|
||||||
|
m_staticTextIntWidth->SetFont( labelfont );
|
||||||
|
m_IntTrackWidthValue->SetFont( controlfont );
|
||||||
|
}
|
||||||
|
|
||||||
/* calculate track width for external or internal layers
|
/* calculate track width for external or internal layers
|
||||||
*
|
*
|
||||||
* Imax = 0.048 * dT^0.44 * A^0.725 for external layer
|
* Imax = 0.048 * dT^0.44 * A^0.725 for external layer
|
||||||
|
@ -145,13 +367,11 @@ void PCB_CALCULATOR_FRAME::OnTWCalculateButt( wxCommandEvent& event )
|
||||||
* and dT = temperature rise in degree C
|
* and dT = temperature rise in degree C
|
||||||
* Of course we want to know trackWidth
|
* Of course we want to know trackWidth
|
||||||
*/
|
*/
|
||||||
double PCB_CALCULATOR_FRAME::TWCalculate( double aCurrent, double aThickness, double aDeltaT_C,
|
double PCB_CALCULATOR_FRAME::TWCalculateWidth( double aCurrent, double aThickness, double aDeltaT_C,
|
||||||
bool aUseInternalLayer )
|
bool aUseInternalLayer )
|
||||||
{
|
{
|
||||||
double scale = 0.048; // We are using normalize units (sizes in meters)
|
// Appropriate scale for requested layer.
|
||||||
|
double scale = aUseInternalLayer ? 0.024 : 0.048;
|
||||||
if( aUseInternalLayer )
|
|
||||||
scale *= 0.024 / 0.048;
|
|
||||||
|
|
||||||
// aThickness is given in normalize units (in meters) and we need mil
|
// aThickness is given in normalize units (in meters) and we need mil
|
||||||
aThickness /= UNIT_MIL;
|
aThickness /= UNIT_MIL;
|
||||||
|
@ -160,7 +380,7 @@ double PCB_CALCULATOR_FRAME::TWCalculate( double aCurrent, double aThickness, do
|
||||||
* or
|
* or
|
||||||
* log(Imax) = log(scale) + 0.44*log(dT)
|
* log(Imax) = log(scale) + 0.44*log(dT)
|
||||||
* +(0.725*(log(aThickness) + log(trackWidth))
|
* +(0.725*(log(aThickness) + log(trackWidth))
|
||||||
* log(trackWidth) * 0.725 = ln(Imax) - ln(scale) - 0.44*log(dT) - 0.725*log(aThickness)
|
* log(trackWidth) * 0.725 = log(Imax) - log(scale) - 0.44*log(dT) - 0.725*log(aThickness)
|
||||||
*/
|
*/
|
||||||
double dtmp = log( aCurrent ) - log( scale ) - 0.44 * log( aDeltaT_C ) - 0.725 * log( aThickness );
|
double dtmp = log( aCurrent ) - log( scale ) - 0.44 * log( aDeltaT_C ) - 0.725 * log( aThickness );
|
||||||
dtmp /= 0.725;
|
dtmp /= 0.725;
|
||||||
|
@ -171,37 +391,92 @@ double PCB_CALCULATOR_FRAME::TWCalculate( double aCurrent, double aThickness, do
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
double PCB_CALCULATOR_FRAME::TWCalculateCurrent( double aWidth, double aThickness, double aDeltaT_C,
|
||||||
|
bool aUseInternalLayer )
|
||||||
|
{
|
||||||
|
// Appropriate scale for requested layer.
|
||||||
|
double scale = aUseInternalLayer ? 0.024 : 0.048;
|
||||||
|
|
||||||
|
// Convert thickness and width to mils.
|
||||||
|
aThickness /= UNIT_MIL;
|
||||||
|
aWidth /= UNIT_MIL;
|
||||||
|
|
||||||
|
double area = aThickness * aWidth;
|
||||||
|
double current = scale * pow( aDeltaT_C, 0.44 ) * pow( area, 0.725 );
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void PCB_CALCULATOR_FRAME::TW_Init()
|
void PCB_CALCULATOR_FRAME::TW_Init()
|
||||||
{
|
{
|
||||||
int tmp;
|
int tmp;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
// Read parameters values:
|
// Disable calculations while we initialise.
|
||||||
m_Config->Read( KEYWORD_TW_EXTTRACK_WIDTH_UNIT, &tmp, 0 );
|
m_TWNested = true;
|
||||||
m_TW_ExtTrackWidth_choiceUnit->SetSelection( tmp );
|
|
||||||
m_Config->Read( KEYWORD_TW_INTTRACK_WIDTH_UNIT, &tmp, 0 );
|
// Read parameter values.
|
||||||
m_TW_IntTrackWidth_choiceUnit->SetSelection( tmp );
|
m_Config->Read( KEYWORD_TW_CURRENT, &msg, wxT( "1.0" ) );
|
||||||
m_Config->Read( KEYWORD_TW_TRACK_COPPER_THICKNESS_UNIT, &tmp, 0 );
|
|
||||||
m_TW_CuThickness_choiceUnit->SetSelection( tmp );
|
|
||||||
m_Config->Read( KEYWORD_TW_TRACK_LEN_UNIT, &tmp, 0 );
|
|
||||||
m_TW_CuLength_choiceUnit->SetSelection( tmp );
|
|
||||||
m_Config->Read( KEYWORD_TW_CURRENT, &msg, wxT( "1.0" ) );
|
|
||||||
m_TrackCurrentValue->SetValue( msg );
|
m_TrackCurrentValue->SetValue( msg );
|
||||||
m_Config->Read( KEYWORD_TW_DELTA_TC, &msg, wxT( "10.0" ) );
|
m_Config->Read( KEYWORD_TW_DELTA_TC, &msg, wxT( "10.0" ) );
|
||||||
m_TrackDeltaTValue->SetValue( msg );
|
m_TrackDeltaTValue->SetValue( msg );
|
||||||
m_Config->Read( KEYWORD_TW_TRACK_COPPER_THICKNESS, &msg, wxT( "0.035" ) );
|
m_Config->Read( KEYWORD_TW_TRACK_LEN, &msg, wxT( "20" ) );
|
||||||
m_TrackThicknessValue->SetValue( msg );
|
|
||||||
m_Config->Read( KEYWORD_TW_TRACK_LEN, &msg, wxT( "20" ) );
|
|
||||||
m_TrackLengthValue->SetValue( msg );
|
m_TrackLengthValue->SetValue( msg );
|
||||||
|
m_Config->Read( KEYWORD_TW_TRACK_LEN_UNIT, &tmp, 0 );
|
||||||
|
m_TW_CuLength_choiceUnit->SetSelection( tmp );
|
||||||
|
m_Config->Read( KEYWORD_TW_RESISTIVITY, &msg, wxT( "1.72e-8" ) );
|
||||||
|
m_TWResistivity->SetValue( msg );
|
||||||
|
m_Config->Read( KEYWORD_TW_EXTTRACK_WIDTH, &msg, wxT( "0.2" ) );
|
||||||
|
m_ExtTrackWidthValue->SetValue( msg );
|
||||||
|
m_Config->Read( KEYWORD_TW_EXTTRACK_WIDTH_UNIT, &tmp, 0 );
|
||||||
|
m_TW_ExtTrackWidth_choiceUnit->SetSelection( tmp );
|
||||||
|
m_Config->Read( KEYWORD_TW_EXTTRACK_THICKNESS, &msg, wxT( "0.035" ) );
|
||||||
|
m_ExtTrackThicknessValue->SetValue( msg );
|
||||||
|
m_Config->Read( KEYWORD_TW_EXTTRACK_THICKNESS_UNIT, &tmp, 0 );
|
||||||
|
m_ExtTrackThicknessUnit->SetSelection( tmp );
|
||||||
|
m_Config->Read( KEYWORD_TW_INTTRACK_WIDTH, &msg, wxT( "0.2" ) );
|
||||||
|
m_IntTrackWidthValue->SetValue( msg );
|
||||||
|
m_Config->Read( KEYWORD_TW_INTTRACK_WIDTH_UNIT, &tmp, 0 );
|
||||||
|
m_TW_IntTrackWidth_choiceUnit->SetSelection( tmp );
|
||||||
|
m_Config->Read( KEYWORD_TW_INTTRACK_THICKNESS, &msg, wxT( "0.035" ) );
|
||||||
|
m_IntTrackThicknessValue->SetValue( msg );
|
||||||
|
m_Config->Read( KEYWORD_TW_INTTRACK_THICKNESS_UNIT, &tmp, 0 );
|
||||||
|
m_IntTrackThicknessUnit->SetSelection( tmp );
|
||||||
|
|
||||||
// Init formulas text
|
// Init formulas text
|
||||||
m_htmlWinFormulas->AppendToPage( _( "<br><em>The formula (from IPC 2221) is:</em></br>" ) );
|
m_htmlWinFormulas->AppendToPage( "<br>" );
|
||||||
m_htmlWinFormulas->AppendToPage( _( "<br><b>I = K * dT<sup>0.44</sup> * (W*H)<sup>0.725</sup></b></br>" ) );
|
m_htmlWinFormulas->AppendToPage( _( "If you specify the maximum current, then the trace "
|
||||||
m_htmlWinFormulas->AppendToPage( _( "<br>Internal traces : <b>K = 0.024</b></br>" ) );
|
"widths will be calculated to suit." ) );
|
||||||
m_htmlWinFormulas->AppendToPage( _( "<br>External traces: <b>K = 0.048</b></br>" ) );
|
m_htmlWinFormulas->AppendToPage( "<br>" );
|
||||||
|
m_htmlWinFormulas->AppendToPage( _( "If you specify one of the trace widths, the maximum "
|
||||||
|
"current it can handle will be calculated. The width "
|
||||||
|
"for the other trace to also handle this current will "
|
||||||
|
"then be calculated." ) );
|
||||||
|
m_htmlWinFormulas->AppendToPage( "<br>" );
|
||||||
|
m_htmlWinFormulas->AppendToPage( _( "The controlling value is shown in bold." ) );
|
||||||
|
m_htmlWinFormulas->AppendToPage( "<br><br>" );
|
||||||
|
m_htmlWinFormulas->AppendToPage( _( "The calculations are valid for currents up to 35A "
|
||||||
|
"(external) or 17.5A (internal), temperature rises "
|
||||||
|
"up to 100 deg C, and widths of up to 400mil (10mm)." ) );
|
||||||
|
m_htmlWinFormulas->AppendToPage( "<br>" );
|
||||||
|
m_htmlWinFormulas->AppendToPage( _( "The formula, from IPC 2221, is" ) );
|
||||||
|
m_htmlWinFormulas->AppendToPage( "<center><b>I = K * dT<sup>0.44</sup> * "
|
||||||
|
"(W*H)<sup>0.725</sup></b></center>" );
|
||||||
|
m_htmlWinFormulas->AppendToPage( _( "where:" ) );
|
||||||
|
m_htmlWinFormulas->AppendToPage( "<br><b>I</b> = " );
|
||||||
|
m_htmlWinFormulas->AppendToPage( _( "maximum current in amps" ) );
|
||||||
|
m_htmlWinFormulas->AppendToPage( "<br><b>dT</b> = " );
|
||||||
|
m_htmlWinFormulas->AppendToPage( _( "temperature rise above ambient in deg C" ) );
|
||||||
|
m_htmlWinFormulas->AppendToPage( "<br><b>W,H</b> = " );
|
||||||
|
m_htmlWinFormulas->AppendToPage( _( "width and thickness in mils" ) );
|
||||||
|
m_htmlWinFormulas->AppendToPage( "<br><b>K</b> = " );
|
||||||
|
m_htmlWinFormulas->AppendToPage( _( "0.024 for internal traces or 0.048 for external traces" ) );
|
||||||
|
|
||||||
m_htmlWinFormulas->AppendToPage( _( "<br>where:</br>" ) );
|
// Make sure the correct master mode is displayed.
|
||||||
m_htmlWinFormulas->AppendToPage( _( "<br><b>I</b> = maximum current in Amps</br>" ) );
|
TWUpdateModeDisplay();
|
||||||
m_htmlWinFormulas->AppendToPage( _( "<br><b>dT</b> = temperature rise above ambient in deg C</br>" ) );
|
|
||||||
m_htmlWinFormulas->AppendToPage( _( "<br><b>W,H</b> = Width and Thickness in mils</br>" ) );
|
// Enable calculations and perform the initial one.
|
||||||
|
m_TWNested = false;
|
||||||
|
wxCommandEvent dummy;
|
||||||
|
OnTWParametersChanged( dummy );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue