1 /* 2 * This program source code file is part of KiCad, a free EDA CAD application. 3 * 4 * Copyright (C) 2008-2014 Jean-Pierre Charras, jp.charras at wanadoo.fr 5 * Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, you may find one here: 19 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 20 * or you may search the http://www.gnu.org website for the version 2 license, 21 * or you may write to the Free Software Foundation, Inc., 22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 23 */ 24 25 #ifndef ZONES_H_ 26 #define ZONES_H_ 27 28 // Default values in mils for parameters in ZONE 29 #define ZONE_THERMAL_RELIEF_GAP_MIL 20 // default value for ZONE_SETTINGS::m_ThermalReliefGap 30 #define ZONE_THERMAL_RELIEF_COPPER_WIDTH_MIL 20 // default value for ZONE_SETTINGS::m_ThermalReliefCopperBridge 31 #define ZONE_THICKNESS_MIL 10 // default value for ZONE_SETTINGS::m_ZoneMinThickness 32 #define ZONE_THICKNESS_MIN_VALUE_MIL 1 // minimum acceptable value for ZONE_SETTINGS::m_ZoneMinThickness 33 #define ZONE_CLEARANCE_MIL 20 // default value for ZONE_SETTINGS::m_ZoneClearance 34 #define ZONE_CLEARANCE_MAX_VALUE_MIL 500 // maximum acceptable value for ZONE_SETTINGS::m_ZoneClearance 35 36 37 #define ZONE_EXPORT_VALUES 1004 // Copper zone dialog reports wxID_OK, wxID_CANCEL or 38 // ZONE_EXPORT_VALUES 39 40 /// How pads are covered by copper in zone 41 enum class ZONE_CONNECTION 42 { 43 INHERITED = -1, 44 NONE, ///< Pads are not covered 45 THERMAL, ///< Use thermal relief for pads 46 FULL, ///< pads are covered by copper 47 THT_THERMAL ///< Thermal relief only for THT pads 48 }; 49 50 class ZONE; 51 class ZONE_SETTINGS; 52 class PCB_BASE_FRAME; 53 54 /** 55 * Function InvokeNonCopperZonesEditor 56 * invokes up a modal dialog window for non-copper zone editing. 57 * 58 * @param aParent is the PCB_BASE_FRAME calling parent window for the modal dialog, 59 * and it gives access to the BOARD through PCB_BASE_FRAME::GetBoard(). 60 * @param aSettings points to the ZONE_SETTINGS to edit. 61 * @return int - tells if user aborted, changed only one zone, or all of them. 62 */ 63 int InvokeNonCopperZonesEditor( PCB_BASE_FRAME* aParent, ZONE_SETTINGS* aSettings ); 64 65 /** 66 * Function InvokeCopperZonesEditor 67 * invokes up a modal dialog window for copper zone editing. 68 * 69 * @param aCaller is the PCB_BASE_FRAME calling parent window for the modal dialog, 70 * and it gives access to the BOARD through PCB_BASE_FRAME::GetBoard(). 71 * @param aSettings points to the ZONE_SETTINGS to edit. 72 * @return int - tells if user aborted, changed only one zone, or all of them. 73 */ 74 int InvokeCopperZonesEditor( PCB_BASE_FRAME* aCaller, ZONE_SETTINGS* aSettings ); 75 76 /** 77 * Function InvokeRuleAreaEditor 78 * invokes up a modal dialog window for copper zone editing. 79 * 80 * @param aCaller is the PCB_BASE_FRAME calling parent window for the modal dialog, 81 * and it gives access to the BOARD through PCB_BASE_FRAME::GetBoard(). 82 * @param aSettings points to the ZONE_SETTINGS to edit. 83 * @return int - tells if user aborted, changed only one zone, or all of them. 84 */ 85 int InvokeRuleAreaEditor( PCB_BASE_FRAME* aCaller, ZONE_SETTINGS* aSettings ); 86 87 #endif // ZONES_H_ 88