Commit af0d2147 authored by jean-pierre charras's avatar jean-pierre charras

Pcbnew: commit Lorenzo Marcantonio's patch for THT thermals (added loading/saving using S. expr).

Fix incorrect import of smd pads from Gpcb.
Very minor change in dialog print.
parent 096f4a10
...@@ -164,6 +164,7 @@ trace_clearance ...@@ -164,6 +164,7 @@ trace_clearance
trapezoid trapezoid
thru thru
thru_hole thru_hole
thru_hole_only
tstamp tstamp
user user
user_trace_width user_trace_width
......
...@@ -149,6 +149,14 @@ void DIALOG_PRINT_USING_PRINTER::OnInitDialog( wxInitDialogEvent& event ) ...@@ -149,6 +149,14 @@ void DIALOG_PRINT_USING_PRINTER::OnInitDialog( wxInitDialogEvent& event )
m_buttonPrint->SetDefault(); m_buttonPrint->SetDefault();
} }
void DIALOG_PRINT_USING_PRINTER::GetPrintOptions()
{
SCH_EDIT_FRAME* parent = GetParent();
parent->SetPrintMonochrome( m_checkMonochrome->IsChecked() );
parent->SetPrintSheetReference( m_checkReference->IsChecked() );
}
void DIALOG_PRINT_USING_PRINTER::OnCloseWindow( wxCloseEvent& event ) void DIALOG_PRINT_USING_PRINTER::OnCloseWindow( wxCloseEvent& event )
{ {
...@@ -160,8 +168,7 @@ void DIALOG_PRINT_USING_PRINTER::OnCloseWindow( wxCloseEvent& event ) ...@@ -160,8 +168,7 @@ void DIALOG_PRINT_USING_PRINTER::OnCloseWindow( wxCloseEvent& event )
parent->SetPrintDialogSize( GetSize() ); parent->SetPrintDialogSize( GetSize() );
} }
parent->SetPrintMonochrome( m_checkMonochrome->IsChecked() ); GetPrintOptions();
parent->SetPrintSheetReference( m_checkReference->IsChecked() );
EndDialog( wxID_CANCEL ); EndDialog( wxID_CANCEL );
} }
...@@ -187,8 +194,7 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintPreview( wxCommandEvent& event ) ...@@ -187,8 +194,7 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintPreview( wxCommandEvent& event )
{ {
SCH_EDIT_FRAME* parent = GetParent(); SCH_EDIT_FRAME* parent = GetParent();
parent->SetPrintMonochrome( m_checkMonochrome->IsChecked() ); GetPrintOptions();
parent->SetPrintSheetReference( m_checkReference->IsChecked() );
// Pass two printout objects: for preview, and possible printing. // Pass two printout objects: for preview, and possible printing.
wxString title = _( "Preview" ); wxString title = _( "Preview" );
...@@ -216,8 +222,7 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintButtonClick( wxCommandEvent& event ) ...@@ -216,8 +222,7 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintButtonClick( wxCommandEvent& event )
{ {
SCH_EDIT_FRAME* parent = GetParent(); SCH_EDIT_FRAME* parent = GetParent();
parent->SetPrintMonochrome( m_checkMonochrome->IsChecked() ); GetPrintOptions();
parent->SetPrintSheetReference( m_checkReference->IsChecked() );
wxPrintDialogData printDialogData( parent->GetPageSetupData().GetPrintData() ); wxPrintDialogData printDialogData( parent->GetPageSetupData().GetPrintData() );
printDialogData.SetMaxPage( g_RootSheet->CountSheets() ); printDialogData.SetMaxPage( g_RootSheet->CountSheets() );
......
...@@ -26,6 +26,8 @@ private: ...@@ -26,6 +26,8 @@ private:
void OnPrintPreview( wxCommandEvent& event ); void OnPrintPreview( wxCommandEvent& event );
void OnPrintButtonClick( wxCommandEvent& event ); void OnPrintButtonClick( wxCommandEvent& event );
void OnButtonCancelClick( wxCommandEvent& event ){ Close(); } void OnButtonCancelClick( wxCommandEvent& event ){ Close(); }
void GetPrintOptions();
}; };
......
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008) // C++ code generated with wxFormBuilder (version Mar 17 2012)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
...@@ -19,16 +19,22 @@ DIALOG_PRINT_USING_PRINTER_BASE::DIALOG_PRINT_USING_PRINTER_BASE( wxWindow* pare ...@@ -19,16 +19,22 @@ DIALOG_PRINT_USING_PRINTER_BASE::DIALOG_PRINT_USING_PRINTER_BASE( wxWindow* pare
wxBoxSizer* bleftSizer; wxBoxSizer* bleftSizer;
bleftSizer = new wxBoxSizer( wxVERTICAL ); bleftSizer = new wxBoxSizer( wxVERTICAL );
m_checkReference = new wxCheckBox( this, wxID_ANY, _("Print sheet &reference and title block"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText1 = new wxStaticText( this, wxID_ANY, _("Print options:"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkReference->SetValue(true); m_staticText1->Wrap( -1 );
m_staticText1->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
bleftSizer->Add( m_staticText1, 0, wxTOP|wxRIGHT, 5 );
m_checkReference = new wxCheckBox( this, wxID_ANY, _("Print sheet &reference and title block"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkReference->SetValue(true);
m_checkReference->SetToolTip( _("Print (or not) the Frame references.") ); m_checkReference->SetToolTip( _("Print (or not) the Frame references.") );
bleftSizer->Add( m_checkReference, 0, wxALL, 5 ); bleftSizer->Add( m_checkReference, 0, wxALL, 10 );
m_checkMonochrome = new wxCheckBox( this, wxID_ANY, _("Print in &black and white only"), wxDefaultPosition, wxDefaultSize, 0 ); m_checkMonochrome = new wxCheckBox( this, wxID_ANY, _("Print in &black and white only"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkMonochrome->SetValue(true);
bleftSizer->Add( m_checkMonochrome, 0, wxBOTTOM|wxRIGHT|wxLEFT, 10 );
bleftSizer->Add( m_checkMonochrome, 0, wxALL, 5 );
bMainSizer->Add( bleftSizer, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxTOP, 12 ); bMainSizer->Add( bleftSizer, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxTOP, 12 );
...@@ -47,11 +53,12 @@ DIALOG_PRINT_USING_PRINTER_BASE::DIALOG_PRINT_USING_PRINTER_BASE( wxWindow* pare ...@@ -47,11 +53,12 @@ DIALOG_PRINT_USING_PRINTER_BASE::DIALOG_PRINT_USING_PRINTER_BASE( wxWindow* pare
m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
bbuttonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); bbuttonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
bMainSizer->Add( bbuttonsSizer, 0, wxALL, 12 ); bMainSizer->Add( bbuttonsSizer, 0, wxALL, 12 );
this->SetSizer( bMainSizer ); this->SetSizer( bMainSizer );
this->Layout(); this->Layout();
bMainSizer->Fit( this );
// Connect Events // Connect Events
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnCloseWindow ) ); this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnCloseWindow ) );
...@@ -71,4 +78,5 @@ DIALOG_PRINT_USING_PRINTER_BASE::~DIALOG_PRINT_USING_PRINTER_BASE() ...@@ -71,4 +78,5 @@ DIALOG_PRINT_USING_PRINTER_BASE::~DIALOG_PRINT_USING_PRINTER_BASE()
m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnPrintPreview ), NULL, this ); m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnPrintPreview ), NULL, this );
m_buttonPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnPrintButtonClick ), NULL, this ); m_buttonPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnPrintButtonClick ), NULL, this );
m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnButtonCancelClick ), NULL, this ); m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_BASE::OnButtonCancelClick ), NULL, this );
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008) // C++ code generated with wxFormBuilder (version Mar 17 2012)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
#ifndef __dialog_print_using_printer_base__ #ifndef __DIALOG_PRINT_USING_PRINTER_BASE_H__
#define __dialog_print_using_printer_base__ #define __DIALOG_PRINT_USING_PRINTER_BASE_H__
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h> #include <wx/intl.h>
#include <wx/string.h> #include <wx/string.h>
#include <wx/checkbox.h> #include <wx/stattext.h>
#include <wx/gdicmn.h> #include <wx/gdicmn.h>
#include <wx/font.h> #include <wx/font.h>
#include <wx/colour.h> #include <wx/colour.h>
#include <wx/settings.h> #include <wx/settings.h>
#include <wx/checkbox.h>
#include <wx/sizer.h> #include <wx/sizer.h>
#include <wx/button.h> #include <wx/button.h>
#include <wx/dialog.h> #include <wx/dialog.h>
...@@ -30,6 +32,7 @@ class DIALOG_PRINT_USING_PRINTER_BASE : public wxDialog ...@@ -30,6 +32,7 @@ class DIALOG_PRINT_USING_PRINTER_BASE : public wxDialog
private: private:
protected: protected:
wxStaticText* m_staticText1;
wxCheckBox* m_checkReference; wxCheckBox* m_checkReference;
wxCheckBox* m_checkMonochrome; wxCheckBox* m_checkMonochrome;
wxButton* m_buttonPageSetup; wxButton* m_buttonPageSetup;
...@@ -38,18 +41,19 @@ class DIALOG_PRINT_USING_PRINTER_BASE : public wxDialog ...@@ -38,18 +41,19 @@ class DIALOG_PRINT_USING_PRINTER_BASE : public wxDialog
wxButton* m_buttonQuit; wxButton* m_buttonQuit;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, overide them in your derived class
virtual void OnCloseWindow( wxCloseEvent& event ){ event.Skip(); } virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); }
virtual void OnInitDialog( wxInitDialogEvent& event ){ event.Skip(); } virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
virtual void OnPageSetup( wxCommandEvent& event ){ event.Skip(); } virtual void OnPageSetup( wxCommandEvent& event ) { event.Skip(); }
virtual void OnPrintPreview( wxCommandEvent& event ){ event.Skip(); } virtual void OnPrintPreview( wxCommandEvent& event ) { event.Skip(); }
virtual void OnPrintButtonClick( wxCommandEvent& event ){ event.Skip(); } virtual void OnPrintButtonClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnButtonCancelClick( wxCommandEvent& event ){ event.Skip(); } virtual void OnButtonCancelClick( wxCommandEvent& event ) { event.Skip(); }
public: public:
DIALOG_PRINT_USING_PRINTER_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Print"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
DIALOG_PRINT_USING_PRINTER_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Print"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 388,185 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_PRINT_USING_PRINTER_BASE(); ~DIALOG_PRINT_USING_PRINTER_BASE();
}; };
#endif //__dialog_print_using_printer_base__ #endif //__DIALOG_PRINT_USING_PRINTER_BASE_H__
...@@ -199,10 +199,14 @@ void DIALOG_COPPER_ZONE::initDialog() ...@@ -199,10 +199,14 @@ void DIALOG_COPPER_ZONE::initDialog()
switch( m_settings.GetPadConnection() ) switch( m_settings.GetPadConnection() )
{ {
case PAD_NOT_IN_ZONE: // Pads are not covered case THT_THERMAL: // Thermals only for THT pads
m_PadInZoneOpt->SetSelection( 2 ); m_PadInZoneOpt->SetSelection( 2 );
break; break;
case PAD_NOT_IN_ZONE: // Pads are not covered
m_PadInZoneOpt->SetSelection( 3 );
break;
default: default:
case THERMAL_PAD: // Use thermal relief for pads case THERMAL_PAD: // Use thermal relief for pads
m_PadInZoneOpt->SetSelection( 1 ); m_PadInZoneOpt->SetSelection( 1 );
...@@ -213,7 +217,9 @@ void DIALOG_COPPER_ZONE::initDialog() ...@@ -213,7 +217,9 @@ void DIALOG_COPPER_ZONE::initDialog()
break; break;
} }
if( m_settings.GetPadConnection() != THERMAL_PAD ) // Antipad and spokes are significant only for thermals
if( m_settings.GetPadConnection() != THERMAL_PAD &&
m_settings.GetPadConnection() != THT_THERMAL )
{ {
m_AntipadSizeValue->Enable( false ); m_AntipadSizeValue->Enable( false );
m_CopperWidthValue->Enable( false ); m_CopperWidthValue->Enable( false );
...@@ -341,11 +347,16 @@ bool DIALOG_COPPER_ZONE::AcceptOptions( bool aPromptForErrors, bool aUseExportab ...@@ -341,11 +347,16 @@ bool DIALOG_COPPER_ZONE::AcceptOptions( bool aPromptForErrors, bool aUseExportab
{ {
switch( m_PadInZoneOpt->GetSelection() ) switch( m_PadInZoneOpt->GetSelection() )
{ {
case 2: case 3:
// Pads are not covered // Pads are not covered
m_settings.SetPadConnection( PAD_NOT_IN_ZONE ); m_settings.SetPadConnection( PAD_NOT_IN_ZONE );
break; break;
case 2:
// Use thermal relief for THT pads
m_settings.SetPadConnection( THT_THERMAL );
break;
case 1: case 1:
// Use thermal relief for pads // Use thermal relief for pads
m_settings.SetPadConnection( THERMAL_PAD ); m_settings.SetPadConnection( THERMAL_PAD );
...@@ -566,6 +577,7 @@ void DIALOG_COPPER_ZONE::OnPadsInZoneClick( wxCommandEvent& event ) ...@@ -566,6 +577,7 @@ void DIALOG_COPPER_ZONE::OnPadsInZoneClick( wxCommandEvent& event )
m_CopperWidthValue->Enable( false ); m_CopperWidthValue->Enable( false );
break; break;
case 2:
case 1: case 1:
m_AntipadSizeValue->Enable( true ); m_AntipadSizeValue->Enable( true );
m_CopperWidthValue->Enable( true ); m_CopperWidthValue->Enable( true );
......
This diff is collapsed.
...@@ -1825,7 +1825,7 @@ ...@@ -1825,7 +1825,7 @@
<property name="caption"></property> <property name="caption"></property>
<property name="caption_visible">1</property> <property name="caption_visible">1</property>
<property name="center_pane">0</property> <property name="center_pane">0</property>
<property name="choices">&quot;Solid&quot; &quot;Thermal relief&quot; &quot;None&quot;</property> <property name="choices">&quot;Solid&quot; &quot;Thermal relief&quot; &quot;THT Thermal&quot; &quot;None&quot;</property>
<property name="close_button">1</property> <property name="close_button">1</property>
<property name="context_help"></property> <property name="context_help"></property>
<property name="context_menu">1</property> <property name="context_menu">1</property>
......
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 11 2012) // C++ code generated with wxFormBuilder (version Apr 10 2012)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
#ifndef __DIALOG_COPPER_ZONES_BASE_H__ #ifndef __DIALOG_COPPER_ZONES_BASE_H__
#define __DIALOG_COPPER_ZONES_BASE_H__ #define __DIALOG_COPPER_ZONES_BASE_H__
#include <wx/artprov.h> #include <wx/artprov.h>
#include <wx/xrc/xmlres.h> #include <wx/xrc/xmlres.h>
#include <wx/intl.h> #include <wx/intl.h>
#include "dialog_shim.h" #include "dialog_shim.h"
#include <wx/string.h> #include <wx/string.h>
#include <wx/stattext.h> #include <wx/stattext.h>
#include <wx/gdicmn.h> #include <wx/gdicmn.h>
#include <wx/font.h> #include <wx/font.h>
#include <wx/colour.h> #include <wx/colour.h>
#include <wx/settings.h> #include <wx/settings.h>
#include <wx/sizer.h> #include <wx/sizer.h>
#include <wx/listbox.h> #include <wx/listbox.h>
#include <wx/choice.h> #include <wx/choice.h>
#include <wx/textctrl.h> #include <wx/textctrl.h>
#include <wx/button.h> #include <wx/button.h>
#include <wx/statbox.h> #include <wx/statbox.h>
#include <wx/spinctrl.h> #include <wx/spinctrl.h>
#include <wx/dialog.h> #include <wx/dialog.h>
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_COPPER_ZONE_BASE /// Class DIALOG_COPPER_ZONE_BASE
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
class DIALOG_COPPER_ZONE_BASE : public DIALOG_SHIM class DIALOG_COPPER_ZONE_BASE : public DIALOG_SHIM
{ {
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
private: private:
// Private event handlers // Private event handlers
void _wxFB_OnClose( wxCloseEvent& event ){ OnClose( event ); } void _wxFB_OnClose( wxCloseEvent& event ){ OnClose( event ); }
void _wxFB_OnSize( wxSizeEvent& event ){ OnSize( event ); } void _wxFB_OnSize( wxSizeEvent& event ){ OnSize( event ); }
void _wxFB_OnNetSortingOptionSelected( wxCommandEvent& event ){ OnNetSortingOptionSelected( event ); } void _wxFB_OnNetSortingOptionSelected( wxCommandEvent& event ){ OnNetSortingOptionSelected( event ); }
void _wxFB_OnRunFiltersButtonClick( wxCommandEvent& event ){ OnRunFiltersButtonClick( event ); } void _wxFB_OnRunFiltersButtonClick( wxCommandEvent& event ){ OnRunFiltersButtonClick( event ); }
void _wxFB_OnCornerSmoothingModeChoice( wxCommandEvent& event ){ OnCornerSmoothingModeChoice( event ); } void _wxFB_OnCornerSmoothingModeChoice( wxCommandEvent& event ){ OnCornerSmoothingModeChoice( event ); }
void _wxFB_OnPadsInZoneClick( wxCommandEvent& event ){ OnPadsInZoneClick( event ); } void _wxFB_OnPadsInZoneClick( wxCommandEvent& event ){ OnPadsInZoneClick( event ); }
void _wxFB_ExportSetupToOtherCopperZones( wxCommandEvent& event ){ ExportSetupToOtherCopperZones( event ); } void _wxFB_ExportSetupToOtherCopperZones( wxCommandEvent& event ){ ExportSetupToOtherCopperZones( event ); }
void _wxFB_OnButtonOkClick( wxCommandEvent& event ){ OnButtonOkClick( event ); } void _wxFB_OnButtonOkClick( wxCommandEvent& event ){ OnButtonOkClick( event ); }
void _wxFB_OnButtonCancelClick( wxCommandEvent& event ){ OnButtonCancelClick( event ); } void _wxFB_OnButtonCancelClick( wxCommandEvent& event ){ OnButtonCancelClick( event ); }
protected: protected:
enum enum
{ {
ID_DIALOG_COPPER_ZONE_BASE = 1000, ID_DIALOG_COPPER_ZONE_BASE = 1000,
ID_NETNAME_SELECTION, ID_NETNAME_SELECTION,
ID_M_NETDISPLAYOPTION, ID_M_NETDISPLAYOPTION,
ID_TEXTCTRL_NETNAMES_FILTER, ID_TEXTCTRL_NETNAMES_FILTER,
wxID_APPLY_FILTERS, wxID_APPLY_FILTERS,
ID_CORNER_SMOOTHING, ID_CORNER_SMOOTHING,
ID_M_CORNERSMOOTHINGCTRL, ID_M_CORNERSMOOTHINGCTRL,
ID_M_PADINZONEOPT, ID_M_PADINZONEOPT,
wxID_ANTIPAD_SIZE, wxID_ANTIPAD_SIZE,
wxID_COPPER_BRIDGE_VALUE, wxID_COPPER_BRIDGE_VALUE,
ID_M_PRIORITYLEVELCTRL, ID_M_PRIORITYLEVELCTRL,
ID_M_FILLMODECTRL, ID_M_FILLMODECTRL,
ID_M_ARCAPPROXIMATIONOPT, ID_M_ARCAPPROXIMATIONOPT,
ID_M_ORIENTEDGESOPT, ID_M_ORIENTEDGESOPT,
ID_M_OUTLINEAPPEARANCECTRL, ID_M_OUTLINEAPPEARANCECTRL,
wxID_BUTTON_EXPORT wxID_BUTTON_EXPORT
}; };
wxBoxSizer* m_MainBoxSizer; wxBoxSizer* m_MainBoxSizer;
wxBoxSizer* m_layerSizer; wxBoxSizer* m_layerSizer;
wxStaticText* m_staticText17; wxStaticText* m_staticText17;
wxStaticText* m_staticText2; wxStaticText* m_staticText2;
wxListBox* m_ListNetNameSelection; wxListBox* m_ListNetNameSelection;
wxStaticText* m_staticText16; wxStaticText* m_staticText16;
wxChoice* m_NetDisplayOption; wxChoice* m_NetDisplayOption;
wxStaticText* m_staticText5; wxStaticText* m_staticText5;
wxTextCtrl* m_DoNotShowNetNameFilter; wxTextCtrl* m_DoNotShowNetNameFilter;
wxStaticText* m_staticText51; wxStaticText* m_staticText51;
wxTextCtrl* m_ShowNetNameFilter; wxTextCtrl* m_ShowNetNameFilter;
wxButton* m_buttonRunFilter; wxButton* m_buttonRunFilter;
wxStaticText* m_ClearanceValueTitle; wxStaticText* m_ClearanceValueTitle;
wxTextCtrl* m_ZoneClearanceCtrl; wxTextCtrl* m_ZoneClearanceCtrl;
wxStaticText* m_MinThicknessValueTitle; wxStaticText* m_MinThicknessValueTitle;
wxTextCtrl* m_ZoneMinThicknessCtrl; wxTextCtrl* m_ZoneMinThicknessCtrl;
wxStaticText* m_staticText151; wxStaticText* m_staticText151;
wxChoice* m_cornerSmoothingChoice; wxChoice* m_cornerSmoothingChoice;
wxStaticText* m_cornerSmoothingTitle; wxStaticText* m_cornerSmoothingTitle;
wxTextCtrl* m_cornerSmoothingCtrl; wxTextCtrl* m_cornerSmoothingCtrl;
wxStaticText* m_staticText13; wxStaticText* m_staticText13;
wxChoice* m_PadInZoneOpt; wxChoice* m_PadInZoneOpt;
wxStaticText* m_AntipadSizeText; wxStaticText* m_AntipadSizeText;
wxTextCtrl* m_AntipadSizeValue; wxTextCtrl* m_AntipadSizeValue;
wxStaticText* m_CopperBridgeWidthText; wxStaticText* m_CopperBridgeWidthText;
wxTextCtrl* m_CopperWidthValue; wxTextCtrl* m_CopperWidthValue;
wxStaticText* m_staticText171; wxStaticText* m_staticText171;
wxSpinCtrl* m_PriorityLevelCtrl; wxSpinCtrl* m_PriorityLevelCtrl;
wxStaticText* m_staticText11; wxStaticText* m_staticText11;
wxChoice* m_FillModeCtrl; wxChoice* m_FillModeCtrl;
wxStaticText* m_staticText12; wxStaticText* m_staticText12;
wxChoice* m_ArcApproximationOpt; wxChoice* m_ArcApproximationOpt;
wxStaticText* m_staticText14; wxStaticText* m_staticText14;
wxChoice* m_OrientEdgesOpt; wxChoice* m_OrientEdgesOpt;
wxStaticText* m_staticText15; wxStaticText* m_staticText15;
wxChoice* m_OutlineAppearanceCtrl; wxChoice* m_OutlineAppearanceCtrl;
wxButton* m_ExportSetupButton; wxButton* m_ExportSetupButton;
wxButton* m_OkButton; wxButton* m_OkButton;
wxButton* m_ButtonCancel; wxButton* m_ButtonCancel;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, overide them in your derived class
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
virtual void OnSize( wxSizeEvent& event ) { event.Skip(); } virtual void OnSize( wxSizeEvent& event ) { event.Skip(); }
virtual void OnNetSortingOptionSelected( wxCommandEvent& event ) { event.Skip(); } virtual void OnNetSortingOptionSelected( wxCommandEvent& event ) { event.Skip(); }
virtual void OnRunFiltersButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnRunFiltersButtonClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCornerSmoothingModeChoice( wxCommandEvent& event ) { event.Skip(); } virtual void OnCornerSmoothingModeChoice( wxCommandEvent& event ) { event.Skip(); }
virtual void OnPadsInZoneClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnPadsInZoneClick( wxCommandEvent& event ) { event.Skip(); }
virtual void ExportSetupToOtherCopperZones( wxCommandEvent& event ) { event.Skip(); } virtual void ExportSetupToOtherCopperZones( wxCommandEvent& event ) { event.Skip(); }
virtual void OnButtonOkClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnButtonOkClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnButtonCancelClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnButtonCancelClick( wxCommandEvent& event ) { event.Skip(); }
public: public:
DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID id = ID_DIALOG_COPPER_ZONE_BASE, const wxString& title = _("Zone Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 550,500 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID id = ID_DIALOG_COPPER_ZONE_BASE, const wxString& title = _("Zone Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 550,500 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_COPPER_ZONE_BASE(); ~DIALOG_COPPER_ZONE_BASE();
}; };
#endif //__DIALOG_COPPER_ZONES_BASE_H__ #endif //__DIALOG_COPPER_ZONES_BASE_H__
...@@ -399,6 +399,7 @@ bool MODULE::Read_GPCB_Descr( const wxString& CmpFullFileName ) ...@@ -399,6 +399,7 @@ bool MODULE::Read_GPCB_Descr( const wxString& CmpFullFileName )
// format: Pad [x1 y1 x2 y2 thickness clearance mask "name" "pad_number" flags] // format: Pad [x1 y1 x2 y2 thickness clearance mask "name" "pad_number" flags]
pad = new D_PAD( this ); pad = new D_PAD( this );
pad->SetShape( PAD_RECT ); pad->SetShape( PAD_RECT );
pad->SetAttribute( PAD_SMD );
pad->SetLayerMask( LAYER_FRONT | SOLDERMASK_LAYER_FRONT | SOLDERPASTE_LAYER_FRONT ); pad->SetLayerMask( LAYER_FRONT | SOLDERMASK_LAYER_FRONT | SOLDERPASTE_LAYER_FRONT );
// Set shape from flags // Set shape from flags
......
...@@ -990,6 +990,10 @@ void PCB_IO::format( ZONE_CONTAINER* aZone, int aNestLevel ) const ...@@ -990,6 +990,10 @@ void PCB_IO::format( ZONE_CONTAINER* aZone, int aNestLevel ) const
case THERMAL_PAD: // Default option not saved or loaded. case THERMAL_PAD: // Default option not saved or loaded.
break; break;
case THT_THERMAL:
m_out->Print( 0, " thru_hole_only" );
break;
case PAD_IN_ZONE: case PAD_IN_ZONE:
m_out->Print( 0, " yes" ); m_out->Print( 0, " yes" );
break; break;
......
...@@ -2239,6 +2239,7 @@ void LEGACY_PLUGIN::loadZONE_CONTAINER() ...@@ -2239,6 +2239,7 @@ void LEGACY_PLUGIN::loadZONE_CONTAINER()
{ {
case 'I': popt = PAD_IN_ZONE; break; case 'I': popt = PAD_IN_ZONE; break;
case 'T': popt = THERMAL_PAD; break; case 'T': popt = THERMAL_PAD; break;
case 'H': popt = THT_THERMAL; break;
case 'X': popt = PAD_NOT_IN_ZONE; break; case 'X': popt = PAD_NOT_IN_ZONE; break;
default: default:
...@@ -3548,6 +3549,7 @@ void LEGACY_PLUGIN::saveZONE_CONTAINER( const ZONE_CONTAINER* me ) const ...@@ -3548,6 +3549,7 @@ void LEGACY_PLUGIN::saveZONE_CONTAINER( const ZONE_CONTAINER* me ) const
default: default:
case PAD_IN_ZONE: padoption = 'I'; break; case PAD_IN_ZONE: padoption = 'I'; break;
case THERMAL_PAD: padoption = 'T'; break; case THERMAL_PAD: padoption = 'T'; break;
case THT_THERMAL: padoption = 'H'; break; // H is for 'hole' since it reliefs holes only
case PAD_NOT_IN_ZONE: padoption = 'X'; break; case PAD_NOT_IN_ZONE: padoption = 'X'; break;
} }
......
...@@ -2374,6 +2374,10 @@ ZONE_CONTAINER* PCB_PARSER::parseZONE_CONTAINER() throw( IO_ERROR, PARSE_ERROR ) ...@@ -2374,6 +2374,10 @@ ZONE_CONTAINER* PCB_PARSER::parseZONE_CONTAINER() throw( IO_ERROR, PARSE_ERROR )
zone->SetPadConnection( PAD_NOT_IN_ZONE ); zone->SetPadConnection( PAD_NOT_IN_ZONE );
break; break;
case T_thru_hole_only:
zone->SetPadConnection( THT_THERMAL );
break;
case T_clearance: case T_clearance:
zone->SetZoneClearance( parseBoardUnits( "zone clearance" ) ); zone->SetZoneClearance( parseBoardUnits( "zone clearance" ) );
NeedRIGHT(); NeedRIGHT();
......
...@@ -36,7 +36,8 @@ enum ZoneConnection { ...@@ -36,7 +36,8 @@ enum ZoneConnection {
UNDEFINED_CONNECTION = -1, UNDEFINED_CONNECTION = -1,
PAD_NOT_IN_ZONE, ///< Pads are not covered PAD_NOT_IN_ZONE, ///< Pads are not covered
THERMAL_PAD, ///< Use thermal relief for pads THERMAL_PAD, ///< Use thermal relief for pads
PAD_IN_ZONE ///< pads are covered by copper PAD_IN_ZONE, ///< pads are covered by copper
THT_THERMAL ///< Thermal relief only for THT pads
}; };
class ZONE_CONTAINER; class ZONE_CONTAINER;
......
...@@ -385,7 +385,13 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) ...@@ -385,7 +385,13 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb )
{ {
for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() ) for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() )
{ {
if( GetPadConnection( pad ) != THERMAL_PAD ) // Rejects non-standard pads with tht-only thermal reliefs
if( GetPadConnection( pad ) == THT_THERMAL
&& pad->GetAttribute() != PAD_STANDARD )
continue;
if( GetPadConnection( pad ) != THERMAL_PAD
&& GetPadConnection( pad ) != THT_THERMAL )
continue; continue;
if( !pad->IsOnLayer( GetLayer() ) ) if( !pad->IsOnLayer( GetLayer() ) )
......
...@@ -78,7 +78,13 @@ void BuildUnconnectedThermalStubsPolygonList( std::vector<CPolyPt>& aCornerBuffe ...@@ -78,7 +78,13 @@ void BuildUnconnectedThermalStubsPolygonList( std::vector<CPolyPt>& aCornerBuffe
{ {
for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() ) for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() )
{ {
if( aZone->GetPadConnection( pad ) != THERMAL_PAD ) // Rejects non-standard pads with tht-only thermal reliefs
if( aZone->GetPadConnection( pad ) == THT_THERMAL
&& pad->GetAttribute() != PAD_STANDARD )
continue;
if( aZone->GetPadConnection( pad ) != THERMAL_PAD
&& aZone->GetPadConnection( pad ) != THT_THERMAL )
continue; continue;
// check // check
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment