You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
4.5 KiB

14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
  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. #ifndef ZONES_H_
  25. #define ZONES_H_
  26. // keys used to store net sort option in config file :
  27. #define ZONE_NET_OUTLINES_STYLE_KEY wxT( "Zone_Ouline_Hatch_Opt" )
  28. #define ZONE_NET_SORT_OPTION_KEY wxT( "Zone_NetSort_Opt" )
  29. #define ZONE_NET_FILTER_STRING_KEY wxT( "Zone_Filter_Opt" )
  30. #define ZONE_THERMAL_RELIEF_GAP_STRING_KEY wxT( "Zone_TH_Gap" )
  31. #define ZONE_THERMAL_RELIEF_COPPER_WIDTH_STRING_KEY wxT( "Zone_TH_Copper_Width" )
  32. #define ZONE_CLEARANCE_WIDTH_STRING_KEY wxT( "Zone_Clearance" )
  33. #define ZONE_MIN_THICKNESS_WIDTH_STRING_KEY wxT( "Zone_Thickness" )
  34. // Default values in mils for parameters in ZONE_CONTAINER
  35. #define ZONE_THERMAL_RELIEF_GAP_MIL 20 // default value for ZONE_SETTINGS::m_ThermalReliefGap
  36. #define ZONE_THERMAL_RELIEF_COPPER_WIDTH_MIL 20 // default value for ZONE_SETTINGS::m_ThermalReliefCopperBridge
  37. #define ZONE_THICKNESS_MIL 10 // default value for ZONE_SETTINGS::m_ZoneMinThickness
  38. #define ZONE_THICKNESS_MIN_VALUE_MIL 1 // minimum acceptable value for ZONE_SETTINGS::m_ZoneMinThickness
  39. #define ZONE_CLEARANCE_MIL 20 // default value for ZONE_SETTINGS::m_ZoneClearance
  40. #define ZONE_CLEARANCE_MAX_VALUE_MIL 500 // maximum acceptable value for ZONE_SETTINGS::m_ZoneClearance
  41. #define ZONE_EXPORT_VALUES 1004 // Copper zone dialog reports wxID_OK, wxID_CANCEL or
  42. // ZONE_EXPORT_VALUES
  43. /// How pads are covered by copper in zone
  44. enum ZoneConnection {
  45. PAD_ZONE_CONN_INHERITED = -1,
  46. PAD_ZONE_CONN_NONE, ///< Pads are not covered
  47. PAD_ZONE_CONN_THERMAL, ///< Use thermal relief for pads
  48. PAD_ZONE_CONN_FULL, ///< pads are covered by copper
  49. PAD_ZONE_CONN_THT_THERMAL ///< Thermal relief only for THT pads
  50. };
  51. class ZONE_CONTAINER;
  52. class ZONE_SETTINGS;
  53. class PCB_BASE_FRAME;
  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. * Function InvokeCopperZonesEditor
  66. * invokes up a modal dialog window for copper zone editing.
  67. *
  68. * @param aCaller is the PCB_BASE_FRAME calling parent window for the modal dialog,
  69. * and it gives access to the BOARD through PCB_BASE_FRAME::GetBoard().
  70. * @param aSettings points to the ZONE_SETTINGS to edit.
  71. * @return int - tells if user aborted, changed only one zone, or all of them.
  72. */
  73. int InvokeCopperZonesEditor( PCB_BASE_FRAME* aCaller, ZONE_SETTINGS* aSettings );
  74. /**
  75. * Function InvokeKeepoutAreaEditor
  76. * invokes up a modal dialog window for copper zone editing.
  77. *
  78. * @param aCaller is the PCB_BASE_FRAME calling parent window for the modal dialog,
  79. * and it gives access to the BOARD through PCB_BASE_FRAME::GetBoard().
  80. * @param aSettings points to the ZONE_SETTINGS to edit.
  81. * @return int - tells if user aborted, changed only one zone, or all of them.
  82. */
  83. int InvokeKeepoutAreaEditor( PCB_BASE_FRAME* aCaller, ZONE_SETTINGS* aSettings );
  84. #endif // ZONES_H_