diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 06a93babc2..deb9c82dc7 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,29 @@ KiCad ChangeLog 2009 Please add newer entries at the top, list the date and your name with email address. +2009-oct-20 UPDATE Wayne Stambaugh +================================================================================ +Replace component library editor draw item dialog box. +* Created new component library editor draw item dialog box with + wxFormBuilder. +* Removed previous DialogBlocks version of the draw item dialog box. +* Removed some additional global variables used in component library + editor. +* Add IsFillable() method to draw item base object. + +wxWidgets 2.9 string fixes and other minor updates. +* Replace all known instances of (const wxChar*) casts to GetChars() for + wxWidgets 2.9 compatibility. +* Cleaned up get component dialog so last part gets saved on wild card + selections. +* Remove redundant schematic component drawing code. +* Added SCH_COMPONENT constructor to create new component from library + component object. +* Add message panel helpers to WinEDA_DrawFrame and update old message + panel access code. +* Using library viewer to add component to schematic now respects unit + and body style selection. + 2009-oct-14 UPDATE Wayne Stambaugh ================================================================================ Fix save last grid size and other minor updates. diff --git a/common/base_struct.cpp b/common/base_struct.cpp index bece3de2d9..4bb619258b 100644 --- a/common/base_struct.cpp +++ b/common/base_struct.cpp @@ -526,6 +526,21 @@ bool EDA_Rect::Intersects( const EDA_Rect aRect ) const } +/**************************************************/ +EDA_Rect& EDA_Rect::Inflate( int aDelta ) +/**************************************************/ + +/** Function Inflate + * Inflate "this": move each horizontal edgeand each vertical edge by aDelta + * toward rect outside + * if aDelta is negative, move toward rect inside (deflate) + * Works for positive and negative rect size + * + */ +{ + Inflate( aDelta, aDelta ); +} + /**************************************************/ EDA_Rect& EDA_Rect::Inflate( wxCoord dx, wxCoord dy ) /**************************************************/ diff --git a/copyright.h b/copyright.h index bc012ac046..7e5ca37737 100644 --- a/copyright.h +++ b/copyright.h @@ -12,7 +12,7 @@ may choose to document this corresponding work in the CHANGELOG.txt file. /* * This program source code file is part of KICAD, a free EDA CAD application. * - * Copyright (C) 1992-2008 Jean-Pierre Charras, jean-pierre.charras@inpg.fr + * Copyright (C) 1992-2008 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.fr * Copyright (C) 1992-2008 Kicad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or diff --git a/include/base_struct.h b/include/base_struct.h index 51dfa8c215..67bed4e858 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -207,8 +207,22 @@ public: */ operator wxRect() const { return wxRect( m_Pos, m_Size ); } + /** Inflate + * Inflate this object: move each horizontal edge by dx and each vertical edge by dy + * toward rect outside + * if dx and/or dy is negative, move toward rect inside (deflate) + * Works for positive and negative rect size + */ EDA_Rect& Inflate( wxCoord dx, wxCoord dy ); + /** Inflate + * Inflate this object: move each horizontal edge and each vertical edge by aDelta + * toward rect outside + * if aDelta is negative, move toward rect inside (deflate) + * Works for positive and negative rect size + */ + EDA_Rect& Inflate( int aDelta ); + /** Function Merge * Modify Position and Size of this in order to contain the given rect * mainly used to calculate bounding boxes diff --git a/include/board_item_struct.h b/include/class_board_item.h similarity index 98% rename from include/board_item_struct.h rename to include/class_board_item.h index 589ed931a7..8fae5c2085 100644 --- a/include/board_item_struct.h +++ b/include/class_board_item.h @@ -224,7 +224,8 @@ class NETCLASS; /** * Class BOARD_CONNECTED_ITEM * This is a base class derived from BOARD_ITEM for items that can be connected - * mainly: tracks and pads + * and have a net, a netname, a clearance ... + * mainly: tracks, pads and zones * Handle connection info */ class BOARD_CONNECTED_ITEM : public BOARD_ITEM @@ -248,7 +249,7 @@ public: * @return int - the net code. */ int GetNet() const; - void SetNet( int aNetCode ); + virtual void SetNet( int aNetCode ); /** * Function GetSubNet @@ -289,6 +290,10 @@ public: }; +/* + * class BOARD_ITEM_LIST + * Handles a collection of BOARD_ITEM elements +*/ class BOARD_ITEM_LIST : public BOARD_ITEM { typedef boost::ptr_vector ITEM_ARRAY; diff --git a/include/pcbstruct.h b/include/pcbstruct.h index 6056eb218f..db4f552bfd 100644 --- a/include/pcbstruct.h +++ b/include/pcbstruct.h @@ -7,7 +7,7 @@ #include "base_struct.h" #include "class_base_screen.h" -#include "board_item_struct.h" +#include "class_board_item.h" // Definitions relatives aux libariries #define ENTETE_LIBRAIRIE "PCBNEW-LibModule-V1" @@ -148,7 +148,7 @@ enum ELEMENTS_NUMBERS PAD_CU_VISIBLE, PAD_CMP_VISIBLE }; - + /** * Function IsValidLayerIndex * tests whether a given integer is a valid layer index @@ -170,7 +170,7 @@ inline bool IsValidCopperLayerIndex( int aLayerIndex ) { return aLayerIndex >= FIRST_COPPER_LAYER && aLayerIndex <= LAST_COPPER_LAYER; } - + /** * Function IsValidNonCopperLayerIndex * tests whether an integer is a valid non copper layer index @@ -181,15 +181,13 @@ inline bool IsValidNonCopperLayerIndex( int aLayerIndex ) { return aLayerIndex >= FIRST_NO_COPPER_LAYER && aLayerIndex <= LAST_NO_COPPER_LAYER; } - + // Class for handle current printed board design settings class EDA_BoardDesignSettings { public: int m_CopperLayerCount; // Number of copper layers for this design - int m_ViaDrill; // via drill (for the entire board) - int m_ViaDrillCustomValue; // via drill for vias which must have a defined drill value - int m_MicroViaDrill; // micro via drill (for the entire board) + int m_ViaDrillCustomValue; // via drill for vias that have a specific drill value int m_CurrentViaSize; // Current via size int m_CurrentMicroViaSize; // Current micro via size bool m_MicroViasAllowed; // true to allow micro vias @@ -200,10 +198,11 @@ public: int m_EdgeSegmentWidth; // current graphic line width (EDGE layer only) int m_PcbTextWidth; // current Pcb (not module) Text width wxSize m_PcbTextSize; // current Pcb (not module) Text size - int m_TrackClearance; // track to track and track to pads clearance int m_TrackMinWidth; // track min value for width ((min copper size value int m_ViasMinSize; // vias (not micro vias) min diameter + int m_ViasMinDrill; // vias (not micro vias) min drill diameter int m_MicroViasMinSize; // micro vias (not vias) min diameter + int m_MicroViasMinDrill; // micro vias (not vias) min drill diameter int m_MaskMargin; // Solder mask margin int m_LayerThickness; // Layer Thickness for 3D viewer @@ -239,7 +238,7 @@ public: * @param aMask = The new bit-mask of visible layers */ void SetVisibleLayers( int aMask ); - + /** * Function IsLayerVisible * tests whether a given layer is visible @@ -281,7 +280,7 @@ public: { m_VisibleElements = aMask; } - + /** * Function IsElementVisible * tests whether a given element category is visible diff --git a/include/wxPcbStruct.h b/include/wxPcbStruct.h index 0889efec48..6db769a767 100644 --- a/include/wxPcbStruct.h +++ b/include/wxPcbStruct.h @@ -87,6 +87,15 @@ public: void InstallConfigFrame( const wxPoint& pos ); void Process_Config( wxCommandEvent& event ); void Update_config( wxWindow* displayframe ); + /** Function Read_Config + * Read the project configuration file + * @param projectFileName = the config filename + * if not found use kicad.pro + * if not found : initialize default values + * @return true if the current config is modified, false if no change + */ + bool Read_Config( const wxString& projectFileName ); + void OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct ); bool OnHotkeyDeleteItem( wxDC* DC, EDA_BaseStruct* DrawStruct ); diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index af0b084758..b005efc605 100644 Binary files a/internat/fr/kicad.mo and b/internat/fr/kicad.mo differ diff --git a/internat/fr/kicad.po b/internat/fr/kicad.po index 94b2e4f19e..8c85adfb68 100644 --- a/internat/fr/kicad.po +++ b/internat/fr/kicad.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: kicad\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-10-18 14:36+0100\n" -"PO-Revision-Date: 2009-10-18 14:39+0100\n" +"POT-Creation-Date: 2009-10-21 13:43+0100\n" +"PO-Revision-Date: 2009-10-21 13:45+0100\n" "Last-Translator: \n" "Language-Team: kicad team \n" "MIME-Version: 1.0\n" @@ -23,6 +23,7 @@ msgstr "" "X-Poedit-SearchPath-7: share\n" #: pcbnew/pcbnew.cpp:80 +#, fuzzy msgid "Pcbnew is already running, Continue?" msgstr "Pcbnew est en cours d'exécution. Continuer ?" @@ -81,11 +82,11 @@ msgstr "Choisir la précision des nombres en format EXCELLON" #: pcbnew/dialog_gendrill.cpp:192 msgid "absolute" -msgstr "Absolu" +msgstr "absolu" #: pcbnew/dialog_gendrill.cpp:193 msgid "auxiliary axis" -msgstr "Axe Auxiliaire" +msgstr "axe auxiliaire" #: pcbnew/dialog_gendrill.cpp:194 msgid "Drill Origin:" @@ -463,6 +464,22 @@ msgstr "Le texte est la REFERENCE!" msgid "Text is VALUE!" msgstr "Le texte est la VALEUR!" +#: pcbnew/pcbframe.cpp:293 +msgid "Board modified, Save before exit ?" +msgstr "Circuit Imprimé modifié, Sauver avant de quitter ?" + +#: pcbnew/pcbframe.cpp:294 +msgid "Confirmation" +msgstr "Confirmation" + +#: pcbnew/pcbframe.cpp:332 +msgid "3D Frame already opened" +msgstr "Fenêtre 3D déjà ouverte" + +#: pcbnew/pcbframe.cpp:336 +msgid "3D Viewer" +msgstr "Visu 3D" + #: pcbnew/solve.cpp:240 msgid "Abort routing?" msgstr "Arrêter le routage?" @@ -618,6 +635,10 @@ msgstr "" "Plan de perçage: trop de diamètres différents pour tracer 1 symbole par diamètre (max 13)\n" "Le tracé utilise des cercles pour quelques valeurs " +#: pcbnew/ioascii.cpp:175 +msgid "Error: Unexpected end of file !" +msgstr "Erreur: Fin de fichier inattendue !" + #: pcbnew/modedit_onclick.cpp:203 msgid "End Tool" msgstr "Fin Outil" @@ -1127,6 +1148,54 @@ msgstr "Forme X" msgid "Target Shape:" msgstr "Forme Mire:" +#: pcbnew/dialog_initpcb.cpp:103 +msgid "Items to delete" +msgstr "Eléments à effacer" + +#: pcbnew/dialog_initpcb.cpp:107 +msgid "Delete Zones" +msgstr "Effacer Zones" + +#: pcbnew/dialog_initpcb.cpp:111 +msgid "Delete Texts" +msgstr "Effacer Textes" + +#: pcbnew/dialog_initpcb.cpp:115 +msgid "Delete Edges" +msgstr "Effacements des contours" + +#: pcbnew/dialog_initpcb.cpp:119 +msgid "Delete Drawings" +msgstr "Effacement éléments de tracé" + +#: pcbnew/dialog_initpcb.cpp:123 +msgid "Delete Modules" +msgstr "Effacement des Modules" + +#: pcbnew/dialog_initpcb.cpp:127 +msgid "Delete Tracks" +msgstr "Effacer Pistes" + +#: pcbnew/dialog_initpcb.cpp:131 +msgid "Delete Markers" +msgstr "Effacer Marqueurs" + +#: pcbnew/dialog_initpcb.cpp:135 +msgid "Clear Board" +msgstr "Effacement du C.I." + +#: pcbnew/dialog_initpcb.cpp:142 +msgid "Track Filter" +msgstr "Filtre Piste" + +#: pcbnew/dialog_initpcb.cpp:146 +msgid "Include AutoRouted Tracks" +msgstr "Inclure Pistes Autoroutées" + +#: pcbnew/dialog_initpcb.cpp:150 +msgid "Include Locked Tracks" +msgstr "Inclure Pistes Verrouillées" + #: pcbnew/tool_pcb.cpp:29 msgid "" "Show active layer selections\n" @@ -1403,74 +1472,10 @@ msgstr "Grille" msgid "User Grid" msgstr "Grille perso" -#: pcbnew/tool_pcb.cpp:778 +#: pcbnew/tool_pcb.cpp:779 msgid "+/- to switch" msgstr "+/- pour commuter" -#: pcbnew/dialog_initpcb.cpp:103 -msgid "Items to delete" -msgstr "Eléments à effacer" - -#: pcbnew/dialog_initpcb.cpp:107 -msgid "Delete Zones" -msgstr "Effacer Zones" - -#: pcbnew/dialog_initpcb.cpp:111 -msgid "Delete Texts" -msgstr "Effacer Textes" - -#: pcbnew/dialog_initpcb.cpp:115 -msgid "Delete Edges" -msgstr "Effacements des contours" - -#: pcbnew/dialog_initpcb.cpp:119 -msgid "Delete Drawings" -msgstr "Effacement éléments de tracé" - -#: pcbnew/dialog_initpcb.cpp:123 -msgid "Delete Modules" -msgstr "Effacement des Modules" - -#: pcbnew/dialog_initpcb.cpp:127 -msgid "Delete Tracks" -msgstr "Effacer Pistes" - -#: pcbnew/dialog_initpcb.cpp:131 -msgid "Delete Markers" -msgstr "Effacer Marqueurs" - -#: pcbnew/dialog_initpcb.cpp:135 -msgid "Clear Board" -msgstr "Effacement du C.I." - -#: pcbnew/dialog_initpcb.cpp:142 -msgid "Track Filter" -msgstr "Filtre Piste" - -#: pcbnew/dialog_initpcb.cpp:146 -msgid "Include AutoRouted Tracks" -msgstr "Inclure Pistes Autoroutées" - -#: pcbnew/dialog_initpcb.cpp:150 -msgid "Include Locked Tracks" -msgstr "Inclure Pistes Verrouillées" - -#: pcbnew/pcbframe.cpp:292 -msgid "Board modified, Save before exit ?" -msgstr "Circuit Imprimé modifié, Sauver avant de quitter ?" - -#: pcbnew/pcbframe.cpp:293 -msgid "Confirmation" -msgstr "Confirmation" - -#: pcbnew/pcbframe.cpp:331 -msgid "3D Frame already opened" -msgstr "Fenêtre 3D déjà ouverte" - -#: pcbnew/pcbframe.cpp:335 -msgid "3D Viewer" -msgstr "Visu 3D" - #: pcbnew/find.cpp:117 msgid "Marker found" msgstr "Marqueur trouvé" @@ -1759,55 +1764,55 @@ msgstr "Garder" msgid "Deselect this layer to select the No Change state" msgstr "Désélectionner cette couche pour restorer l'option Pas de Changement" -#: pcbnew/class_zone.cpp:914 +#: pcbnew/class_zone.cpp:908 msgid "Zone Outline" msgstr "Contour de Zone" -#: pcbnew/class_zone.cpp:918 +#: pcbnew/class_zone.cpp:912 msgid "(Cutout)" msgstr "(Cutout)" -#: pcbnew/class_zone.cpp:920 +#: pcbnew/class_zone.cpp:914 msgid "Type" msgstr "Type" -#: pcbnew/class_zone.cpp:937 +#: pcbnew/class_zone.cpp:931 msgid "Not Found" msgstr " Non Trouvé" -#: pcbnew/class_zone.cpp:940 +#: pcbnew/class_zone.cpp:934 msgid "NetName" msgstr "NetName" -#: pcbnew/class_zone.cpp:943 +#: pcbnew/class_zone.cpp:937 msgid "Non Copper Zone" msgstr "Zone non Cuivre" -#: pcbnew/class_zone.cpp:947 +#: pcbnew/class_zone.cpp:941 msgid "NetCode" msgstr "NetCode" -#: pcbnew/class_zone.cpp:953 +#: pcbnew/class_zone.cpp:947 msgid "Corners" msgstr "Sommets" -#: pcbnew/class_zone.cpp:956 +#: pcbnew/class_zone.cpp:950 msgid "Segments" msgstr "Segments" -#: pcbnew/class_zone.cpp:958 +#: pcbnew/class_zone.cpp:952 msgid "Polygons" msgstr "Polygones" -#: pcbnew/class_zone.cpp:959 +#: pcbnew/class_zone.cpp:953 msgid "Fill mode" msgstr "Mode de remplissage" -#: pcbnew/class_zone.cpp:963 +#: pcbnew/class_zone.cpp:957 msgid "Hatch lines" msgstr "Lignes de Hachure" -#: pcbnew/class_zone.cpp:968 +#: pcbnew/class_zone.cpp:962 msgid "Corners in DrawList" msgstr "Sommets en Liste de dessin" @@ -2268,21 +2273,34 @@ msgstr "Créer Fichier " msgid " error" msgstr " erreur" -#: pcbnew/dialog_track_options.cpp:81 +#: pcbnew/pcbcfg.cpp:88 +msgid "Read Project File" +msgstr "Lire Fichier Projet" + +#: pcbnew/pcbcfg.cpp:98 +#, c-format +msgid "File %s not found" +msgstr "Fichier %s non trouvé" + +#: pcbnew/pcbcfg.cpp:233 +msgid "Save Project File" +msgstr "Sauver Fichier Projet" + +#: pcbnew/dialog_track_options.cpp:77 msgid "Enter new via diameter value:" msgstr "Entrer une nouvelle valeur du diamètre de via" -#: pcbnew/dialog_track_options.cpp:96 -#: pcbnew/dialog_track_options.cpp:151 +#: pcbnew/dialog_track_options.cpp:92 +#: pcbnew/dialog_track_options.cpp:147 msgid "Incorrect entered value. Aborted" msgstr "Valeur entrée incorrecte. Annulation" -#: pcbnew/dialog_track_options.cpp:106 -#: pcbnew/dialog_track_options.cpp:161 +#: pcbnew/dialog_track_options.cpp:102 +#: pcbnew/dialog_track_options.cpp:157 msgid "Too many values in list (max count reached). Aborted" msgstr "trop de valeurs en liste (compte maxi. atteint). Abandon" -#: pcbnew/dialog_track_options.cpp:136 +#: pcbnew/dialog_track_options.cpp:132 msgid "Enter new track size value:" msgstr "Entrer la nouvelle valeur le la largeur de piste:" @@ -2295,12 +2313,12 @@ msgid "Vias Custom Sizes List:" msgstr "Liste des Tailles de Vias Supplémentaires" #: pcbnew/dialog_track_options_base.cpp:43 -#: pcbnew/dialog_track_options_base.cpp:109 +#: pcbnew/dialog_track_options_base.cpp:85 msgid "Add" msgstr "Ajouter" #: pcbnew/dialog_track_options_base.cpp:46 -#: pcbnew/dialog_track_options_base.cpp:112 +#: pcbnew/dialog_track_options_base.cpp:88 msgid "Delete" msgstr "Supprimer" @@ -2329,58 +2347,18 @@ msgstr "" "et mettre le trou de la via à cette valeur spécifique en utilisant le menu popup." #: pcbnew/dialog_track_options_base.cpp:74 -msgid "Vias Options:" -msgstr "Options Vias:" - -#: pcbnew/dialog_track_options_base.cpp:76 -msgid "Through via" -msgstr "Via traversante" - -#: pcbnew/dialog_track_options_base.cpp:76 -msgid "Blind or buried via" -msgstr "Via enterrée ou aveugle" - -#: pcbnew/dialog_track_options_base.cpp:78 -msgid "Default Via Type" -msgstr "Via par Défaut" - -#: pcbnew/dialog_track_options_base.cpp:80 -msgid "" -"Select the current via type.\n" -"Trough via is the usual selection" -msgstr "" -"Sélection du type de via courant.\n" -"Via traversante est la sélection usuelle." - -#: pcbnew/dialog_track_options_base.cpp:87 -msgid "Do not allow micro vias" -msgstr "Ne pas autoriser les micro vias" - -#: pcbnew/dialog_track_options_base.cpp:87 -msgid "Allow micro vias" -msgstr "Autoriser les micro vias" - -#: pcbnew/dialog_track_options_base.cpp:91 -msgid "" -"Allows or do not allow use of micro vias\n" -"They are very small vias only from an external copper layer to its near neightbour" -msgstr "" -"Autorise ou non l'utilisation de micro vias\n" -"Ce sont de petites vias allant d'une couche externe à la plus proche couche interne uniquement" - -#: pcbnew/dialog_track_options_base.cpp:98 msgid "Dimensions:" msgstr "Dimensions:" -#: pcbnew/dialog_track_options_base.cpp:101 +#: pcbnew/dialog_track_options_base.cpp:77 msgid "Tracks Custom Widths List:" msgstr "Liste des Largeurs de Pistes Supplémentaires" -#: pcbnew/dialog_track_options_base.cpp:122 +#: pcbnew/dialog_track_options_base.cpp:98 msgid "Pads Mask Clearance:" msgstr "Marge Masque des Pads" -#: pcbnew/dialog_track_options_base.cpp:127 +#: pcbnew/dialog_track_options_base.cpp:103 msgid "This is the clearance between pads and the mask" msgstr "Ceci est l'espace entre pads et le masque" @@ -2516,6 +2494,59 @@ msgstr "Le caractère de délimitation de ligne doit être un seul caractère ' msgid "Un-terminated delimited string" msgstr "Ligne délimitée non terminée" +#: pcbnew/dialog_layers_setup.cpp:103 +msgid "Unknown" +msgstr "Inconnu" + +#: pcbnew/dialog_layers_setup.cpp:104 +msgid "Off-board, manufacturing" +msgstr "" + +#: pcbnew/dialog_layers_setup.cpp:105 +msgid "On-board, non-copper" +msgstr "" + +#: pcbnew/dialog_layers_setup.cpp:106 +msgid "On-board, copper" +msgstr "" + +#: pcbnew/dialog_layers_setup.cpp:107 +msgid "Board contour" +msgstr "Contour pcb" + +#: pcbnew/dialog_layers_setup.cpp:108 +#, fuzzy +msgid "Auxiliary" +msgstr "Axe Auxiliaire" + +#: pcbnew/dialog_layers_setup.cpp:116 +msgid "All Layers On" +msgstr "Toutes Couches Actives" + +#: pcbnew/dialog_layers_setup.cpp:117 +msgid "Single Side" +msgstr "Simple Face" + +#: pcbnew/dialog_layers_setup.cpp:118 +msgid "Single Side, SMD on Back" +msgstr "" + +#: pcbnew/dialog_layers_setup.cpp:119 +msgid "Two Layers, Parts on Front" +msgstr "2 couches, Composants sur le Dessus" + +#: pcbnew/dialog_layers_setup.cpp:120 +msgid "Two Layers, Parts on Both Faces" +msgstr "2 couches, Composants sur les 2 faces" + +#: pcbnew/dialog_layers_setup.cpp:121 +msgid "Four Layers, Parts on Front" +msgstr "4 couches, Composants sur le Dessus" + +#: pcbnew/dialog_layers_setup.cpp:122 +msgid "Four Layers, Parts on Both Faces" +msgstr "4 couches, Composants sur les 2 faces" + #: pcbnew/dialog_drc.cpp:136 #: pcbnew/dialog_drc.cpp:210 #, c-format @@ -2535,355 +2566,6 @@ msgstr "Fichier rapport DRC (.rpt)|*.rpt" msgid "Save DRC Report File" msgstr "Sauver Fichier Rapport DRC:" -#: pcbnew/menubarpcb.cpp:33 -msgid "&New Board" -msgstr "&Nouveau Circuit Imprimé" - -#: pcbnew/menubarpcb.cpp:34 -msgid "Clear old board and initialize a new one" -msgstr "Effacer ancien C.I. et créer un nouveau" - -#: pcbnew/menubarpcb.cpp:39 -msgid "&Load Board" -msgstr "Charger Circuit Imprimé" - -#: pcbnew/menubarpcb.cpp:40 -msgid "Delete old board and load new board" -msgstr "Effacer ancien C.I. et charger un nouveau" - -#: pcbnew/menubarpcb.cpp:45 -msgid "Append Board" -msgstr "Ajouter Circuit Imprimé" - -#: pcbnew/menubarpcb.cpp:46 -msgid "Add board to old board" -msgstr "Ajouter un C.I. au C.I. actuel" - -#: pcbnew/menubarpcb.cpp:51 -msgid "&Rescue" -msgstr "&Secours" - -#: pcbnew/menubarpcb.cpp:52 -msgid "Clear old board and get last rescue file" -msgstr "Effacer C.I. actuel et reprendre le dernier fichier secours" - -#: pcbnew/menubarpcb.cpp:57 -msgid "&Previous Version" -msgstr "&Précédente Version" - -#: pcbnew/menubarpcb.cpp:58 -msgid "Clear old board and get old version of board" -msgstr "Effacer le C.I. actuel et reprendre l'ancienne version" - -#: pcbnew/menubarpcb.cpp:65 -msgid "&Save Board\tCtrl-S" -msgstr "&Sauver Circuit Imprimé (Ctrl S)" - -#: pcbnew/menubarpcb.cpp:65 -msgid "Save current board" -msgstr "Sauver le C.I. actuel" - -#: pcbnew/menubarpcb.cpp:70 -msgid "Save Board as..." -msgstr "Sauver C.I. sous.." - -#: pcbnew/menubarpcb.cpp:71 -msgid "Save current board as.." -msgstr "Sauver le Circuit Imprimé courant sous.." - -#: pcbnew/menubarpcb.cpp:77 -msgid "P&rint" -msgstr "Imp&rimer" - -#: pcbnew/menubarpcb.cpp:78 -msgid "Print pcb board" -msgstr "Imprimer C.I." - -#: pcbnew/menubarpcb.cpp:82 -msgid "Print S&VG" -msgstr "Impression S&VG" - -#: pcbnew/menubarpcb.cpp:83 -msgid "Plot pcb board in SVG format" -msgstr "Tracer le circuit imprimé en format SVG" - -#: pcbnew/menubarpcb.cpp:88 -msgid "&Plot" -msgstr "&Tracer" - -#: pcbnew/menubarpcb.cpp:89 -msgid "Plot (HPGL, PostScript, or Gerber format)" -msgstr "Tracer ( format HPGL, POSTSCRIPT ou GERBER)" - -#: pcbnew/menubarpcb.cpp:98 -msgid "&Specctra DSN" -msgstr "&Specctra DSN" - -#: pcbnew/menubarpcb.cpp:99 -msgid "Export the current board to a \"Specctra DSN\" file" -msgstr "Exporte le CI courant dans un fichier au format \"Specctra DSN\"" - -#: pcbnew/menubarpcb.cpp:104 -msgid "&GenCAD" -msgstr "&GenCAD" - -#: pcbnew/menubarpcb.cpp:104 -msgid "Export GenCAD Format" -msgstr "Exporter en Format GenCAD" - -#: pcbnew/menubarpcb.cpp:109 -msgid "&Module Report" -msgstr "Rapport &Modules" - -#: pcbnew/menubarpcb.cpp:110 -msgid "Create a board report (footprint report)" -msgstr "Créer un fichier rapport (rapport sur modules)" - -#: pcbnew/menubarpcb.cpp:114 -msgid "&Export" -msgstr "&Exporter" - -#: pcbnew/menubarpcb.cpp:115 -msgid "Export board" -msgstr "Exporter le C.I." - -#: pcbnew/menubarpcb.cpp:123 -msgid "&Specctra Session" -msgstr "&Specctra Session" - -#: pcbnew/menubarpcb.cpp:124 -msgid "Import a routed \"Specctra Session\" (*.ses) file" -msgstr "Importer un fichier de routage \"Specctra Session\" (*.ses) " - -#: pcbnew/menubarpcb.cpp:136 -msgid "Import" -msgstr "Importer" - -#: pcbnew/menubarpcb.cpp:137 -msgid "Import files" -msgstr "Importer fichiers" - -#: pcbnew/menubarpcb.cpp:145 -msgid "Add New Footprints" -msgstr "Ajouter Nouveaux Modules" - -#: pcbnew/menubarpcb.cpp:146 -msgid "Archive new footprints only in a library (keep other footprints in this lib)" -msgstr "Archiver nouveaux modules seuls dans une librairie (garder les autres modules de cette librairie)" - -#: pcbnew/menubarpcb.cpp:150 -msgid "Create Footprint Archive" -msgstr "Créer Archive des Modules" - -#: pcbnew/menubarpcb.cpp:151 -msgid "Archive all footprints in a library(old lib will be deleted)" -msgstr "Archiver tous les modules dans une librairie (ancienne librairie supprimée)" - -#: pcbnew/menubarpcb.cpp:156 -msgid "Archive Footprints" -msgstr "Archiver Modules" - -#: pcbnew/menubarpcb.cpp:157 -msgid "Archive or add footprints in a library file" -msgstr "Archiver ou ajouter les modules dans un fichier librairie" - -#: pcbnew/menubarpcb.cpp:162 -msgid "E&xit" -msgstr "&Quitter" - -#: pcbnew/menubarpcb.cpp:163 -msgid "Quit PCBNEW" -msgstr "Quitter PCBNEW" - -#: pcbnew/menubarpcb.cpp:173 -msgid "&Library" -msgstr "&Librairie" - -#: pcbnew/menubarpcb.cpp:174 -msgid "Setting libraries, directories and others..." -msgstr "Sélectionner les librairies , répertoires et autres" - -#: pcbnew/menubarpcb.cpp:178 -msgid "&Colors and Visibility" -msgstr "&Couleurs et Visibilité" - -#: pcbnew/menubarpcb.cpp:179 -msgid "Select colors and visibilty of layers and some items" -msgstr "Sélection les couleurs et l' affichage des couches et de certains éléments du C.I." - -#: pcbnew/menubarpcb.cpp:183 -msgid "&General" -msgstr "&Général " - -#: pcbnew/menubarpcb.cpp:184 -msgid "Select general options for PCBNEW" -msgstr " Sélection options générales pour PCBNEW" - -#: pcbnew/menubarpcb.cpp:188 -msgid "&Display" -msgstr "&Affichage" - -#: pcbnew/menubarpcb.cpp:189 -msgid "Select how items (pads, tracks texts ... ) are displayed" -msgstr "Sélectionner comment les éléments (pads, pistes, textes ...) sont affichés" - -#: pcbnew/menubarpcb.cpp:196 -msgid "&Save Preferences" -msgstr "&Sauver Préférences" - -#: pcbnew/menubarpcb.cpp:197 -msgid "Save application preferences" -msgstr "Sauver les préférences de l'application" - -#: pcbnew/menubarpcb.cpp:201 -msgid "&Read Preferences" -msgstr "&Lire Préférences" - -#: pcbnew/menubarpcb.cpp:202 -msgid "Read application preferences" -msgstr "Lire les préférences de l'application" - -#: pcbnew/menubarpcb.cpp:212 -msgid "Design Rules" -msgstr "Règles de Conception" - -#: pcbnew/menubarpcb.cpp:212 -msgid "Open the design rules dialog editor" -msgstr "Ouvrir la fenêtre de dialogue de l'éditeur de règles de conception" - -#: pcbnew/menubarpcb.cpp:216 -msgid "Copper &Layers" -msgstr "Couches &Cuivre." - -#: pcbnew/menubarpcb.cpp:217 -msgid "Select copper layers count and layers names" -msgstr "Sélection du nombre de couches cuivre et du nom des couches" - -#: pcbnew/menubarpcb.cpp:227 -msgid "Tracks and Vias" -msgstr "Pistes et Vias" - -#: pcbnew/menubarpcb.cpp:228 -msgid "Adjust size and width for tracks and vias" -msgstr "Ajuster largeur des pistes et diamètre de vias" - -#: pcbnew/menubarpcb.cpp:238 -msgid "Texts and Drawings" -msgstr "Textes et Tracés" - -#: pcbnew/menubarpcb.cpp:243 -#: pcbnew/class_netinfo_item.cpp:150 -msgid "Pads" -msgstr "Pads" - -#: pcbnew/menubarpcb.cpp:244 -msgid "Adjust size,shape,layers... for pads" -msgstr "Ajuster taille, forme, couches... pour pads" - -#: pcbnew/menubarpcb.cpp:249 -msgid "&Save Setup" -msgstr "&Sauver Options" - -#: pcbnew/menubarpcb.cpp:250 -msgid "Save options in current directory" -msgstr "Sauver les options en répertoire de travail" - -#: pcbnew/menubarpcb.cpp:259 -msgid "Generate &Modules Position" -msgstr "Créer &Modules Position" - -#: pcbnew/menubarpcb.cpp:260 -msgid "Generate modules position file" -msgstr "Gen fichier Position des Modules" - -#: pcbnew/menubarpcb.cpp:265 -msgid "Create &Drill File" -msgstr "Créer &Fichier de Perçage" - -#: pcbnew/menubarpcb.cpp:266 -msgid "Generate excellon2 drill file" -msgstr "Créer Fichier de perçage Excellon2" - -#: pcbnew/menubarpcb.cpp:271 -msgid "Create &Component File" -msgstr "Créer &Fichier Cmp" - -#: pcbnew/menubarpcb.cpp:272 -msgid "Recreate .cmp file for CvPcb" -msgstr "Recréer le fichier .cmp pour CvPcb" - -#: pcbnew/menubarpcb.cpp:277 -msgid "Create &BOM File" -msgstr "Créer Fichier Liste du &Matériel" - -#: pcbnew/menubarpcb.cpp:278 -msgid "Recreate .csv file for CvPcb" -msgstr "Recréer le fichier .csv pour CvPcb" - -#: pcbnew/menubarpcb.cpp:287 -msgid "Global &Deletions" -msgstr "Effacements &Généraux" - -#: pcbnew/menubarpcb.cpp:288 -msgid "Delete tracks, modules, texts... on board" -msgstr "Effacer pistes, modules, textes... sur le C.I." - -#: pcbnew/menubarpcb.cpp:293 -msgid "&List Nets" -msgstr "Liste Equipots" - -#: pcbnew/menubarpcb.cpp:294 -msgid "List nets (names and id)" -msgstr "Lister équipotentielles (noms et numéros d'identification)" - -#: pcbnew/menubarpcb.cpp:299 -msgid "&Track Operations" -msgstr "Opéra&tions sur Pistes" - -#: pcbnew/menubarpcb.cpp:300 -msgid "Clean stubs, vias, delete break points, or connect dangling tracks to pads and vias" -msgstr "Nettoyer bouts de pistes, vias, points inutiles, ou connecter extrémités de pistes mal connectées au centre de pads ou vias" - -#: pcbnew/menubarpcb.cpp:305 -msgid "&Swap Layers" -msgstr "&Permutte Couches" - -#: pcbnew/menubarpcb.cpp:306 -msgid "Swap tracks on copper layers or drawings on others layers" -msgstr "Permutation de couches" - -#: pcbnew/menubarpcb.cpp:315 -msgid "Open the PCBNEW manual" -msgstr "Ouvrir la Documentation de PCBNEW" - -#: pcbnew/menubarpcb.cpp:319 -msgid "&About PCBNEW" -msgstr "&Au Sujet de PCBNEW" - -#: pcbnew/menubarpcb.cpp:320 -msgid "About PCBNEW printed circuit board designer" -msgstr "Au Sujet de PCBNEW outil de conception de C.I." - -#: pcbnew/menubarpcb.cpp:333 -msgid "&File" -msgstr "&Fichiers" - -#: pcbnew/menubarpcb.cpp:334 -msgid "&Preferences" -msgstr "&Préférences" - -#: pcbnew/menubarpcb.cpp:335 -msgid "&Design Rules" -msgstr "&Règles de Conception" - -#: pcbnew/menubarpcb.cpp:337 -msgid "&Miscellaneous" -msgstr "&Divers" - -#: pcbnew/menubarpcb.cpp:338 -msgid "P&ostprocess" -msgstr "P&ostprocesseurs" - #: pcbnew/moduleframe.cpp:221 msgid "Module Editor: Module modified! Continue?" msgstr "Editeur de Module: Module modifié! Continuer ?" @@ -2926,7 +2608,6 @@ msgid "Delete Pad (module %s %s) " msgstr "Effacer Pad (module %s %s) " #: pcbnew/modules.cpp:82 -#: pcbnew/librairi.cpp:523 msgid "Name:" msgstr "Nom:" @@ -2950,6 +2631,10 @@ msgstr "Nom Equipot" msgid "Net Code" msgstr "Net Code" +#: pcbnew/class_netinfo_item.cpp:150 +msgid "Pads" +msgstr "Pads" + #: pcbnew/class_netinfo_item.cpp:165 msgid "Vias" msgstr "Vias" @@ -3610,6 +3295,350 @@ msgstr "couche E.C.O.2" msgid "Draft layer" msgstr "Couche dessin" +#: pcbnew/menubarpcb.cpp:33 +msgid "&New Board" +msgstr "&Nouveau Circuit Imprimé" + +#: pcbnew/menubarpcb.cpp:34 +msgid "Clear old board and initialize a new one" +msgstr "Effacer ancien C.I. et créer un nouveau" + +#: pcbnew/menubarpcb.cpp:39 +msgid "&Load Board" +msgstr "Charger Circuit Imprimé" + +#: pcbnew/menubarpcb.cpp:40 +msgid "Delete old board and load new board" +msgstr "Effacer ancien C.I. et charger un nouveau" + +#: pcbnew/menubarpcb.cpp:45 +msgid "Append Board" +msgstr "Ajouter Circuit Imprimé" + +#: pcbnew/menubarpcb.cpp:46 +msgid "Add board to old board" +msgstr "Ajouter un C.I. au C.I. actuel" + +#: pcbnew/menubarpcb.cpp:51 +msgid "&Rescue" +msgstr "&Secours" + +#: pcbnew/menubarpcb.cpp:52 +msgid "Clear old board and get last rescue file" +msgstr "Effacer C.I. actuel et reprendre le dernier fichier secours" + +#: pcbnew/menubarpcb.cpp:57 +msgid "&Previous Version" +msgstr "&Précédente Version" + +#: pcbnew/menubarpcb.cpp:58 +msgid "Clear old board and get old version of board" +msgstr "Effacer le C.I. actuel et reprendre l'ancienne version" + +#: pcbnew/menubarpcb.cpp:65 +msgid "&Save Board\tCtrl-S" +msgstr "&Sauver Circuit Imprimé (Ctrl S)" + +#: pcbnew/menubarpcb.cpp:65 +msgid "Save current board" +msgstr "Sauver le C.I. actuel" + +#: pcbnew/menubarpcb.cpp:70 +msgid "Save Board as..." +msgstr "Sauver C.I. sous.." + +#: pcbnew/menubarpcb.cpp:71 +msgid "Save current board as.." +msgstr "Sauver le Circuit Imprimé courant sous.." + +#: pcbnew/menubarpcb.cpp:77 +msgid "P&rint" +msgstr "Imp&rimer" + +#: pcbnew/menubarpcb.cpp:78 +msgid "Print pcb board" +msgstr "Imprimer C.I." + +#: pcbnew/menubarpcb.cpp:82 +msgid "Print S&VG" +msgstr "Impression S&VG" + +#: pcbnew/menubarpcb.cpp:83 +msgid "Plot pcb board in SVG format" +msgstr "Tracer le circuit imprimé en format SVG" + +#: pcbnew/menubarpcb.cpp:88 +msgid "&Plot" +msgstr "&Tracer" + +#: pcbnew/menubarpcb.cpp:89 +msgid "Plot (HPGL, PostScript, or Gerber format)" +msgstr "Tracer ( format HPGL, POSTSCRIPT ou GERBER)" + +#: pcbnew/menubarpcb.cpp:98 +msgid "&Specctra DSN" +msgstr "&Specctra DSN" + +#: pcbnew/menubarpcb.cpp:99 +msgid "Export the current board to a \"Specctra DSN\" file" +msgstr "Exporte le CI courant dans un fichier au format \"Specctra DSN\"" + +#: pcbnew/menubarpcb.cpp:104 +msgid "&GenCAD" +msgstr "&GenCAD" + +#: pcbnew/menubarpcb.cpp:104 +msgid "Export GenCAD Format" +msgstr "Exporter en Format GenCAD" + +#: pcbnew/menubarpcb.cpp:109 +msgid "&Module Report" +msgstr "Rapport &Modules" + +#: pcbnew/menubarpcb.cpp:110 +msgid "Create a board report (footprint report)" +msgstr "Créer un fichier rapport (rapport sur modules)" + +#: pcbnew/menubarpcb.cpp:114 +msgid "&Export" +msgstr "&Exporter" + +#: pcbnew/menubarpcb.cpp:115 +msgid "Export board" +msgstr "Exporter le C.I." + +#: pcbnew/menubarpcb.cpp:123 +msgid "&Specctra Session" +msgstr "&Specctra Session" + +#: pcbnew/menubarpcb.cpp:124 +msgid "Import a routed \"Specctra Session\" (*.ses) file" +msgstr "Importer un fichier de routage \"Specctra Session\" (*.ses) " + +#: pcbnew/menubarpcb.cpp:136 +msgid "Import" +msgstr "Importer" + +#: pcbnew/menubarpcb.cpp:137 +msgid "Import files" +msgstr "Importer fichiers" + +#: pcbnew/menubarpcb.cpp:145 +msgid "Add New Footprints" +msgstr "Ajouter Nouveaux Modules" + +#: pcbnew/menubarpcb.cpp:146 +msgid "Archive new footprints only in a library (keep other footprints in this lib)" +msgstr "Archiver nouveaux modules seuls dans une librairie (garder les autres modules de cette librairie)" + +#: pcbnew/menubarpcb.cpp:150 +msgid "Create Footprint Archive" +msgstr "Créer Archive des Modules" + +#: pcbnew/menubarpcb.cpp:151 +msgid "Archive all footprints in a library(old lib will be deleted)" +msgstr "Archiver tous les modules dans une librairie (ancienne librairie supprimée)" + +#: pcbnew/menubarpcb.cpp:156 +msgid "Archive Footprints" +msgstr "Archiver Modules" + +#: pcbnew/menubarpcb.cpp:157 +msgid "Archive or add footprints in a library file" +msgstr "Archiver ou ajouter les modules dans un fichier librairie" + +#: pcbnew/menubarpcb.cpp:162 +msgid "E&xit" +msgstr "&Quitter" + +#: pcbnew/menubarpcb.cpp:163 +msgid "Quit PCBNEW" +msgstr "Quitter PCBNEW" + +#: pcbnew/menubarpcb.cpp:173 +msgid "&Library" +msgstr "&Librairie" + +#: pcbnew/menubarpcb.cpp:174 +msgid "Setting libraries, directories and others..." +msgstr "Sélectionner les librairies , répertoires et autres" + +#: pcbnew/menubarpcb.cpp:178 +msgid "&Colors and Visibility" +msgstr "&Couleurs et Visibilité" + +#: pcbnew/menubarpcb.cpp:179 +msgid "Select colors and visibilty of layers and some items" +msgstr "Sélection les couleurs et l' affichage des couches et de certains éléments du C.I." + +#: pcbnew/menubarpcb.cpp:183 +msgid "&General" +msgstr "&Général " + +#: pcbnew/menubarpcb.cpp:184 +msgid "Select general options for PCBNEW" +msgstr " Sélection options générales pour PCBNEW" + +#: pcbnew/menubarpcb.cpp:188 +msgid "&Display" +msgstr "&Affichage" + +#: pcbnew/menubarpcb.cpp:189 +msgid "Select how items (pads, tracks texts ... ) are displayed" +msgstr "Sélectionner comment les éléments (pads, pistes, textes ...) sont affichés" + +#: pcbnew/menubarpcb.cpp:196 +msgid "&Save Preferences" +msgstr "&Sauver Préférences" + +#: pcbnew/menubarpcb.cpp:197 +msgid "Save application preferences" +msgstr "Sauver les préférences de l'application" + +#: pcbnew/menubarpcb.cpp:201 +msgid "&Read Preferences" +msgstr "&Lire Préférences" + +#: pcbnew/menubarpcb.cpp:202 +msgid "Read application preferences" +msgstr "Lire les préférences de l'application" + +#: pcbnew/menubarpcb.cpp:212 +msgid "Design Rules" +msgstr "Règles de Conception" + +#: pcbnew/menubarpcb.cpp:212 +msgid "Open the design rules dialog editor" +msgstr "Ouvrir la fenêtre de dialogue de l'éditeur de règles de conception" + +#: pcbnew/menubarpcb.cpp:223 +msgid "&Layers Setup" +msgstr "&Options Couches" + +#: pcbnew/menubarpcb.cpp:224 +msgid "Enable and set properties of layers" +msgstr "" + +#: pcbnew/menubarpcb.cpp:235 +msgid "Tracks and Vias" +msgstr "Pistes et Vias" + +#: pcbnew/menubarpcb.cpp:236 +msgid "Adjust size and width for tracks and vias" +msgstr "Ajuster largeur des pistes et diamètre de vias" + +#: pcbnew/menubarpcb.cpp:246 +msgid "Texts and Drawings" +msgstr "Textes et Tracés" + +#: pcbnew/menubarpcb.cpp:252 +msgid "Adjust size,shape,layers... for pads" +msgstr "Ajuster taille, forme, couches... pour pads" + +#: pcbnew/menubarpcb.cpp:257 +msgid "&Save Setup" +msgstr "&Sauver Options" + +#: pcbnew/menubarpcb.cpp:258 +msgid "Save options in current directory" +msgstr "Sauver les options en répertoire de travail" + +#: pcbnew/menubarpcb.cpp:267 +msgid "Generate &Modules Position" +msgstr "Créer &Modules Position" + +#: pcbnew/menubarpcb.cpp:268 +msgid "Generate modules position file" +msgstr "Gen fichier Position des Modules" + +#: pcbnew/menubarpcb.cpp:273 +msgid "Create &Drill File" +msgstr "Créer &Fichier de Perçage" + +#: pcbnew/menubarpcb.cpp:274 +msgid "Generate excellon2 drill file" +msgstr "Créer Fichier de perçage Excellon2" + +#: pcbnew/menubarpcb.cpp:279 +msgid "Create &Component File" +msgstr "Créer &Fichier Cmp" + +#: pcbnew/menubarpcb.cpp:280 +msgid "Recreate .cmp file for CvPcb" +msgstr "Recréer le fichier .cmp pour CvPcb" + +#: pcbnew/menubarpcb.cpp:285 +msgid "Create &BOM File" +msgstr "Créer Fichier Liste du &Matériel" + +#: pcbnew/menubarpcb.cpp:286 +msgid "Recreate .csv file for CvPcb" +msgstr "Recréer le fichier .csv pour CvPcb" + +#: pcbnew/menubarpcb.cpp:295 +msgid "Global &Deletions" +msgstr "Effacements &Généraux" + +#: pcbnew/menubarpcb.cpp:296 +msgid "Delete tracks, modules, texts... on board" +msgstr "Effacer pistes, modules, textes... sur le C.I." + +#: pcbnew/menubarpcb.cpp:301 +msgid "&List Nets" +msgstr "Liste Equipots" + +#: pcbnew/menubarpcb.cpp:302 +msgid "List nets (names and id)" +msgstr "Lister équipotentielles (noms et numéros d'identification)" + +#: pcbnew/menubarpcb.cpp:307 +msgid "&Track Operations" +msgstr "Opéra&tions sur Pistes" + +#: pcbnew/menubarpcb.cpp:308 +msgid "Clean stubs, vias, delete break points, or connect dangling tracks to pads and vias" +msgstr "Nettoyer bouts de pistes, vias, points inutiles, ou connecter extrémités de pistes mal connectées au centre de pads ou vias" + +#: pcbnew/menubarpcb.cpp:313 +msgid "&Swap Layers" +msgstr "&Permutte Couches" + +#: pcbnew/menubarpcb.cpp:314 +msgid "Swap tracks on copper layers or drawings on others layers" +msgstr "Permutation de couches" + +#: pcbnew/menubarpcb.cpp:323 +msgid "Open the PCBNEW manual" +msgstr "Ouvrir la Documentation de PCBNEW" + +#: pcbnew/menubarpcb.cpp:327 +msgid "&About PCBNEW" +msgstr "&Au Sujet de PCBNEW" + +#: pcbnew/menubarpcb.cpp:328 +msgid "About PCBNEW printed circuit board designer" +msgstr "Au Sujet de PCBNEW outil de conception de C.I." + +#: pcbnew/menubarpcb.cpp:341 +msgid "&File" +msgstr "&Fichiers" + +#: pcbnew/menubarpcb.cpp:342 +msgid "&Preferences" +msgstr "&Préférences" + +#: pcbnew/menubarpcb.cpp:343 +msgid "&Design Rules" +msgstr "&Règles de Conception" + +#: pcbnew/menubarpcb.cpp:345 +msgid "&Miscellaneous" +msgstr "&Divers" + +#: pcbnew/menubarpcb.cpp:346 +msgid "P&ostprocess" +msgstr "P&ostprocesseurs" + #: pcbnew/dialog_SVG_print_base.cpp:25 msgid "Copper Layers:" msgstr "Couches Cuivre:" @@ -3875,23 +3904,6 @@ msgstr "Le fichier Session a une 'reference' à un composant non existant \"%s\" msgid "A wire_via references a missing padstack \"%s\"" msgstr "Une piste ou via a une référence vers un pad \"%s\" manquant" -#: pcbnew/pcbcfg.cpp:82 -msgid "Read Project File" -msgstr "Lire Fichier Projet" - -#: pcbnew/pcbcfg.cpp:92 -#, c-format -msgid "File %s not found" -msgstr "Fichier %s non trouvé" - -#: pcbnew/pcbcfg.cpp:227 -msgid "Save Project File" -msgstr "Sauver Fichier Projet" - -#: pcbnew/ioascii.cpp:175 -msgid "Error: Unexpected end of file !" -msgstr "Erreur: Fin de fichier inattendue !" - #: pcbnew/class_module.cpp:821 msgid "Last Change" msgstr "Last Change" @@ -3936,30 +3948,6 @@ msgstr "Fichier placement côté cuivre:" msgid "Module count" msgstr "Nb Modules" -#: pcbnew/class_board.cpp:45 -msgid "This is the default net class." -msgstr "Ceci est la Netclass par défaut" - -#: pcbnew/class_board.cpp:596 -msgid "Nodes" -msgstr "Nodes" - -#: pcbnew/class_board.cpp:599 -msgid "Nets" -msgstr "Nets" - -#: pcbnew/class_board.cpp:607 -msgid "Links" -msgstr "Liens" - -#: pcbnew/class_board.cpp:610 -msgid "Connect" -msgstr "Connect" - -#: pcbnew/class_board.cpp:613 -msgid "NoConn" -msgstr "Non Conn" - #: pcbnew/dialog_edit_module_text_base.cpp:19 #, c-format msgid "Module %s (%s) orient %.1f" @@ -4049,234 +4037,35 @@ msgstr "Surbrillance des équipotentielles" msgid "Local Ratsnest" msgstr "Montrer le chevelu général" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:22 -msgid "No Display" -msgstr "Pas d'affichage" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:24 -msgid "Display Polar Coord" -msgstr "Affichage coord Polaires" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:26 -msgid "" -"Activates the display of relative coordinates from relative origin (set by the space key)\n" -"to the cursor, in polar coordinates (angle and distance)" -msgstr "" -"Active l'affichage des coordonnées relatives à l'origine relative(positionnée par la touche espace)\n" -"au curseur, en coordonnées polaires (angle et distance)" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:32 -msgid "Units" -msgstr "Unités" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:34 -msgid "Selection of units used to display dimensions and positions of items" -msgstr "Sélection des unités pour afficher les dimensions et positions des items" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:38 -msgid "Small cross" -msgstr "Petite croix" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:38 -msgid "Full screen cursor" -msgstr "Curseur plein écran" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:40 -msgid "Cursor" -msgstr "Curseur" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:42 -msgid "Main cursor shape selection (small cross or large cursor)" -msgstr "Sélection de l'aspect du curseur principal (petite croix ou grand curseur)" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -msgid "1" -msgstr "1" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -msgid "2" -msgstr "2" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -msgid "4" -msgstr "4" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -msgid "6" -msgstr "6" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -msgid "8" -msgstr "8" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -msgid "10" -msgstr "10" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -msgid "12" -msgstr "12" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -msgid "14" -msgstr "14" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -msgid "16" -msgstr "16" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:55 -msgid "Active copper layers count selection" -msgstr "Sélection su nombre de couches cuivre actives" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:59 -msgid "Max Links:" -msgstr "Liens max:" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:64 -msgid "Adjust the number of ratsnets shown from cursor to closest pads" -msgstr "Ajuster le nombre de ratsnets montré du curseur aux pads les plus prêts" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:68 -msgid "Auto Save (minuts):" -msgstr "Sauveg. Auto (min)" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:73 -msgid "Delay after the first change to create a backup file of the board on disk." -msgstr "Délai après le premier changement pour créer un fichier de sauvegarde du circuit imprimé sur disque" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:82 -msgid "Drc ON" -msgstr "Drc ACTIVE" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:85 -msgid "" -"Enable/disable the DRC control.\n" -"When DRC is disable, all connections are allowed." -msgstr "" -"Active/désactive le contrôle DRC (Design Rule Check).\n" -"Lorsque de DRC est désactivé, toutes les connexions sont autorisées." - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:89 -msgid "Show Ratsnest" -msgstr "Montrer le chevelu général" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:91 -msgid "Show (or not) the full rastnest." -msgstr "Montrer(ou non) le chevelu complet" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:95 -msgid "Show Mod Ratsnest" -msgstr "Montrer le chevelu du module" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:97 -msgid "" -"Shows (or not) the local ratsnest relative to a footprint, when moving it.\n" -"This ratsnest is useful to place a footprint." -msgstr "" -"Montre (ou non) le chevelu local relatif à un module, lorsque on le déplace.\n" -"Ce chevelu est utile pour placer un module." - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:101 -msgid "Tracks Auto Del" -msgstr "Auto Supp. Pistes" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:103 -msgid "Enable/disable the automatic track deletion when recreating a track." -msgstr "Active/désactive l'effacement de piste automatique lorsque l'on recrée une piste." - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:107 -msgid "Track only 45 degrees" -msgstr "Piste à 45° seulement" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:109 -msgid "If enabled, force tracks directions to H, V or 45 degrees, when creating a track." -msgstr "Si activé, frorce la direction des pistes à H, V ou 45° en creation de piste" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:113 -msgid "Segments 45 Only" -msgstr "Segments 45 seulement" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:115 -msgid "If enabled, force segments directions to H, V or 45 degrees, when creating a segment on technical layers." -msgstr "Si activé, frorce la direction des segments à H, V ou 45° en création de segments sur couches techniques" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:119 -msgid "Auto PAN" -msgstr "Auto PAN" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:121 -msgid "Allows auto pan when creating a track, or moving an item." -msgstr "Autorise l'autopan en création de piste, ou lorsque on déplace un élément." - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:125 -msgid "Double Segm Track" -msgstr "2 segments pour piste" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:127 -msgid "If enabled, uses two track segments, with 45 degrees angle between them when creating a new track " -msgstr "Si activé, utiliser 2 segments de piste, avec un angle de 45 degrés entre eux, pour créer une nouvelle piste" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:136 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:144 -msgid "Never" -msgstr "Jamais" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:136 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:144 -msgid "When creating tracks" -msgstr "En création de pistes" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:136 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:144 -msgid "Always" -msgstr "Toujours" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:138 -msgid "Magnetic Pads" -msgstr " Pads magnétiques" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:140 -msgid "control the capture of the pcb cursor when the mouse cursor enters a pad area" -msgstr "Contrôle la capture du curseur pcb quand le curseur souris est sur un pad" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:146 -msgid "Magnetic Tracks" -msgstr "Pistes Magnétiques" - -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:148 -msgid "Control the capture of the pcb cursor when the mouse cursor enters a track" -msgstr "Contrôle la capture du curseur pcb quand le curseur souris passe sur une piste" - -#: pcbnew/class_track.cpp:918 +#: pcbnew/class_track.cpp:911 msgid "Track Length" msgstr "Long. Piste" -#: pcbnew/class_track.cpp:976 +#: pcbnew/class_track.cpp:969 msgid "Flags" msgstr "Flags" -#: pcbnew/class_track.cpp:988 +#: pcbnew/class_track.cpp:981 msgid "Status" msgstr "Status" -#: pcbnew/class_track.cpp:1011 +#: pcbnew/class_track.cpp:1004 msgid "Diam" msgstr "Diam" -#: pcbnew/class_track.cpp:1022 +#: pcbnew/class_track.cpp:1015 msgid "(Specific)" msgstr "(Specifique)" -#: pcbnew/class_track.cpp:1024 +#: pcbnew/class_track.cpp:1017 msgid "(Default)" msgstr "(Défaut)" -#: pcbnew/class_track.cpp:1037 +#: pcbnew/class_track.cpp:1030 msgid "Net Class" msgstr "Classe d'Equipot" -#: pcbnew/class_track.cpp:1044 +#: pcbnew/class_track.cpp:1037 msgid "Segment Length" msgstr "Long. Segment" @@ -5474,80 +5263,164 @@ msgstr "Ajout de stub (arc)" msgid "Add Polynomial Shape" msgstr "Ajout Forme polynomiale" -#: pcbnew/dialog_design_rules_base.cpp:20 +#: pcbnew/dialog_design_rules_base.cpp:25 msgid "Net Classes:" msgstr "Classes d'Equipots:" -#: pcbnew/dialog_design_rules_base.cpp:41 +#: pcbnew/dialog_design_rules_base.cpp:46 msgid "Track Width" msgstr "Epais. Piste" -#: pcbnew/dialog_design_rules_base.cpp:42 +#: pcbnew/dialog_design_rules_base.cpp:47 msgid "Via Dia" msgstr "Diamètre Via" -#: pcbnew/dialog_design_rules_base.cpp:43 +#: pcbnew/dialog_design_rules_base.cpp:48 msgid "Via Drill" msgstr "Perçage Via" -#: pcbnew/dialog_design_rules_base.cpp:44 +#: pcbnew/dialog_design_rules_base.cpp:49 msgid "uVia Dia" msgstr "Diamètre µVia" -#: pcbnew/dialog_design_rules_base.cpp:45 +#: pcbnew/dialog_design_rules_base.cpp:50 msgid "uVia Drill" msgstr " Perçage µVia" -#: pcbnew/dialog_design_rules_base.cpp:52 +#: pcbnew/dialog_design_rules_base.cpp:57 msgid "Default" msgstr "Défaut" -#: pcbnew/dialog_design_rules_base.cpp:59 +#: pcbnew/dialog_design_rules_base.cpp:64 msgid "Net Class parameters" msgstr "Paramètres de NeClass" -#: pcbnew/dialog_design_rules_base.cpp:68 +#: pcbnew/dialog_design_rules_base.cpp:73 msgid "Add another Net Class" msgstr "Ajouter une autre NetClass" -#: pcbnew/dialog_design_rules_base.cpp:73 -msgid "Remove the currently select Net Class" -msgstr "Supprimer la NetClass actuellement sélectionnée" +#: pcbnew/dialog_design_rules_base.cpp:78 +msgid "" +"Remove the currently select Net Class\n" +"The default Net Class cannot be removed" +msgstr "" +"Supprimer la NetClasse sélectionnée\n" +"La Netclasse Défaut ne peut être supprimée" -#: pcbnew/dialog_design_rules_base.cpp:77 +#: pcbnew/dialog_design_rules_base.cpp:82 msgid "Move Up" msgstr "Vers le haut ^" -#: pcbnew/dialog_design_rules_base.cpp:78 +#: pcbnew/dialog_design_rules_base.cpp:83 msgid "Move the currently selected Net Class up one row" msgstr "Déplacer la NetClassl sélectionné de une ligne vers le haut" -#: pcbnew/dialog_design_rules_base.cpp:87 +#: pcbnew/dialog_design_rules_base.cpp:92 msgid "Membership:" msgstr "Membres:" -#: pcbnew/dialog_design_rules_base.cpp:107 +#: pcbnew/dialog_design_rules_base.cpp:112 msgid "<<<" msgstr "<<<" -#: pcbnew/dialog_design_rules_base.cpp:110 +#: pcbnew/dialog_design_rules_base.cpp:113 +msgid "Move the selected nets in the right list to the left list" +msgstr "" + +#: pcbnew/dialog_design_rules_base.cpp:117 msgid ">>>" msgstr ">>>" -#: pcbnew/dialog_design_rules_base.cpp:113 +#: pcbnew/dialog_design_rules_base.cpp:118 +msgid "Move the selected nets in the left list to the right list" +msgstr "Déplacer les nets sélectionnés dans la liste de gauche vers la liste de droite" + +#: pcbnew/dialog_design_rules_base.cpp:122 msgid "<< Select All" msgstr "<< Selectionner Tout" -#: pcbnew/dialog_design_rules_base.cpp:116 +#: pcbnew/dialog_design_rules_base.cpp:123 +msgid "Select all nets in the left list" +msgstr "Sélectionner tous les nets de la liste de gauche" + +#: pcbnew/dialog_design_rules_base.cpp:127 msgid "Select All >>" msgstr "Selectionner Tout >>" +#: pcbnew/dialog_design_rules_base.cpp:128 +msgid "Select all nets in the right list" +msgstr "Sélectionner tous les nets de la liste de droite" + +#: pcbnew/dialog_design_rules_base.cpp:154 +msgid "Net Classes Editor" +msgstr "Editeur de NetClasses" + +#: pcbnew/dialog_design_rules_base.cpp:163 +msgid "Vias Options:" +msgstr "Options Vias:" + +#: pcbnew/dialog_design_rules_base.cpp:165 +msgid "Through via" +msgstr "Via traversante" + +#: pcbnew/dialog_design_rules_base.cpp:165 +msgid "Blind or buried via" +msgstr "Via enterrée ou aveugle" + +#: pcbnew/dialog_design_rules_base.cpp:167 +msgid "Default Via Type" +msgstr "Via par Défaut" + +#: pcbnew/dialog_design_rules_base.cpp:169 +msgid "" +"Select the current via type.\n" +"Trough via is the usual selection" +msgstr "" +"Sélection du type de via courant.\n" +"Via traversante est la sélection usuelle." + +#: pcbnew/dialog_design_rules_base.cpp:179 +msgid "Via Min Diameter" +msgstr "Via Taille Min" + +#: pcbnew/dialog_design_rules_base.cpp:191 +msgid "Micro Vias Options:" +msgstr "Options Micro Vias:" + +#: pcbnew/dialog_design_rules_base.cpp:193 +msgid "Do not allow micro vias" +msgstr "Ne pas autoriser les micro vias" + +#: pcbnew/dialog_design_rules_base.cpp:193 +msgid "Allow micro vias" +msgstr "Autoriser les micro vias" + +#: pcbnew/dialog_design_rules_base.cpp:197 +msgid "" +"Allows or do not allow use of micro vias\n" +"They are very small vias only from an external copper layer to its near neightbour" +msgstr "" +"Autorise ou non l'utilisation de micro vias\n" +"Ce sont de petites vias allant d'une couche externe à la plus proche couche interne uniquement" + +#: pcbnew/dialog_design_rules_base.cpp:207 +msgid "MicroVia Min Diameter" +msgstr "Diam. Mini MicroVia" + +#: pcbnew/dialog_design_rules_base.cpp:219 +msgid "Minimal Values Allowed:" +msgstr "Valeurs Minimales Autorisées:" + +#: pcbnew/dialog_design_rules_base.cpp:248 +msgid "Global Design Rules" +msgstr "Règles Générales" + #: pcbnew/zones_by_polygon_fill_functions.cpp:130 msgid "No Net" msgstr "No Net" #: pcbnew/dialog_copper_layers_setup.cpp:135 -#: pcbnew/dialog_design_rules.cpp:422 +#: pcbnew/dialog_design_rules.cpp:470 msgid "Errors detected, Abort" msgstr "Erreurs detectées, Abandont" @@ -5600,6 +5473,42 @@ msgstr "Hauteur Texte Module" msgid "Text Module Size H" msgstr "Largeur Texte Module" +#: pcbnew/dialog_copper_layers_setup_base.cpp:22 +msgid "1" +msgstr "1" + +#: pcbnew/dialog_copper_layers_setup_base.cpp:22 +msgid "2" +msgstr "2" + +#: pcbnew/dialog_copper_layers_setup_base.cpp:22 +msgid "4" +msgstr "4" + +#: pcbnew/dialog_copper_layers_setup_base.cpp:22 +msgid "6" +msgstr "6" + +#: pcbnew/dialog_copper_layers_setup_base.cpp:22 +msgid "8" +msgstr "8" + +#: pcbnew/dialog_copper_layers_setup_base.cpp:22 +msgid "10" +msgstr "10" + +#: pcbnew/dialog_copper_layers_setup_base.cpp:22 +msgid "12" +msgstr "12" + +#: pcbnew/dialog_copper_layers_setup_base.cpp:22 +msgid "14" +msgstr "14" + +#: pcbnew/dialog_copper_layers_setup_base.cpp:22 +msgid "16" +msgstr "16" + #: pcbnew/dialog_copper_layers_setup_base.cpp:24 msgid "Layers Count" msgstr "Nombre de Couches" @@ -5672,62 +5581,62 @@ msgstr "Interne 1" msgid "* (Any)" msgstr "* (Tout)" -#: pcbnew/dialog_design_rules.cpp:76 +#: pcbnew/dialog_design_rules.cpp:77 msgid "Class" msgstr "Classe" -#: pcbnew/dialog_design_rules.cpp:104 +#: pcbnew/dialog_design_rules.cpp:105 msgid "Current general settings:
" msgstr "Reglages généraux courants:
" -#: pcbnew/dialog_design_rules.cpp:108 +#: pcbnew/dialog_design_rules.cpp:109 #, c-format msgid "Minimum value for tracks width: %s
\n" msgstr "Valeur minimum pour la largeur de piste: %s
\n" -#: pcbnew/dialog_design_rules.cpp:112 +#: pcbnew/dialog_design_rules.cpp:113 #, c-format msgid "Minimum value for vias diameter: %s
\n" msgstr "Valeur minimum pour le diamètre de via: %s
\n" -#: pcbnew/dialog_design_rules.cpp:116 +#: pcbnew/dialog_design_rules.cpp:117 #, c-format msgid "Minimum value for microvias diameter: %s
\n" msgstr "Valeur minimum pour le diamètre de microvia: %s
\n" -#: pcbnew/dialog_design_rules.cpp:438 +#: pcbnew/dialog_design_rules.cpp:489 msgid "New Net Class Name:" msgstr "Nouveau Nom de Classe d'Equipotentielle:" -#: pcbnew/dialog_design_rules.cpp:451 +#: pcbnew/dialog_design_rules.cpp:502 msgid "This NetClass is already existing, cannot add it; Aborted" msgstr "Cette NetClass existe déjà, et ne peut être ajoutée; Abandon" -#: pcbnew/dialog_design_rules.cpp:508 +#: pcbnew/dialog_design_rules.cpp:559 msgid "The defaut Netclass cannot be removed" msgstr "" -#: pcbnew/dialog_design_rules.cpp:694 +#: pcbnew/dialog_design_rules.cpp:745 #, c-format msgid "%s: Track Size < Min Track Size
" msgstr "%s: Largeur PisteLargeur Piste Minimum
" -#: pcbnew/dialog_design_rules.cpp:708 +#: pcbnew/dialog_design_rules.cpp:759 #, c-format msgid "%s: Via Diameter < Minimun Via Diameter
" msgstr "%s: Diamètre ViaMin. Diamètre Via
" -#: pcbnew/dialog_design_rules.cpp:720 +#: pcbnew/dialog_design_rules.cpp:771 #, c-format msgid "%s: Via DrillVia Dia
" msgstr "%s: Perçage ViaDiam Via
" -#: pcbnew/dialog_design_rules.cpp:734 +#: pcbnew/dialog_design_rules.cpp:785 #, c-format msgid "%s: MicroVia Diameter < Minimun MicroVia Diameter
" msgstr "%s: Diamètre MicroViaDiamètre MicroVia Minimum
" -#: pcbnew/dialog_design_rules.cpp:746 +#: pcbnew/dialog_design_rules.cpp:797 #, c-format msgid "%s: MicroVia DrillMicroVia Dia
" msgstr "%s: Perçage MicroViaDiam MicroVia
" @@ -5744,6 +5653,13 @@ msgstr "Pistes:" msgid "Select how tracks are displayed" msgstr "Sélectionner comment les pistes sont affichées" +#: pcbnew/dialog_display_options_base.cpp:30 +#: pcbnew/dialog_display_options_base.cpp:38 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:137 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:145 +msgid "Never" +msgstr "Jamais" + #: pcbnew/dialog_display_options_base.cpp:30 msgid "New track" msgstr "Nouvelle piste" @@ -5752,6 +5668,13 @@ msgstr "Nouvelle piste" msgid "New track with via area" msgstr "Nouvelle piste avec via" +#: pcbnew/dialog_display_options_base.cpp:30 +#: pcbnew/dialog_display_options_base.cpp:38 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:137 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:145 +msgid "Always" +msgstr "Toujours" + #: pcbnew/dialog_display_options_base.cpp:32 msgid "Show Tracks Clearance:" msgstr "Montrer Isolation Piste:" @@ -5888,6 +5811,30 @@ msgstr "Designation" msgid "Supplier and ref" msgstr "Fournisseur et ref" +#: pcbnew/class_board.cpp:45 +msgid "This is the default net class." +msgstr "Ceci est la Netclass par défaut" + +#: pcbnew/class_board.cpp:654 +msgid "Nodes" +msgstr "Nodes" + +#: pcbnew/class_board.cpp:657 +msgid "Nets" +msgstr "Nets" + +#: pcbnew/class_board.cpp:665 +msgid "Links" +msgstr "Liens" + +#: pcbnew/class_board.cpp:668 +msgid "Connect" +msgstr "Connect" + +#: pcbnew/class_board.cpp:671 +msgid "NoConn" +msgstr "Non Conn" + #: pcbnew/class_edge_mod.cpp:236 msgid "Graphic Item" msgstr "Element Graphique" @@ -6071,48 +6018,193 @@ msgstr "Cacher textes invisibles" msgid "Show invisible text" msgstr "Montrer textes invisibles" +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:22 +msgid "No Display" +msgstr "Pas d'affichage" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:24 +msgid "Display Polar Coord" +msgstr "Affichage coord Polaires" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:26 +msgid "" +"Activates the display of relative coordinates from relative origin (set by the space key)\n" +"to the cursor, in polar coordinates (angle and distance)" +msgstr "" +"Active l'affichage des coordonnées relatives à l'origine relative(positionnée par la touche espace)\n" +"au curseur, en coordonnées polaires (angle et distance)" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:32 +msgid "Units" +msgstr "Unités" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:34 +msgid "Selection of units used to display dimensions and positions of items" +msgstr "Sélection des unités pour afficher les dimensions et positions des items" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:38 +msgid "Small cross" +msgstr "Petite croix" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:38 +msgid "Full screen cursor" +msgstr "Curseur plein écran" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:40 +msgid "Cursor" +msgstr "Curseur" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:42 +msgid "Main cursor shape selection (small cross or large cursor)" +msgstr "Sélection de l'aspect du curseur principal (petite croix ou grand curseur)" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:60 +msgid "Max Links:" +msgstr "Liens max:" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:65 +msgid "Adjust the number of ratsnets shown from cursor to closest pads" +msgstr "Ajuster le nombre de ratsnets montré du curseur aux pads les plus prêts" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:69 +msgid "Auto Save (minuts):" +msgstr "Sauveg. Auto (min)" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:74 +msgid "Delay after the first change to create a backup file of the board on disk." +msgstr "Délai après le premier changement pour créer un fichier de sauvegarde du circuit imprimé sur disque" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:83 +msgid "Drc ON" +msgstr "Drc ACTIVE" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:86 +msgid "" +"Enable/disable the DRC control.\n" +"When DRC is disable, all connections are allowed." +msgstr "" +"Active/désactive le contrôle DRC (Design Rule Check).\n" +"Lorsque de DRC est désactivé, toutes les connexions sont autorisées." + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:90 +msgid "Show Ratsnest" +msgstr "Montrer le chevelu général" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:92 +msgid "Show (or not) the full rastnest." +msgstr "Montrer(ou non) le chevelu complet" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:96 +msgid "Show Mod Ratsnest" +msgstr "Montrer le chevelu du module" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:98 +msgid "" +"Shows (or not) the local ratsnest relative to a footprint, when moving it.\n" +"This ratsnest is useful to place a footprint." +msgstr "" +"Montre (ou non) le chevelu local relatif à un module, lorsque on le déplace.\n" +"Ce chevelu est utile pour placer un module." + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:102 +msgid "Tracks Auto Del" +msgstr "Auto Supp. Pistes" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:104 +msgid "Enable/disable the automatic track deletion when recreating a track." +msgstr "Active/désactive l'effacement de piste automatique lorsque l'on recrée une piste." + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:108 +msgid "Track only 45 degrees" +msgstr "Piste à 45° seulement" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:110 +msgid "If enabled, force tracks directions to H, V or 45 degrees, when creating a track." +msgstr "Si activé, frorce la direction des pistes à H, V ou 45° en creation de piste" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:114 +msgid "Segments 45 Only" +msgstr "Segments 45 seulement" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:116 +msgid "If enabled, force segments directions to H, V or 45 degrees, when creating a segment on technical layers." +msgstr "Si activé, frorce la direction des segments à H, V ou 45° en création de segments sur couches techniques" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:120 +msgid "Auto PAN" +msgstr "Auto PAN" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:122 +msgid "Allows auto pan when creating a track, or moving an item." +msgstr "Autorise l'autopan en création de piste, ou lorsque on déplace un élément." + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:126 +msgid "Double Segm Track" +msgstr "2 segments pour piste" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:128 +msgid "If enabled, uses two track segments, with 45 degrees angle between them when creating a new track " +msgstr "Si activé, utiliser 2 segments de piste, avec un angle de 45 degrés entre eux, pour créer une nouvelle piste" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:137 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:145 +msgid "When creating tracks" +msgstr "En création de pistes" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:139 +msgid "Magnetic Pads" +msgstr " Pads magnétiques" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:141 +msgid "control the capture of the pcb cursor when the mouse cursor enters a pad area" +msgstr "Contrôle la capture du curseur pcb quand le curseur souris est sur un pad" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:147 +msgid "Magnetic Tracks" +msgstr "Pistes Magnétiques" + +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:149 +msgid "Control the capture of the pcb cursor when the mouse cursor enters a track" +msgstr "Contrôle la capture du curseur pcb quand le curseur souris passe sur une piste" + +#: pcbnew/copies_de_sauvegarde/dialog_design_rules_base.cpp:73 +msgid "Remove the currently select Net Class" +msgstr "Supprimer la NetClass actuellement sélectionnée" + #: eeschema/libarch.cpp:55 #, c-format msgid "An error occurrred attempting to save component library <%s>." msgstr "Une erreur s'est produite lors de la sauvegarde de la librairie de composants <%s>." #: eeschema/plotdxf.cpp:155 -#: eeschema/plotps.cpp:174 msgid "Plot Options:" msgstr "Options de Tracé:" #: eeschema/plotdxf.cpp:160 -#: eeschema/plotps.cpp:179 msgid "B/W" msgstr "N/B" #: eeschema/plotdxf.cpp:162 -#: eeschema/plotps.cpp:181 msgid "Plot Color:" msgstr "Tracé et Couleurs:" #: eeschema/plotdxf.cpp:166 -#: eeschema/plotps.cpp:185 msgid "Print Sheet Ref" msgstr "Imprimer cartouche" #: eeschema/plotdxf.cpp:175 -#: eeschema/plotps.cpp:194 msgid "&Plot Page" msgstr "&Tracer Page" #: eeschema/plotdxf.cpp:179 -#: eeschema/plotps.cpp:198 msgid "Plot A&LL" msgstr "&Tout Tracer" #: eeschema/plotdxf.cpp:185 -#: eeschema/plotps.cpp:207 msgid "Messages :" msgstr "Messages :" #: eeschema/plotdxf.cpp:371 -#: eeschema/plotps.cpp:419 #, c-format msgid "Plot: %s\n" msgstr "Trace: %s\n" @@ -6336,7 +6428,7 @@ msgstr "" #: eeschema/libedit.cpp:511 msgid "This new component has no name and cannot be created. Aborted" -msgstr "" +msgstr "Ce noveau composant n'a pas de nom et ne peut être créé, Abandon" #: eeschema/libedit.cpp:522 #, c-format @@ -6911,69 +7003,9 @@ msgid "key search criteria <" msgstr "critère de recherche par clé <" #: eeschema/database.cpp:68 -#: eeschema/selpart.cpp:75 msgid "Select Component" msgstr "Sélection Composant" -#: eeschema/symbdraw.cpp:677 -#, c-format -msgid "Arc %.1f deg" -msgstr "Arc %.1f deg" - -#: eeschema/libframe.cpp:244 -msgid "" -"Component was modified!\n" -"Discard changes?" -msgstr "" -"Le composant a été modifié\n" -"Perdre les changements" - -#: eeschema/libframe.cpp:258 -#, c-format -msgid "" -"Library \"%s\" was modified!\n" -"Discard changes?" -msgstr "" -"Librairie \"%s\" modifiée!\n" -"Perdre les changements ?" - -#: eeschema/libframe.cpp:368 -#, c-format -msgid "Part %c" -msgstr "Composant %c" - -#: eeschema/libframe.cpp:630 -msgid "Add pin" -msgstr "Addition de \"pins\"" - -#: eeschema/libframe.cpp:634 -msgid "Set pin options" -msgstr "Choix options de pin" - -#: eeschema/libframe.cpp:656 -msgid "Add rectangle" -msgstr "Ajout de rectangle" - -#: eeschema/libframe.cpp:660 -msgid "Add circle" -msgstr "Ajout de cercle" - -#: eeschema/libframe.cpp:664 -msgid "Add arc" -msgstr "Ajout d'arc" - -#: eeschema/libframe.cpp:668 -msgid "Add line" -msgstr "Addition de lignes" - -#: eeschema/libframe.cpp:672 -msgid "Set anchor position" -msgstr "Ajuster Position Ancre" - -#: eeschema/libframe.cpp:682 -msgid "Export" -msgstr "Exporter" - #: eeschema/erc.cpp:199 msgid "Duplicate Sheet name" msgstr "Nom de feuille en double" @@ -7054,63 +7086,71 @@ msgstr "" "\n" " >> Erreurs ERC: %d\n" -#: eeschema/pinedit.cpp:25 +#: eeschema/pinedit.cpp:26 msgid "line" msgstr "Ligne" -#: eeschema/pinedit.cpp:25 +#: eeschema/pinedit.cpp:26 msgid "invert" msgstr "invert" -#: eeschema/pinedit.cpp:25 +#: eeschema/pinedit.cpp:26 msgid "clock" msgstr "clock" -#: eeschema/pinedit.cpp:25 +#: eeschema/pinedit.cpp:26 msgid "clock inv" msgstr "clock inv" -#: eeschema/pinedit.cpp:26 +#: eeschema/pinedit.cpp:27 msgid "low in" msgstr "low in" -#: eeschema/pinedit.cpp:26 +#: eeschema/pinedit.cpp:27 msgid "low clock" msgstr "low clock" -#: eeschema/pinedit.cpp:26 +#: eeschema/pinedit.cpp:27 msgid "low out" msgstr "low out" -#: eeschema/pinedit.cpp:209 +#: eeschema/pinedit.cpp:211 msgid "This position is already occupied by another pin. Continue?" msgstr "Position occupée par une autre pin. Continuer ?" -#: eeschema/pinedit.cpp:344 -#: eeschema/pinedit.cpp:599 +#: eeschema/pinedit.cpp:346 +#: eeschema/pinedit.cpp:601 #, c-format msgid "Initial pin position (%d, %d)" msgstr "Position initiane de la pin (%d, %d)" -#: eeschema/pinedit.cpp:967 -#, c-format -msgid "Duplicate pin %s at location (%d, %d) conflicts with pin %s at location (%d, %d)" -msgstr "Pin dupliquée %s en position (%d, %d) en conflit avec pin %s en position (%d, %d)" +#: eeschema/pinedit.cpp:956 +msgid "No pins!" +msgstr "Pas de Pins!" -#: eeschema/pinedit.cpp:977 +#: eeschema/pinedit.cpp:967 +msgid "Marker Info" +msgstr "Info Marqueur" + +#: eeschema/pinedit.cpp:986 +#, c-format +msgid "Duplicate pin %s \"%s\" at location (%.3f, %.3f) conflicts with pin %s \"%s\" at location (%.3f, %.3f)" +msgstr "Pin dupliquée %s \"%s\" en position (%.3f, %.3f) en conflit avec pin %s \"%s\" en position (%.3f, %.3f)" + +#: eeschema/pinedit.cpp:997 #, c-format msgid " in part %c" msgstr " en composant %c" -#: eeschema/pinedit.cpp:984 +#: eeschema/pinedit.cpp:1004 msgid " of converted" msgstr " de converti" -#: eeschema/pinedit.cpp:986 +#: eeschema/pinedit.cpp:1006 msgid " of normal" msgstr " de normal" -#: eeschema/pinedit.cpp:997 +#: eeschema/pinedit.cpp:1015 msgid "No duplicate pins were found." msgstr "Pas de pins doublées trouvéées" @@ -7126,6 +7166,23 @@ msgstr "Noir" msgid "Background Color:" msgstr "Couleur du Fond:" +#: eeschema/eeschema.cpp:106 +msgid "Eeschema is already running, Continue?" +msgstr "Eeschema est en cours d'exécution. Continuer ?" + +#: eeschema/class_libentry_fields.cpp:82 +#: eeschema/class_libentry_fields.cpp:568 +msgid "Field" +msgstr "Champ" + +#: eeschema/class_libentry_fields.cpp:142 +msgid "invalid field number defined" +msgstr "numéro de champ défini invalide" + +#: eeschema/class_libentry_fields.cpp:560 +msgid "Datasheet" +msgstr "Documentation" + #: eeschema/files-io.cpp:71 msgid "Clear Schematic Hierarchy (modified!)?" msgstr "Effacer la hiérarchie schématique (modifiée!)?" @@ -7158,9 +7215,64 @@ msgstr "" msgid "File <%s> not found." msgstr "Fichier <%s> non trouvé" -#: eeschema/eeschema.cpp:117 -msgid "Eeschema is already running, Continue?" -msgstr "Eeschema est en cours d'exécution. Continuer ?" +#: eeschema/libframe.cpp:250 +msgid "" +"Component was modified!\n" +"Discard changes?" +msgstr "" +"Le composant a été modifié\n" +"Perdre les changements" + +#: eeschema/libframe.cpp:264 +#, c-format +msgid "" +"Library \"%s\" was modified!\n" +"Discard changes?" +msgstr "" +"Librairie \"%s\" modifiée!\n" +"Perdre les changements ?" + +#: eeschema/libframe.cpp:374 +#, c-format +msgid "Part %c" +msgstr "Composant %c" + +#: eeschema/libframe.cpp:636 +msgid "Add pin" +msgstr "Addition de \"pins\"" + +#: eeschema/libframe.cpp:640 +msgid "Set pin options" +msgstr "Choix options de pin" + +#: eeschema/libframe.cpp:662 +msgid "Add rectangle" +msgstr "Ajout de rectangle" + +#: eeschema/libframe.cpp:666 +msgid "Add circle" +msgstr "Ajout de cercle" + +#: eeschema/libframe.cpp:670 +msgid "Add arc" +msgstr "Ajout d'arc" + +#: eeschema/libframe.cpp:674 +msgid "Add line" +msgstr "Addition de lignes" + +#: eeschema/libframe.cpp:678 +msgid "Set anchor position" +msgstr "Ajuster Position Ancre" + +#: eeschema/libframe.cpp:688 +msgid "Export" +msgstr "Exporter" + +#: eeschema/symbdraw.cpp:646 +#, c-format +msgid "Arc %.1f deg" +msgstr "Arc %.1f deg" #: eeschema/viewlibs.cpp:108 msgid "Library Browser" @@ -7171,11 +7283,11 @@ msgstr "Visualisateur de Librairies" msgid "component selection (%d items loaded):" msgstr "Sélection Composant (%d items chargés):" -#: eeschema/getpart.cpp:185 +#: eeschema/getpart.cpp:189 msgid "Failed to find part " msgstr "Impossible de trouver le composant " -#: eeschema/getpart.cpp:185 +#: eeschema/getpart.cpp:189 msgid " in library" msgstr " en librairie" @@ -7215,10 +7327,6 @@ msgstr "Gauche" msgid "Right" msgstr "Droite" -#: eeschema/class_pin.cpp:1229 -msgid "Unknown" -msgstr "Inconnu" - #: eeschema/delsheet.cpp:44 #, c-format msgid "Sheet %s (file %s) modified. Save it?" @@ -7440,7 +7548,6 @@ msgid "Save Project Settings" msgstr "Sauver Optionsr Projet" #: eeschema/netlist.cpp:92 -#: eeschema/dialog_build_BOM_base.cpp:47 msgid "List" msgstr "Liste" @@ -7850,111 +7957,6 @@ msgstr "Emetteur ouv." msgid "Electrical Type:" msgstr "Type électrique:" -#: eeschema/classes_body_items.cpp:35 -msgid "Undefined" -msgstr "Non Défini" - -#: eeschema/classes_body_items.cpp:66 -#: eeschema/classes_body_items.cpp:72 -msgid "All" -msgstr "Tout" - -#: eeschema/classes_body_items.cpp:74 -msgid "no" -msgstr "non" - -#: eeschema/classes_body_items.cpp:76 -msgid "yes" -msgstr "oui" - -#: eeschema/classes_body_items.cpp:179 -#, c-format -msgid "arc only had %d parameters of the required 8" -msgstr "l'arc a seulement %d paramètres sur les 8 requis" - -#: eeschema/classes_body_items.cpp:527 -#: eeschema/classes_body_items.cpp:787 -#: eeschema/classes_body_items.cpp:1011 -#: eeschema/classes_body_items.cpp:1262 -#: eeschema/classes_body_items.cpp:1672 -#: eeschema/classes_body_items.cpp:2040 -msgid "Line width" -msgstr "Epaisseur ligne" - -#: eeschema/classes_body_items.cpp:532 -#: eeschema/classes_body_items.cpp:796 -#: eeschema/classes_body_items.cpp:1267 -#: eeschema/classes_body_items.cpp:1677 -#: eeschema/classes_body_items.cpp:2045 -msgid "Bounding box" -msgstr "Rectange dencadrement" - -#: eeschema/classes_body_items.cpp:577 -#, c-format -msgid "circle only had %d parameters of the required 6" -msgstr "le cercle a seulement %d paramètres sur les 6 requis" - -#: eeschema/classes_body_items.cpp:791 -msgid "Radius" -msgstr "Rayon" - -#: eeschema/classes_body_items.cpp:809 -msgid "Rectangle" -msgstr "Rectangle" - -#: eeschema/classes_body_items.cpp:844 -#, c-format -msgid "rectangle only had %d parameters of the required 7" -msgstr "le rectangle a seulement %d paramètres sur les 7 requis" - -#: eeschema/classes_body_items.cpp:1314 -msgid "PolyLine" -msgstr "PolyLigne" - -#: eeschema/classes_body_items.cpp:1360 -#, c-format -msgid "polyline only had %d parameters of the required 4" -msgstr "la polyligne a seulement %d paramètres sur les 4 requis" - -#: eeschema/classes_body_items.cpp:1365 -#, c-format -msgid "polyline count parameter %d is invalid" -msgstr "le nombre de paramètes (%d) de la polyligne est mauvais" - -#: eeschema/classes_body_items.cpp:1381 -#, c-format -msgid "polyline point %d X position not defined" -msgstr "la position X du point %d de la polyligne n'est pas définie" - -#: eeschema/classes_body_items.cpp:1388 -#, c-format -msgid "polyline point %d Y position not defined" -msgstr "la position Y du point %d de la polyligne n'est pas définie" - -#: eeschema/classes_body_items.cpp:1688 -msgid "Bezier" -msgstr "Bezier" - -#: eeschema/classes_body_items.cpp:1734 -#, c-format -msgid "Bezier only had %d parameters of the required 4" -msgstr "La courbe de Bezier a seulement %d paramètres sur les 4 requis" - -#: eeschema/classes_body_items.cpp:1740 -#, c-format -msgid "Bezier count parameter %d is invalid" -msgstr "le nombre de paramètes (%d) de la courbe de Bezier est mauvais" - -#: eeschema/classes_body_items.cpp:1756 -#, c-format -msgid "Bezier point %d X position not defined" -msgstr "la position X du point %d de la courbe de Bezier n'est pas définie" - -#: eeschema/classes_body_items.cpp:1762 -#, c-format -msgid "Bezier point %d Y position not defined" -msgstr "la position Y du point %d de la courbe de Bezier n'est pas définie" - #: eeschema/viewlib_frame.cpp:84 #: eeschema/tool_sch.cpp:51 msgid "Library browser" @@ -8472,10 +8474,6 @@ msgstr "" "\n" "#End List\n" -#: eeschema/build_BOM.cpp:620 -msgid "Field" -msgstr "Champ" - #: eeschema/build_BOM.cpp:628 msgid "" "\n" @@ -8516,6 +8514,18 @@ msgstr "> %-28.28s PinSheet %-7.7s (Feuille %s) pos: %3.3f, %3.3f\n" msgid "#End labels\n" msgstr "#End labels\n" +#: eeschema/class_libentry.cpp:70 +msgid "none" +msgstr "rien" + +#: eeschema/class_libentry.cpp:695 +msgid "file ended prematurely loading component draw element" +msgstr "" + +#: eeschema/class_libentry.cpp:750 +msgid "file ended prematurely while attempting to flush to end of drawing section." +msgstr "" + #: eeschema/edit_component_in_lib.cpp:145 #, c-format msgid "Alias <%s> not found for component <%s> in library <%s>." @@ -8833,10 +8843,12 @@ msgstr "" "Cette opération supprimera l'annotation existante et ne peut être annulée." #: eeschema/dialog_SVG_print_base.cpp:25 +#: eeschema/dialog_print_using_printer_base.cpp:25 msgid "Default Pen Size" msgstr "Dimension Plume par Défaut" #: eeschema/dialog_SVG_print_base.cpp:30 +#: eeschema/dialog_print_using_printer_base.cpp:30 msgid "Selection of the default pen thickness used to draw items, when their thickness is set to 0." msgstr "Valeur de la dimension de la plume utilisée par défaut pour tracer les éléments, lorsque leur épaisseur est à 0." @@ -8923,59 +8935,65 @@ msgstr "<%s> n'est pas un fichier documentation de composant valide." msgid "Current" msgstr "Courant" +#: eeschema/dialog_print_using_printer_base.cpp:52 +#: eeschema/classes_body_items.cpp:68 +#: eeschema/classes_body_items.cpp:74 +msgid "All" +msgstr "Tout" + #: eeschema/onrightclick.cpp:109 msgid "Leave Sheet" msgstr "Quitter sous-feuille" -#: eeschema/onrightclick.cpp:125 +#: eeschema/onrightclick.cpp:124 msgid "Delete Noconn" msgstr "Supprimer Non Connexion" -#: eeschema/onrightclick.cpp:136 +#: eeschema/onrightclick.cpp:135 msgid "Move Bus Entry" msgstr "Déplacer Entrée de Bus" -#: eeschema/onrightclick.cpp:139 +#: eeschema/onrightclick.cpp:138 msgid "Set Bus Entry /" msgstr "Entrée de Bus /" -#: eeschema/onrightclick.cpp:142 +#: eeschema/onrightclick.cpp:141 msgid "Set Bus Entry \\" msgstr "Entrée de Bus \\" -#: eeschema/onrightclick.cpp:144 +#: eeschema/onrightclick.cpp:143 msgid "Delete Bus Entry" msgstr "Supprimer Entrée de Bus" -#: eeschema/onrightclick.cpp:243 +#: eeschema/onrightclick.cpp:242 msgid "Move Field" msgstr "Déplace Champ" -#: eeschema/onrightclick.cpp:245 +#: eeschema/onrightclick.cpp:244 msgid "Rotate Field" msgstr "Rotation Champ" -#: eeschema/onrightclick.cpp:247 +#: eeschema/onrightclick.cpp:246 msgid "Edit Field" msgstr "Editer Champ" -#: eeschema/onrightclick.cpp:279 +#: eeschema/onrightclick.cpp:278 msgid "Move Component" msgstr "Déplace Composant" -#: eeschema/onrightclick.cpp:284 +#: eeschema/onrightclick.cpp:283 msgid "Drag Component" msgstr "Drag Composant" -#: eeschema/onrightclick.cpp:298 +#: eeschema/onrightclick.cpp:297 msgid "Mirror --" msgstr "Miroir--" -#: eeschema/onrightclick.cpp:301 +#: eeschema/onrightclick.cpp:300 msgid "Mirror ||" msgstr "Miroir ||" -#: eeschema/onrightclick.cpp:309 +#: eeschema/onrightclick.cpp:308 msgid "Orient Component" msgstr "Oriente Composant" @@ -8996,227 +9014,307 @@ msgstr "Edite Composant" msgid "Copy Component" msgstr "Copie Composant" -#: eeschema/onrightclick.cpp:379 +#: eeschema/onrightclick.cpp:380 msgid "Move Global Label" msgstr "Déplacer Label Global" -#: eeschema/onrightclick.cpp:381 +#: eeschema/onrightclick.cpp:385 msgid "Rotate Global Label" msgstr "Rot. Label Global" -#: eeschema/onrightclick.cpp:383 +#: eeschema/onrightclick.cpp:387 msgid "Edit Global Label" msgstr "Editer Label Global" -#: eeschema/onrightclick.cpp:385 +#: eeschema/onrightclick.cpp:389 msgid "Delete Global Label" msgstr "Supprimer Label Global" -#: eeschema/onrightclick.cpp:389 -#: eeschema/onrightclick.cpp:451 -#: eeschema/onrightclick.cpp:489 +#: eeschema/onrightclick.cpp:393 +#: eeschema/onrightclick.cpp:463 +#: eeschema/onrightclick.cpp:501 msgid "Change to Hierarchical Label" msgstr "Changer en Label Hiérarchique" -#: eeschema/onrightclick.cpp:391 -#: eeschema/onrightclick.cpp:420 -#: eeschema/onrightclick.cpp:486 +#: eeschema/onrightclick.cpp:395 +#: eeschema/onrightclick.cpp:428 +#: eeschema/onrightclick.cpp:498 msgid "Change to Label" msgstr "Change en Label" -#: eeschema/onrightclick.cpp:393 -#: eeschema/onrightclick.cpp:422 -#: eeschema/onrightclick.cpp:453 +#: eeschema/onrightclick.cpp:397 +#: eeschema/onrightclick.cpp:430 +#: eeschema/onrightclick.cpp:465 msgid "Change to Text" msgstr "Change en Texte" -#: eeschema/onrightclick.cpp:396 -#: eeschema/onrightclick.cpp:427 -#: eeschema/onrightclick.cpp:458 -#: eeschema/onrightclick.cpp:496 +#: eeschema/onrightclick.cpp:400 +#: eeschema/onrightclick.cpp:435 +#: eeschema/onrightclick.cpp:470 +#: eeschema/onrightclick.cpp:508 msgid "Change Type" msgstr "Change Type" -#: eeschema/onrightclick.cpp:410 +#: eeschema/onrightclick.cpp:415 msgid "Move Hierarchical Label" msgstr "Déplacer Label Hiérarchique" -#: eeschema/onrightclick.cpp:412 +#: eeschema/onrightclick.cpp:420 msgid "Rotate Hierarchical Label" msgstr "Rot. Label Hiérarchique" -#: eeschema/onrightclick.cpp:414 +#: eeschema/onrightclick.cpp:422 msgid "Edit Hierarchical Label" msgstr "Editer Label Hiérarchique" -#: eeschema/onrightclick.cpp:416 +#: eeschema/onrightclick.cpp:424 msgid "Delete Hierarchical label" msgstr "Supprimer Label Hiérarchique" -#: eeschema/onrightclick.cpp:424 -#: eeschema/onrightclick.cpp:455 +#: eeschema/onrightclick.cpp:432 +#: eeschema/onrightclick.cpp:467 msgid "Change to Global Label" msgstr "Change en Label Global" -#: eeschema/onrightclick.cpp:441 +#: eeschema/onrightclick.cpp:450 msgid "Move Label" msgstr "Déplace Label" -#: eeschema/onrightclick.cpp:443 +#: eeschema/onrightclick.cpp:455 msgid "Rotate Label" msgstr "Rot. Label" -#: eeschema/onrightclick.cpp:445 +#: eeschema/onrightclick.cpp:457 msgid "Edit Label" msgstr "Editer Label" -#: eeschema/onrightclick.cpp:447 +#: eeschema/onrightclick.cpp:459 msgid "Delete Label" msgstr "Supprimer Label" -#: eeschema/onrightclick.cpp:472 +#: eeschema/onrightclick.cpp:484 msgid "Move Text" msgstr "Déplacer Texte" -#: eeschema/onrightclick.cpp:475 +#: eeschema/onrightclick.cpp:487 msgid "Edit Text" msgstr "Editer Texte" -#: eeschema/onrightclick.cpp:477 +#: eeschema/onrightclick.cpp:489 msgid "Delete Text" msgstr "Effacer Texte" -#: eeschema/onrightclick.cpp:493 +#: eeschema/onrightclick.cpp:505 msgid "Change to Glabel" msgstr "Change en Label Global" -#: eeschema/onrightclick.cpp:515 -#: eeschema/onrightclick.cpp:559 +#: eeschema/onrightclick.cpp:527 +#: eeschema/onrightclick.cpp:571 msgid "Break Wire" msgstr "Briser Fil" -#: eeschema/onrightclick.cpp:518 +#: eeschema/onrightclick.cpp:530 msgid "Delete Junction" msgstr "Supprimer Jonction" -#: eeschema/onrightclick.cpp:525 -#: eeschema/onrightclick.cpp:552 +#: eeschema/onrightclick.cpp:537 +#: eeschema/onrightclick.cpp:564 msgid "Delete Node" msgstr "Supprimer Noeud" -#: eeschema/onrightclick.cpp:527 -#: eeschema/onrightclick.cpp:555 +#: eeschema/onrightclick.cpp:539 +#: eeschema/onrightclick.cpp:567 msgid "Delete Connection" msgstr "Supprimer Connexion" -#: eeschema/onrightclick.cpp:544 +#: eeschema/onrightclick.cpp:556 msgid "Wire End" msgstr "Terminer Fil" -#: eeschema/onrightclick.cpp:548 +#: eeschema/onrightclick.cpp:560 msgid "Drag Wire" msgstr "Drag Fil" -#: eeschema/onrightclick.cpp:551 +#: eeschema/onrightclick.cpp:563 msgid "Delete Wire" msgstr "Supprimer Fil" -#: eeschema/onrightclick.cpp:573 -#: eeschema/onrightclick.cpp:609 +#: eeschema/onrightclick.cpp:585 +#: eeschema/onrightclick.cpp:621 msgid "Add Global Label" msgstr "Ajout Label Global" -#: eeschema/onrightclick.cpp:589 +#: eeschema/onrightclick.cpp:601 msgid "Bus End" msgstr "Terminer Bus" -#: eeschema/onrightclick.cpp:593 +#: eeschema/onrightclick.cpp:605 msgid "Delete Bus" msgstr "Supprimer Bus" -#: eeschema/onrightclick.cpp:596 +#: eeschema/onrightclick.cpp:608 msgid "Break Bus" msgstr "Briser Bus" -#: eeschema/onrightclick.cpp:622 +#: eeschema/onrightclick.cpp:634 msgid "Enter Sheet" msgstr "Entrer dans Feuille" -#: eeschema/onrightclick.cpp:625 +#: eeschema/onrightclick.cpp:637 msgid "Move Sheet" msgstr "Déplacer Feuille" -#: eeschema/onrightclick.cpp:630 +#: eeschema/onrightclick.cpp:642 msgid "Place Sheet" msgstr "Placer Feuille" -#: eeschema/onrightclick.cpp:635 +#: eeschema/onrightclick.cpp:647 msgid "Edit Sheet" msgstr "Editer Feuille" -#: eeschema/onrightclick.cpp:637 +#: eeschema/onrightclick.cpp:649 msgid "Resize Sheet" msgstr "Redimensionner Feuille" -#: eeschema/onrightclick.cpp:640 +#: eeschema/onrightclick.cpp:652 msgid "Import PinSheets" msgstr "Importer Connecteur de Hiérarchie" -#: eeschema/onrightclick.cpp:644 +#: eeschema/onrightclick.cpp:656 msgid "Cleanup PinSheets" msgstr "Nettoyage des Pins Hiérarchiques" -#: eeschema/onrightclick.cpp:646 +#: eeschema/onrightclick.cpp:658 msgid "Delete Sheet" msgstr "Supprimer Feuille" -#: eeschema/onrightclick.cpp:661 +#: eeschema/onrightclick.cpp:673 msgid "Move PinSheet" msgstr "Déplace Connecteur de hiérarchie" -#: eeschema/onrightclick.cpp:663 +#: eeschema/onrightclick.cpp:675 msgid "Edit PinSheet" msgstr "Edit Connecteur de hiérarchie" -#: eeschema/onrightclick.cpp:667 +#: eeschema/onrightclick.cpp:679 msgid "Delete PinSheet" msgstr "Supprimer Connecteur de hiérarchie" -#: eeschema/onrightclick.cpp:684 +#: eeschema/onrightclick.cpp:696 msgid "Window Zoom" msgstr "Zoom sur Fenètre" -#: eeschema/onrightclick.cpp:691 +#: eeschema/onrightclick.cpp:703 msgid "Save Block" msgstr "Sauver Bloc" -#: eeschema/onrightclick.cpp:694 +#: eeschema/onrightclick.cpp:706 msgid "Drag Block" msgstr "Drag Bloc" -#: eeschema/onrightclick.cpp:704 +#: eeschema/onrightclick.cpp:716 msgid "Copy to Clipboard" msgstr "Copie dans Presse papier" -#: eeschema/class_libentry_fields.cpp:134 -msgid "invalid field number defined" -msgstr "numéro de champ défini invalide" +#: eeschema/classes_body_items.cpp:35 +msgid "Undefined" +msgstr "Non Défini" -#: eeschema/class_libentry_fields.cpp:552 -msgid "Datasheet" -msgstr "Documentation" +#: eeschema/classes_body_items.cpp:76 +msgid "no" +msgstr "non" -#: eeschema/class_libentry.cpp:70 -msgid "none" -msgstr "rien" +#: eeschema/classes_body_items.cpp:78 +msgid "yes" +msgstr "oui" -#: eeschema/class_libentry.cpp:695 -msgid "file ended prematurely loading component draw element" -msgstr "" +#: eeschema/classes_body_items.cpp:182 +#, c-format +msgid "arc only had %d parameters of the required 8" +msgstr "l'arc a seulement %d paramètres sur les 8 requis" -#: eeschema/class_libentry.cpp:750 -msgid "file ended prematurely while attempting to flush to end of drawing section." -msgstr "" +#: eeschema/classes_body_items.cpp:530 +#: eeschema/classes_body_items.cpp:791 +#: eeschema/classes_body_items.cpp:1016 +#: eeschema/classes_body_items.cpp:1267 +#: eeschema/classes_body_items.cpp:1678 +#: eeschema/classes_body_items.cpp:2047 +msgid "Line width" +msgstr "Epaisseur ligne" + +#: eeschema/classes_body_items.cpp:535 +#: eeschema/classes_body_items.cpp:800 +#: eeschema/classes_body_items.cpp:1272 +#: eeschema/classes_body_items.cpp:1683 +#: eeschema/classes_body_items.cpp:2052 +msgid "Bounding box" +msgstr "Rectange dencadrement" + +#: eeschema/classes_body_items.cpp:581 +#, c-format +msgid "circle only had %d parameters of the required 6" +msgstr "le cercle a seulement %d paramètres sur les 6 requis" + +#: eeschema/classes_body_items.cpp:795 +msgid "Radius" +msgstr "Rayon" + +#: eeschema/classes_body_items.cpp:814 +msgid "Rectangle" +msgstr "Rectangle" + +#: eeschema/classes_body_items.cpp:849 +#, c-format +msgid "rectangle only had %d parameters of the required 7" +msgstr "le rectangle a seulement %d paramètres sur les 7 requis" + +#: eeschema/classes_body_items.cpp:1320 +msgid "PolyLine" +msgstr "PolyLigne" + +#: eeschema/classes_body_items.cpp:1366 +#, c-format +msgid "polyline only had %d parameters of the required 4" +msgstr "la polyligne a seulement %d paramètres sur les 4 requis" + +#: eeschema/classes_body_items.cpp:1371 +#, c-format +msgid "polyline count parameter %d is invalid" +msgstr "le nombre de paramètes (%d) de la polyligne est mauvais" + +#: eeschema/classes_body_items.cpp:1387 +#, c-format +msgid "polyline point %d X position not defined" +msgstr "la position X du point %d de la polyligne n'est pas définie" + +#: eeschema/classes_body_items.cpp:1394 +#, c-format +msgid "polyline point %d Y position not defined" +msgstr "la position Y du point %d de la polyligne n'est pas définie" + +#: eeschema/classes_body_items.cpp:1695 +msgid "Bezier" +msgstr "Bezier" + +#: eeschema/classes_body_items.cpp:1741 +#, c-format +msgid "Bezier only had %d parameters of the required 4" +msgstr "La courbe de Bezier a seulement %d paramètres sur les 4 requis" + +#: eeschema/classes_body_items.cpp:1747 +#, c-format +msgid "Bezier count parameter %d is invalid" +msgstr "le nombre de paramètes (%d) de la courbe de Bezier est mauvais" + +#: eeschema/classes_body_items.cpp:1763 +#, c-format +msgid "Bezier point %d X position not defined" +msgstr "la position X du point %d de la courbe de Bezier n'est pas définie" + +#: eeschema/classes_body_items.cpp:1769 +#, c-format +msgid "Bezier point %d Y position not defined" +msgstr "la position Y du point %d de la courbe de Bezier n'est pas définie" #: eeschema/eelibs_read_libraryfiles.cpp:61 msgid "\n" @@ -9275,7 +9373,6 @@ msgid "A no connect symbol is connected to more than 1 pin" msgstr "Un symbole de non connexion est connecté à plus de une pin" #: eeschema/dialog_create_component.cpp:172 -#: eeschema/dialog_edit_component_in_lib_base.cpp:27 msgid "As Convert" msgstr "A une forme \"convertie\"" @@ -9396,17 +9493,14 @@ msgid "Show Pin Number" msgstr "Montrer Numéro de Pin" #: eeschema/dialog_create_component.cpp:241 -#: eeschema/dialog_edit_component_in_lib_base.cpp:40 msgid "Show Pin Name" msgstr "Montre Nom de Pin" #: eeschema/dialog_create_component.cpp:245 -#: eeschema/dialog_edit_component_in_lib_base.cpp:47 msgid "Pin Name Inside" msgstr "Nom de pin à l'intérieur" #: eeschema/dialog_create_component.cpp:249 -#: eeschema/dialog_edit_component_in_lib_base.cpp:77 msgid "Skew:" msgstr "Décalage:" @@ -9731,21 +9825,38 @@ msgstr " (alias de " msgid "%8.8lX/" msgstr "%8.8lX/" -#: eeschema/dialog_cmp_graphic_properties.cpp:155 -msgid "Options :" -msgstr "Options :" +#: eeschema/dialog_lib_edit_draw_item_base.cpp:22 +msgid "General" +msgstr "Général " -#: eeschema/dialog_cmp_graphic_properties.cpp:171 -msgid "Void" -msgstr "Sans" +#: eeschema/dialog_lib_edit_draw_item_base.cpp:34 +msgid "&Width:" +msgstr "&Epaisseur" -#: eeschema/dialog_cmp_graphic_properties.cpp:173 -msgid "BgFilled" -msgstr "Fond Plein" +#: eeschema/dialog_lib_edit_draw_item_base.cpp:56 +msgid "Apply changes to all &parts in component" +msgstr "" -#: eeschema/dialog_cmp_graphic_properties.cpp:174 -msgid "Fill:" -msgstr "Remplissage:" +#: eeschema/dialog_lib_edit_draw_item_base.cpp:68 +#, fuzzy +msgid "Apply changes to all body &styles (DeMorgan)" +msgstr "Créer un composant avec une forme &alternative (DeMorgan)" + +#: eeschema/dialog_lib_edit_draw_item_base.cpp:77 +msgid "Fill Style" +msgstr "Style de Remplissage" + +#: eeschema/dialog_lib_edit_draw_item_base.cpp:92 +msgid "Do ¬ fill" +msgstr "Pas de remplissage" + +#: eeschema/dialog_lib_edit_draw_item_base.cpp:96 +msgid "Fill &foreground" +msgstr "Remplissage en &arriere plan" + +#: eeschema/dialog_lib_edit_draw_item_base.cpp:99 +msgid "Fill &background" +msgstr "Remplissage en a&vant plan" #: eeschema/component_wizard/dialog_component_setup.cpp:137 msgid "Quick KICAD Library Component Builder" @@ -9874,7 +9985,6 @@ msgid " [no file]" msgstr " [pas de fichier]" #: cvpcb/menucfg.cpp:37 -#: cvpcb/tool_cvpcb.cpp:30 msgid "Open a NetList file" msgstr "Lire un Fichier Netliste" @@ -9991,8 +10101,6 @@ msgid "Delete selections" msgstr "Effacement des associations existantes" #: cvpcb/cvframe.cpp:438 -#: cvpcb/init.cpp:67 -#: cvpcb/init.cpp:119 #, c-format msgid "Components: %d (free: %d)" msgstr "Composants: %d (libres: %d)" @@ -10677,14 +10785,11 @@ msgid "%d errors while reading Gerber file [%s]" msgstr "%d erreurs pendant lecture fichier gerber [%s]" #: gerbview/readgerb.cpp:274 -#: gerbview/files.cpp:203 -#: gerbview/files.cpp:238 #, c-format msgid "Gerber DCODE files (%s)|*.%s" msgstr "Fichiers Gerber DCODE (%s)|*.%s" #: gerbview/readgerb.cpp:278 -#: gerbview/files.cpp:208 msgid "Load GERBER DCODE File" msgstr "Charger Fichier de DCodes" @@ -11453,10 +11558,6 @@ msgstr "Liste tous" msgid "Select by Browser" msgstr "Sélection par Viewer" -#: common/class_marker_base.cpp:183 -msgid "Marker Info" -msgstr "Info Marqueur" - #: common/drawframe.cpp:348 msgid "Inch" msgstr "Pouce" @@ -11838,7 +11939,7 @@ msgstr "Effacements Globaux" msgid "Footprints Orientation" msgstr "Orientation des Modules" -#: pcbnew/dialog_track_options_base.h:86 +#: pcbnew/dialog_track_options_base.h:81 msgid "Tracks and Vias Sizes" msgstr "Dims Pistes et Vias" @@ -11850,7 +11951,7 @@ msgstr "Dialogue Netliste" msgid "Create SVG file" msgstr "Créer Fichier SVG" -#: pcbnew/dialog_design_rules_base.h:81 +#: pcbnew/dialog_design_rules_base.h:100 msgid "Design Rules Editor" msgstr "Editeur de Règles de Conception" @@ -11862,10 +11963,6 @@ msgstr "Options de Remplissage de Zone" msgid "Non Copper Zones Properties" msgstr "Propriétés des Zones sur couches non cuivre" -#: pcbnew/dialog_general_options_BoardEditor_base.h:80 -msgid "General settings" -msgstr "Options Générales" - #: pcbnew/dialog_pad_properties_base.h:90 msgid "Pad Properties" msgstr "Propriétés du Pad" @@ -11874,6 +11971,10 @@ msgstr "Propriétés du Pad" msgid "Footprint text properties" msgstr "Propriétés du texte du module" +#: pcbnew/dialog_general_options_BoardEditor_base.h:80 +msgid "General settings" +msgstr "Options Générales" + #: pcbnew/set_color.h:36 msgid "Pcbnew Layer Colors:" msgstr "Pcbnew: Couleur des Couches" @@ -11947,10 +12048,6 @@ msgstr "Propriétés du Module" msgid "Copper layers setup" msgstr "Réglage des Couches Cuivre" -#: eeschema/dialog_cmp_graphic_properties.h:43 -msgid "Graphic shape properties" -msgstr "Propriétés du dessin" - #: eeschema/pinedit-dialog.h:66 msgid "Pin properties" msgstr "Propriétés des Pins" @@ -12027,10 +12124,6 @@ msgstr "ERC Warning" msgid "Erc Error" msgstr "ERC Erreur" -#: eeschema/eelayer.h:253 -msgid "General" -msgstr "Général " - #: eeschema/eelayer.h:259 msgid "Device" msgstr "Composant" @@ -12083,6 +12176,10 @@ msgstr "Propriétés des Champs" msgid "Lib Component Properties" msgstr "Propriétés du composant librairie" +#: eeschema/dialog_lib_edit_draw_item_base.h:58 +msgid "Drawing Properties" +msgstr "Propriétés de l'Elément Graphique" + #: eeschema/dialog_erc_base.h:94 msgid "EESchema Erc" msgstr "EESchema Erc" @@ -12243,6 +12340,22 @@ msgstr "DCodes id." msgid "Page Settings" msgstr "Ajustage opt Page" +#~ msgid "Copper &Layers" +#~ msgstr "Couches &Cuivre." +#~ msgid "Select copper layers count and layers names" +#~ msgstr "Sélection du nombre de couches cuivre et du nom des couches" +#~ msgid "Active copper layers count selection" +#~ msgstr "Sélection su nombre de couches cuivre actives" +#~ msgid "Options :" +#~ msgstr "Options :" +#~ msgid "Void" +#~ msgstr "Sans" +#~ msgid "BgFilled" +#~ msgstr "Fond Plein" +#~ msgid "Fill:" +#~ msgstr "Remplissage:" +#~ msgid "Graphic shape properties" +#~ msgstr "Propriétés du dessin" #~ msgid "Unable to create temporary file " #~ msgstr "Impossible de créer le fichier temporaire " #~ msgid "Create temporary file " diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp index 135ee28e76..6b8de3f829 100644 --- a/pcbnew/class_board.cpp +++ b/pcbnew/class_board.cpp @@ -127,6 +127,22 @@ BOARD::~BOARD() return lists_sizes_modified; } +/** function GetBiggestClearanceValue + * @return the biggest clerance value found in NetClasses list + */ +int BOARD::GetBiggestClearanceValue() +{ + int clearance = m_NetClasses.GetDefault()->GetClearance(); + //Read list of Net Classes + for( NETCLASSES::const_iterator nc = m_NetClasses.begin(); nc != m_NetClasses.end(); nc++ ) + { + NETCLASS* netclass = nc->second; + clearance = MAX( clearance, netclass->GetClearance() ); + } + return clearance; +} + + wxString BOARD::GetLayerName( int aLayerIndex ) const { if( ! IsValidLayerIndex( aLayerIndex )) diff --git a/pcbnew/class_board.h b/pcbnew/class_board.h index 2307ff70c2..38c06604a1 100644 --- a/pcbnew/class_board.h +++ b/pcbnew/class_board.h @@ -297,7 +297,7 @@ public: bool SetLayerType( int aLayerIndex, LAYER_T aLayerType ); - /* Routines de calcul des nombres de segments pistes et zones */ + /* Functions to get some items count */ int GetNumSegmTrack(); int GetNumSegmZone(); unsigned GetNoconnectCount(); // retourne le nombre de connexions manquantes @@ -404,6 +404,7 @@ public: */ int ReturnSortedNetnamesList( wxArrayString& aNames, bool aSortbyPadsCount ); + /****** function relative to NetClasses: */ /** * Function SynchronizeNetsAndNetClasses * copies NETCLASS info to each NET, based on NET membership in a NETCLASS. @@ -425,6 +426,13 @@ public: */ bool SetCurrentNetClass( const wxString& aNetClassName ); + /** function GetBiggestClearanceValue + * @return the biggest clerance value found in NetClasses list + */ + int GetBiggestClearanceValue(); + + + /***************************************************************************/ /** * Function Save * writes the data structures for this object out to a FILE in "*.brd" format. @@ -714,6 +722,7 @@ public: * @param aNetcode = netcode to analyse. if -1, analyse all nets */ void Test_Connections_To_Copper_Areas( int aNetcode = -1 ); + }; #endif // #ifndef CLASS_BOARD_H diff --git a/pcbnew/class_board_connected_item.cpp b/pcbnew/class_board_connected_item.cpp index 8a2069f5ba..06a7aed849 100644 --- a/pcbnew/class_board_connected_item.cpp +++ b/pcbnew/class_board_connected_item.cpp @@ -111,6 +111,11 @@ int BOARD_CONNECTED_ITEM::GetClearance( BOARD_CONNECTED_ITEM* aItem ) const } +/** return a pointer to the netclass of the zone + * if the net is not found (can happen when a netlist is reread, + * and the net name is not existant, return the default net class + * So should not return a null pointer + */ NETCLASS* BOARD_CONNECTED_ITEM::GetNetClass() const { // It is important that this be implemented without any sequential searching. @@ -118,33 +123,35 @@ NETCLASS* BOARD_CONNECTED_ITEM::GetNetClass() const BOARD* board = GetBoard(); // DO NOT use wxASSERT, because GetNetClass is called inside an OnPaint event // and a call to wxASSERT can crash the application. - if( board ) - { - NETINFO_ITEM* net = board->FindNet( GetNet() ); - if( net ) - { - NETCLASS* netclass = net->GetNetClass(); -#ifdef __WXDEBUG__ - if( netclass == NULL ) - wxLogWarning(wxT("BOARD_CONNECTED_ITEM::GetNetClass(): NULL netclass") ); -#endif - return netclass; - } - else - { -#ifdef __WXDEBUG__ - wxLogWarning(wxT("BOARD_CONNECTED_ITEM::GetNetClass(): NULL net") ); -#endif - } - } - else + if( board == NULL ) // Should not occurs { #ifdef __WXDEBUG__ wxLogWarning(wxT("BOARD_CONNECTED_ITEM::GetNetClass(): NULL board, type %d"), Type() ); #endif + return NULL; } - return NULL; + NETCLASS* netclass = NULL; + NETINFO_ITEM* net = board->FindNet( GetNet() ); + if( net ) + { + netclass = net->GetNetClass(); +#ifdef __WXDEBUG__ + if( netclass == NULL ) + wxLogWarning(wxT("BOARD_CONNECTED_ITEM::GetNetClass(): NULL netclass") ); +#endif + } + else + { +#ifdef __WXDEBUG__ + wxLogWarning(wxT("BOARD_CONNECTED_ITEM::GetNetClass(): NULL net") ); +#endif + } + + if( netclass ) + return netclass; + else + return board->m_NetClasses.GetDefault(); } /** function GetNetClassName diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index f6aa8431e6..a2a9bc2d22 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -782,7 +782,8 @@ EDA_Rect MODULE::GetBoundingBox() // Add the Clearence shape size: (shape around the pads when the clearence is shown // Not optimized, but the draw cost is small (perhaps smaller than optimization) - area.Inflate(g_DesignSettings.m_TrackClearance, g_DesignSettings.m_TrackClearance); + int biggest_clearance = GetBoard()->GetBiggestClearanceValue(); + area.Inflate(biggest_clearance); return area; } diff --git a/pcbnew/class_netclass.cpp b/pcbnew/class_netclass.cpp index 4a286e0d4c..509193ab43 100644 --- a/pcbnew/class_netclass.cpp +++ b/pcbnew/class_netclass.cpp @@ -33,6 +33,10 @@ // This will get mapped to "kicad_default" in the specctra_export. const wxString NETCLASS::Default = wxT("Default"); +// Initial values for netclass initialization +int NETCLASS::DEFAULT_CLEARANCE = 100; // track to track and track to pads clearance +int NETCLASS::DEFAULT_VIA_DRILL = 250; // default via drill +int NETCLASS::DEFAULT_UVIA_DRILL = 50; // micro via drill NETCLASS::NETCLASS( BOARD* aParent, const wxString& aName, const NETCLASS* initialParameters ) : @@ -60,12 +64,13 @@ void NETCLASS::SetParams( const NETCLASS* defaults ) { const EDA_BoardDesignSettings& g = g_DesignSettings; - SetClearance( g.m_TrackClearance ); SetTrackWidth( g.m_TrackMinWidth ); SetViaDiameter( g.m_ViasMinSize ); - SetViaDrill( g.m_ViaDrill ); SetuViaDiameter(g.m_MicroViasMinSize ); - SetuViaDrill( g.m_MicroViaDrill ); + // Use default values for next parameters: + SetClearance( DEFAULT_CLEARANCE ); + SetViaDrill( DEFAULT_VIA_DRILL ); + SetuViaDrill( DEFAULT_UVIA_DRILL ); } } diff --git a/pcbnew/class_netclass.h b/pcbnew/class_netclass.h index a7570ea5ba..d7e022bb10 100644 --- a/pcbnew/class_netclass.h +++ b/pcbnew/class_netclass.h @@ -37,8 +37,15 @@ * handles a collection of nets and the parameters used to route or * test these nets. */ + class NETCLASS { +private: + // Default values used to init a NETCLASS + static int DEFAULT_CLEARANCE; + static int DEFAULT_VIA_DRILL; + static int DEFAULT_UVIA_DRILL; + protected: BOARD* m_Parent; @@ -213,7 +220,7 @@ public: /** * Class NETCLASSES - * is a containter for NETCLASS instances. It owns all its NETCLASSes + * is a container for NETCLASS instances. It owns all its NETCLASSes * (=> it will delete them at time of destruction). This container will always have * a default NETCLASS with the name given by const NETCLASS::Default. */ diff --git a/pcbnew/class_pad_draw_functions.cpp b/pcbnew/class_pad_draw_functions.cpp index 341a1a7c92..e253346eaf 100644 --- a/pcbnew/class_pad_draw_functions.cpp +++ b/pcbnew/class_pad_draw_functions.cpp @@ -14,7 +14,8 @@ /*******************************************************************************************/ -void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoint& offset ) +void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, + const wxPoint& offset ) /*******************************************************************************************/ /** Draw a pad: @@ -34,6 +35,7 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin wxPoint coord[4]; int fillpad = 0; wxPoint shape_pos; + int mask_margin = 0; // margin (clearance) used for some non copper layers if( m_Flags & DO_NOT_DRAW ) return; @@ -56,6 +58,8 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin if( color == 0 ) /* Not on copper layer */ { + // If the pad in on only one tech layer, use the layer color + // else use DARKGRAY switch( m_Masque_Layer & ~ALL_CU_LAYERS ) { case ADHESIVE_LAYER_CU: @@ -160,12 +164,26 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin } } - // if Contrast mode and a technical layer active, show pads on this layer + // if Contrast mode is ON and a technical layer active, show pads on this layer // so we can see pads on paste or solder layer if( DisplayOpt.ContrastModeDisplay && screen->m_Active_Layer > LAST_COPPER_LAYER ) { if( IsOnLayer( screen->m_Active_Layer ) ) + { color = g_DesignSettings.m_LayerColor[screen->m_Active_Layer]; + // In hight contrast mode, and if the active layer is the mask layer + // shows the pad size with the mask clearance + switch( screen->m_Active_Layer ) + { + case SOLDERMASK_N_CU: + case SOLDERMASK_N_CMP: + mask_margin = g_DesignSettings.m_MaskMargin; + break; + + default: + break; + } + } else color = DARKDARKGRAY; } @@ -191,8 +209,6 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin xc = ux0; yc = uy0; - /* le trace depend de la rotation de l'empreinte */ - dx = dx0 = m_Size.x >> 1; dy = dy0 = m_Size.y >> 1; /* demi dim dx et dy */ @@ -209,15 +225,15 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin * net classes so a call to GetClearance() is made only when needed * (never needed in Cvpcb nor in Gerbview) */ - int padClearance = DisplayIsol ? GetClearance() : 0; + int padClearance = DisplayIsol ? GetClearance() : 0; switch( GetShape() ) { case PAD_CIRCLE: if( fillpad ) - GRFilledCircle( &panel->m_ClipBox, DC, xc, yc, dx, 0, color, color ); + GRFilledCircle( &panel->m_ClipBox, DC, xc, yc, dx + mask_margin, 0, color, color ); else - GRCircle( &panel->m_ClipBox, DC, xc, yc, dx, 0, color ); + GRCircle( &panel->m_ClipBox, DC, xc, yc, dx + mask_margin, 0, color ); if( DisplayIsol ) { @@ -249,14 +265,16 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin if( fillpad ) { - GRFillCSegm( &panel->m_ClipBox, DC, ux0 + delta_cx, uy0 + delta_cy, - ux0 - delta_cx, uy0 - delta_cy, + GRFillCSegm( &panel->m_ClipBox, DC, + ux0 + delta_cx + mask_margin, uy0 + delta_cy + mask_margin, + ux0 - delta_cx - mask_margin, uy0 - delta_cy - mask_margin, rotdx, color ); } else { - GRCSegm( &panel->m_ClipBox, DC, ux0 + delta_cx, uy0 + delta_cy, - ux0 - delta_cx, uy0 - delta_cy, + GRCSegm( &panel->m_ClipBox, DC, + ux0 + delta_cx + mask_margin, uy0 + delta_cy + mask_margin, + ux0 - delta_cx - mask_margin, uy0 - delta_cy - mask_margin, rotdx, color ); } @@ -275,8 +293,8 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin case PAD_TRAPEZOID: { int ddx, ddy; - ddx = m_DeltaSize.x >> 1; - ddy = m_DeltaSize.y >> 1; /* demi dim dx et dy */ + ddx = (m_DeltaSize.x >> 1) + mask_margin; + ddy = (m_DeltaSize.y >> 1) + mask_margin; /* demi dim dx et dy */ coord[0].x = -dx - ddy; coord[0].y = +dy + ddx; @@ -301,8 +319,8 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin if( DisplayIsol ) { - dx += padClearance; - dy += padClearance; + dx += padClearance - mask_margin; + dy += padClearance - mask_margin; coord[0].x = -dx - ddy; coord[0].y = dy + ddx; diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 57496eb1f1..9ba74f4865 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -108,7 +108,7 @@ TRACK* TRACK::Copy() const /** * Function GetDrillValue - * calculate the drill value for vias (m-Drill if > 0, or default drill value for the board + * calculate the drill value for vias (m_Drill if > 0, or default drill value for the Netclass * @return real drill_value */ int TRACK::GetDrillValue() const @@ -116,25 +116,18 @@ int TRACK::GetDrillValue() const if( Type() != TYPE_VIA ) return 0; - if( m_Drill >= 0 ) + if( m_Drill > 0 ) // Use the specific value. return m_Drill; + // Use the default value from the Netclass + NETCLASS* netclass = GetNetClass(); + if( m_Shape == VIA_MICROVIA ) - return g_DesignSettings.m_MicroViaDrill; + return netclass->GetuViaDrill(); - return g_DesignSettings.m_ViaDrill; + return netclass->GetViaDrill(); } -/** - * Function GetLength - * returns the position of this object. - * @return the length of the track segment (0 for a via). - */ -double TRACK::GetLength() -{ - wxPoint delta = m_End - m_Start; - return sqrt( ((double)delta.x*delta.x) + ((double)delta.y*delta.y ) ); -} /***********************/ bool TRACK::IsNull() diff --git a/pcbnew/class_track.h b/pcbnew/class_track.h index 019f9f4e26..04e2a0e15a 100644 --- a/pcbnew/class_track.h +++ b/pcbnew/class_track.h @@ -96,12 +96,6 @@ public: return m_Start; // it had to be start or end. } - /** - * Function GetLength - * returns the position of this object. - * @return the length of the track segment (0 for a via). - */ - double GetLength(); EDA_Rect GetBoundingBox(); diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index de8f9f9f90..b9bf8927e7 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -22,7 +22,7 @@ /************************/ ZONE_CONTAINER::ZONE_CONTAINER( BOARD* parent ) : - BOARD_ITEM( parent, TYPE_ZONE_CONTAINER ) + BOARD_CONNECTED_ITEM( parent, TYPE_ZONE_CONTAINER ) { m_NetCode = -1; // Net number for fast comparisons @@ -42,6 +42,7 @@ ZONE_CONTAINER::~ZONE_CONTAINER() } + /** virtual function GetPosition * @return a wxPoint, position of the first point of the outline */ @@ -71,21 +72,14 @@ void ZONE_CONTAINER::SetNet( int anet_code ) if( anet_code < 0 ) return; - if( m_Parent ) + BOARD* board = GetBoard(); + if( board ) { - BOARD* board = (BOARD*) m_Parent; NETINFO_ITEM* net = board->FindNet( anet_code ); if( net ) m_Netname = net->GetNetname(); else m_Netname.Empty(); - - // Set corresponding SEGZONE items if this zone uses fill areas by segments - for( SEGZONE* zseg = board->m_Zone; zseg; zseg = zseg->Next() ) - { - if ( zseg->m_TimeStamp == m_TimeStamp ) - zseg->SetNet(GetNet()); - } } else m_Netname.Empty(); diff --git a/pcbnew/class_zone.h b/pcbnew/class_zone.h index 1ec6edbfa6..702df763f8 100644 --- a/pcbnew/class_zone.h +++ b/pcbnew/class_zone.h @@ -33,7 +33,7 @@ public: * others polygons inside this main polygon are holes. */ -class ZONE_CONTAINER : public BOARD_ITEM +class ZONE_CONTAINER : public BOARD_CONNECTED_ITEM { public: wxString m_Netname; // Net Name @@ -60,10 +60,6 @@ public: * in this case segments have m_ZoneMinThickness width */ -private: - int m_NetCode; // Net number for fast comparisons - int m_ZoneSubnet; // variable used in rastnest computations:handle block number in zone connection calculations - public: ZONE_CONTAINER( BOARD* parent ); ~ZONE_CONTAINER(); @@ -154,21 +150,7 @@ public: return ( GetLayer() < FIRST_NO_COPPER_LAYER ) ? true : false; } - - /** - * Function GetZoneSubNet - * @return int - the sub net code in zone connections. - */ - int GetZoneSubNet() const { return m_ZoneSubnet; } - void SetZoneSubNet( int aSubNetCode ) { m_ZoneSubnet = aSubNetCode; } - - int GetNet( void ) const - { - return m_NetCode; - } - - - void SetNet( int anet_code ); + virtual void SetNet( int anet_code ); /** * Function SetNetNameFromNetCode diff --git a/pcbnew/classpcb.cpp b/pcbnew/classpcb.cpp index c6b00fa9b9..a0e917e8df 100644 --- a/pcbnew/classpcb.cpp +++ b/pcbnew/classpcb.cpp @@ -199,23 +199,22 @@ EDA_BoardDesignSettings::EDA_BoardDesignSettings() }; m_CopperLayerCount = 2; // Default design is a double sided board - m_ViaDrill = 250; // defualt via drill (for the entire board) m_ViaDrillCustomValue = 250; // via drill for vias which must have a defined drill value m_CurrentViaSize = 450; // Current via size m_CurrentViaType = VIA_THROUGH; // via type (VIA_BLIND_BURIED, VIA_THROUGH VIA_MICROVIA) m_CurrentTrackWidth = 170; // current track width m_UseConnectedTrackWidth = false; // if true, when creating a new track starting on an existing track, use this track width - m_MicroViaDrill = 50; // micro via drill (for the entire board) m_CurrentMicroViaSize = 150; // Current micro via size m_MicroViasAllowed = false; // true to allow micro vias m_DrawSegmentWidth = 100; // current graphic line width (not EDGE layer) m_EdgeSegmentWidth = 100; // current graphic line width (EDGE layer only) m_PcbTextWidth = 100; // current Pcb (not module) Text width m_PcbTextSize = wxSize( 500, 500 ); // current Pcb (not module) Text size - m_TrackClearance = 100; // track to track and track to pads clearance m_TrackMinWidth = 80; // track min value for width ((min copper size value m_ViasMinSize = 350; // vias (not micro vias) min diameter + m_ViasMinDrill = 200; // vias (not micro vias) min drill diameter m_MicroViasMinSize = 200; // micro vias (not vias) min diameter + m_MicroViasMinDrill = 80; // micro vias (not vias) min drill diameter m_MaskMargin = 150; // Solder mask margin /* Color options for screen display of the Printed Board: */ diff --git a/pcbnew/dialog_design_rules.cpp b/pcbnew/dialog_design_rules.cpp index 77dea88a20..dea2abd9db 100644 --- a/pcbnew/dialog_design_rules.cpp +++ b/pcbnew/dialog_design_rules.cpp @@ -5,7 +5,7 @@ /* * This program source code file is part of KICAD, a free EDA CAD application. * - * Copyright (C) 2004-2009 Jean-Pierre Charras, jean-pierre.charras@inpg.fr + * Copyright (C) 2004-2009 Jean-Pierre Charras, jean-pierre.charras@gpisa-lab.inpg.fr * Copyright (C) 2009 Dick Hollenbeck, dick@softplc.com * Copyright (C) 2009 Kicad Developers, see change_log.txt for contributors. * @@ -62,6 +62,7 @@ DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES( WinEDA_PcbFrame* parent ) : /***********************************************************************************/ { m_Parent = parent; + SetAutoLayout( true ); wxListItem column0; wxListItem column1; @@ -87,7 +88,7 @@ DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES( WinEDA_PcbFrame* parent ) : InitDialogRules(); - SetAutoLayout( true ); + Layout(); GetSizer()->Fit( this ); GetSizer()->SetSizeHints( this ); } @@ -161,11 +162,37 @@ void DIALOG_DESIGN_RULES::InitDialogRules() } InitializeRulesSelectionBoxes(); + InitGlobalRules(); PrintCurrentSettings( ); } -// Sort comparison function +/*******************************************/ +void DIALOG_DESIGN_RULES::InitGlobalRules() +/*******************************************/ +{ + AddUnitSymbol( *m_ViaMinTitle ); + AddUnitSymbol( *m_ViaMinDrillTitle ); + AddUnitSymbol( *m_MicroViaMinSizeTitle ); + AddUnitSymbol( *m_MicroViaMinDrillTitle ); + AddUnitSymbol( *m_TrackMinWidthTitle ); + + int Internal_Unit = m_Parent->m_InternalUnits; + PutValueInLocalUnits( *m_SetViasMinSizeCtrl, g_DesignSettings.m_ViasMinSize, Internal_Unit ); + PutValueInLocalUnits( *m_SetViasMinDrillCtrl, g_DesignSettings.m_ViasMinDrill, Internal_Unit ); + + if( g_DesignSettings.m_CurrentViaType != VIA_THROUGH ) + m_OptViaType->SetSelection( 1 ); + + m_AllowMicroViaCtrl->SetSelection( g_DesignSettings.m_MicroViasAllowed ? 1 : 0); + PutValueInLocalUnits( *m_SetMicroViasMinSizeCtrl, g_DesignSettings.m_MicroViasMinSize, Internal_Unit ); + PutValueInLocalUnits( *m_SetMicroViasMinDrillCtrl, g_DesignSettings.m_MicroViasMinDrill, Internal_Unit ); + + PutValueInLocalUnits( *m_SetTrackMinWidthCtrl, g_DesignSettings.m_TrackMinWidth, Internal_Unit ); +} + + +// Sort comparison function (helper for makePointers() ) static bool sortByClassThenName( NETCUP* a, NETCUP* b ) { // return a < b @@ -404,6 +431,35 @@ void DIALOG_DESIGN_RULES::CopyRulesListToBoard() m_Pcb->SynchronizeNetsAndNetClasses(); } +/*************************************************/ +bool DIALOG_DESIGN_RULES::CopyGlobalRulesToBoard() +/*************************************************/ +{ + g_DesignSettings.m_CurrentViaType = VIA_THROUGH; + if( m_OptViaType->GetSelection() > 0 ) + g_DesignSettings.m_CurrentViaType = VIA_BLIND_BURIED; + + // Update vias minimum values for DRC + g_DesignSettings.m_ViasMinSize = + ReturnValueFromTextCtrl( *m_SetViasMinSizeCtrl, m_Parent->m_InternalUnits ); + g_DesignSettings.m_ViasMinDrill = + ReturnValueFromTextCtrl( *m_SetViasMinDrillCtrl, m_Parent->m_InternalUnits ); + + g_DesignSettings.m_MicroViasAllowed = m_AllowMicroViaCtrl->GetSelection() == 1; + + // Update microvias minimum values for DRC + g_DesignSettings.m_MicroViasMinSize = + ReturnValueFromTextCtrl( *m_SetMicroViasMinSizeCtrl, m_Parent->m_InternalUnits ); + g_DesignSettings.m_MicroViasMinDrill = + ReturnValueFromTextCtrl( *m_SetMicroViasMinDrillCtrl, m_Parent->m_InternalUnits ); + + // Update tracks minimum values for DRC + g_DesignSettings.m_TrackMinWidth = + ReturnValueFromTextCtrl( *m_SetTrackMinWidthCtrl, m_Parent->m_InternalUnits ); + + return true; +} + /*****************************************************************/ void DIALOG_DESIGN_RULES::OnCancelButtonClick( wxCommandEvent& event ) @@ -424,8 +480,11 @@ void DIALOG_DESIGN_RULES::OnOkButtonClick( wxCommandEvent& event ) } CopyRulesListToBoard(); + CopyGlobalRulesToBoard(); EndModal( wxID_OK ); + + m_Parent->AuxiliaryToolBar_Update_UI(); } @@ -458,19 +517,19 @@ void DIALOG_DESIGN_RULES::OnAddNetclassClick( wxCommandEvent& event ) m_grid->GetNumberRows() - 1, class_name ); - // Copy values of the previous class: + // Copy values of the default class: int irow = m_grid->GetNumberRows() - 1; for( int icol = 0; icol < m_grid->GetNumberCols(); icol++ ) { wxString value; - value = m_grid->GetCellValue( irow - 1, icol ); + value = m_grid->GetCellValue( 0, icol ); m_grid->SetCellValue( irow, icol, value ); } InitializeRulesSelectionBoxes(); } -// Sort function for wxArrayInt. Itelms (ints) are sorted by decreasing value +// Sort function for wxArrayInt. Items (ints) are sorted by decreasing value // used in DIALOG_DESIGN_RULES::OnRemoveNetclassClick int sort_int(int *first, int *second) { @@ -683,12 +742,17 @@ bool DIALOG_DESIGN_RULES::TestDataValidity() wxString msg; + int minViaDrill = ReturnValueFromTextCtrl( *m_SetViasMinDrillCtrl, m_Parent->m_InternalUnits ); + int minUViaDrill = ReturnValueFromTextCtrl( *m_SetMicroViasMinDrillCtrl, m_Parent->m_InternalUnits ); + int minTrackWidth = ReturnValueFromTextCtrl( *m_SetTrackMinWidthCtrl, m_Parent->m_InternalUnits ); + + for( int row = 0; row < m_grid->GetNumberRows(); row++ ) { int tracksize = ReturnValueFromString( g_UnitMetric, m_grid->GetCellValue( row, GRID_TRACKSIZE ), m_Parent->m_InternalUnits ); - if( tracksize < g_DesignSettings.m_TrackMinWidth ) + if( tracksize < minTrackWidth ) { result = false; msg.Printf( _( "%s: Track Size < Min Track Size
" ), @@ -714,7 +778,7 @@ bool DIALOG_DESIGN_RULES::TestDataValidity() int viadrill = ReturnValueFromString( g_UnitMetric, m_grid->GetCellValue( row, GRID_VIADRILL ), m_Parent->m_InternalUnits ); - if( viadrill && viadrill >= viadia ) + if( viadrill >= viadia ) { result = false; msg.Printf( _( "%s: Via DrillVia Dia
" ), @@ -723,6 +787,15 @@ bool DIALOG_DESIGN_RULES::TestDataValidity() m_MessagesList->AppendToPage( msg ); } + if( viadrill < minViaDrill ) + { + result = false; + msg.Printf( _( "%s: Via Drill < Min Via Drill
" ), + GetChars( m_grid->GetRowLabelValue(row)) ); + + m_MessagesList->AppendToPage( msg ); + } + // Test Micro vias int muviadia = ReturnValueFromString( g_UnitMetric, m_grid->GetCellValue( row, GRID_uVIASIZE ), @@ -731,7 +804,7 @@ bool DIALOG_DESIGN_RULES::TestDataValidity() if( muviadia < g_DesignSettings.m_MicroViasMinSize ) { result = false; - msg.Printf( _( "%s: MicroVia Diameter < Minimun MicroVia Diameter
" ), + msg.Printf( _( "%s: MicroVia Diameter < MicroVia Min Diameter
" ), GetChars( m_grid->GetRowLabelValue(row)) ); m_MessagesList->AppendToPage( msg ); @@ -740,7 +813,7 @@ bool DIALOG_DESIGN_RULES::TestDataValidity() int muviadrill = ReturnValueFromString( g_UnitMetric, m_grid->GetCellValue( row, GRID_uVIADRILL ), m_Parent->m_InternalUnits ); - if( muviadrill && muviadrill >= muviadia ) + if( muviadrill >= muviadia ) { result = false; msg.Printf( _( "%s: MicroVia DrillMicroVia Dia
" ), @@ -748,6 +821,15 @@ bool DIALOG_DESIGN_RULES::TestDataValidity() m_MessagesList->AppendToPage( msg ); } + + if( muviadrill < minUViaDrill ) + { + result = false; + msg.Printf( _( "%s: MicroVia DrillMicroVia Min Drill
" ), + GetChars( m_grid->GetRowLabelValue(row)) ); + + m_MessagesList->AppendToPage( msg ); + } } return result; diff --git a/pcbnew/dialog_design_rules.h b/pcbnew/dialog_design_rules.h index 227734f06d..7c32905929 100644 --- a/pcbnew/dialog_design_rules.h +++ b/pcbnew/dialog_design_rules.h @@ -58,9 +58,11 @@ private: void OnRightSelectAllButton( wxCommandEvent& event ); bool TestDataValidity( ); void InitDialogRules(); + void InitGlobalRules(); void InitRulesList(); void InitializeRulesSelectionBoxes(); void CopyRulesListToBoard(); + bool CopyGlobalRulesToBoard(); void SetRoutableLayerStatus(); void FillListBoxWithNetNames( wxListCtrl* aListCtrl, const wxString& aNetClass ); void PrintCurrentSettings( ); diff --git a/pcbnew/dialog_design_rules_base.cpp b/pcbnew/dialog_design_rules_base.cpp index 315c6c58f2..6ea3759646 100644 --- a/pcbnew/dialog_design_rules_base.cpp +++ b/pcbnew/dialog_design_rules_base.cpp @@ -16,10 +16,15 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID wxBoxSizer* bMainSizer; bMainSizer = new wxBoxSizer( wxVERTICAL ); - wxStaticBoxSizer* sbSizer1; - sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Net Classes:") ), wxVERTICAL ); + m_DRnotebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_LEFT ); + m_panelNetClassesEditor = new wxPanel( m_DRnotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); + wxBoxSizer* bpanelNetClassesSizer; + bpanelNetClassesSizer = new wxBoxSizer( wxVERTICAL ); - m_grid = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxSIMPLE_BORDER|wxVSCROLL ); + wxStaticBoxSizer* sbSizer1; + sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( m_panelNetClassesEditor, wxID_ANY, _("Net Classes:") ), wxVERTICAL ); + + m_grid = new wxGrid( m_panelNetClassesEditor, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxSIMPLE_BORDER|wxVSCROLL ); // Grid m_grid->CreateGrid( 1, 6 ); @@ -64,56 +69,64 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID wxBoxSizer* buttonBoxSizer; buttonBoxSizer = new wxBoxSizer( wxHORIZONTAL ); - m_addButton = new wxButton( this, wxID_ADD_NETCLASS, _("Add"), wxDefaultPosition, wxDefaultSize, 0 ); + m_addButton = new wxButton( m_panelNetClassesEditor, wxID_ADD_NETCLASS, _("Add"), wxDefaultPosition, wxDefaultSize, 0 ); m_addButton->SetToolTip( _("Add another Net Class") ); buttonBoxSizer->Add( m_addButton, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); - m_removeButton = new wxButton( this, wxID_REMOVE_NETCLASS, _("Remove"), wxDefaultPosition, wxDefaultSize, 0 ); - m_removeButton->SetToolTip( _("Remove the currently select Net Class") ); + m_removeButton = new wxButton( m_panelNetClassesEditor, wxID_REMOVE_NETCLASS, _("Remove"), wxDefaultPosition, wxDefaultSize, 0 ); + m_removeButton->SetToolTip( _("Remove the currently select Net Class\nThe default Net Class cannot be removed") ); buttonBoxSizer->Add( m_removeButton, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); - m_moveUpButton = new wxButton( this, wxID_ANY, _("Move Up"), wxDefaultPosition, wxDefaultSize, 0 ); + m_moveUpButton = new wxButton( m_panelNetClassesEditor, wxID_ANY, _("Move Up"), wxDefaultPosition, wxDefaultSize, 0 ); m_moveUpButton->SetToolTip( _("Move the currently selected Net Class up one row") ); buttonBoxSizer->Add( m_moveUpButton, 0, wxRIGHT|wxLEFT, 5 ); sbSizer1->Add( buttonBoxSizer, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); - bMainSizer->Add( sbSizer1, 1, wxEXPAND|wxALL, 5 ); + bpanelNetClassesSizer->Add( sbSizer1, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 ); wxStaticBoxSizer* sbSizer4; - sbSizer4 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Membership:") ), wxHORIZONTAL ); + sbSizer4 = new wxStaticBoxSizer( new wxStaticBox( m_panelNetClassesEditor, wxID_ANY, _("Membership:") ), wxHORIZONTAL ); wxBoxSizer* leftNetSelectBoxSizer; leftNetSelectBoxSizer = new wxBoxSizer( wxVERTICAL ); wxArrayString m_leftClassChoiceChoices; - m_leftClassChoice = new wxChoice( this, ID_LEFT_CHOICE_CLICK, wxDefaultPosition, wxDefaultSize, m_leftClassChoiceChoices, 0 ); + m_leftClassChoice = new wxChoice( m_panelNetClassesEditor, ID_LEFT_CHOICE_CLICK, wxDefaultPosition, wxDefaultSize, m_leftClassChoiceChoices, 0 ); m_leftClassChoice->SetSelection( 0 ); - leftNetSelectBoxSizer->Add( m_leftClassChoice, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + leftNetSelectBoxSizer->Add( m_leftClassChoice, 0, wxEXPAND, 5 ); - m_leftListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_VRULES|wxSUNKEN_BORDER ); + m_leftListCtrl = new wxListCtrl( m_panelNetClassesEditor, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_VRULES|wxSUNKEN_BORDER ); m_leftListCtrl->SetMinSize( wxSize( 220,300 ) ); - leftNetSelectBoxSizer->Add( m_leftListCtrl, 1, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + leftNetSelectBoxSizer->Add( m_leftListCtrl, 1, wxEXPAND|wxTOP, 5 ); sbSizer4->Add( leftNetSelectBoxSizer, 1, wxALL|wxEXPAND, 5 ); wxBoxSizer* bmiddleSizerNetSelect; bmiddleSizerNetSelect = new wxBoxSizer( wxVERTICAL ); - m_buttonRightToLeft = new wxButton( this, ID_LEFT_TO_RIGHT_COPY, _("<<<"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonRightToLeft = new wxButton( m_panelNetClassesEditor, ID_LEFT_TO_RIGHT_COPY, _("<<<"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonRightToLeft->SetToolTip( _("Move the selected nets in the right list to the left list") ); + bmiddleSizerNetSelect->Add( m_buttonRightToLeft, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); - m_buttonLeftToRight = new wxButton( this, ID_RIGHT_TO_LEFT_COPY, _(">>>"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonLeftToRight = new wxButton( m_panelNetClassesEditor, ID_RIGHT_TO_LEFT_COPY, _(">>>"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonLeftToRight->SetToolTip( _("Move the selected nets in the left list to the right list") ); + bmiddleSizerNetSelect->Add( m_buttonLeftToRight, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); - m_buttonLeftSelAll = new wxButton( this, wxID_ANY, _("<< Select All"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonLeftSelAll = new wxButton( m_panelNetClassesEditor, wxID_ANY, _("<< Select All"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonLeftSelAll->SetToolTip( _("Select all nets in the left list") ); + bmiddleSizerNetSelect->Add( m_buttonLeftSelAll, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); - m_buttonRightSelAll = new wxButton( this, wxID_ANY, _("Select All >>"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonRightSelAll = new wxButton( m_panelNetClassesEditor, wxID_ANY, _("Select All >>"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonRightSelAll->SetToolTip( _("Select all nets in the right list") ); + bmiddleSizerNetSelect->Add( m_buttonRightSelAll, 0, wxALIGN_BOTTOM|wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); sbSizer4->Add( bmiddleSizerNetSelect, 0, wxALIGN_CENTER_VERTICAL, 5 ); @@ -122,18 +135,133 @@ DIALOG_DESIGN_RULES_BASE::DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID rghtNetSelectBoxSizer = new wxBoxSizer( wxVERTICAL ); wxArrayString m_rightClassChoiceChoices; - m_rightClassChoice = new wxChoice( this, ID_RIGHT_CHOICE_CLICK, wxDefaultPosition, wxDefaultSize, m_rightClassChoiceChoices, 0 ); + m_rightClassChoice = new wxChoice( m_panelNetClassesEditor, ID_RIGHT_CHOICE_CLICK, wxDefaultPosition, wxDefaultSize, m_rightClassChoiceChoices, 0 ); m_rightClassChoice->SetSelection( 0 ); - rghtNetSelectBoxSizer->Add( m_rightClassChoice, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + rghtNetSelectBoxSizer->Add( m_rightClassChoice, 0, wxEXPAND, 5 ); - m_rightListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_VRULES|wxSUNKEN_BORDER ); + m_rightListCtrl = new wxListCtrl( m_panelNetClassesEditor, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_VRULES|wxSUNKEN_BORDER ); m_rightListCtrl->SetMinSize( wxSize( 220,-1 ) ); - rghtNetSelectBoxSizer->Add( m_rightListCtrl, 1, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + rghtNetSelectBoxSizer->Add( m_rightListCtrl, 1, wxEXPAND|wxTOP, 5 ); sbSizer4->Add( rghtNetSelectBoxSizer, 1, wxALL|wxEXPAND, 5 ); - bMainSizer->Add( sbSizer4, 2, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + bpanelNetClassesSizer->Add( sbSizer4, 2, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_panelNetClassesEditor->SetSizer( bpanelNetClassesSizer ); + m_panelNetClassesEditor->Layout(); + bpanelNetClassesSizer->Fit( m_panelNetClassesEditor ); + m_DRnotebook->AddPage( m_panelNetClassesEditor, _("Net Classes Editor"), true ); + m_panelGolbalDesignRules = new wxPanel( m_DRnotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); + wxBoxSizer* bpanelGlobRulesSizer; + bpanelGlobRulesSizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bDesignRulesUpperSizer; + bDesignRulesUpperSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxStaticBoxSizer* sbViasOptionSizer; + sbViasOptionSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelGolbalDesignRules, wxID_ANY, _("Vias Options:") ), wxVERTICAL ); + + wxString m_OptViaTypeChoices[] = { _("Through via"), _("Blind or buried via") }; + int m_OptViaTypeNChoices = sizeof( m_OptViaTypeChoices ) / sizeof( wxString ); + m_OptViaType = new wxRadioBox( m_panelGolbalDesignRules, wxID_ANY, _("Default Via Type"), wxDefaultPosition, wxDefaultSize, m_OptViaTypeNChoices, m_OptViaTypeChoices, 1, wxRA_SPECIFY_COLS ); + m_OptViaType->SetSelection( 0 ); + m_OptViaType->SetToolTip( _("Select the current via type.\nTrough via is the usual selection") ); + + sbViasOptionSizer->Add( m_OptViaType, 0, wxALL|wxEXPAND, 5 ); + + wxFlexGridSizer* fgViasMinValuesSizer; + fgViasMinValuesSizer = new wxFlexGridSizer( 1, 2, 0, 0 ); + fgViasMinValuesSizer->AddGrowableCol( 1 ); + fgViasMinValuesSizer->SetFlexibleDirection( wxBOTH ); + fgViasMinValuesSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_ViaMinTitle = new wxStaticText( m_panelGolbalDesignRules, wxID_ANY, _("Via Min Diameter"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ViaMinTitle->Wrap( -1 ); + fgViasMinValuesSizer->Add( m_ViaMinTitle, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 ); + + m_SetViasMinSizeCtrl = new wxTextCtrl( m_panelGolbalDesignRules, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgViasMinValuesSizer->Add( m_SetViasMinSizeCtrl, 0, wxEXPAND|wxALL, 5 ); + + m_ViaMinDrillTitle = new wxStaticText( m_panelGolbalDesignRules, wxID_ANY, _("Via Min Drill"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ViaMinDrillTitle->Wrap( -1 ); + fgViasMinValuesSizer->Add( m_ViaMinDrillTitle, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT, 5 ); + + m_SetViasMinDrillCtrl = new wxTextCtrl( m_panelGolbalDesignRules, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgViasMinValuesSizer->Add( m_SetViasMinDrillCtrl, 0, wxALL|wxEXPAND, 5 ); + + sbViasOptionSizer->Add( fgViasMinValuesSizer, 0, wxEXPAND, 5 ); + + bDesignRulesUpperSizer->Add( sbViasOptionSizer, 1, wxALIGN_CENTER_VERTICAL, 5 ); + + wxStaticBoxSizer* sbuViasSizer; + sbuViasSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelGolbalDesignRules, wxID_ANY, _("Micro Vias Options:") ), wxVERTICAL ); + + wxString m_AllowMicroViaCtrlChoices[] = { _("Do not allow micro vias"), _("Allow micro vias") }; + int m_AllowMicroViaCtrlNChoices = sizeof( m_AllowMicroViaCtrlChoices ) / sizeof( wxString ); + m_AllowMicroViaCtrl = new wxRadioBox( m_panelGolbalDesignRules, wxID_ANY, _("Micro Vias:"), wxDefaultPosition, wxDefaultSize, m_AllowMicroViaCtrlNChoices, m_AllowMicroViaCtrlChoices, 1, wxRA_SPECIFY_COLS ); + m_AllowMicroViaCtrl->SetSelection( 0 ); + m_AllowMicroViaCtrl->SetToolTip( _("Allows or do not allow use of micro vias\nThey are very small vias only from an external copper layer to its near neightbour") ); + + sbuViasSizer->Add( m_AllowMicroViaCtrl, 0, wxALL|wxEXPAND, 5 ); + + wxFlexGridSizer* fgMinMicroviasValuesSizer; + fgMinMicroviasValuesSizer = new wxFlexGridSizer( 1, 2, 0, 0 ); + fgMinMicroviasValuesSizer->AddGrowableCol( 1 ); + fgMinMicroviasValuesSizer->SetFlexibleDirection( wxBOTH ); + fgMinMicroviasValuesSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_MicroViaMinSizeTitle = new wxStaticText( m_panelGolbalDesignRules, wxID_ANY, _("MicroVia Min Diameter"), wxDefaultPosition, wxDefaultSize, 0 ); + m_MicroViaMinSizeTitle->Wrap( -1 ); + fgMinMicroviasValuesSizer->Add( m_MicroViaMinSizeTitle, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 ); + + m_SetMicroViasMinSizeCtrl = new wxTextCtrl( m_panelGolbalDesignRules, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgMinMicroviasValuesSizer->Add( m_SetMicroViasMinSizeCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_MicroViaMinDrillTitle = new wxStaticText( m_panelGolbalDesignRules, wxID_ANY, _("MicroVia Min Drill"), wxDefaultPosition, wxDefaultSize, 0 ); + m_MicroViaMinDrillTitle->Wrap( -1 ); + fgMinMicroviasValuesSizer->Add( m_MicroViaMinDrillTitle, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 ); + + m_SetMicroViasMinDrillCtrl = new wxTextCtrl( m_panelGolbalDesignRules, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgMinMicroviasValuesSizer->Add( m_SetMicroViasMinDrillCtrl, 0, wxALL|wxEXPAND, 5 ); + + sbuViasSizer->Add( fgMinMicroviasValuesSizer, 1, wxEXPAND, 5 ); + + bDesignRulesUpperSizer->Add( sbuViasSizer, 1, wxALIGN_CENTER_VERTICAL, 5 ); + + wxStaticBoxSizer* sbMinSizesSizer; + sbMinSizesSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelGolbalDesignRules, wxID_ANY, _("Minimal Values Allowed:") ), wxVERTICAL ); + + wxFlexGridSizer* fgMinValuesSizer; + fgMinValuesSizer = new wxFlexGridSizer( 1, 2, 0, 0 ); + fgMinValuesSizer->AddGrowableCol( 1 ); + fgMinValuesSizer->SetFlexibleDirection( wxBOTH ); + fgMinValuesSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_TrackMinWidthTitle = new wxStaticText( m_panelGolbalDesignRules, wxID_ANY, _("Track Min Width"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TrackMinWidthTitle->Wrap( -1 ); + fgMinValuesSizer->Add( m_TrackMinWidthTitle, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 ); + + m_SetTrackMinWidthCtrl = new wxTextCtrl( m_panelGolbalDesignRules, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgMinValuesSizer->Add( m_SetTrackMinWidthCtrl, 0, wxALL, 5 ); + + sbMinSizesSizer->Add( fgMinValuesSizer, 0, 0, 5 ); + + bDesignRulesUpperSizer->Add( sbMinSizesSizer, 0, wxEXPAND, 5 ); + + bpanelGlobRulesSizer->Add( bDesignRulesUpperSizer, 0, wxEXPAND, 5 ); + + wxBoxSizer* bDesignRulesLowerSizer; + bDesignRulesLowerSizer = new wxBoxSizer( wxHORIZONTAL ); + + bpanelGlobRulesSizer->Add( bDesignRulesLowerSizer, 1, wxEXPAND, 5 ); + + m_panelGolbalDesignRules->SetSizer( bpanelGlobRulesSizer ); + m_panelGolbalDesignRules->Layout(); + bpanelGlobRulesSizer->Fit( m_panelGolbalDesignRules ); + m_DRnotebook->AddPage( m_panelGolbalDesignRules, _("Global Design Rules"), false ); + + bMainSizer->Add( m_DRnotebook, 1, wxEXPAND | wxALL, 5 ); wxStaticBoxSizer* sbSizer2; sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxHORIZONTAL ); diff --git a/pcbnew/dialog_design_rules_base.fbp b/pcbnew/dialog_design_rules_base.fbp index c488581d17..f4343483fa 100644 --- a/pcbnew/dialog_design_rules_base.fbp +++ b/pcbnew/dialog_design_rules_base.fbp @@ -32,7 +32,7 @@ 600,520 DIALOG_DESIGN_RULES_BASE - 750,692 + 792,692 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Design Rules Editor @@ -77,105 +77,80 @@ none 5 - wxEXPAND|wxALL + wxEXPAND | wxALL 1 - + + + + + 1 + + + 0 wxID_ANY - Net Classes: + - sbSizer1 - wxVERTICAL - none + m_DRnotebook + protected + + + wxNB_LEFT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - 5 - wxEXPAND - 1 - - 0 - 1 + + + Net Classes Editor + 1 + - - - wxALIGN_LEFT - - wxALIGN_TOP - wxALIGN_CENTRE - 40 - "Clearance" "Track Width" "Via Dia" "Via Drill" "uVia Dia" "uVia Drill" - wxALIGN_CENTRE - 6 - 100,100,100,100,100 - 0 - 1 - 0 - 1 - 1 1 - - 1 0 wxID_ANY - - - - 0 - 0 - -1,150 - m_grid + + m_panelNetClassesEditor protected - wxALIGN_LEFT - 120 - "Default" - wxALIGN_CENTRE - - 1 - Net Class parameters + - wxHSCROLL|wxSIMPLE_BORDER|wxVSCROLL + wxSUNKEN_BORDER|wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - OnNetClassesNameLeftClick - - OnNetClassesNameRightClick - - - - @@ -196,666 +171,1607 @@ - - - - 5 - wxALIGN_CENTER_HORIZONTAL - 0 - - - buttonBoxSizer - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT - 0 - - - - 0 - 1 - - - 0 - wxID_ADD_NETCLASS - Add - - - m_addButton - protected - - - - - Add another Net Class - - - - OnAddNetclassClick - - - - - - - - - - - - - - - - - - - - - - - + + + bpanelNetClassesSizer + wxVERTICAL + none + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 1 + + wxID_ANY + Net Classes: + + sbSizer1 + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 0 + 1 + + + + wxALIGN_LEFT + + wxALIGN_TOP + wxALIGN_CENTRE + 40 + "Clearance" "Track Width" "Via Dia" "Via Drill" "uVia Dia" "uVia Drill" + wxALIGN_CENTRE + 6 + 100,100,100,100,100 + + 0 + 1 + 0 + 1 + 1 + 1 + + + + 1 + 0 + wxID_ANY + + + + 0 + 0 + + -1,150 + m_grid + protected + + wxALIGN_LEFT + 120 + "Default" + wxALIGN_CENTRE + + 1 + + + Net Class parameters + + + wxHSCROLL|wxSIMPLE_BORDER|wxVSCROLL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnNetClassesNameLeftClick + + OnNetClassesNameRightClick + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + + buttonBoxSizer + wxHORIZONTAL + none + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ADD_NETCLASS + Add + + + m_addButton + protected + + + + + Add another Net Class + + + + OnAddNetclassClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_REMOVE_NETCLASS + Remove + + + m_removeButton + protected + + + + + Remove the currently select Net Class The default Net Class cannot be removed + + + + OnRemoveNetclassClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Move Up + + + m_moveUpButton + protected + + + + + Move the currently selected Net Class up one row + + + + OnMoveUpSelectedNetClass + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT - 0 - - - - 0 - 1 - - - 0 - wxID_REMOVE_NETCLASS - Remove - - - m_removeButton - protected - - - - - Remove the currently select Net Class - - - - OnRemoveNetclassClick - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxLEFT - 0 - - - - 0 - 1 - - - 0 - wxID_ANY - Move Up - - - m_moveUpButton - protected - - - - - Move the currently selected Net Class up one row - - - - OnMoveUpSelectedNetClass - - - - - - - - - - - - - - - - - - - - - - - + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 2 + + wxID_ANY + Membership: + + sbSizer4 + wxHORIZONTAL + none + + + 5 + wxALL|wxEXPAND + 1 + + + leftNetSelectBoxSizer + wxVERTICAL + none + + 5 + wxEXPAND + 0 + + + + + 1 + + + 0 + ID_LEFT_CHOICE_CLICK + + + m_leftClassChoice + protected + + 0 + + + + + + + + OnLeftCBSelection + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP + 1 + + + + 1 + + + 0 + wxID_ANY + + 220,300 + m_leftListCtrl + protected + + + wxLC_HRULES|wxLC_REPORT|wxLC_VRULES + + + + + wxSUNKEN_BORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + + bmiddleSizerNetSelect + wxVERTICAL + none + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 0 + 1 + + + 0 + ID_LEFT_TO_RIGHT_COPY + <<< + + + m_buttonRightToLeft + protected + + + + + Move the selected nets in the right list to the left list + + + + OnRightToLeftCopyButton + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 0 + 1 + + + 0 + ID_RIGHT_TO_LEFT_COPY + >>> + + + m_buttonLeftToRight + protected + + + + + Move the selected nets in the left list to the right list + + + + OnLeftToRightCopyButton + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + << Select All + + + m_buttonLeftSelAll + protected + + + + + Select all nets in the left list + + + + OnLeftSelectAllButton + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_BOTTOM|wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Select All >> + + + m_buttonRightSelAll + protected + + + + + Select all nets in the right list + + + + OnRightSelectAllButton + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 1 + + + rghtNetSelectBoxSizer + wxVERTICAL + none + + 5 + wxEXPAND + 0 + + + + + 1 + + + 0 + ID_RIGHT_CHOICE_CLICK + + + m_rightClassChoice + protected + + 0 + + + + + + + + OnRightCBSelection + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP + 1 + + + + 1 + + + 0 + wxID_ANY + + 220,-1 + m_rightListCtrl + protected + + + wxLC_HRULES|wxLC_REPORT|wxLC_VRULES + + + + + wxSUNKEN_BORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 2 - - wxID_ANY - Membership: - - sbSizer4 - wxHORIZONTAL - none - - - 5 - wxALL|wxEXPAND - 1 - + + + Global Design Rules + 0 + + + + 1 + + + 0 + wxID_ANY + - leftNetSelectBoxSizer - wxVERTICAL - none - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - - - - 1 - - - 0 - ID_LEFT_CHOICE_CLICK - - - m_leftClassChoice - protected - - 0 - - - - - - - - OnLeftCBSelection - - - - - - - - - - - - - - - - - - - - - - + m_panelGolbalDesignRules + protected + + + + + + + wxSUNKEN_BORDER|wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bpanelGlobRulesSizer + wxVERTICAL + none + + 5 + wxEXPAND + 0 + + + bDesignRulesUpperSizer + wxHORIZONTAL + none + + 5 + wxALIGN_CENTER_VERTICAL + 1 + + wxID_ANY + Vias Options: + + sbViasOptionSizer + wxVERTICAL + none + + + 5 + wxALL|wxEXPAND + 0 + + + "Through via" "Blind or buried via" + + 1 + + + 0 + wxID_ANY + Default Via Type + 1 + + + m_OptViaType + protected + + 0 + + wxRA_SPECIFY_COLS + + Select the current via type. Trough via is the usual selection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + 2 + wxBOTH + 1 + + 0 + + fgViasMinValuesSizer + wxFLEX_GROWMODE_SPECIFIED + none + 1 + 0 + + 5 + wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Via Min Diameter + + + m_ViaMinTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_SetViasMinSizeCtrl + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT + 0 + + + + 1 + + + 0 + wxID_ANY + Via Min Drill + + + m_ViaMinDrillTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_SetViasMinDrillCtrl + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 1 + + wxID_ANY + Micro Vias Options: + + sbuViasSizer + wxVERTICAL + none + + + 5 + wxALL|wxEXPAND + 0 + + + "Do not allow micro vias" "Allow micro vias" + + 1 + + + 0 + wxID_ANY + Micro Vias: + 1 + + + m_AllowMicroViaCtrl + protected + + 0 + + wxRA_SPECIFY_COLS + + Allows or do not allow use of micro vias They are very small vias only from an external copper layer to its near neightbour + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 2 + wxBOTH + 1 + + 0 + + fgMinMicroviasValuesSizer + wxFLEX_GROWMODE_SPECIFIED + none + 1 + 0 + + 5 + wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + MicroVia Min Diameter + + + m_MicroViaMinSizeTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_SetMicroViasMinSizeCtrl + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + MicroVia Min Drill + + + m_MicroViaMinDrillTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_SetMicroViasMinDrillCtrl + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Minimal Values Allowed: + + sbMinSizesSizer + wxVERTICAL + none + + + 5 + + 0 + + 2 + wxBOTH + 1 + + 0 + + fgMinValuesSizer + wxFLEX_GROWMODE_SPECIFIED + none + 1 + 0 + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Track Min Width + + + m_TrackMinWidthTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_SetTrackMinWidthCtrl + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 1 - - - - 1 - - - 0 - wxID_ANY - - 220,300 - m_leftListCtrl - protected - - - wxLC_HRULES|wxLC_REPORT|wxLC_VRULES - - - - - wxSUNKEN_BORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - - bmiddleSizerNetSelect - wxVERTICAL - none - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL - 0 - - - - 0 - 1 - - - 0 - ID_LEFT_TO_RIGHT_COPY - <<< - - - m_buttonRightToLeft - protected - - - - - - - - - OnRightToLeftCopyButton - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL - 0 - - - - 0 - 1 - - - 0 - ID_RIGHT_TO_LEFT_COPY - >>> - - - m_buttonLeftToRight - protected - - - - - - - - - OnLeftToRightCopyButton - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL - 0 - - - - 0 - 1 - - - 0 - wxID_ANY - << Select All - - - m_buttonLeftSelAll - protected - - - - - - - - - OnLeftSelectAllButton - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_BOTTOM|wxALL|wxALIGN_CENTER_HORIZONTAL - 0 - - - - 0 - 1 - - - 0 - wxID_ANY - Select All >> - - - m_buttonRightSelAll - protected - - - - - - - - - OnRightSelectAllButton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - - rghtNetSelectBoxSizer - wxVERTICAL - none - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - - - - 1 - - - 0 - ID_RIGHT_CHOICE_CLICK - - - m_rightClassChoice - protected - - 0 - - - - - - - - OnRightCBSelection - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 1 - - - - 1 - - - 0 - wxID_ANY - - 220,-1 - m_rightListCtrl - protected - - - wxLC_HRULES|wxLC_REPORT|wxLC_VRULES - - - - - wxSUNKEN_BORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + 5 + wxEXPAND + 1 + + + bDesignRulesLowerSizer + wxHORIZONTAL + none + diff --git a/pcbnew/dialog_design_rules_base.h b/pcbnew/dialog_design_rules_base.h index 448ead5a3a..190fd4f154 100644 --- a/pcbnew/dialog_design_rules_base.h +++ b/pcbnew/dialog_design_rules_base.h @@ -21,6 +21,14 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include @@ -44,6 +52,8 @@ class DIALOG_DESIGN_RULES_BASE : public wxDialog ID_RIGHT_CHOICE_CLICK, }; + wxNotebook* m_DRnotebook; + wxPanel* m_panelNetClassesEditor; wxGrid* m_grid; wxButton* m_addButton; wxButton* m_removeButton; @@ -56,6 +66,19 @@ class DIALOG_DESIGN_RULES_BASE : public wxDialog wxButton* m_buttonRightSelAll; wxChoice* m_rightClassChoice; wxListCtrl* m_rightListCtrl; + wxPanel* m_panelGolbalDesignRules; + wxRadioBox* m_OptViaType; + wxStaticText* m_ViaMinTitle; + wxTextCtrl* m_SetViasMinSizeCtrl; + wxStaticText* m_ViaMinDrillTitle; + wxTextCtrl* m_SetViasMinDrillCtrl; + wxRadioBox* m_AllowMicroViaCtrl; + wxStaticText* m_MicroViaMinSizeTitle; + wxTextCtrl* m_SetMicroViasMinSizeCtrl; + wxStaticText* m_MicroViaMinDrillTitle; + wxTextCtrl* m_SetMicroViasMinDrillCtrl; + wxStaticText* m_TrackMinWidthTitle; + wxTextCtrl* m_SetTrackMinWidthCtrl; wxHtmlWindow* m_MessagesList; wxStdDialogButtonSizer* m_sdbButtonsSizer; wxButton* m_sdbButtonsSizerOK; @@ -78,7 +101,7 @@ class DIALOG_DESIGN_RULES_BASE : public wxDialog public: - DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Design Rules Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 750,692 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + DIALOG_DESIGN_RULES_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Design Rules Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 792,692 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DIALOG_DESIGN_RULES_BASE(); }; diff --git a/pcbnew/dialog_drc.cpp b/pcbnew/dialog_drc.cpp index 6a307f0f45..fbf1b33396 100644 --- a/pcbnew/dialog_drc.cpp +++ b/pcbnew/dialog_drc.cpp @@ -22,7 +22,7 @@ DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL( DRC* aTester, WinEDA_PcbFrame* parent ) m_tester = aTester; m_Parent = parent; - Init(); + InitValues(); if( GetSizer() ) { GetSizer()->SetSizeHints( this ); @@ -30,7 +30,7 @@ DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL( DRC* aTester, WinEDA_PcbFrame* parent ) } -void DIALOG_DRC_CONTROL::Init() +void DIALOG_DRC_CONTROL::InitValues() { // Connect events and objects m_ClearanceListBox->Connect( ID_CLEARANCE_LIST, wxEVT_LEFT_DCLICK, @@ -46,10 +46,10 @@ void DIALOG_DRC_CONTROL::Init() wxMouseEventHandler( DIALOG_DRC_CONTROL::OnRightUpUnconnected ), NULL, this ); - AddUnitSymbol( *m_ClearenceTitle ); AddUnitSymbol( *m_TrackMinWidthTitle ); AddUnitSymbol( *m_ViaMinTitle ); AddUnitSymbol( *m_MicroViaMinTitle ); + m_SetClearance->SetValue( _("Use netclasses values")); Layout(); // adding the units above expanded Clearance text, now resize. @@ -69,8 +69,6 @@ void DIALOG_DRC_CONTROL::Init() */ void DIALOG_DRC_CONTROL::SetDrcParmeters( ) { - g_DesignSettings.m_TrackClearance = - ReturnValueFromTextCtrl( *m_SetClearance, m_Parent->m_InternalUnits ); g_DesignSettings.m_TrackMinWidth = ReturnValueFromTextCtrl( *m_SetTrackMinWidthCtrl, m_Parent->m_InternalUnits ); g_DesignSettings.m_ViasMinSize = diff --git a/pcbnew/dialog_drc.h b/pcbnew/dialog_drc.h index d39f519285..58250d23a0 100644 --- a/pcbnew/dialog_drc.h +++ b/pcbnew/dialog_drc.h @@ -51,7 +51,7 @@ private: */ void writeReport( FILE* fpOut ); - void Init( ); + void InitValues( ); void SetDrcParmeters( ); diff --git a/pcbnew/dialog_drc_base.cpp b/pcbnew/dialog_drc_base.cpp index ea85d4213a..4a30672b40 100644 --- a/pcbnew/dialog_drc_base.cpp +++ b/pcbnew/dialog_drc_base.cpp @@ -1,218 +1,218 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Sep 9 2009) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_drc.h" - -#include "dialog_drc_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* m_MainSizer; - m_MainSizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* m_CommandSizer; - m_CommandSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxStaticBoxSizer* sbSizerOptions; - sbSizerOptions = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options") ), wxHORIZONTAL ); - - wxBoxSizer* bSizer7; - bSizer7 = new wxBoxSizer( wxVERTICAL ); - - wxFlexGridSizer* fgMinValuesSizer; - fgMinValuesSizer = new wxFlexGridSizer( 2, 4, 0, 0 ); - fgMinValuesSizer->SetFlexibleDirection( wxBOTH ); - fgMinValuesSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_ClearenceTitle = new wxStaticText( this, wxID_ANY, _("Clearance"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ClearenceTitle->Wrap( -1 ); - fgMinValuesSizer->Add( m_ClearenceTitle, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT, 5 ); - - m_SetClearance = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_SetClearance->SetToolTip( _("In the clearance units, enter the clearance distance") ); - - fgMinValuesSizer->Add( m_SetClearance, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_ViaMinTitle = new wxStaticText( this, wxID_ANY, _("Via Min Size"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ViaMinTitle->Wrap( -1 ); - fgMinValuesSizer->Add( m_ViaMinTitle, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT, 5 ); - - m_SetViaMinSizeCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_SetViaMinSizeCtrl->SetToolTip( _("In the clearance units, enter the clearance distance") ); - - fgMinValuesSizer->Add( m_SetViaMinSizeCtrl, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_TrackMinWidthTitle - = new wxStaticText( this, wxID_ANY, _("Track Min Width"), wxDefaultPosition, wxDefaultSize, 0 ); - m_TrackMinWidthTitle - ->Wrap( -1 ); - fgMinValuesSizer->Add( m_TrackMinWidthTitle - , 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 ); - - m_SetTrackMinWidthCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_SetTrackMinWidthCtrl->SetToolTip( _("In the clearance units, enter the clearance distance") ); - - fgMinValuesSizer->Add( m_SetTrackMinWidthCtrl, 0, wxALL, 5 ); - - m_MicroViaMinTitle = new wxStaticText( this, wxID_ANY, _("MicroVia Min Size"), wxDefaultPosition, wxDefaultSize, 0 ); - m_MicroViaMinTitle->Wrap( -1 ); - fgMinValuesSizer->Add( m_MicroViaMinTitle, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 ); - - m_SetMicroViakMinSizeCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_SetMicroViakMinSizeCtrl->SetToolTip( _("In the clearance units, enter the clearance distance") ); - - fgMinValuesSizer->Add( m_SetMicroViakMinSizeCtrl, 0, wxALL, 5 ); - - bSizer7->Add( fgMinValuesSizer, 1, wxEXPAND, 5 ); - - wxStaticBoxSizer* ReportFileSizer; - ReportFileSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Create Report File") ), wxHORIZONTAL ); - - m_CreateRptCtrl = new wxCheckBox( this, ID_CHECKBOX_RPT_FILE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_CreateRptCtrl->SetToolTip( _("Enable writing report to this file") ); - - ReportFileSizer->Add( m_CreateRptCtrl, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_RptFilenameCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_RptFilenameCtrl->SetToolTip( _("Enter the report filename") ); - m_RptFilenameCtrl->SetMinSize( wxSize( 250,-1 ) ); - - ReportFileSizer->Add( m_RptFilenameCtrl, 1, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_BrowseButton = new wxButton( this, ID_BUTTON_BROWSE_RPT_FILE, _("..."), wxDefaultPosition, wxDefaultSize, 0 ); - ReportFileSizer->Add( m_BrowseButton, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - bSizer7->Add( ReportFileSizer, 1, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 ); - - sbSizerOptions->Add( bSizer7, 1, wxEXPAND, 5 ); - - m_CommandSizer->Add( sbSizerOptions, 0, 0, 5 ); - - wxBoxSizer* bSizerMessages; - bSizerMessages = new wxBoxSizer( wxVERTICAL ); - - m_staticText6 = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText6->Wrap( -1 ); - bSizerMessages->Add( m_staticText6, 0, wxRIGHT|wxLEFT, 5 ); - - m_Messages = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxTE_MULTILINE|wxTE_READONLY ); - m_Messages->SetMinSize( wxSize( 160,-1 ) ); - - bSizerMessages->Add( m_Messages, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_CommandSizer->Add( bSizerMessages, 1, wxEXPAND, 5 ); - - wxBoxSizer* bSizer11; - bSizer11 = new wxBoxSizer( wxVERTICAL ); - - m_buttonRunDRC = new wxButton( this, ID_STARTDRC, _("Start DRC"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonRunDRC->SetDefault(); - m_buttonRunDRC->SetToolTip( _("Start the Design Rule Checker") ); - - bSizer11->Add( m_buttonRunDRC, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - - m_buttonListUnconnected = new wxButton( this, ID_LIST_UNCONNECTED, _("List Unconnected"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonListUnconnected->SetToolTip( _("List unconnected pads or tracks") ); - - bSizer11->Add( m_buttonListUnconnected, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_DeleteAllButton = new wxButton( this, ID_DELETE_ALL, _("Delete All Markers"), wxDefaultPosition, wxDefaultSize, 0 ); - m_DeleteAllButton->SetToolTip( _("Delete every marker") ); - - bSizer11->Add( m_DeleteAllButton, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_DeleteCurrentMarkerButton = new wxButton( this, wxID_ANY, _("Delete Current Marker"), wxDefaultPosition, wxDefaultSize, 0 ); - m_DeleteCurrentMarkerButton->SetToolTip( _("Delete the marker selected in the listBox below") ); - - bSizer11->Add( m_DeleteCurrentMarkerButton, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 5 ); - - m_CommandSizer->Add( bSizer11, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_MainSizer->Add( m_CommandSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - m_staticTextErrMsg = new wxStaticText( this, wxID_ANY, _("Error Messages:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextErrMsg->Wrap( -1 ); - m_MainSizer->Add( m_staticTextErrMsg, 0, wxALL, 5 ); - - m_Notebook = new wxNotebook( this, ID_NOTEBOOK1, wxDefaultPosition, wxDefaultSize, 0 ); - m_panelClearanceListBox = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizeClearanceBox; - bSizeClearanceBox = new wxBoxSizer( wxVERTICAL ); - - m_ClearanceListBox = new DRCLISTBOX( m_panelClearanceListBox, ID_CLEARANCE_LIST, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - m_ClearanceListBox->SetToolTip( _("MARKERs, double click any to go there in PCB, right click for popup menu") ); - m_ClearanceListBox->SetMinSize( wxSize( 450,300 ) ); - - bSizeClearanceBox->Add( m_ClearanceListBox, 1, wxALL|wxEXPAND, 5 ); - - m_panelClearanceListBox->SetSizer( bSizeClearanceBox ); - m_panelClearanceListBox->Layout(); - bSizeClearanceBox->Fit( m_panelClearanceListBox ); - m_Notebook->AddPage( m_panelClearanceListBox, _("Problems / Markers"), true ); - m_panelUnconnectedBox = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizerUnconnectedBox; - bSizerUnconnectedBox = new wxBoxSizer( wxVERTICAL ); - - m_UnconnectedListBox = new DRCLISTBOX( m_panelUnconnectedBox, ID_UNCONNECTED_LIST, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - m_UnconnectedListBox->SetToolTip( _("A list of unconnected pads, right click for popup menu") ); - - bSizerUnconnectedBox->Add( m_UnconnectedListBox, 1, wxALL|wxEXPAND, 5 ); - - m_panelUnconnectedBox->SetSizer( bSizerUnconnectedBox ); - m_panelUnconnectedBox->Layout(); - bSizerUnconnectedBox->Fit( m_panelUnconnectedBox ); - m_Notebook->AddPage( m_panelUnconnectedBox, _("Unconnected"), false ); - - m_MainSizer->Add( m_Notebook, 1, wxEXPAND | wxALL, 5 ); - - m_sdbSizer1 = new wxStdDialogButtonSizer(); - m_sdbSizer1OK = new wxButton( this, wxID_OK ); - m_sdbSizer1->AddButton( m_sdbSizer1OK ); - m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); - m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); - m_sdbSizer1->Realize(); - m_MainSizer->Add( m_sdbSizer1, 0, wxALIGN_RIGHT|wxALL, 5 ); - - this->SetSizer( m_MainSizer ); - this->Layout(); - - // Connect Events - m_CreateRptCtrl->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnReportCheckBoxClicked ), NULL, this ); - m_BrowseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnButtonBrowseRptFileClick ), NULL, this ); - m_buttonRunDRC->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnStartdrcClick ), NULL, this ); - m_buttonListUnconnected->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnListUnconnectedClick ), NULL, this ); - m_DeleteAllButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnDeleteAllClick ), NULL, this ); - m_DeleteCurrentMarkerButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnDeleteOneClick ), NULL, this ); - m_ClearanceListBox->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnLeftDClickClearance ), NULL, this ); - m_ClearanceListBox->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnRightUpClearance ), NULL, this ); - m_UnconnectedListBox->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnLeftDClickUnconnected ), NULL, this ); - m_UnconnectedListBox->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnRightUpUnconnected ), NULL, this ); - m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnCancelClick ), NULL, this ); - m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnOkClick ), NULL, this ); -} - -DIALOG_DRC_CONTROL_BASE::~DIALOG_DRC_CONTROL_BASE() -{ - // Disconnect Events - m_CreateRptCtrl->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnReportCheckBoxClicked ), NULL, this ); - m_BrowseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnButtonBrowseRptFileClick ), NULL, this ); - m_buttonRunDRC->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnStartdrcClick ), NULL, this ); - m_buttonListUnconnected->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnListUnconnectedClick ), NULL, this ); - m_DeleteAllButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnDeleteAllClick ), NULL, this ); - m_DeleteCurrentMarkerButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnDeleteOneClick ), NULL, this ); - m_ClearanceListBox->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnLeftDClickClearance ), NULL, this ); - m_ClearanceListBox->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnRightUpClearance ), NULL, this ); - m_UnconnectedListBox->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnLeftDClickUnconnected ), NULL, this ); - m_UnconnectedListBox->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnRightUpUnconnected ), NULL, this ); - m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnCancelClick ), NULL, this ); - m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnOkClick ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 16 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_drc.h" + +#include "dialog_drc_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* m_MainSizer; + m_MainSizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* m_CommandSizer; + m_CommandSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxStaticBoxSizer* sbSizerOptions; + sbSizerOptions = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options") ), wxHORIZONTAL ); + + wxBoxSizer* bSizer7; + bSizer7 = new wxBoxSizer( wxVERTICAL ); + + wxFlexGridSizer* fgMinValuesSizer; + fgMinValuesSizer = new wxFlexGridSizer( 2, 4, 0, 0 ); + fgMinValuesSizer->SetFlexibleDirection( wxBOTH ); + fgMinValuesSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_ClearanceTitle = new wxStaticText( this, wxID_ANY, _("Clearance"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ClearanceTitle->Wrap( -1 ); + fgMinValuesSizer->Add( m_ClearanceTitle, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT, 5 ); + + m_SetClearance = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_SetClearance->Enable( false ); + m_SetClearance->SetToolTip( _("In the clearance units, enter the clearance distance") ); + + fgMinValuesSizer->Add( m_SetClearance, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_ViaMinTitle = new wxStaticText( this, wxID_ANY, _("Via Min Size"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ViaMinTitle->Wrap( -1 ); + m_ViaMinTitle->Enable( false ); + + fgMinValuesSizer->Add( m_ViaMinTitle, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT, 5 ); + + m_SetViaMinSizeCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_SetViaMinSizeCtrl->SetToolTip( _("In the clearance units, enter the clearance distance") ); + + fgMinValuesSizer->Add( m_SetViaMinSizeCtrl, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_TrackMinWidthTitle = new wxStaticText( this, wxID_ANY, _("Track Min Width"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TrackMinWidthTitle->Wrap( -1 ); + fgMinValuesSizer->Add( m_TrackMinWidthTitle, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 ); + + m_SetTrackMinWidthCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_SetTrackMinWidthCtrl->SetToolTip( _("In the clearance units, enter the clearance distance") ); + + fgMinValuesSizer->Add( m_SetTrackMinWidthCtrl, 0, wxALL, 5 ); + + m_MicroViaMinTitle = new wxStaticText( this, wxID_ANY, _("MicroVia Min Size"), wxDefaultPosition, wxDefaultSize, 0 ); + m_MicroViaMinTitle->Wrap( -1 ); + fgMinValuesSizer->Add( m_MicroViaMinTitle, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 ); + + m_SetMicroViakMinSizeCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_SetMicroViakMinSizeCtrl->SetToolTip( _("In the clearance units, enter the clearance distance") ); + + fgMinValuesSizer->Add( m_SetMicroViakMinSizeCtrl, 0, wxALL, 5 ); + + bSizer7->Add( fgMinValuesSizer, 1, wxEXPAND, 5 ); + + wxStaticBoxSizer* ReportFileSizer; + ReportFileSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Create Report File") ), wxHORIZONTAL ); + + m_CreateRptCtrl = new wxCheckBox( this, ID_CHECKBOX_RPT_FILE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + + m_CreateRptCtrl->SetToolTip( _("Enable writing report to this file") ); + + ReportFileSizer->Add( m_CreateRptCtrl, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_RptFilenameCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_RptFilenameCtrl->SetToolTip( _("Enter the report filename") ); + m_RptFilenameCtrl->SetMinSize( wxSize( 250,-1 ) ); + + ReportFileSizer->Add( m_RptFilenameCtrl, 1, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_BrowseButton = new wxButton( this, ID_BUTTON_BROWSE_RPT_FILE, _("..."), wxDefaultPosition, wxDefaultSize, 0 ); + ReportFileSizer->Add( m_BrowseButton, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + bSizer7->Add( ReportFileSizer, 1, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 ); + + sbSizerOptions->Add( bSizer7, 1, wxEXPAND, 5 ); + + m_CommandSizer->Add( sbSizerOptions, 0, 0, 5 ); + + wxBoxSizer* bSizerMessages; + bSizerMessages = new wxBoxSizer( wxVERTICAL ); + + m_staticText6 = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText6->Wrap( -1 ); + bSizerMessages->Add( m_staticText6, 0, wxRIGHT|wxLEFT, 5 ); + + m_Messages = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxTE_MULTILINE|wxTE_READONLY ); + m_Messages->SetMinSize( wxSize( 160,-1 ) ); + + bSizerMessages->Add( m_Messages, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_CommandSizer->Add( bSizerMessages, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizer11; + bSizer11 = new wxBoxSizer( wxVERTICAL ); + + m_buttonRunDRC = new wxButton( this, ID_STARTDRC, _("Start DRC"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonRunDRC->SetDefault(); + m_buttonRunDRC->SetToolTip( _("Start the Design Rule Checker") ); + + bSizer11->Add( m_buttonRunDRC, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonListUnconnected = new wxButton( this, ID_LIST_UNCONNECTED, _("List Unconnected"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonListUnconnected->SetToolTip( _("List unconnected pads or tracks") ); + + bSizer11->Add( m_buttonListUnconnected, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_DeleteAllButton = new wxButton( this, ID_DELETE_ALL, _("Delete All Markers"), wxDefaultPosition, wxDefaultSize, 0 ); + m_DeleteAllButton->SetToolTip( _("Delete every marker") ); + + bSizer11->Add( m_DeleteAllButton, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_DeleteCurrentMarkerButton = new wxButton( this, wxID_ANY, _("Delete Current Marker"), wxDefaultPosition, wxDefaultSize, 0 ); + m_DeleteCurrentMarkerButton->SetToolTip( _("Delete the marker selected in the listBox below") ); + + bSizer11->Add( m_DeleteCurrentMarkerButton, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 5 ); + + m_CommandSizer->Add( bSizer11, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_MainSizer->Add( m_CommandSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + m_staticTextErrMsg = new wxStaticText( this, wxID_ANY, _("Error Messages:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextErrMsg->Wrap( -1 ); + m_MainSizer->Add( m_staticTextErrMsg, 0, wxALL, 5 ); + + m_Notebook = new wxNotebook( this, ID_NOTEBOOK1, wxDefaultPosition, wxDefaultSize, 0 ); + m_panelClearanceListBox = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizeClearanceBox; + bSizeClearanceBox = new wxBoxSizer( wxVERTICAL ); + + m_ClearanceListBox = new DRCLISTBOX( m_panelClearanceListBox, ID_CLEARANCE_LIST, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + m_ClearanceListBox->SetToolTip( _("MARKERs, double click any to go there in PCB, right click for popup menu") ); + m_ClearanceListBox->SetMinSize( wxSize( 450,300 ) ); + + bSizeClearanceBox->Add( m_ClearanceListBox, 1, wxALL|wxEXPAND, 5 ); + + m_panelClearanceListBox->SetSizer( bSizeClearanceBox ); + m_panelClearanceListBox->Layout(); + bSizeClearanceBox->Fit( m_panelClearanceListBox ); + m_Notebook->AddPage( m_panelClearanceListBox, _("Problems / Markers"), true ); + m_panelUnconnectedBox = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizerUnconnectedBox; + bSizerUnconnectedBox = new wxBoxSizer( wxVERTICAL ); + + m_UnconnectedListBox = new DRCLISTBOX( m_panelUnconnectedBox, ID_UNCONNECTED_LIST, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + m_UnconnectedListBox->SetToolTip( _("A list of unconnected pads, right click for popup menu") ); + + bSizerUnconnectedBox->Add( m_UnconnectedListBox, 1, wxALL|wxEXPAND, 5 ); + + m_panelUnconnectedBox->SetSizer( bSizerUnconnectedBox ); + m_panelUnconnectedBox->Layout(); + bSizerUnconnectedBox->Fit( m_panelUnconnectedBox ); + m_Notebook->AddPage( m_panelUnconnectedBox, _("Unconnected"), false ); + + m_MainSizer->Add( m_Notebook, 1, wxEXPAND | wxALL, 5 ); + + m_sdbSizer1 = new wxStdDialogButtonSizer(); + m_sdbSizer1OK = new wxButton( this, wxID_OK ); + m_sdbSizer1->AddButton( m_sdbSizer1OK ); + m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); + m_sdbSizer1->Realize(); + m_MainSizer->Add( m_sdbSizer1, 0, wxALIGN_RIGHT|wxALL, 5 ); + + this->SetSizer( m_MainSizer ); + this->Layout(); + + // Connect Events + m_CreateRptCtrl->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnReportCheckBoxClicked ), NULL, this ); + m_BrowseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnButtonBrowseRptFileClick ), NULL, this ); + m_buttonRunDRC->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnStartdrcClick ), NULL, this ); + m_buttonListUnconnected->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnListUnconnectedClick ), NULL, this ); + m_DeleteAllButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnDeleteAllClick ), NULL, this ); + m_DeleteCurrentMarkerButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnDeleteOneClick ), NULL, this ); + m_ClearanceListBox->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnLeftDClickClearance ), NULL, this ); + m_ClearanceListBox->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnRightUpClearance ), NULL, this ); + m_UnconnectedListBox->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnLeftDClickUnconnected ), NULL, this ); + m_UnconnectedListBox->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnRightUpUnconnected ), NULL, this ); + m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnCancelClick ), NULL, this ); + m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnOkClick ), NULL, this ); +} + +DIALOG_DRC_CONTROL_BASE::~DIALOG_DRC_CONTROL_BASE() +{ + // Disconnect Events + m_CreateRptCtrl->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnReportCheckBoxClicked ), NULL, this ); + m_BrowseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnButtonBrowseRptFileClick ), NULL, this ); + m_buttonRunDRC->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnStartdrcClick ), NULL, this ); + m_buttonListUnconnected->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnListUnconnectedClick ), NULL, this ); + m_DeleteAllButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnDeleteAllClick ), NULL, this ); + m_DeleteCurrentMarkerButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnDeleteOneClick ), NULL, this ); + m_ClearanceListBox->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnLeftDClickClearance ), NULL, this ); + m_ClearanceListBox->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnRightUpClearance ), NULL, this ); + m_UnconnectedListBox->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnLeftDClickUnconnected ), NULL, this ); + m_UnconnectedListBox->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( DIALOG_DRC_CONTROL_BASE::OnRightUpUnconnected ), NULL, this ); + m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnCancelClick ), NULL, this ); + m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_CONTROL_BASE::OnOkClick ), NULL, this ); +} diff --git a/pcbnew/dialog_drc_base.fbp b/pcbnew/dialog_drc_base.fbp index 8da4ac8963..15b762cfd4 100644 --- a/pcbnew/dialog_drc_base.fbp +++ b/pcbnew/dialog_drc_base.fbp @@ -1,1533 +1,1409 @@ - - - - - - C++ - 1 - source_name - 0 - UTF-8 - connect - dialog_drc_base - 1000 - none - 1 - dialog_drc_base - - . - - 1 - 1 - 0 - 0 - - - - - 1 - 1 - impl_virtual - - - - 0 - wxID_ANY - - - DIALOG_DRC_CONTROL_BASE - - 800,508 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - DRC Control - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - m_MainSizer - wxVERTICAL - none - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - - m_CommandSizer - wxHORIZONTAL - none - - 5 - - 0 - - wxID_ANY - Options - - sbSizerOptions - wxHORIZONTAL - none - - - 5 - wxEXPAND - 1 - - - bSizer7 - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - 4 - wxBOTH - - - 0 - - fgMinValuesSizer - wxFLEX_GROWMODE_SPECIFIED - none - 2 - 0 - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - Clearance - - - m_ClearenceTitle - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - - 0 - - m_SetClearance - public - - - - - In the clearance units, enter the clearance distance - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - Via Min Size - - - m_ViaMinTitle - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - - 0 - - m_SetViaMinSizeCtrl - public - - - - - In the clearance units, enter the clearance distance - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - Track Min Width - - - m_TrackMinWidthTitle - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - - 0 - - m_SetTrackMinWidthCtrl - public - - - - - In the clearance units, enter the clearance distance - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - MicroVia Min Size - - - m_MicroViaMinTitle - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - - 0 - - m_SetMicroViakMinSizeCtrl - public - - - - - In the clearance units, enter the clearance distance - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT - 1 - - wxID_ANY - Create Report File - - ReportFileSizer - wxHORIZONTAL - none - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - - 0 - - 1 - 1 - - - 0 - ID_CHECKBOX_RPT_FILE - - - - m_CreateRptCtrl - public - - - - - Enable writing report to this file - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnReportCheckBoxClicked - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL - 1 - - - - 1 - 1 - - - 0 - wxID_ANY - - 0 - 250,-1 - m_RptFilenameCtrl - public - - - - - Enter the report filename - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - - - 1 - 0 - 1 - - - 0 - ID_BUTTON_BROWSE_RPT_FILE - ... - - - m_BrowseButton - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnButtonBrowseRptFileClick - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizerMessages - wxVERTICAL - none - - 5 - wxRIGHT|wxLEFT - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - Messages: - - - m_staticText6 - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 1 - - - - 1 - 1 - - - 0 - wxID_ANY - - 0 - 160,-1 - m_Messages - protected - - - wxHSCROLL|wxTE_MULTILINE|wxTE_READONLY - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - - bSizer11 - wxVERTICAL - none - - 5 - wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - - - 1 - 1 - 1 - - - 0 - ID_STARTDRC - Start DRC - - - m_buttonRunDRC - protected - - - - - Start the Design Rule Checker - - wxFILTER_NONE - wxDefaultValidator - - - - - OnStartdrcClick - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT - 0 - - - - 1 - 0 - 1 - - - 0 - ID_LIST_UNCONNECTED - List Unconnected - - - m_buttonListUnconnected - protected - - - - - List unconnected pads or tracks - - wxFILTER_NONE - wxDefaultValidator - - - - - OnListUnconnectedClick - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT - 0 - - - - 1 - 0 - 1 - - - 0 - ID_DELETE_ALL - Delete All Markers - - - m_DeleteAllButton - protected - - - - - Delete every marker - - wxFILTER_NONE - wxDefaultValidator - - - - - OnDeleteAllClick - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL - 0 - - - - 1 - 0 - 1 - - - 0 - wxID_ANY - Delete Current Marker - - - m_DeleteCurrentMarkerButton - protected - - - - - Delete the marker selected in the listBox below - - wxFILTER_NONE - wxDefaultValidator - - - - - OnDeleteOneClick - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - Error Messages: - - - m_staticTextErrMsg - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 1 - - - - - 1 - 1 - - - 0 - ID_NOTEBOOK1 - - - m_Notebook - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Problems / Markers - 1 - - - - 1 - 1 - - - 0 - wxID_ANY - - - m_panelClearanceListBox - protected - - - ; - - - wxFILTER_NONE - wxDefaultValidator - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizeClearanceBox - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 1 - - - - - 1 - 1 - - - 0 - ID_CLEARANCE_LIST - - 450,300 - m_ClearanceListBox - public - - - - DRCLISTBOX; dialog_drc.h - MARKERs, double click any to go there in PCB, right click for popup menu - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - OnLeftDClickClearance - - - - - - - - - - - - - - OnRightUpClearance - - - - - - - - - - - Unconnected - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - - - m_panelUnconnectedBox - protected - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizerUnconnectedBox - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 1 - - - - - 1 - 1 - - - 0 - ID_UNCONNECTED_LIST - - - m_UnconnectedListBox - public - - - - DRCLISTBOX; - A list of unconnected pads, right click for popup menu - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - OnLeftDClickUnconnected - - - - - - - - - - - - - - OnRightUpUnconnected - - - - - - - - - - - - 5 - wxALIGN_RIGHT|wxALL - 0 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_sdbSizer1 - protected - - OnCancelClick - - - - OnOkClick - - - - - - - - + + + + + + C++ + 1 + UTF-8 + connect + dialog_drc_base + 1000 + none + 1 + dialog_drc_base + + . + + 1 + 0 + 0 + + + + + 1 + + + + 0 + wxID_ANY + + + DIALOG_DRC_CONTROL_BASE + + 800,508 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + + DRC Control + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + m_MainSizer + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + + m_CommandSizer + wxHORIZONTAL + none + + 5 + + 0 + + wxID_ANY + Options + + sbSizerOptions + wxHORIZONTAL + none + + + 5 + wxEXPAND + 1 + + + bSizer7 + wxVERTICAL + none + + 5 + wxEXPAND + 1 + + 4 + wxBOTH + + + 0 + + fgMinValuesSizer + wxFLEX_GROWMODE_SPECIFIED + none + 2 + 0 + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT + 0 + + + + 1 + + + 0 + wxID_ANY + Clearance + + + m_ClearanceTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + + + 0 + + + 0 + wxID_ANY + + 0 + + m_SetClearance + public + + + + + In the clearance units, enter the clearance distance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT + 0 + + + + 0 + + + 0 + wxID_ANY + Via Min Size + + + m_ViaMinTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_SetViaMinSizeCtrl + public + + + + + In the clearance units, enter the clearance distance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Track Min Width + + + m_TrackMinWidthTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_SetTrackMinWidthCtrl + public + + + + + In the clearance units, enter the clearance distance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + MicroVia Min Size + + + m_MicroViaMinTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_SetMicroViakMinSizeCtrl + public + + + + + In the clearance units, enter the clearance distance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT + 1 + + wxID_ANY + Create Report File + + ReportFileSizer + wxHORIZONTAL + none + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + + 0 + + 1 + + + 0 + ID_CHECKBOX_RPT_FILE + + + + m_CreateRptCtrl + public + + + + + Enable writing report to this file + + + + + OnReportCheckBoxClicked + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL + 1 + + + + 1 + + + 0 + wxID_ANY + + 0 + 250,-1 + m_RptFilenameCtrl + public + + + + + Enter the report filename + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + + + 0 + 1 + + + 0 + ID_BUTTON_BROWSE_RPT_FILE + ... + + + m_BrowseButton + protected + + + + + + + + + OnButtonBrowseRptFileClick + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizerMessages + wxVERTICAL + none + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Messages: + + + m_staticText6 + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 1 + + + + 1 + + + 0 + wxID_ANY + + 0 + 160,-1 + m_Messages + protected + + + wxHSCROLL|wxTE_MULTILINE|wxTE_READONLY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + + bSizer11 + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + + + 1 + 1 + + + 0 + ID_STARTDRC + Start DRC + + + m_buttonRunDRC + protected + + + + + Start the Design Rule Checker + + + + OnStartdrcClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + ID_LIST_UNCONNECTED + List Unconnected + + + m_buttonListUnconnected + protected + + + + + List unconnected pads or tracks + + + + OnListUnconnectedClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + ID_DELETE_ALL + Delete All Markers + + + m_DeleteAllButton + protected + + + + + Delete every marker + + + + OnDeleteAllClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Delete Current Marker + + + m_DeleteCurrentMarkerButton + protected + + + + + Delete the marker selected in the listBox below + + + + OnDeleteOneClick + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Error Messages: + + + m_staticTextErrMsg + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND | wxALL + 1 + + + + + 1 + + + 0 + ID_NOTEBOOK1 + + + m_Notebook + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Problems / Markers + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_panelClearanceListBox + protected + + + ; + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizeClearanceBox + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 1 + + + + + 1 + + + 0 + ID_CLEARANCE_LIST + + 450,300 + m_ClearanceListBox + public + + + + DRCLISTBOX; dialog_drc.h + MARKERs, double click any to go there in PCB, right click for popup menu + + + + + + + + + + + OnLeftDClickClearance + + + + + + + + + + + + + + OnRightUpClearance + + + + + + + + + + + Unconnected + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panelUnconnectedBox + protected + + + + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizerUnconnectedBox + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 1 + + + + + 1 + + + 0 + ID_UNCONNECTED_LIST + + + m_UnconnectedListBox + public + + + + DRCLISTBOX; + A list of unconnected pads, right click for popup menu + + + + + + + + + + + OnLeftDClickUnconnected + + + + + + + + + + + + + + OnRightUpUnconnected + + + + + + + + + + + + 5 + wxALIGN_RIGHT|wxALL + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizer1 + protected + + OnCancelClick + + + + OnOkClick + + + + + + + + diff --git a/pcbnew/dialog_drc_base.h b/pcbnew/dialog_drc_base.h index 9b297962c6..cdd49e53cd 100644 --- a/pcbnew/dialog_drc_base.h +++ b/pcbnew/dialog_drc_base.h @@ -1,103 +1,101 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Sep 9 2009) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __dialog_drc_base__ -#define __dialog_drc_base__ - -#include - -class DRCLISTBOX; - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -#define ID_CHECKBOX_RPT_FILE 1000 -#define ID_BUTTON_BROWSE_RPT_FILE 1001 -#define ID_STARTDRC 1002 -#define ID_LIST_UNCONNECTED 1003 -#define ID_DELETE_ALL 1004 -#define ID_NOTEBOOK1 1005 -#define ID_CLEARANCE_LIST 1006 -#define ID_UNCONNECTED_LIST 1007 - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_DRC_CONTROL_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_DRC_CONTROL_BASE : public wxDialog -{ - private: - - protected: - wxStaticText* m_ClearenceTitle; - wxStaticText* m_ViaMinTitle; - wxStaticText* m_TrackMinWidthTitle - ; - wxStaticText* m_MicroViaMinTitle; - wxButton* m_BrowseButton; - wxStaticText* m_staticText6; - wxTextCtrl* m_Messages; - wxButton* m_buttonRunDRC; - wxButton* m_buttonListUnconnected; - wxButton* m_DeleteAllButton; - wxButton* m_DeleteCurrentMarkerButton; - wxStaticText* m_staticTextErrMsg; - wxNotebook* m_Notebook; - wxPanel* m_panelClearanceListBox; - wxPanel* m_panelUnconnectedBox; - wxStdDialogButtonSizer* m_sdbSizer1; - wxButton* m_sdbSizer1OK; - wxButton* m_sdbSizer1Cancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnReportCheckBoxClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void OnButtonBrowseRptFileClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnStartdrcClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnListUnconnectedClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnDeleteAllClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnDeleteOneClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnLeftDClickClearance( wxMouseEvent& event ) { event.Skip(); } - virtual void OnRightUpClearance( wxMouseEvent& event ) { event.Skip(); } - virtual void OnLeftDClickUnconnected( wxMouseEvent& event ) { event.Skip(); } - virtual void OnRightUpUnconnected( wxMouseEvent& event ) { event.Skip(); } - virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } - - - public: - wxTextCtrl* m_SetClearance; - wxTextCtrl* m_SetViaMinSizeCtrl; - wxTextCtrl* m_SetTrackMinWidthCtrl; - wxTextCtrl* m_SetMicroViakMinSizeCtrl; - wxCheckBox* m_CreateRptCtrl; - wxTextCtrl* m_RptFilenameCtrl; - DRCLISTBOX* m_ClearanceListBox; - DRCLISTBOX* m_UnconnectedListBox; - - DIALOG_DRC_CONTROL_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("DRC Control"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 800,508 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DIALOG_DRC_CONTROL_BASE(); - -}; - -#endif //__dialog_drc_base__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 16 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __dialog_drc_base__ +#define __dialog_drc_base__ + +#include + +class DRCLISTBOX; + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +#define ID_CHECKBOX_RPT_FILE 1000 +#define ID_BUTTON_BROWSE_RPT_FILE 1001 +#define ID_STARTDRC 1002 +#define ID_LIST_UNCONNECTED 1003 +#define ID_DELETE_ALL 1004 +#define ID_NOTEBOOK1 1005 +#define ID_CLEARANCE_LIST 1006 +#define ID_UNCONNECTED_LIST 1007 + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_DRC_CONTROL_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_DRC_CONTROL_BASE : public wxDialog +{ + private: + + protected: + wxStaticText* m_ClearanceTitle; + wxStaticText* m_ViaMinTitle; + wxStaticText* m_TrackMinWidthTitle; + wxStaticText* m_MicroViaMinTitle; + wxButton* m_BrowseButton; + wxStaticText* m_staticText6; + wxTextCtrl* m_Messages; + wxButton* m_buttonRunDRC; + wxButton* m_buttonListUnconnected; + wxButton* m_DeleteAllButton; + wxButton* m_DeleteCurrentMarkerButton; + wxStaticText* m_staticTextErrMsg; + wxNotebook* m_Notebook; + wxPanel* m_panelClearanceListBox; + wxPanel* m_panelUnconnectedBox; + wxStdDialogButtonSizer* m_sdbSizer1; + wxButton* m_sdbSizer1OK; + wxButton* m_sdbSizer1Cancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnReportCheckBoxClicked( wxCommandEvent& event ){ event.Skip(); } + virtual void OnButtonBrowseRptFileClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnStartdrcClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnListUnconnectedClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnDeleteAllClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnDeleteOneClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnLeftDClickClearance( wxMouseEvent& event ){ event.Skip(); } + virtual void OnRightUpClearance( wxMouseEvent& event ){ event.Skip(); } + virtual void OnLeftDClickUnconnected( wxMouseEvent& event ){ event.Skip(); } + virtual void OnRightUpUnconnected( wxMouseEvent& event ){ event.Skip(); } + virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } + + + public: + wxTextCtrl* m_SetClearance; + wxTextCtrl* m_SetViaMinSizeCtrl; + wxTextCtrl* m_SetTrackMinWidthCtrl; + wxTextCtrl* m_SetMicroViakMinSizeCtrl; + wxCheckBox* m_CreateRptCtrl; + wxTextCtrl* m_RptFilenameCtrl; + DRCLISTBOX* m_ClearanceListBox; + DRCLISTBOX* m_UnconnectedListBox; + DIALOG_DRC_CONTROL_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("DRC Control"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 800,508 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_DRC_CONTROL_BASE(); + +}; + +#endif //__dialog_drc_base__ diff --git a/pcbnew/dialog_track_options.cpp b/pcbnew/dialog_track_options.cpp index e3920bbf7e..33766dcbdb 100644 --- a/pcbnew/dialog_track_options.cpp +++ b/pcbnew/dialog_track_options.cpp @@ -38,15 +38,10 @@ void DIALOG_TRACKS_OPTIONS::MyInit() AddUnitSymbol( *m_MaskClearanceTitle ); int Internal_Unit = m_Parent->m_InternalUnits; - PutValueInLocalUnits( *m_OptViaDrill, g_DesignSettings.m_ViaDrill, Internal_Unit ); PutValueInLocalUnits( *m_OptCustomViaDrill, g_DesignSettings.m_ViaDrillCustomValue, Internal_Unit ); PutValueInLocalUnits( *m_OptMaskMargin, g_DesignSettings.m_MaskMargin, Internal_Unit ); - if( g_DesignSettings.m_CurrentViaType != VIA_THROUGH ) - m_OptViaType->SetSelection( 1 ); - - m_AllowMicroViaCtrl->SetSelection( g_DesignSettings.m_MicroViasAllowed ? 1 : 0); // Vias and Tracks sizes values. // note we display only extra values, never the current netclass value. @@ -200,15 +195,8 @@ void DIALOG_TRACKS_OPTIONS::InitDimensionsLists() void DIALOG_TRACKS_OPTIONS::OnButtonOkClick( wxCommandEvent& event ) /*******************************************************************/ { - g_DesignSettings.m_CurrentViaType = VIA_THROUGH; - if( m_OptViaType->GetSelection() > 0 ) - g_DesignSettings.m_CurrentViaType = VIA_BLIND_BURIED; - - g_DesignSettings.m_ViaDrill = - ReturnValueFromTextCtrl( *m_OptViaDrill, m_Parent->m_InternalUnits ); g_DesignSettings.m_ViaDrillCustomValue = ReturnValueFromTextCtrl( *m_OptCustomViaDrill, m_Parent->m_InternalUnits ); - g_DesignSettings.m_MicroViasAllowed = m_AllowMicroViaCtrl->GetSelection() == 1; g_DesignSettings.m_MaskMargin = ReturnValueFromTextCtrl( *m_OptMaskMargin, m_Parent->m_InternalUnits ); diff --git a/pcbnew/dialog_track_options_base.cpp b/pcbnew/dialog_track_options_base.cpp index fb540305b2..414e6fb3bd 100644 --- a/pcbnew/dialog_track_options_base.cpp +++ b/pcbnew/dialog_track_options_base.cpp @@ -35,7 +35,7 @@ DIALOG_TRACKS_OPTIONS_BASE::DIALOG_TRACKS_OPTIONS_BASE( wxWindow* parent, wxWind sViaSizeBox = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Vias Custom Sizes List:") ), wxHORIZONTAL ); m_ViaSizeListCtrl = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - sViaSizeBox->Add( m_ViaSizeListCtrl, 1, wxALL|wxEXPAND, 5 ); + sViaSizeBox->Add( m_ViaSizeListCtrl, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); wxBoxSizer* bSizeViasListButtons; bSizeViasListButtons = new wxBoxSizer( wxVERTICAL ); @@ -50,15 +50,6 @@ DIALOG_TRACKS_OPTIONS_BASE::DIALOG_TRACKS_OPTIONS_BASE( wxWindow* parent, wxWind sbLeftSizer->Add( sViaSizeBox, 1, wxEXPAND, 5 ); - m_ViaDefaultDrillValueTitle = new wxStaticText( this, wxID_ANY, _("Default Via Drill"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ViaDefaultDrillValueTitle->Wrap( -1 ); - sbLeftSizer->Add( m_ViaDefaultDrillValueTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_OptViaDrill = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_OptViaDrill->SetToolTip( _("Enter the default via drill diameter\nAll vias drills not set to a specific drill value will have this drill value.") ); - - sbLeftSizer->Add( m_OptViaDrill, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - m_ViaAltDrillValueTitle = new wxStaticText( this, wxID_ANY, _("Specific Via Drill"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaAltDrillValueTitle->Wrap( -1 ); sbLeftSizer->Add( m_ViaAltDrillValueTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); @@ -70,30 +61,6 @@ DIALOG_TRACKS_OPTIONS_BASE::DIALOG_TRACKS_OPTIONS_BASE( wxWindow* parent, wxWind bMainUpperSizer->Add( sbLeftSizer, 1, wxEXPAND, 5 ); - wxStaticBoxSizer* sbMiddleLeftSizer; - sbMiddleLeftSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Vias Options:") ), wxVERTICAL ); - - wxString m_OptViaTypeChoices[] = { _("Through via"), _("Blind or buried via") }; - int m_OptViaTypeNChoices = sizeof( m_OptViaTypeChoices ) / sizeof( wxString ); - m_OptViaType = new wxRadioBox( this, wxID_ANY, _("Default Via Type"), wxDefaultPosition, wxDefaultSize, m_OptViaTypeNChoices, m_OptViaTypeChoices, 1, wxRA_SPECIFY_COLS ); - m_OptViaType->SetSelection( 0 ); - m_OptViaType->SetToolTip( _("Select the current via type.\nTrough via is the usual selection") ); - - sbMiddleLeftSizer->Add( m_OptViaType, 0, wxALL|wxEXPAND, 5 ); - - - sbMiddleLeftSizer->Add( 10, 10, 0, 0, 5 ); - - wxString m_AllowMicroViaCtrlChoices[] = { _("Do not allow micro vias"), _("Allow micro vias") }; - int m_AllowMicroViaCtrlNChoices = sizeof( m_AllowMicroViaCtrlChoices ) / sizeof( wxString ); - m_AllowMicroViaCtrl = new wxRadioBox( this, wxID_ALLOW_MICROVIA, _("Micro Vias:"), wxDefaultPosition, wxDefaultSize, m_AllowMicroViaCtrlNChoices, m_AllowMicroViaCtrlChoices, 1, wxRA_SPECIFY_COLS ); - m_AllowMicroViaCtrl->SetSelection( 0 ); - m_AllowMicroViaCtrl->SetToolTip( _("Allows or do not allow use of micro vias\nThey are very small vias only from an external copper layer to its near neightbour") ); - - sbMiddleLeftSizer->Add( m_AllowMicroViaCtrl, 0, wxALL, 5 ); - - bMainUpperSizer->Add( sbMiddleLeftSizer, 0, wxEXPAND, 5 ); - wxStaticBoxSizer* sbMiddleRightSizer; sbMiddleRightSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Dimensions:") ), wxVERTICAL ); @@ -101,7 +68,7 @@ DIALOG_TRACKS_OPTIONS_BASE::DIALOG_TRACKS_OPTIONS_BASE( wxWindow* parent, wxWind sbTracksListSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Tracks Custom Widths List:") ), wxHORIZONTAL ); m_TrackWidthListCtrl = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - sbTracksListSizer->Add( m_TrackWidthListCtrl, 1, wxALL|wxEXPAND, 5 ); + sbTracksListSizer->Add( m_TrackWidthListCtrl, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); wxBoxSizer* bSizerTacksButtSizer; bSizerTacksButtSizer = new wxBoxSizer( wxVERTICAL ); diff --git a/pcbnew/dialog_track_options_base.fbp b/pcbnew/dialog_track_options_base.fbp index 2b22d6bb73..0304b0fa05 100644 --- a/pcbnew/dialog_track_options_base.fbp +++ b/pcbnew/dialog_track_options_base.fbp @@ -32,7 +32,7 @@ DIALOG_TRACKS_OPTIONS_BASE - 627,351 + 500,351 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Tracks and Vias Sizes @@ -110,7 +110,7 @@ 5 - wxALL|wxEXPAND + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT 1 @@ -279,108 +279,12 @@ 5 - wxTOP|wxRIGHT|wxLEFT + 0 - - - - 1 - - - 0 - wxID_ANY - Default Via Drill - - - m_ViaDefaultDrillValueTitle + + 10 protected - - - - - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - - - 1 - - - 0 - wxID_ANY - - 0 - - m_OptViaDrill - protected - - - - - Enter the default via drill diameter All vias drills not set to a specific drill value will have this drill value. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 10 @@ -491,138 +395,6 @@ - - 5 - wxEXPAND - 0 - - wxID_ANY - Vias Options: - - sbMiddleLeftSizer - wxVERTICAL - none - - - 5 - wxALL|wxEXPAND - 0 - - - "Through via" "Blind or buried via" - - 1 - - - 0 - wxID_ANY - Default Via Type - 1 - - - m_OptViaType - protected - - 0 - - wxRA_SPECIFY_COLS - - Select the current via type. Trough via is the usual selection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - 0 - - 10 - protected - 10 - - - - 5 - wxALL - 0 - - - "Do not allow micro vias" "Allow micro vias" - - 1 - - - 0 - wxID_ALLOW_MICROVIA - Micro Vias: - 1 - - - m_AllowMicroViaCtrl - protected - - 0 - - wxRA_SPECIFY_COLS - - Allows or do not allow use of micro vias They are very small vias only from an external copper layer to its near neightbour - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 wxEXPAND @@ -649,7 +421,7 @@ 5 - wxALL|wxEXPAND + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT 1 diff --git a/pcbnew/dialog_track_options_base.h b/pcbnew/dialog_track_options_base.h index 94a17d80d8..0a95bbb1c4 100644 --- a/pcbnew/dialog_track_options_base.h +++ b/pcbnew/dialog_track_options_base.h @@ -21,7 +21,6 @@ #include #include #include -#include #include /////////////////////////////////////////////////////////////////////////// @@ -48,7 +47,6 @@ class DIALOG_TRACKS_OPTIONS_BASE : public wxDialog { wxID_ADD_VIA_SIZE = 1000, wxID_DELETED_WIA_SIEZ, - wxID_ALLOW_MICROVIA, wxID_ADD_TRACK_WIDTH, wxID_DELETED_TRACK_WIDTH, }; @@ -56,13 +54,8 @@ class DIALOG_TRACKS_OPTIONS_BASE : public wxDialog wxListBox* m_ViaSizeListCtrl; wxButton* m_buttonAddViasSize; wxButton* m_button4; - wxStaticText* m_ViaDefaultDrillValueTitle; - wxTextCtrl* m_OptViaDrill; wxStaticText* m_ViaAltDrillValueTitle; wxTextCtrl* m_OptCustomViaDrill; - wxRadioBox* m_OptViaType; - - wxRadioBox* m_AllowMicroViaCtrl; wxListBox* m_TrackWidthListCtrl; wxButton* m_buttonAddTrackSize; wxButton* m_buttonDeleteTrackWidth; @@ -83,7 +76,7 @@ class DIALOG_TRACKS_OPTIONS_BASE : public wxDialog public: - DIALOG_TRACKS_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Tracks and Vias Sizes"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 627,351 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + DIALOG_TRACKS_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Tracks and Vias Sizes"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,351 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DIALOG_TRACKS_OPTIONS_BASE(); }; diff --git a/pcbnew/drc.cpp b/pcbnew/drc.cpp index 0de02c5f95..58d2d3e11f 100644 --- a/pcbnew/drc.cpp +++ b/pcbnew/drc.cpp @@ -62,8 +62,6 @@ void DRC::ShowDialog() // copy data retained in this DRC object into the m_ui DrcPanel: - PutValueInLocalUnits( *m_ui->m_SetClearance, g_DesignSettings.m_TrackClearance, - m_mainWindow->m_InternalUnits );; PutValueInLocalUnits( *m_ui->m_SetTrackMinWidthCtrl, g_DesignSettings.m_TrackMinWidth, m_mainWindow->m_InternalUnits );; PutValueInLocalUnits( *m_ui->m_SetViaMinSizeCtrl, g_DesignSettings.m_ViasMinSize, @@ -320,7 +318,8 @@ bool DRC::doNetClass( NETCLASS* nc, wxString& msg ) #define FmtVal( x ) GetChars( ReturnStringFromValue( g_UnitMetric, x, PCB_INTERNAL_UNIT ) ) - if( nc->GetClearance() < g.m_TrackClearance ) +#if 0 // set to 1 when (if...) EDA_BoardDesignSettings has a m_MinClearance value + if( nc->GetClearance() < g.m_MinClearance ) { msg.Printf( _("NETCLASS: '%s' has Clearance:%s which is less than global:%s"), GetChars( nc->GetName() ), @@ -333,6 +332,7 @@ bool DRC::doNetClass( NETCLASS* nc, wxString& msg ) m_currentMarker = 0; ret = false; } +#endif if( nc->GetTrackWidth() < g.m_TrackMinWidth ) { @@ -362,12 +362,12 @@ bool DRC::doNetClass( NETCLASS* nc, wxString& msg ) ret = false; } - if( nc->GetViaDrill() < g.m_ViaDrill ) + if( nc->GetViaDrill() < g.m_ViasMinDrill ) { msg.Printf( _("NETCLASS: '%s' has Via Drill:%s which is less than global:%s"), GetChars( nc->GetName() ), FmtVal( nc->GetViaDrill() ), - FmtVal( g.m_ViaDrill ) + FmtVal( g.m_ViasMinDrill ) ); m_currentMarker = fillMarker( DRCE_NETCLASS_VIADRILLSIZE, msg, m_currentMarker ); @@ -390,12 +390,12 @@ bool DRC::doNetClass( NETCLASS* nc, wxString& msg ) ret = false; } - if( nc->GetuViaDrill() < g.m_MicroViaDrill ) + if( nc->GetuViaDrill() < g.m_MicroViasMinDrill ) { msg.Printf( _("NETCLASS: '%s' has uVia Drill:%s which is less than global:%s"), GetChars( nc->GetName() ), FmtVal( nc->GetuViaDrill() ), - FmtVal( g.m_MicroViaDrill ) + FmtVal( g.m_MicroViasMinDrill ) ); m_currentMarker = fillMarker( DRCE_NETCLASS_uVIADRILLSIZE, msg, m_currentMarker ); diff --git a/pcbnew/export_gencad.cpp b/pcbnew/export_gencad.cpp index bf06d9ac61..79562730e4 100644 --- a/pcbnew/export_gencad.cpp +++ b/pcbnew/export_gencad.cpp @@ -619,7 +619,7 @@ void CreateRoutesSection( FILE* file, BOARD* pcb ) fprintf( file, "VIA viapad%d %d %d ALL %d via%d\n", track->m_Width, mapXto( track->m_Start.x ), mapYto( track->m_Start.y ), - g_DesignSettings.m_ViaDrill, vianum++ ); + track->GetDrillValue(), vianum++ ); } } diff --git a/pcbnew/gendrill.cpp b/pcbnew/gendrill.cpp index e6f6cc80e3..b0893ec58b 100644 --- a/pcbnew/gendrill.cpp +++ b/pcbnew/gendrill.cpp @@ -80,27 +80,19 @@ void WinEDA_DrillFrame::InitDisplayParams( void ) { wxString msg; - if( s_Zeros_Format==DECIMAL_FORMAT ) + if( s_Zeros_Format == DECIMAL_FORMAT ) m_Choice_Precision->Enable( false ); if( DrillOriginIsAuxAxis ) m_Choice_Drill_Offset->SetSelection( 1 ); msg << s_Precision.m_lhs << wxT( ":" ) << s_Precision.m_rhs; m_Choice_Precision->SetStringSelection( msg ); - if( s_Zeros_Format==DECIMAL_FORMAT ) + if( s_Zeros_Format == DECIMAL_FORMAT ) m_Choice_Precision->Enable( false ); - msg = ReturnStringFromValue( g_UnitMetric, - g_DesignSettings.m_ViaDrill, - m_Parent->m_InternalUnits ); - msg += ReturnUnitSymbol( g_UnitMetric ); - m_ViaDrillValue->SetLabel( msg ); + m_ViaDrillValue->SetLabel( _( "Use Netclasses values" ) ); - msg = ReturnStringFromValue( g_UnitMetric, - g_DesignSettings.m_MicroViaDrill, - m_Parent->m_InternalUnits ); - msg += ReturnUnitSymbol( g_UnitMetric ); - m_MicroViaDrillValue->SetLabel( msg ); + m_MicroViaDrillValue->SetLabel( _( "Use Netclasses values" ) ); msg.Empty(); msg << g_pcb_plot_options.HPGL_Pen_Num; @@ -141,8 +133,8 @@ void WinEDA_DrillFrame::InitDisplayParams( void ) m_PadsHoleCount++; } else - if( MIN( pad->m_Drill.x, pad->m_Drill.y ) != 0 ) - m_PadsHoleCount++; + if( MIN( pad->m_Drill.x, pad->m_Drill.y ) != 0 ) + m_PadsHoleCount++; } } @@ -270,21 +262,21 @@ void WinEDA_DrillFrame::GenDrillFiles( wxCommandEvent& event ) */ { wxFileName fn; - wxString layer_extend; // added to the Board FileName to create FullFileName (= Board FileName + layer pair names) - wxString msg; - bool ExistsBuriedVias = false; // If true, drill files are created layer pair by layer pair for buried vias - int layer1 = COPPER_LAYER_N; - int layer2 = LAYER_CMP_N; - bool gen_through_holes = true; + wxString layer_extend; // added to the Board FileName to create FullFileName (= Board FileName + layer pair names) + wxString msg; + bool ExistsBuriedVias = false; // If true, drill files are created layer pair by layer pair for buried vias + int layer1 = COPPER_LAYER_N; + int layer2 = LAYER_CMP_N; + bool gen_through_holes = true; UpdateConfig(); /* set params and Save drill options */ m_Parent->MsgPanel->EraseMsgBox(); /* Set conversion scale depending on drill file units */ - s_ConversionUnits = 0.0001f; /* unites = INCHES */ + s_ConversionUnits = 0.0001f; /* unites = INCHES */ if( !s_Unit_Drill_is_Inch ) - s_ConversionUnits = 0.000254f; /* unites = mm */ + s_ConversionUnits = 0.000254f; /* unites = mm */ if( m_MicroViasCount || m_BlindOrBuriedViasCount ) ExistsBuriedVias = true; @@ -322,7 +314,7 @@ void WinEDA_DrillFrame::GenDrillFiles( wxCommandEvent& event ) if( dlg.ShowModal() == wxID_CANCEL ) break; - FILE *excellon_dest = wxFopen( dlg.GetPath(), wxT( "w" ) ); + FILE* excellon_dest = wxFopen( dlg.GetPath(), wxT( "w" ) ); if( excellon_dest == 0 ) { @@ -332,7 +324,7 @@ void WinEDA_DrillFrame::GenDrillFiles( wxCommandEvent& event ) return; } - Create_Drill_File_EXCELLON(excellon_dest, s_HoleListBuffer, s_ToolListBuffer ); + Create_Drill_File_EXCELLON( excellon_dest, s_HoleListBuffer, s_ToolListBuffer ); switch( m_Choice_Drill_Map->GetSelection() ) { @@ -393,7 +385,8 @@ void WinEDA_DrillFrame::UpdatePrecisionOptions( wxCommandEvent& event ) /********************************************************************/ { if( m_Choice_Unit->GetSelection()==1 ) - { /* inch options */ + { + /* inch options */ m_Choice_Precision->SetString( 0, _( "2:3" ) ); m_Choice_Precision->SetString( 1, _( "2:4" ) ); } @@ -411,8 +404,8 @@ void WinEDA_DrillFrame::UpdatePrecisionOptions( wxCommandEvent& event ) /**********************************************************************************/ -int WinEDA_DrillFrame::Create_Drill_File_EXCELLON(FILE *excellon_dest, - std::vector& aHoleListBuffer, +int WinEDA_DrillFrame::Create_Drill_File_EXCELLON( FILE* excellon_dest, + std::vector& aHoleListBuffer, std::vector& aToolListBuffer ) /**********************************************************************************/ @@ -440,22 +433,22 @@ int WinEDA_DrillFrame::Create_Drill_File_EXCELLON(FILE *excellon_dest, { if( s_Unit_Drill_is_Inch ) /* does it need T01, T02 or is T1,T2 ok?*/ fprintf( excellon_dest, "T%dC%.3f\n", ii + 1, - float (aToolListBuffer[ii].m_Diameter) * s_ConversionUnits ); + float (aToolListBuffer[ii].m_Diameter) * s_ConversionUnits ); else fprintf( excellon_dest, "T%dC%.3f\n", ii + 1, - float (aToolListBuffer[ii].m_Diameter) * s_ConversionUnits * 10.0 ); + float (aToolListBuffer[ii].m_Diameter) * s_ConversionUnits * 10.0 ); } fputs( "%\n", excellon_dest ); if( !Minimal ) - fputs( "M47\n", excellon_dest ); /* Operator message */ - fputs( "G05\n", excellon_dest ); /* Drill mode */ + fputs( "M47\n", excellon_dest ); /* Operator message */ + fputs( "G05\n", excellon_dest ); /* Drill mode */ /* Units : */ if( s_Unit_Drill_is_Inch && !Minimal ) - fputs( "M72\n", excellon_dest ); /* M72 = inch mode */ + fputs( "M72\n", excellon_dest ); /* M72 = inch mode */ else if( !Minimal ) - fputs( "M71\n", excellon_dest ); /* M71 = metric mode */ + fputs( "M71\n", excellon_dest ); /* M71 = metric mode */ /* Read the hole file and generate lines for normal holes (oblong holes will be created later) */ for( unsigned ii = 0; ii < aHoleListBuffer.size(); ii++ ) @@ -541,7 +534,7 @@ int WinEDA_DrillFrame::Create_Drill_File_EXCELLON(FILE *excellon_dest, fputs( line, excellon_dest ); - fputs( "G85",excellon_dest ); // add the "G85" command + fputs( "G85", excellon_dest ); // add the "G85" command xt = float (xf) * s_ConversionUnits; yt = float (yf) * s_ConversionUnits; if( s_Unit_Drill_is_Inch ) @@ -661,17 +654,19 @@ void WinEDA_DrillFrame::Write_Excellon_Header( FILE* aFile ) if( !Minimal ) { - int ii = m_Choice_Zeros_Format->GetSelection(); + int ii = m_Choice_Zeros_Format->GetSelection(); DateAndTime( Line ); + // The next 2 lines in EXCELLON files are comments: wxString msg = wxGetApp().GetTitle() + wxT( " " ) + GetBuildVersion(); fprintf( aFile, ";DRILL file {%s} date %s\n", CONV_TO_UTF8( msg ), Line ); msg = wxT( ";FORMAT={" ); + // Print precision: - if ( ii > 0 ) + if( ii > 0 ) msg << m_Choice_Precision->GetStringSelection(); else - msg << wxT("-.-"); // in decimal format the precision is irrelevant + msg << wxT( "-.-" ); // in decimal format the precision is irrelevant msg << wxT( "/ absolute / " ); msg << ( s_Unit_Drill_is_Inch ? wxT( "inch" ) : wxT( "metric" ) ); @@ -684,7 +679,7 @@ void WinEDA_DrillFrame::Write_Excellon_Header( FILE* aFile ) msg << wxT( " / " ); const wxString zero_fmt[5] = { - wxT( "decimal" ), wxT( "suppress leading zeros" ), + wxT( "decimal" ), wxT( "suppress leading zeros" ), wxT( "suppress trailing zeros" ), wxT( "keep zeros" ), wxT( "???" ) }; @@ -739,8 +734,8 @@ void WinEDA_DrillFrame::GenDrillMap( const wxString aFileName, */ { wxFileName fn; - wxString ext, wildcard; - wxString msg; + wxString ext, wildcard; + wxString msg; /* Init extension */ switch( format ) @@ -782,7 +777,7 @@ void WinEDA_DrillFrame::GenDrillMap( const wxString aFileName, if( dlg.ShowModal() == wxID_CANCEL ) return; - FILE *drillplot_dest = wxFopen( dlg.GetPath(), wxT( "wt" ) ); + FILE* drillplot_dest = wxFopen( dlg.GetPath(), wxT( "wt" ) ); if( drillplot_dest == 0 ) { @@ -812,21 +807,21 @@ void WinEDA_DrillFrame::GenDrillReport( const wxString aFileName ) */ { wxFileName fn; - wxString msg; - wxString wildcard = _( "Drill report files (.rpt)|*.rpt" ); + wxString msg; + wxString wildcard = _( "Drill report files (.rpt)|*.rpt" ); fn = aFileName; fn.SetName( fn.GetName() + wxT( "-drl" ) ); fn.SetExt( wxT( "rpt" ) ); - wxFileDialog dlg( this, _( "Save Drill Report File" ), fn.GetPath(), + wxFileDialog dlg( this, _( "Save Drill Report File" ), fn.GetPath(), fn.GetFullName(), wildcard, wxFD_SAVE | wxFD_OVERWRITE_PROMPT ); if( dlg.ShowModal() == wxID_CANCEL ) return; - FILE *report_dest = wxFopen( dlg.GetPath(), wxT( "w" ) ); + FILE* report_dest = wxFopen( dlg.GetPath(), wxT( "w" ) ); if( report_dest == 0 ) { diff --git a/pcbnew/ioascii.cpp b/pcbnew/ioascii.cpp index 99ea6529c5..92fb760e09 100644 --- a/pcbnew/ioascii.cpp +++ b/pcbnew/ioascii.cpp @@ -324,6 +324,8 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum ) char Line[1024]; char* data; + NETCLASS * netclass_default = GetBoard()->m_NetClasses.GetDefault(); + while( GetLine( File, Line, LineNum ) != NULL ) { strtok( Line, " =\n\r" ); @@ -405,7 +407,7 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum ) if( stricmp( Line, "TrackClearence" ) == 0 ) { - g_DesignSettings.m_TrackClearance = atoi( data ); + netclass_default->SetClearance( atoi( data ) ); continue; } @@ -421,12 +423,6 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum ) continue; } - if( stricmp( Line, "ZoneGridSize" ) == 0 ) - { - g_GridRoutingSize = atoi( data ); - continue; - } - if( stricmp( Line, "DrawSegmWidth" ) == 0 ) { g_DesignSettings.m_DrawSegmentWidth = atoi( data ); @@ -472,7 +468,8 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum ) if( stricmp( Line, "ViaDrill" ) == 0 ) { - g_DesignSettings.m_ViaDrill = atoi( data ); + int diameter = atoi( data ); + netclass_default->SetViaDrill( diameter ); continue; } @@ -482,9 +479,23 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum ) continue; } + if( stricmp( Line, "ViaMinDrill" ) == 0 ) + { + g_DesignSettings.m_ViasMinDrill = atoi( data ); + continue; + } + if( stricmp( Line, "MicroViaDrill" ) == 0 ) { - g_DesignSettings.m_MicroViaDrill = atoi( data ); + int diameter = atoi( data ); + netclass_default->SetuViaDrill( diameter ); + continue; + } + + if( stricmp( Line, "MicroViaMinDrill" ) == 0 ) + { + int diameter = atoi( data ); + g_DesignSettings.m_MicroViasMinDrill = diameter; continue; } @@ -582,6 +593,7 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum ) static int WriteSetup( FILE* aFile, WinEDA_BasePcbFrame* aFrame, BOARD* aBoard ) /******************************************************************************/ { + NETCLASS * netclass_default = aFrame->GetBoard()->m_NetClasses.GetDefault(); char text[1024]; fprintf( aFile, "$SETUP\n" ); @@ -610,25 +622,27 @@ static int WriteSetup( FILE* aFile, WinEDA_BasePcbFrame* aFrame, BOARD* aBoard ) fprintf( aFile, "TrackWidthList %d\n", aBoard->m_TrackWidthList[ii] ); - fprintf( aFile, "TrackClearence %d\n", g_DesignSettings.m_TrackClearance ); + fprintf( aFile, "TrackClearence %d\n", netclass_default->GetClearance() ); fprintf( aFile, "ZoneClearence %d\n", g_Zone_Default_Setting.m_ZoneClearance ); fprintf( aFile, "TrackMinWidth %d\n" , g_DesignSettings.m_TrackMinWidth ); fprintf( aFile, "DrawSegmWidth %d\n", g_DesignSettings.m_DrawSegmentWidth ); fprintf( aFile, "EdgeSegmWidth %d\n", g_DesignSettings.m_EdgeSegmentWidth ); fprintf( aFile, "ViaSize %d\n", g_DesignSettings.m_CurrentViaSize ); - fprintf( aFile, "ViaDrill %d\n", g_DesignSettings.m_ViaDrill ); + fprintf( aFile, "ViaDrill %d\n", netclass_default->GetViaDrill() ); fprintf( aFile, "ViaAltDrill %d\n", g_DesignSettings.m_ViaDrillCustomValue ); fprintf( aFile, "ViaMinSize %d\n", g_DesignSettings.m_ViasMinSize ); + fprintf( aFile, "ViaMinDrill %d\n", g_DesignSettings.m_ViasMinDrill ); // Save custom vias diameters list (the first is not saved here: this is the netclass value for( unsigned ii = 1; ii < aBoard->m_ViaSizeList.size(); ii++ ) fprintf( aFile, "ViaSizeList %d\n", aBoard->m_ViaSizeList[ii] ); fprintf( aFile, "MicroViaSize %d\n", g_DesignSettings.m_CurrentMicroViaSize); - fprintf( aFile, "MicroViaDrill %d\n", g_DesignSettings.m_MicroViaDrill); + fprintf( aFile, "MicroViaDrill %d\n", netclass_default->GetuViaDrill()); fprintf( aFile, "MicroViasAllowed %d\n", g_DesignSettings.m_MicroViasAllowed); fprintf( aFile, "MicroViaMinSize %d\n" , g_DesignSettings.m_MicroViasMinSize ); + fprintf( aFile, "MicroViaMinDrill %d\n", g_DesignSettings.m_MicroViasMinDrill ); fprintf( aFile, "TextPcbWidth %d\n", g_DesignSettings.m_PcbTextWidth ); fprintf( aFile, "TextPcbSize %d %d\n", diff --git a/pcbnew/pcbcfg.cpp b/pcbnew/pcbcfg.cpp index 79d0d81134..e3ce05fc47 100644 --- a/pcbnew/pcbcfg.cpp +++ b/pcbnew/pcbcfg.cpp @@ -49,15 +49,6 @@ void WinEDA_PcbFrame::Process_Config( wxCommandEvent& event ) DisplayColorSetupFrame( this, pos ); break; -/* - case ID_PCB_COPPER_LAYERS_SETUP: - { - DIALOG_COPPER_LAYERS_SETUP dialog( this ); - dialog.ShowModal(); - } - break; -*/ - case ID_PCB_LAYERS_SETUP: DisplayDialogLayerSetup( this ); break; @@ -163,17 +154,14 @@ bool Read_Hotkey_Config( WinEDA_DrawFrame* frame, bool verbose ) } -/**************************************************************************/ -bool Read_Config( const wxString& projectFileName ) -/*************************************************************************/ - -/* lit la configuration, si elle n'a pas deja ete lue - * 1 - lit .pro - * 2 - si non trouve lit /kicad.pro - * 3 - si non trouve: init des variables aux valeurs par defaut - * - * Retourne TRUE si lu, FALSE si config non lue ou non modifiée +/** Function Read_Config + * Read the project configuration file + * @param projectFileName = the config filename + * if not found use kicad.pro + * if not found : initialize default values + * @return true if the current config is modified, false if no change */ +bool WinEDA_PcbFrame::Read_Config( const wxString& projectFileName ) { wxFileName fn = projectFileName; int ii; @@ -192,7 +180,7 @@ bool Read_Config( const wxString& projectFileName ) /* User library path takes precedent over default library search paths. */ wxGetApp().InsertLibraryPath( g_UserLibDirBuffer, 1 ); - /* Reset the ITEM*NOT*SHOW flag when loading a new config + /* Reset the items visibility flag when loading a new config * Because it could creates SERIOUS mistakes for the user, * if some items are not visible after loading a board... */ @@ -201,10 +189,6 @@ bool Read_Config( const wxString& projectFileName ) DisplayOpt.Show_Modules_Cmp = true; DisplayOpt.Show_Modules_Cu = true; - - // These parameters could be left in their previous state, or resetted - // Comment or uncomment to keep or reset this option after loading a board - g_DesignSettings.SetElementVisibility( MODULE_TEXT_NOV_VISIBLE, true ); g_DesignSettings.SetElementVisibility( MODULE_TEXT_CMP_VISIBLE, true ); g_DesignSettings.SetElementVisibility( MODULE_TEXT_CU_VISIBLE, true ); @@ -213,6 +197,8 @@ bool Read_Config( const wxString& projectFileName ) g_DesignSettings.SetElementVisibility( VIA_THROUGH_VISIBLE, true ); g_DesignSettings.SetElementVisibility( VIA_BLIND_BURIED_VISIBLE, true ); g_DesignSettings.SetElementVisibility( VIA_MICROVIA_VISIBLE, true ); + + // Items that can remain not visible: comment them if you want. g_DesignSettings.SetElementVisibility( ANCHOR_VISIBLE, true ); DisplayOpt.DisplayPadNoConn = true; diff --git a/pcbnew/pcbcfg.h b/pcbnew/pcbcfg.h index d22ea9db0e..36327ff804 100644 --- a/pcbnew/pcbcfg.h +++ b/pcbnew/pcbcfg.h @@ -64,21 +64,6 @@ static PARAM_CFG_INT ViaDiametreCfg 0, 0xFFFF /* Min and max values*/ ); -static PARAM_CFG_INT ViaDrillCfg -( - wxT( "ViaDril" ), /* Keyword */ - &g_DesignSettings.m_ViaDrill, /* Parameter address */ - 250, /* Default value */ - 0, 0xFFFF /* Min and max values*/ -); - -static PARAM_CFG_INT ViaAltDrillCfg -( - wxT( "ViaAltD" ), /* Keyword */ - &g_DesignSettings.m_ViaDrillCustomValue, /* Parameter address */ - 250, /* Default value */ - 0, 0xFFFF /* Min and max values*/ -); static PARAM_CFG_INT LayerThicknessCfg ( wxT( "LayerThickness" ), /* Keyword */ @@ -95,14 +80,6 @@ static PARAM_CFG_INT MicroViaDiametreCfg 0, 1000 /* Min and max values*/ ); -static PARAM_CFG_INT MicroViaDrillCfg -( - wxT( "MViaDrl" ), /* Keyword */ - &g_DesignSettings.m_MicroViaDrill, /* Parameter address */ - 80, /* Default value */ - 0, 800 /* Min and max values*/ -); - static PARAM_CFG_INT ViaShowHoleCfg ( INSETUP, @@ -123,30 +100,6 @@ static PARAM_CFG_INT ShowNetNamesModeCfg 3 /* Min and max values*/ ); -static PARAM_CFG_INT TrackClearenceCfg -( - wxT( "Isol" ), /* Keyword */ - &g_DesignSettings.m_TrackClearance, /* Parameter address */ - 120, /* Default value */ - 0, 0xFFFF /* Min and max values*/ -); - -static PARAM_CFG_INT LayerCountCfg // Mask Working Layers -( - wxT( "Countlayer" ), /* Keyword */ - &g_DesignSettings.m_CopperLayerCount, /* Parameter address */ - 2, /* Default value */ - 1, NB_COPPER_LAYERS /* Min and max values*/ -); - -static PARAM_CFG_INT TrackWidthCfg -( - wxT( "Lpiste" ), /* Keyword */ - &g_DesignSettings.m_CurrentTrackWidth, /* Parameter address */ - 170, /* Default value */ - 2, 0xFFFF /* Min and max values*/ -); - static PARAM_CFG_INT RouteLayTopCfg // First current working layer ( wxT( "RouteTo" ), /* Keyword */ @@ -163,14 +116,6 @@ static PARAM_CFG_INT RouteLayBotCfg // second current working layer 0, 15 /* Min and max values*/ ); -static PARAM_CFG_INT TypeViaCfg -( - wxT( "TypeVia" ), /* Keyword */ - &g_DesignSettings.m_CurrentViaType, /* Parameter address */ - VIA_THROUGH, /* Default value */ - 0, 3 /* Min and max values*/ -); - static PARAM_CFG_BOOL Segm45Cfg // Segm Pistes a 0, 45, 90 degres uniquement ( wxT( "Segm45" ), /* Keyword */ @@ -801,26 +746,19 @@ PARAM_CFG_BASE* ParamCfgList[] = &PadDimHCfg, &PadDimVCfg, &ViaDiametreCfg, - &ViaDrillCfg, - &ViaAltDrillCfg, &MicroViaDiametreCfg, - &MicroViaDrillCfg, &ViaShowHoleCfg, &ShowNetNamesModeCfg, - &TrackClearenceCfg, &LayerThicknessCfg, - &LayerCountCfg, - &TrackWidthCfg, &RouteLayTopCfg, &RouteLayBotCfg, - &TypeViaCfg, &Segm45Cfg, &Raccord45Cfg, &UnitCfg, &SegmFillCfg, &TrackDisplayClearanceCfg, &PadFillCfg, - &ViaFillCfg, //TODO: Will adding this line break tha pcbnew file compatibility? + &ViaFillCfg, &PadAfficheGardeCfg, &PadShowNumCfg, &AfficheContourModuleCfg, diff --git a/pcbnew/pcbnew.cpp b/pcbnew/pcbnew.cpp index ca9abc4c92..36de322200 100644 --- a/pcbnew/pcbnew.cpp +++ b/pcbnew/pcbnew.cpp @@ -123,7 +123,7 @@ Changing extension to .brd." ), SetupServerFunction( RemoteCommand ); } - Read_Config( fn.GetFullPath() ); + frame->Read_Config( fn.GetFullPath() ); frame->Zoom_Automatique( true ); diff --git a/pcbnew/print_board_functions.cpp b/pcbnew/print_board_functions.cpp index e91e49cced..c19c9df3e0 100644 --- a/pcbnew/print_board_functions.cpp +++ b/pcbnew/print_board_functions.cpp @@ -147,7 +147,7 @@ void WinEDA_DrawPanel::PrintPage( wxDC* aDC, bool aPrint_Sheet_Ref, int aPrintMa continue; if( pt_piste->Type() == TYPE_VIA ) /* VIA rencontree */ { - int rayon = g_DesignSettings.m_ViaDrill / 2; + int rayon = pt_piste->GetDrillValue() / 2; GRFilledCircle( &m_ClipBox, aDC, pt_piste->m_Start.x, pt_piste->m_Start.y, rayon, 0, color, color ); } diff --git a/pcbnew/protos.h b/pcbnew/protos.h index 7d53893646..a2755e6b1d 100644 --- a/pcbnew/protos.h +++ b/pcbnew/protos.h @@ -50,7 +50,6 @@ void CreateSortedPadListByXCoord( BOARD* aBoard, std::vector* aVector ); /**************/ /* PCBCFG.CPP */ /**************/ -bool Read_Config( const wxString& project_name ); bool Read_Hotkey_Config( WinEDA_DrawFrame* frame, bool verbose ); diff --git a/pcbnew/solve.cpp b/pcbnew/solve.cpp index 7e337762ad..b0dbda6691 100644 --- a/pcbnew/solve.cpp +++ b/pcbnew/solve.cpp @@ -31,6 +31,7 @@ static int segm_oX, segm_oY; static int segm_fX, segm_fY; /* Origine et fin de la piste en cours de trace */ static RATSNEST_ITEM* pt_cur_ch; static int Ncurrent; /* measures of progress */ +static int s_Clearance; // Clerance value used in autorouter #define NOSUCCESS 0 @@ -219,6 +220,8 @@ int WinEDA_PcbFrame::Solve( wxDC* DC, int two_sides ) DrawPanel->m_AbortRequest = FALSE; DrawPanel->m_AbortEnable = TRUE; + s_Clearance = GetBoard()->m_NetClasses.GetDefault()->GetClearance(); + Ncurrent = 0; MsgPanel->EraseMsgBox(); msg.Printf( wxT( "%d " ), GetBoard()->m_NbNoconnect ); @@ -355,8 +358,8 @@ static int Autoroute_One_Track( WinEDA_PcbFrame* pcbframe, wxDC* DC, result = NOSUCCESS; - marge = g_DesignSettings.m_TrackClearance + (g_DesignSettings.m_CurrentTrackWidth / 2); - via_marge = g_DesignSettings.m_TrackClearance + (g_DesignSettings.m_CurrentViaSize / 2); + marge = s_Clearance + (g_DesignSettings.m_CurrentTrackWidth / 2); + via_marge = s_Clearance + (g_DesignSettings.m_CurrentViaSize / 2); /* clear direction flags */ i = Nrows * Ncols * sizeof(char); @@ -1048,8 +1051,8 @@ static void Place_Piste_en_Buffer( WinEDA_PcbFrame* pcbframe, wxDC* DC ) int marge, via_marge; WinEDA_DrawPanel* panel = pcbframe->DrawPanel; - marge = g_DesignSettings.m_TrackClearance + (g_DesignSettings.m_CurrentTrackWidth / 2); - via_marge = g_DesignSettings.m_TrackClearance + (g_DesignSettings.m_CurrentViaSize / 2); + marge = s_Clearance + (g_DesignSettings.m_CurrentTrackWidth / 2); + via_marge = s_Clearance + (g_DesignSettings.m_CurrentViaSize / 2); /* tst point d'arrivee : doit etre sur pad start */ diff --git a/pcbnew/specctra_export.cpp b/pcbnew/specctra_export.cpp index 4402a544a7..f9ee4db318 100644 --- a/pcbnew/specctra_export.cpp +++ b/pcbnew/specctra_export.cpp @@ -1113,10 +1113,7 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IOError ) std::string componentId; // find the highest numbered netCode within the board. - int highestNetCode = -1; -// for( EQUIPOT* equipot = aBoard->m_Equipots; equipot; equipot = equipot->Next() ) -// highestNetCode = MAX( highestNetCode, equipot->GetNet() ); - highestNetCode = aBoard->m_NetInfo->GetCount() - 1; + int highestNetCode = aBoard->m_NetInfo->GetCount() - 1; deleteNETs(); // expand the net vector to highestNetCode+1, setting empty to NULL @@ -1236,12 +1233,15 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IOError ) // Next we add the via's which may be used. int defaultViaSize = aBoard->m_BoardSettings->m_CurrentViaSize; -// TODO: output vias sizes in NetClasses + int defaultViaDrill = aBoard->m_NetClasses.GetDefault()->GetViaDrill(); +/** + *@todo: *** output vias sizes and drill in NetClasses *** +*/ /* I need at least one via for the (class...) scope below if( defaultViaSize ) */ { - PADSTACK* padstack = makeVia( defaultViaSize, g_DesignSettings.m_ViaDrill, + PADSTACK* padstack = makeVia( defaultViaSize, defaultViaDrill, 0, aBoard->GetCopperLayerCount()-1 ); pcb->library->AddPadstack( padstack ); @@ -1258,7 +1258,7 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IOError ) if( viaSize == defaultViaSize ) continue; - PADSTACK* padstack = makeVia( viaSize, g_DesignSettings.m_ViaDrill, + PADSTACK* padstack = makeVia( viaSize, defaultViaDrill, 0, aBoard->GetCopperLayerCount()-1 ); pcb->library->AddPadstack( padstack ); } diff --git a/pcbnew/specctra_import.cpp b/pcbnew/specctra_import.cpp index d14977b1fa..fb1ec21b1c 100644 --- a/pcbnew/specctra_import.cpp +++ b/pcbnew/specctra_import.cpp @@ -242,9 +242,9 @@ SEGVIA* SPECCTRA_DB::makeVIA( PADSTACK* aPadstack, const POINT& aPoint, int aNet // drillMils is not in the session units, but actual mils so we don't use scale() drillDiam = (int) (drillMils * 10); - - if( drillDiam == g_DesignSettings.m_ViaDrill ) // default - drillDiam = -1; // import as default +/** @todo: see if we use default netclass or specific value +*/ + drillDiam = -1; // import as default: real drill is the netclass value } } diff --git a/pcbnew/zones_convert_brd_items_to_polygons.cpp b/pcbnew/zones_convert_brd_items_to_polygons.cpp index 7b8323e2f7..18cf46c3ef 100644 --- a/pcbnew/zones_convert_brd_items_to_polygons.cpp +++ b/pcbnew/zones_convert_brd_items_to_polygons.cpp @@ -193,23 +193,35 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) */ CopyPolygonsFromFilledPolysListToBoolengine( booleng, GROUP_A ); - // Calculates the clearance value that meet DRC requirements - int clearance = max( m_ZoneClearance, g_DesignSettings.m_TrackClearance ); - clearance += m_ZoneMinThickness / 2; + /* Calculates the clearance value that meet DRC requirements + * from m_ZoneClearance and clearance from the corresponding netclass + * We have a "local" clearance in zones because most of time + * clearance between a zone and others items is bigger than the netclass clearance + * this is more true for small clearance values + * Note also the "local" clearance is used for clearance between non copper items + * or items like texts on copper layers + */ + int zone_clearance = max( m_ZoneClearance, GetClearance() ); + zone_clearance += m_ZoneMinThickness / 2; /* Add holes (i.e. tracks and pads areas as polygons outlines) * in GroupB in Bool_Engine */ - /* items ouside the zone bounding box are skipped */ + /* items ouside the zone bounding box are skipped + * the bounding box is the zone bounding box + the biigest clearance found in Netclass list + */ EDA_Rect item_boundingbox; EDA_Rect zone_boundingbox = GetBoundingBox(); - zone_boundingbox.Inflate( m_ZoneClearance, clearance ); + int biggest_clearance = aPcb->GetBiggestClearanceValue(); + biggest_clearance = MAX( biggest_clearance, zone_clearance ); + zone_boundingbox.Inflate( biggest_clearance, biggest_clearance ); /* * First : Add pads. Note: pads having the same net as zone are left in zone. * Thermal shapes will be created later if necessary */ + int item_clearance; have_poly_to_substract = false; for( MODULE* module = aPcb->m_Modules; module; module = module->Next() ) { @@ -220,18 +232,19 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) if( pad->GetNet() != GetNet() ) { + item_clearance = pad->GetClearance() + (m_ZoneMinThickness / 2); item_boundingbox = pad->GetBoundingBox(); if( item_boundingbox.Intersects( zone_boundingbox ) ) { - AddPadWithClearancePolygon( booleng, *pad, clearance ); + AddPadWithClearancePolygon( booleng, *pad, MAX(zone_clearance,item_clearance) ); have_poly_to_substract = true; } continue; } - int gap = clearance; + int gap = zone_clearance; #ifdef USE_STUBS_FOR_THERMAL - gap = MAX( clearance, m_ThermalReliefGapValue ); + gap = MAX( zone_clearance, m_ThermalReliefGapValue ); #else if( (m_PadOption == PAD_NOT_IN_ZONE) || (GetNet() == 0) || pad->m_PadShape == PAD_TRAPEZOID ) @@ -259,10 +272,12 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) continue; if( track->GetNet() == GetNet() && (GetNet() != 0) ) continue; + + item_clearance = track->GetClearance() + (m_ZoneMinThickness / 2); item_boundingbox = track->GetBoundingBox(); if( item_boundingbox.Intersects( zone_boundingbox ) ) { - AddTrackWithClearancePolygon( booleng, *track, clearance ); + AddTrackWithClearancePolygon( booleng, *track, MAX(zone_clearance,item_clearance) ); have_poly_to_substract = true; } } @@ -1338,13 +1353,13 @@ void AddRoundedEndsSegmentPolygon( Bool_Engine* aBooleng, int delta = 3600 / s_CircleToSegmentsCount; // rot angle in 0.1 degree - + #ifdef CREATE_KBOOL_KEY_FILES if( s_GenDataForKbool ) StartPolygon(s_CircleToSegmentsCount+4, 1); #endif - + // Compute the outlines of the segment, and creates a polygon corner = wxPoint( 0, rayon ); RotatePoint( &corner, -delta_angle ); diff --git a/pcbnew/zones_test_and_combine_areas.cpp b/pcbnew/zones_test_and_combine_areas.cpp index 994bd71efc..f9f5eead61 100644 --- a/pcbnew/zones_test_and_combine_areas.cpp +++ b/pcbnew/zones_test_and_combine_areas.cpp @@ -846,6 +846,7 @@ int BOARD::Test_Drc_Areas_Outlines_To_Areas_Outlines( ZONE_CONTAINER* aArea_To_E { wxString str; long nerrors = 0; + int zone2zoneClearance; // iterate through all areas for( int ia = 0; ia < GetAreaCount(); ia++ ) @@ -856,6 +857,7 @@ int BOARD::Test_Drc_Areas_Outlines_To_Areas_Outlines( ZONE_CONTAINER* aArea_To_E if( aArea_To_Examine && (aArea_To_Examine != Area_Ref) ) continue; + for( int ia2 = 0; ia2 < GetAreaCount(); ia2++ ) { ZONE_CONTAINER* Area_To_Test = GetArea( ia2 ); @@ -871,6 +873,14 @@ int BOARD::Test_Drc_Areas_Outlines_To_Areas_Outlines( ZONE_CONTAINER* aArea_To_E if( Area_Ref->GetNet() == Area_To_Test->GetNet() && Area_Ref->GetNet() >= 0 ) continue; + /* Examine a candidate zone: compare Area_To_Test to Area_Ref + */ + + // Calculate the clearance used in zone to zone test: + zone2zoneClearance = Area_Ref->GetClearance(Area_To_Test); + zone2zoneClearance = MAX( zone2zoneClearance, Area_Ref->m_ZoneClearance ); + zone2zoneClearance = MAX( zone2zoneClearance, Area_To_Test->m_ZoneClearance ); + // test for some corners of Area_Ref inside Area_To_Test for( int ic = 0; ic < Area_Ref->m_Poly->GetNumCorners(); ic++ ) { @@ -962,12 +972,10 @@ int BOARD::Test_Drc_Areas_Outlines_To_Areas_Outlines( ZONE_CONTAINER* aArea_To_E ax1, ay1, ax2, ay2, astyle, 0, - - // @todo: decide what to use here. - g_DesignSettings.m_TrackClearance, + zone2zoneClearance, &x, &y ); - if( d < g_DesignSettings.m_TrackClearance ) + if( d < zone2zoneClearance ) { // COPPERAREA_COPPERAREA error : intersect or too close if( aCreate_Markers )