Commit e3a3d16a authored by CHARRAS's avatar CHARRAS

small bugs fixed. Added: Support for microvias (see changelog)

parent a5e2913d
......@@ -250,7 +250,8 @@ double zpos, height;
int color;
r = via->m_Width * g_Parm_3D_Visu.m_BoardScale / 2;
hole = g_Parm_3D_Visu.m_BoardSettings->m_ViaDrill * g_Parm_3D_Visu.m_BoardScale / 2;
hole = via->GetDrillValue();
hole *= g_Parm_3D_Visu.m_BoardScale / 2;
x = via->m_Start.x * g_Parm_3D_Visu.m_BoardScale;
y = via->m_Start.y * g_Parm_3D_Visu.m_BoardScale;
......
......@@ -4,6 +4,16 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
email address.
2007-Dec-12 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
missing footprints in export netlist (bug 1867321)
Affected: PadsPcb converter did not list all footprints
+pcbnew:
fixed: memory not freeed in block copy (minor bug)
Support for micro vias (generation of drill files not finished)
2008-jan-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
......
......@@ -250,7 +250,8 @@ void Write_GENERIC_NetList( WinEDA_SchematicFrame* frame,
/* Create netlist module section */
fprintf( tmpfile, "$BeginComponentList\n" );
for( CurrScreen = ScreenSch; CurrScreen != NULL; CurrScreen = (BASE_SCREEN*) CurrScreen->Pnext )
EDA_ScreenList ScreenList( NULL );
for( CurrScreen = ScreenList.GetFirst(); CurrScreen != NULL; CurrScreen = ScreenList.GetNext() )
{
for( DrawList = CurrScreen->EEDrawList; DrawList != NULL; DrawList = DrawList->Pnext )
{
......
......@@ -181,7 +181,7 @@ static int SavePcbFormatAscii( WinEDA_GerberFrame* frame, FILE* aFile,
newtrack->SetLayer( 0x0F ); // Layers are 0 to 15 (Cu/Cmp)
newtrack->m_Drill = -1;
newtrack->SetDrillDefault();
// Compute the via position from track position ( Via position is the
// position of the middle of the track segment )
......
......@@ -577,6 +577,7 @@ enum main_id {
ID_POPUP_PCB_EDIT_COTATION,
ID_POPUP_PCB_END_TRACK,
ID_POPUP_PCB_PLACE_VIA,
ID_POPUP_PCB_PLACE_MICROVIA,
ID_POPUP_PCB_IMPORT_PAD_SETTINGS,
ID_POPUP_PCB_EXPORT_PAD_SETTINGS,
......
......@@ -150,7 +150,10 @@ 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_MicroViaDrill; // micro via drill (for the entire board)
int m_CurrentViaSize; // Current via size
int m_CurrentMicroViaSize; // Current micro via size
bool m_MicroViasAllowed; // true to allow micro vias
int m_ViaSizeHistory[HIST0RY_NUMBER]; // Last HIST0RY_NUMBER used via sizes
int m_CurrentViaType; // via type (BLIND, TROUGHT ...), bits 1 and 2 (not 0 and 1)
int m_CurrentTrackWidth; // current track width
......@@ -222,6 +225,14 @@ public:
* @return BOARD_ITEM* - the one selected, or NULL.
*/
BOARD_ITEM* GetCurItem() const { return (BOARD_ITEM*) BASE_SCREEN::GetCurItem(); }
/* Return true if a microvia can be put on board
* A microvia ia a small via restricted to 2 near neighbour layers
* because its is hole is made by laser which can penetrate only one layer
* It is mainly used to connect BGA to the first inner layer
* And it is allowed from an external layer to the first inner layer
*/
bool IsMicroViaAcceptable(void);
};
/**********************************/
......
No preview for this file type
......@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kicad\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2008-01-05 14:17+0100\n"
"PO-Revision-Date: 2008-01-12 09:15+0100\n"
"Last-Translator: \n"
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
"MIME-Version: 1.0\n"
......@@ -21,195 +21,26 @@ msgstr ""
"X-Poedit-SearchPath-6: 3d-viewer\n"
"X-Poedit-SearchPath-7: share\n"
#: pcbnew/gendrill.cpp:150
msgid "Drill tools"
msgstr "Outils de perage"
#: pcbnew/gendrill.cpp:171
#: pcbnew/dialog_general_options.cpp:272
#: gerbview/options.cpp:186
msgid "millimeters"
msgstr "millimetres"
#: pcbnew/gendrill.cpp:171
#: eeschema/dialog_options.cpp:246
msgid "inches"
msgstr "Pouces"
#: pcbnew/gendrill.cpp:173
msgid "Drill Units:"
msgstr "Units perage:"
#: pcbnew/gendrill.cpp:181
msgid "decimal format"
msgstr "Format dcimal"
#: pcbnew/gendrill.cpp:182
msgid "suppress leading zeros"
msgstr "Suppression zeros de tte"
#: pcbnew/gendrill.cpp:182
msgid "suppress trailing zeros"
msgstr "Suppression zeros de fin"
#: pcbnew/gendrill.cpp:182
msgid "keep zeros"
msgstr "Garder les zros"
#: pcbnew/gendrill.cpp:185
msgid "Zeros Format"
msgstr "Format des zros"
#: pcbnew/gendrill.cpp:192
#: pcbnew/gendrill.cpp:452
msgid "2:3"
msgstr "2:3"
#: pcbnew/gendrill.cpp:192
#: pcbnew/gendrill.cpp:453
msgid "2:4"
msgstr "2:4"
#: pcbnew/gendrill.cpp:193
#: pcbnew/gendrill.cpp:458
msgid "3:2"
msgstr "3:2"
#: pcbnew/gendrill.cpp:193
#: pcbnew/gendrill.cpp:459
msgid "3:3"
msgstr "3:3"
#: pcbnew/gendrill.cpp:199
msgid "Precision"
msgstr "Prcision"
#: pcbnew/gendrill.cpp:211
msgid "absolute"
msgstr "Absolu"
#: pcbnew/gendrill.cpp:211
msgid "auxiliary axis"
msgstr "Axe Auxiliaire"
#: pcbnew/gendrill.cpp:213
msgid "Drill Origin:"
msgstr "Origine des coord de percage:"
#: pcbnew/gendrill.cpp:222
#: pcbnew/gendrill.cpp:230
#: eeschema/libedit.cpp:41
#: eeschema/viewlibs.cpp:120
msgid "None"
msgstr "Aucun"
#: pcbnew/gendrill.cpp:222
msgid "drill sheet (HPGL)"
msgstr "Plan de perage (HPGL)"
#: pcbnew/gendrill.cpp:222
msgid "drill sheet (PostScript)"
msgstr "Plan de perage (Postscript)"
#: pcbnew/gendrill.cpp:224
msgid "Drill Sheet:"
msgstr "Plan de perage:"
#: pcbnew/gendrill.cpp:230
msgid "Drill report"
msgstr "Rapport de perage"
#: pcbnew/gendrill.cpp:232
msgid "Drill Report:"
msgstr "Rapport de perage:"
#: pcbnew/gendrill.cpp:238
msgid "Via Drill"
msgstr "Perage des vias"
#: pcbnew/gendrill.cpp:243
#: eeschema/plothpgl.cpp:239
msgid "Pen Number"
msgstr "Numro de plume"
#: pcbnew/gendrill.cpp:246
msgid "Speed (cm/s)"
msgstr "Vitesse plume ( cm/s )"
#: pcbnew/gendrill.cpp:249
msgid "mirror y axis"
msgstr "Miroir sur axe Y"
#: pcbnew/gendrill.cpp:253
msgid "minimal header"
msgstr "Entte minimal"
#: pcbnew/gendrill.cpp:259
msgid "&Execute"
msgstr "&Excuter"
#: pcbnew/gendrill.cpp:263
#: eeschema/plotps.cpp:208
#: share/svg_print.cpp:222
#: share/dialog_print.cpp:225
msgid "&Close"
msgstr "&Fermer"
#: pcbnew/gendrill.cpp:389
msgid "Drill file"
msgstr "Fichier de percage"
#: pcbnew/gendrill.cpp:403
#: pcbnew/gendrill.cpp:1623
#: pcbnew/plotps.cpp:51
#: pcbnew/xchgmod.cpp:642
msgid "Unable to create file "
msgstr "Impossible de crer le fichier "
#: pcbnew/gendrill.cpp:410
#: pcbnew/gendrill.cpp:1036
#: pcbnew/gendrill.cpp:1629
#: pcbnew/plothpgl.cpp:74
#: pcbnew/plotps.cpp:58
#: pcbnew/plotgerb.cpp:84
msgid "File"
msgstr "Fichier"
#: pcbnew/gendrill.cpp:416
#: pcbnew/gendrill.cpp:1041
#: pcbnew/gendrill.cpp:1634
msgid "Tools"
msgstr "Outils"
#: pcbnew/gendrill.cpp:420
#: pcbnew/gendrill.cpp:1110
#: pcbnew/gendrill.cpp:1686
#: pcbnew/class_pad.cpp:1085
#: pcbnew/class_track.cpp:822
#: pcbnew/class_track.cpp:827
msgid "Drill"
msgstr "Perage"
#: pcbnew/specctra.cpp:1557
#: pcbnew/specctra.cpp:1564
msgid "Expecting"
msgstr "Attendu"
#: pcbnew/gendrill.cpp:971
msgid "Drill Map file"
msgstr "Fichier Plan de perage"
#: pcbnew/specctra.cpp:1573
#: pcbnew/specctra.cpp:1580
msgid "Unexpected"
msgstr "Inattendu"
#: pcbnew/gendrill.cpp:1030
#: pcbnew/specctra.cpp:1601
#: pcbnew/specctra.cpp:2846
#, c-format
msgid "Unable to create file <%s>"
msgstr "Impossible de crer fichier <%s>"
#: pcbnew/gendrill.cpp:1332
msgid ""
" Drill map: Too many diameter values to draw to draw one symbol per drill value (max 13)\n"
"Plot uses circle shape for some drill values"
msgstr ""
"Plan de perage: trop de diametres diffrents pour tracer 1 symbole par diametre\n"
"Le trac utilise des cercles pour quelques valeurs "
msgid "Unable to open file \"%s\""
msgstr "Ne peut pas ouvrirle fichier \"%s\""
#: pcbnew/gendrill.cpp:1608
msgid "Drill Report file"
msgstr "Fichier rapport de perage:"
#: pcbnew/specctra.cpp:2814
#, c-format
msgid "System file error writing to file \"%s\""
msgstr "Erreur systme sur criture fichier \"%s\""
#: pcbnew/files.cpp:57
msgid "Recovery file "
......@@ -255,7 +86,6 @@ msgid "Warning: unable to create bakfile "
msgstr "Attention: Impossible de crer fichier backup "
#: pcbnew/files.cpp:326
#: pcbnew/plothpgl.cpp:67
#: pcbnew/librairi.cpp:255
#: pcbnew/librairi.cpp:401
#: pcbnew/librairi.cpp:551
......@@ -264,6 +94,7 @@ msgstr "Attention: Impossible de cr
#: pcbnew/gen_modules_placefile.cpp:98
#: pcbnew/gen_modules_placefile.cpp:251
#: pcbnew/export_gencad.cpp:83
#: pcbnew/plothpgl.cpp:67
#: eeschema/plothpgl.cpp:560
#: eeschema/plotps.cpp:389
#: cvpcb/genequiv.cpp:42
......@@ -311,6 +142,12 @@ msgstr "Affichage coord Polaires"
msgid "Inches"
msgstr "Pouces"
#: pcbnew/dialog_general_options.cpp:272
#: pcbnew/gendrill.cpp:171
#: gerbview/options.cpp:186
msgid "millimeters"
msgstr "millimetres"
#: pcbnew/dialog_general_options.cpp:275
#: eeschema/dialog_options.cpp:248
#: gerbview/options.cpp:187
......@@ -411,13 +248,13 @@ msgstr "Controle la capture du curseur pcb quand le curseuir souris est sur le p
#: pcbnew/dialog_general_options.cpp:368
#: pcbnew/dialog_graphic_items_options.cpp:263
#: pcbnew/dialog_pad_edit.cpp:217
#: pcbnew/dialog_initpcb.cpp:161
#: pcbnew/dialog_edit_mod_text.cpp:213
#: pcbnew/dialog_track_options.cpp:186
#: pcbnew/dialog_track_options.cpp:212
#: pcbnew/dialog_display_options.cpp:282
#: pcbnew/swap_layers.cpp:220
#: pcbnew/set_grid.cpp:171
#: pcbnew/dialog_pad_edit.cpp:217
#: pcbnew/dialog_drc.cpp:549
#: eeschema/symbtext.cpp:174
#: eeschema/dialog_options.cpp:274
......@@ -438,14 +275,14 @@ msgstr "&OK"
#: pcbnew/dialog_general_options.cpp:372
#: pcbnew/dialog_graphic_items_options.cpp:267
#: pcbnew/dialog_pad_edit.cpp:221
#: pcbnew/dialog_netlist.cpp:189
#: pcbnew/dialog_initpcb.cpp:164
#: pcbnew/dialog_edit_mod_text.cpp:217
#: pcbnew/dialog_track_options.cpp:190
#: pcbnew/dialog_track_options.cpp:216
#: pcbnew/dialog_display_options.cpp:286
#: pcbnew/swap_layers.cpp:224
#: pcbnew/set_grid.cpp:176
#: pcbnew/dialog_pad_edit.cpp:221
#: pcbnew/zones.cpp:219
#: pcbnew/dialog_zones_by_polygon.cpp:204
#: pcbnew/dialog_drc.cpp:545
......@@ -470,19 +307,19 @@ msgstr "&OK"
msgid "&Cancel"
msgstr "&Annuler"
#: pcbnew/edit_track_width.cpp:94
#: pcbnew/edit_track_width.cpp:96
msgid "Change track width (entire NET) ?"
msgstr "Change largeur piste ( NET complet) ?"
#: pcbnew/edit_track_width.cpp:128
#: pcbnew/edit_track_width.cpp:130
msgid "Edit All Tracks and Vias Sizes"
msgstr "Editer TOUTES Pistes et Vias"
#: pcbnew/edit_track_width.cpp:133
#: pcbnew/edit_track_width.cpp:135
msgid "Edit All Via Sizes"
msgstr "Editer TOUTES Vias"
#: pcbnew/edit_track_width.cpp:138
#: pcbnew/edit_track_width.cpp:140
msgid "Edit All Track Sizes"
msgstr "Editer TOUTES Pistes"
......@@ -533,15 +370,15 @@ msgid "3D settings"
msgstr "3D Caract"
#: pcbnew/dialog_edit_module.cpp:118
#: pcbnew/pcbtexte.cpp:111
#: pcbnew/sel_layer.cpp:158
#: pcbnew/sel_layer.cpp:316
#: pcbnew/muonde.cpp:348
#: pcbnew/block.cpp:160
#: pcbnew/pcbtexte.cpp:111
#: pcbnew/block.cpp:157
#: pcbnew/cotation.cpp:105
#: pcbnew/mirepcb.cpp:99
#: pcbnew/set_color.cpp:353
#: pcbnew/dialog_zones_by_polygon.cpp:201
#: pcbnew/sel_layer.cpp:158
#: pcbnew/sel_layer.cpp:316
#: eeschema/sheetlab.cpp:93
#: eeschema/eelayer.cpp:251
#: gerbview/reglage.cpp:108
......@@ -554,19 +391,19 @@ msgid "OK"
msgstr "OK"
#: pcbnew/dialog_edit_module.cpp:122
#: pcbnew/pcbtexte.cpp:116
#: pcbnew/sel_layer.cpp:162
#: pcbnew/sel_layer.cpp:320
#: pcbnew/muonde.cpp:352
#: pcbnew/pcbtexte.cpp:116
#: pcbnew/modedit_onclick.cpp:203
#: pcbnew/modedit_onclick.cpp:235
#: pcbnew/onrightclick.cpp:145
#: pcbnew/onrightclick.cpp:159
#: pcbnew/block.cpp:157
#: pcbnew/globaleditpad.cpp:108
#: pcbnew/block.cpp:154
#: pcbnew/cotation.cpp:109
#: pcbnew/mirepcb.cpp:103
#: pcbnew/set_color.cpp:357
#: pcbnew/sel_layer.cpp:162
#: pcbnew/sel_layer.cpp:320
#: pcbnew/globaleditpad.cpp:108
#: eeschema/onrightclick.cpp:122
#: eeschema/onrightclick.cpp:134
#: eeschema/sheetlab.cpp:97
......@@ -622,7 +459,9 @@ msgid "Delete Field"
msgstr "Supprimer Champ"
#: pcbnew/dialog_edit_module.cpp:234
#: common/common.cpp:280
#: common/common.cpp:298
#: common/common.cpp:309
#: common/common.cpp:342
msgid "Component"
msgstr "Composant"
......@@ -633,21 +472,21 @@ msgstr "Cuivre"
#: pcbnew/dialog_edit_module.cpp:235
#: pcbnew/class_text_mod.cpp:369
#: pcbnew/class_text_mod.cpp:373
#: pcbnew/sel_layer.cpp:145
#: pcbnew/class_pcb_text.cpp:198
#: pcbnew/class_pcb_text.cpp:177
#: pcbnew/class_pad.cpp:1062
#: pcbnew/classpcb.cpp:210
#: pcbnew/class_track.cpp:806
#: pcbnew/classpcb.cpp:189
#: pcbnew/class_track.cpp:779
#: pcbnew/class_module.cpp:1217
#: pcbnew/class_zone.cpp:441
#: pcbnew/sel_layer.cpp:145
#: pcbnew/class_zone.cpp:483
#: gerbview/affiche.cpp:109
msgid "Layer"
msgstr "Couche"
#: pcbnew/dialog_edit_module.cpp:243
#: pcbnew/dialog_edit_module.cpp:289
#: pcbnew/pcbtexte.cpp:176
#: pcbnew/muonde.cpp:360
#: pcbnew/pcbtexte.cpp:176
#: pcbnew/cotation.cpp:113
#: eeschema/dialog_options.cpp:229
#: eeschema/onrightclick.cpp:306
......@@ -662,7 +501,7 @@ msgstr "User"
#: pcbnew/dialog_edit_module.cpp:246
#: pcbnew/class_text_mod.cpp:383
#: pcbnew/class_pcb_text.cpp:209
#: pcbnew/class_pcb_text.cpp:188
#: pcbnew/class_pad.cpp:1104
#: pcbnew/class_module.cpp:1240
#: eeschema/affiche.cpp:117
......@@ -914,29 +753,124 @@ msgstr "Fichiers Librairies"
msgid "Library exists! No Change"
msgstr "Librairie existante! Pas de changement"
#: pcbnew/librairi.cpp:48
msgid "Import Module:"
msgstr "Importer Module:"
#: pcbnew/librairi.cpp:73
msgid "Not a module file"
msgstr "N'est pas un fichier de Modules"
#: pcbnew/muonde.cpp:149
msgid "Gap"
msgstr "Gap"
#: pcbnew/librairi.cpp:132
msgid "Create lib"
msgstr "Crer lib"
#: pcbnew/muonde.cpp:154
msgid "Stub"
msgstr "Stub"
#: pcbnew/librairi.cpp:132
msgid "Export Module:"
msgstr "Exporter Module:"
#: pcbnew/muonde.cpp:160
msgid "Arc Stub"
msgstr "Arc Stub"
#: pcbnew/librairi.cpp:147
#: pcbnew/librairi.cpp:388
#, c-format
msgid "File %s exists, OK to replace ?"
msgstr "Fichier %s existant, OK pour remplacer ?"
#: pcbnew/muonde.cpp:175
#: common/common.cpp:53
msgid " (mm):"
msgstr " (mm):"
#: pcbnew/librairi.cpp:156
#: pcbnew/muonde.cpp:182
msgid " (inch):"
msgstr " (pouce):"
#: pcbnew/muonde.cpp:189
#: pcbnew/muonde.cpp:202
#: pcbnew/gen_self.h:231
msgid "Incorrect number, abort"
msgstr "Nombre incorrect, arret"
#: pcbnew/muonde.cpp:198
msgid "Angle (0.1deg):"
msgstr "Angle (0.1deg):"
#: pcbnew/muonde.cpp:330
msgid "Complex shape"
msgstr "Formr complexe"
#: pcbnew/muonde.cpp:356
msgid "Read Shape Descr File..."
msgstr "Lire fichier de description de forme..."
#: pcbnew/muonde.cpp:360
msgid "Symmetrical"
msgstr "Symtrique"
#: pcbnew/muonde.cpp:360
msgid "Mirrored"
msgstr "Miroir"
#: pcbnew/muonde.cpp:362
msgid "Shape Option"
msgstr "Option Forme"
#: pcbnew/muonde.cpp:367
#: pcbnew/pcbtexte.cpp:126
#: pcbnew/cotation.cpp:125
#: pcbnew/mirepcb.cpp:108
#: eeschema/sheet.cpp:189
#: eeschema/sheet.cpp:200
#: eeschema/pinedit-dialog.cpp:273
#: eeschema/pinedit-dialog.cpp:279
#: common/wxwineda.cpp:91
msgid "Size"
msgstr "Taille "
#: pcbnew/muonde.cpp:428
msgid "Read descr shape file"
msgstr "Lire fichier de description de forme"
#: pcbnew/muonde.cpp:444
msgid "File not found"
msgstr "fichier non trouv"
#: pcbnew/muonde.cpp:548
msgid "Shape has a null size!"
msgstr "La forme a une taille nulle"
#: pcbnew/muonde.cpp:553
msgid "Shape has no points!"
msgstr "La forme n'a pas de points"
#: pcbnew/muonde.cpp:679
msgid "No pad for this module"
msgstr "Pas de pad dans ce module"
#: pcbnew/muonde.cpp:684
msgid "Only one pad for this module"
msgstr "Seulement un pad dans ce module"
#: pcbnew/muonde.cpp:698
msgid "Gap (mm):"
msgstr "Gap (mm):"
#: pcbnew/muonde.cpp:704
msgid "Gap (inch):"
msgstr "Gap (inch):"
#: pcbnew/librairi.cpp:48
msgid "Import Module:"
msgstr "Importer Module:"
#: pcbnew/librairi.cpp:73
msgid "Not a module file"
msgstr "N'est pas un fichier de Modules"
#: pcbnew/librairi.cpp:132
msgid "Create lib"
msgstr "Crer lib"
#: pcbnew/librairi.cpp:132
msgid "Export Module:"
msgstr "Exporter Module:"
#: pcbnew/librairi.cpp:147
#: pcbnew/librairi.cpp:388
#, c-format
msgid "File %s exists, OK to replace ?"
msgstr "Fichier %s existant, OK pour remplacer ?"
#: pcbnew/librairi.cpp:156
#: eeschema/symbedit.cpp:166
#, c-format
msgid "Unable to create <%s>"
......@@ -1354,16 +1288,16 @@ msgid "Module"
msgstr "Module"
#: pcbnew/class_text_mod.cpp:359
#: pcbnew/classpcb.cpp:194
#: pcbnew/classpcb.cpp:173
#: pcbnew/class_marker.cpp:112
#: pcbnew/class_track.cpp:750
#: pcbnew/class_zone.cpp:422
#: pcbnew/class_track.cpp:723
#: pcbnew/class_zone.cpp:454
#: gerbview/affiche.cpp:93
msgid "Type"
msgstr "Type"
#: pcbnew/class_text_mod.cpp:363
#: pcbnew/class_pcb_text.cpp:204
#: pcbnew/class_pcb_text.cpp:183
#: pcbnew/dialog_display_options.cpp:275
#: eeschema/dialog_options.cpp:265
#: gerbview/affiche.cpp:43
......@@ -1371,7 +1305,7 @@ msgid "No"
msgstr "Non"
#: pcbnew/class_text_mod.cpp:365
#: pcbnew/class_pcb_text.cpp:206
#: pcbnew/class_pcb_text.cpp:185
#: pcbnew/dialog_display_options.cpp:274
#: eeschema/dialog_options.cpp:264
#: gerbview/affiche.cpp:45
......@@ -1380,7 +1314,7 @@ msgstr "Oui"
#: pcbnew/class_text_mod.cpp:380
#: pcbnew/pcbtexte.cpp:176
#: pcbnew/class_pcb_text.cpp:202
#: pcbnew/class_pcb_text.cpp:181
#: pcbnew/modedit_onclick.cpp:254
#: pcbnew/cotation.cpp:113
#: gerbview/affiche.cpp:40
......@@ -1390,11 +1324,11 @@ msgstr "Miroir"
#: pcbnew/class_text_mod.cpp:386
#: pcbnew/pcbtexte.cpp:130
#: pcbnew/class_pcb_text.cpp:212
#: pcbnew/class_pcb_text.cpp:191
#: pcbnew/dialog_edit_mod_text.cpp:204
#: pcbnew/classpcb.cpp:215
#: pcbnew/classpcb.cpp:194
#: pcbnew/cotation.cpp:129
#: pcbnew/class_track.cpp:830
#: pcbnew/class_track.cpp:806
#: pcbnew/mirepcb.cpp:113
#: pcbnew/class_edge_mod.cpp:297
#: eeschema/dialog_cmp_graphic_properties.cpp:188
......@@ -1405,14 +1339,14 @@ msgid "Width"
msgstr "Epaisseur"
#: pcbnew/class_text_mod.cpp:389
#: pcbnew/class_pcb_text.cpp:215
#: pcbnew/class_pcb_text.cpp:194
#: pcbnew/class_pad.cpp:1075
#: gerbview/affiche.cpp:55
msgid "H Size"
msgstr "Taille H"
#: pcbnew/class_text_mod.cpp:392
#: pcbnew/class_pcb_text.cpp:218
#: pcbnew/class_pcb_text.cpp:197
#: pcbnew/class_pad.cpp:1079
#: gerbview/affiche.cpp:58
msgid "V Size"
......@@ -1429,18 +1363,6 @@ msgstr "Propri
msgid "Text:"
msgstr "Texte:"
#: pcbnew/pcbtexte.cpp:126
#: pcbnew/muonde.cpp:367
#: pcbnew/cotation.cpp:125
#: pcbnew/mirepcb.cpp:108
#: eeschema/sheet.cpp:189
#: eeschema/sheet.cpp:200
#: eeschema/pinedit-dialog.cpp:273
#: eeschema/pinedit-dialog.cpp:279
#: common/wxwineda.cpp:91
msgid "Size"
msgstr "Taille "
#: pcbnew/pcbtexte.cpp:134
msgid "Position"
msgstr "Position"
......@@ -1450,37 +1372,65 @@ msgstr "Position"
msgid "Orientation"
msgstr "Orientation"
#: pcbnew/sel_layer.cpp:92
msgid "Select Layer:"
msgstr "Selection couche:"
#: pcbnew/clean.cpp:179
msgid "Delete unconnected tracks:"
msgstr "Suppression Pistes non connectes"
#: pcbnew/sel_layer.cpp:137
msgid "(Deselect)"
msgstr "(Deselection)"
#: pcbnew/clean.cpp:198
msgid "ViaDef"
msgstr "ViaDef"
#: pcbnew/sel_layer.cpp:238
msgid "Less than two copper layers are being used."
msgstr "Il y a moins de 2 couches cuivre utilises."
#: pcbnew/clean.cpp:370
msgid "Clean Null Segments"
msgstr "Nettoyage segments nulls"
#: pcbnew/sel_layer.cpp:239
msgid "Hence Layer Pairs cannot be specified."
msgstr "Donc les paires de couche ne peuvent pas tre spcifies"
#: pcbnew/clean.cpp:462
msgid "Merging Segments:"
msgstr "Associe Segment"
#: pcbnew/sel_layer.cpp:263
msgid "Select Layer Pair:"
msgstr "Selection paire de couches"
#: pcbnew/clean.cpp:464
msgid "Merge"
msgstr "Merge"
#: pcbnew/sel_layer.cpp:294
msgid "Top Layer"
msgstr "Couche Sup."
#: pcbnew/clean.cpp:464
#: pcbnew/dialog_pad_edit.cpp:186
#: eeschema/dialog_erc.cpp:192
#: eeschema/dialog_erc.cpp:196
#: eeschema/dialog_edit_component_in_schematic.cpp:171
msgid "0"
msgstr "0"
#: pcbnew/sel_layer.cpp:299
msgid "Bottom Layer"
msgstr "Couche Inf."
#: pcbnew/clean.cpp:480
msgid "Merge: "
msgstr "Merge: "
#: pcbnew/sel_layer.cpp:358
msgid "The Top Layer and Bottom Layer must differ"
msgstr "Les couches dessus et dessous doivent diffrer"
#: pcbnew/clean.cpp:710
msgid "DRC Control:"
msgstr "Controle DRC:"
#: pcbnew/clean.cpp:715
msgid "NetCtr"
msgstr "NetCtr"
#: pcbnew/clean.cpp:1061
msgid "Centre"
msgstr "Centre"
#: pcbnew/clean.cpp:1061
msgid "0 "
msgstr "0"
#: pcbnew/clean.cpp:1072
msgid "Pads: "
msgstr "Pastilles: "
#: pcbnew/clean.cpp:1076
msgid "Max"
msgstr "Max"
#: pcbnew/clean.cpp:1079
msgid "Segm"
msgstr "Segm"
#: pcbnew/autorout.cpp:59
msgid "Net not selected"
......@@ -1502,140 +1452,187 @@ msgstr "Pas de memoire pour autoroutage"
msgid "Place Cells"
msgstr "Place Cells"
#: pcbnew/muonde.cpp:149
msgid "Gap"
msgstr "Gap"
#: pcbnew/dialog_graphic_items_options.cpp:194
msgid "Graphics:"
msgstr "Elments graphiques;"
#: pcbnew/muonde.cpp:154
msgid "Stub"
msgstr "Stub"
#: pcbnew/dialog_graphic_items_options.cpp:198
msgid "Graphic segm Width"
msgstr "Epaiss. segm graphique"
#: pcbnew/muonde.cpp:160
msgid "Arc Stub"
msgstr "Arc Stub"
#: pcbnew/dialog_graphic_items_options.cpp:204
msgid "Board Edges Width"
msgstr "Epaiss. contour pcb"
#: pcbnew/muonde.cpp:175
#: common/common.cpp:52
msgid " (mm):"
msgstr " (mm):"
#: pcbnew/dialog_graphic_items_options.cpp:210
msgid "Copper Text Width"
msgstr "Epaisseur Texte sur cuivre"
#: pcbnew/muonde.cpp:182
msgid " (inch):"
msgstr " (pouce):"
#: pcbnew/dialog_graphic_items_options.cpp:216
msgid "Text Size V"
msgstr "Hauteur texte"
#: pcbnew/muonde.cpp:189
#: pcbnew/muonde.cpp:202
#: pcbnew/gen_self.h:231
msgid "Incorrect number, abort"
msgstr "Nombre incorrect, arret"
#: pcbnew/dialog_graphic_items_options.cpp:222
msgid "Text Size H"
msgstr "Largeur texte"
#: pcbnew/muonde.cpp:198
msgid "Angle (0.1deg):"
msgstr "Angle (0.1deg):"
#: pcbnew/dialog_graphic_items_options.cpp:230
msgid "Modules:"
msgstr "Modules: "
#: pcbnew/muonde.cpp:330
msgid "Complex shape"
msgstr "Formr complexe"
#: pcbnew/dialog_graphic_items_options.cpp:234
msgid "Edges Module Width"
msgstr "Epaiss. contor module"
#: pcbnew/muonde.cpp:356
msgid "Read Shape Descr File..."
msgstr "Lire fichier de description de forme..."
#: pcbnew/dialog_graphic_items_options.cpp:240
msgid "Text Module Width"
msgstr "Epaisseur Texte Module"
#: pcbnew/muonde.cpp:360
msgid "Symmetrical"
msgstr "Symtrique"
#: pcbnew/dialog_graphic_items_options.cpp:246
msgid "Text Module Size V"
msgstr "Hauteur Texte Module"
#: pcbnew/muonde.cpp:360
msgid "Mirrored"
msgstr "Miroir"
#: pcbnew/dialog_graphic_items_options.cpp:252
msgid "Text Module Size H"
msgstr "Largeur Texte Module"
#: pcbnew/muonde.cpp:362
msgid "Shape Option"
msgstr "Option Forme"
#: pcbnew/dialog_pad_edit.cpp:157
msgid "Pad Num :"
msgstr "Num Pad :"
#: pcbnew/muonde.cpp:428
msgid "Read descr shape file"
msgstr "Lire fichier de description de forme"
#: pcbnew/dialog_pad_edit.cpp:163
msgid "Pad Net Name :"
msgstr "NetName Pad:"
#: pcbnew/muonde.cpp:444
msgid "File not found"
msgstr "fichier non trouv"
#: pcbnew/dialog_pad_edit.cpp:176
#: pcbnew/dialog_pad_edit.cpp:196
#: pcbnew/classpcb.cpp:178
#: pcbnew/class_board_item.cpp:107
#: pcbnew/class_track.cpp:749
msgid "Circle"
msgstr "Cercle"
#: pcbnew/muonde.cpp:548
msgid "Shape has a null size!"
msgstr "La forme a une taille nulle"
#: pcbnew/dialog_pad_edit.cpp:177
#: pcbnew/dialog_pad_edit.cpp:197
msgid "Oval"
msgstr "Ovale"
#: pcbnew/muonde.cpp:553
msgid "Shape has no points!"
msgstr "La forme n'a pas de points"
#: pcbnew/dialog_pad_edit.cpp:178
msgid "Drill Shape:"
msgstr "Forme du perage:"
#: pcbnew/muonde.cpp:679
msgid "No pad for this module"
msgstr "Pas de pad dans ce module"
#: pcbnew/dialog_pad_edit.cpp:187
msgid "90"
msgstr "90"
#: pcbnew/muonde.cpp:684
msgid "Only one pad for this module"
msgstr "Seulement un pad dans ce module"
#: pcbnew/dialog_pad_edit.cpp:188
#: eeschema/dialog_edit_component_in_schematic.cpp:174
msgid "-90"
msgstr "-90"
#: pcbnew/muonde.cpp:698
msgid "Gap (mm):"
msgstr "Gap (mm):"
#: pcbnew/dialog_pad_edit.cpp:189
#: eeschema/dialog_edit_component_in_schematic.cpp:173
msgid "180"
msgstr "180"
#: pcbnew/muonde.cpp:704
msgid "Gap (inch):"
msgstr "Gap (inch):"
#: pcbnew/dialog_pad_edit.cpp:191
msgid "Pad Orient:"
msgstr "Orient pad:"
#: pcbnew/dialog_graphic_items_options.cpp:194
msgid "Graphics:"
msgstr "Elments graphiques;"
#: pcbnew/dialog_pad_edit.cpp:198
#: pcbnew/class_board_item.cpp:101
msgid "Rect"
msgstr "Rect"
#: pcbnew/dialog_graphic_items_options.cpp:198
msgid "Graphic segm Width"
msgstr "Epaiss. segm graphique"
#: pcbnew/dialog_pad_edit.cpp:199
msgid "Trapezoidal"
msgstr "Trapezoidal"
#: pcbnew/dialog_graphic_items_options.cpp:204
msgid "Board Edges Width"
msgstr "Epaiss. contour pcb"
#: pcbnew/dialog_pad_edit.cpp:200
msgid "Pad Shape:"
msgstr "Forme Pad:"
#: pcbnew/dialog_graphic_items_options.cpp:210
msgid "Copper Text Width"
msgstr "Epaisseur Texte sur cuivre"
#: pcbnew/dialog_pad_edit.cpp:205
#: pcbnew/class_track.cpp:751
msgid "Standard"
msgstr "Standard"
#: pcbnew/dialog_graphic_items_options.cpp:216
msgid "Text Size V"
msgstr "Hauteur texte"
#: pcbnew/dialog_pad_edit.cpp:206
msgid "SMD"
msgstr "CMS"
#: pcbnew/dialog_graphic_items_options.cpp:222
msgid "Text Size H"
msgstr "Largeur texte"
#: pcbnew/dialog_pad_edit.cpp:207
#: eeschema/netlist.cpp:210
msgid "Conn"
msgstr "Conn"
#: pcbnew/dialog_graphic_items_options.cpp:230
msgid "Modules:"
msgstr "Modules: "
#: pcbnew/dialog_pad_edit.cpp:208
msgid "Hole"
msgstr "Hole"
#: pcbnew/dialog_graphic_items_options.cpp:234
msgid "Edges Module Width"
msgstr "Epaiss. contor module"
#: pcbnew/dialog_pad_edit.cpp:209
msgid "Mechanical"
msgstr "Mechanical"
#: pcbnew/dialog_graphic_items_options.cpp:240
msgid "Text Module Width"
msgstr "Epaisseur Texte Module"
#: pcbnew/dialog_pad_edit.cpp:210
msgid "Pad Type:"
msgstr "Type Pad:"
#: pcbnew/dialog_graphic_items_options.cpp:246
msgid "Text Module Size V"
msgstr "Hauteur Texte Module"
#: pcbnew/dialog_pad_edit.cpp:225
msgid "Layers:"
msgstr "Couches:"
#: pcbnew/dialog_graphic_items_options.cpp:252
msgid "Text Module Size H"
msgstr "Largeur Texte Module"
#: pcbnew/dialog_pad_edit.cpp:229
msgid "Copper layer"
msgstr "Couches Cuivre"
#: pcbnew/zone_filling_algorithm.cpp:155
msgid "No pads or starting point found to fill this zone outline"
msgstr "Pas de pads ou de points de dpart pour remplir ce contour de zone"
#: pcbnew/dialog_pad_edit.cpp:233
msgid "Comp layer"
msgstr "Couche Cmp"
#: pcbnew/zone_filling_algorithm.cpp:193
msgid "Ok"
msgstr "Ok"
#: pcbnew/dialog_pad_edit.cpp:239
msgid "Adhesive Cmp"
msgstr "Adhesive Cmp"
#: pcbnew/dialog_pad_edit.cpp:243
msgid "Adhesive Copper"
msgstr "Adhesive Cu"
#: pcbnew/dialog_pad_edit.cpp:247
msgid "Solder paste Cmp"
msgstr "Pate souder Cmp"
#: pcbnew/dialog_pad_edit.cpp:251
msgid "Solder paste Copper"
msgstr "Pate souder cuivre"
#: pcbnew/dialog_pad_edit.cpp:255
msgid "Silkscreen Cmp"
msgstr "Srigr Cmp"
#: pcbnew/dialog_pad_edit.cpp:259
msgid "Silkscreen Copper"
msgstr "Srigr Cu "
#: pcbnew/dialog_pad_edit.cpp:263
msgid "Solder mask Cmp"
msgstr "Masque soudure Cmp"
#: pcbnew/dialog_pad_edit.cpp:267
msgid "Solder mask Copper"
msgstr "Masque soudure cuivre"
#: pcbnew/dialog_pad_edit.cpp:271
msgid "E.C.O.1 layer"
msgstr "couche E.C.O.1"
#: pcbnew/dialog_pad_edit.cpp:275
msgid "E.C.O.2 layer"
msgstr "couche E.C.O.2"
#: pcbnew/dialog_pad_edit.cpp:279
msgid "Draft layer"
msgstr "Couche dessin"
#: pcbnew/tool_modedit.cpp:53
#: eeschema/tool_lib.cpp:123
......@@ -1864,21 +1861,236 @@ msgstr "Grille %.3f"
msgid "User Grid"
msgstr "Grille perso"
#: pcbnew/gendrill.cpp:150
msgid "Drill tools"
msgstr "Outils de perage"
#: pcbnew/gendrill.cpp:171
#: eeschema/dialog_options.cpp:246
msgid "inches"
msgstr "Pouces"
#: pcbnew/gendrill.cpp:173
msgid "Drill Units:"
msgstr "Units perage:"
#: pcbnew/gendrill.cpp:181
msgid "decimal format"
msgstr "Format dcimal"
#: pcbnew/gendrill.cpp:182
msgid "suppress leading zeros"
msgstr "Suppression zeros de tte"
#: pcbnew/gendrill.cpp:182
msgid "suppress trailing zeros"
msgstr "Suppression zeros de fin"
#: pcbnew/gendrill.cpp:182
msgid "keep zeros"
msgstr "Garder les zros"
#: pcbnew/gendrill.cpp:185
msgid "Zeros Format"
msgstr "Format des zros"
#: pcbnew/gendrill.cpp:192
#: pcbnew/gendrill.cpp:452
msgid "2:3"
msgstr "2:3"
#: pcbnew/gendrill.cpp:192
#: pcbnew/gendrill.cpp:453
msgid "2:4"
msgstr "2:4"
#: pcbnew/gendrill.cpp:193
#: pcbnew/gendrill.cpp:458
msgid "3:2"
msgstr "3:2"
#: pcbnew/gendrill.cpp:193
#: pcbnew/gendrill.cpp:459
msgid "3:3"
msgstr "3:3"
#: pcbnew/gendrill.cpp:199
msgid "Precision"
msgstr "Prcision"
#: pcbnew/gendrill.cpp:211
msgid "absolute"
msgstr "Absolu"
#: pcbnew/gendrill.cpp:211
msgid "auxiliary axis"
msgstr "Axe Auxiliaire"
#: pcbnew/gendrill.cpp:213
msgid "Drill Origin:"
msgstr "Origine des coord de percage:"
#: pcbnew/gendrill.cpp:222
#: pcbnew/gendrill.cpp:230
#: eeschema/libedit.cpp:41
#: eeschema/viewlibs.cpp:120
msgid "None"
msgstr "Aucun"
#: pcbnew/gendrill.cpp:222
msgid "drill sheet (HPGL)"
msgstr "Plan de perage (HPGL)"
#: pcbnew/gendrill.cpp:222
msgid "drill sheet (PostScript)"
msgstr "Plan de perage (Postscript)"
#: pcbnew/gendrill.cpp:224
msgid "Drill Sheet:"
msgstr "Plan de perage:"
#: pcbnew/gendrill.cpp:230
msgid "Drill report"
msgstr "Rapport de perage"
#: pcbnew/gendrill.cpp:232
msgid "Drill Report:"
msgstr "Rapport de perage:"
#: pcbnew/gendrill.cpp:238
msgid "Via Drill"
msgstr "Perage des vias"
#: pcbnew/gendrill.cpp:243
#: eeschema/plothpgl.cpp:239
msgid "Pen Number"
msgstr "Numro de plume"
#: pcbnew/gendrill.cpp:246
msgid "Speed (cm/s)"
msgstr "Vitesse plume ( cm/s )"
#: pcbnew/gendrill.cpp:249
msgid "mirror y axis"
msgstr "Miroir sur axe Y"
#: pcbnew/gendrill.cpp:253
msgid "minimal header"
msgstr "Entte minimal"
#: pcbnew/gendrill.cpp:259
msgid "&Execute"
msgstr "&Excuter"
#: pcbnew/gendrill.cpp:263
#: eeschema/plotps.cpp:208
#: share/svg_print.cpp:222
#: share/dialog_print.cpp:225
msgid "&Close"
msgstr "&Fermer"
#: pcbnew/gendrill.cpp:389
msgid "Drill file"
msgstr "Fichier de percage"
#: pcbnew/gendrill.cpp:403
#: pcbnew/gendrill.cpp:1623
#: pcbnew/plotps.cpp:51
#: pcbnew/xchgmod.cpp:642
msgid "Unable to create file "
msgstr "Impossible de crer le fichier "
#: pcbnew/gendrill.cpp:410
#: pcbnew/gendrill.cpp:1036
#: pcbnew/gendrill.cpp:1629
#: pcbnew/plotps.cpp:58
#: pcbnew/plotgerb.cpp:84
#: pcbnew/plothpgl.cpp:74
msgid "File"
msgstr "Fichier"
#: pcbnew/gendrill.cpp:416
#: pcbnew/gendrill.cpp:1041
#: pcbnew/gendrill.cpp:1634
msgid "Tools"
msgstr "Outils"
#: pcbnew/gendrill.cpp:420
#: pcbnew/gendrill.cpp:1110
#: pcbnew/gendrill.cpp:1686
#: pcbnew/class_pad.cpp:1085
#: pcbnew/class_track.cpp:798
#: pcbnew/class_track.cpp:803
msgid "Drill"
msgstr "Perage"
#: pcbnew/gendrill.cpp:971
msgid "Drill Map file"
msgstr "Fichier Plan de perage"
#: pcbnew/gendrill.cpp:1030
#, c-format
msgid "Unable to create file <%s>"
msgstr "Impossible de crer fichier <%s>"
#: pcbnew/gendrill.cpp:1332
msgid ""
" Drill map: Too many diameter values to draw to draw one symbol per drill value (max 13)\n"
"Plot uses circle shape for some drill values"
msgstr ""
"Plan de perage: trop de diametres diffrents pour tracer 1 symbole par diametre\n"
"Le trac utilise des cercles pour quelques valeurs "
#: pcbnew/gendrill.cpp:1608
msgid "Drill Report file"
msgstr "Fichier rapport de perage:"
#: pcbnew/via_edit.cpp:51
msgid "Incorrect value for Via drill. No via drill change"
msgstr "Valeur incorrecte pour perage.Pas de changement pour la via"
#: pcbnew/move-drag_pads.cpp:251
#, c-format
msgid "Delete Pad (module %s %s) "
msgstr "Effacer Pad (module %s %s) "
#: pcbnew/editpads.cpp:77
msgid "Pad Position"
msgstr "Position Pad"
#: pcbnew/class_pcb_text.cpp:194
#: pcbnew/editpads.cpp:84
msgid "Pad Size"
msgstr "Taille Pad"
#: pcbnew/editpads.cpp:91
msgid "Delta"
msgstr "Delta"
#: pcbnew/editpads.cpp:98
msgid "Offset"
msgstr "Offset"
#: pcbnew/editpads.cpp:107
msgid "Pad Drill"
msgstr "Diam perage"
#: pcbnew/editpads.cpp:119
msgid "Pad Orient (0.1 deg)"
msgstr "Orient Pad (0.1 deg)"
#: pcbnew/editpads.cpp:389
msgid "Incorrect value for pad drill: pad drill bigger than pad size"
msgstr "Valeur incorrecte pour diametre de perage.percage plus grand que la taille du pad"
#: pcbnew/editpads.cpp:395
msgid "Incorrect value for pad offset"
msgstr "Valeur incorrecte pour offset du pad"
#: pcbnew/export_gencad.cpp:69
msgid "GenCAD file:"
msgstr "Fichier GenCAD:"
#: pcbnew/class_pcb_text.cpp:173
#: gerbview/affiche.cpp:29
msgid "COTATION"
msgstr "COTATION"
#: pcbnew/class_pcb_text.cpp:196
#: pcbnew/class_pcb_text.cpp:175
#: gerbview/affiche.cpp:32
msgid "PCB Text"
msgstr "Texte Pcb"
......@@ -1910,9 +2122,9 @@ msgid "Keep"
msgstr "Garder"
#: pcbnew/dialog_netlist.cpp:143
#: pcbnew/onrightclick.cpp:589
#: pcbnew/onrightclick.cpp:754
#: pcbnew/onrightclick.cpp:851
#: pcbnew/onrightclick.cpp:599
#: pcbnew/onrightclick.cpp:764
#: pcbnew/onrightclick.cpp:861
#: eeschema/edit_component_in_lib.cpp:239
#: eeschema/edit_component_in_lib.cpp:320
msgid "Delete"
......@@ -2043,9 +2255,31 @@ msgstr "Invisible"
msgid "Value:"
msgstr "Valeur:"
#: pcbnew/export_gencad.cpp:69
msgid "GenCAD file:"
msgstr "Fichier GenCAD:"
#: pcbnew/class_pad.cpp:801
#: pcbnew/class_pad.cpp:887
msgid "Unknown Pad shape"
msgstr "Forme pad inconnue"
#: pcbnew/class_pad.cpp:976
msgid "RefP"
msgstr "RefP"
#: pcbnew/class_pad.cpp:979
#: pcbnew/class_board_item.cpp:35
msgid "Net"
msgstr "Net"
#: pcbnew/class_pad.cpp:1093
msgid "Drill X / Y"
msgstr "Perage X/Y"
#: pcbnew/class_pad.cpp:1108
msgid "X Pos"
msgstr "X Pos"
#: pcbnew/class_pad.cpp:1112
msgid "Y pos"
msgstr "Y pos"
#: pcbnew/modedit.cpp:77
#: pcbnew/controle.cpp:172
......@@ -2086,7 +2320,7 @@ msgid "Add Drawing"
msgstr "Ajout d'lments graphiques"
#: pcbnew/modedit.cpp:424
#: pcbnew/edit.cpp:518
#: pcbnew/edit.cpp:519
#: eeschema/schedit.cpp:455
#: eeschema/libframe.cpp:579
msgid "Delete item"
......@@ -2144,8 +2378,8 @@ msgid "Delete Block (shift+ctrl + drag mouse)"
msgstr "Effacement Bloc (shift+ctrl + drag mouse)"
#: pcbnew/modedit_onclick.cpp:252
#: pcbnew/onrightclick.cpp:748
#: pcbnew/onrightclick.cpp:845
#: pcbnew/onrightclick.cpp:758
#: pcbnew/onrightclick.cpp:855
msgid "Rotate"
msgstr "Rotation"
......@@ -2170,17 +2404,17 @@ msgid "Move Pad"
msgstr "Dplace Pad"
#: pcbnew/modedit_onclick.cpp:274
#: pcbnew/onrightclick.cpp:787
#: pcbnew/onrightclick.cpp:797
msgid "Edit Pad"
msgstr "Edit Pad"
#: pcbnew/modedit_onclick.cpp:276
#: pcbnew/onrightclick.cpp:791
#: pcbnew/onrightclick.cpp:801
msgid "New Pad Settings"
msgstr "Nouvelles Caract. Pads"
#: pcbnew/modedit_onclick.cpp:278
#: pcbnew/onrightclick.cpp:793
#: pcbnew/onrightclick.cpp:803
msgid "Export Pad Settings"
msgstr "Exporte Caract. Pads"
......@@ -2189,7 +2423,7 @@ msgid "delete Pad"
msgstr "Supprimer Pad"
#: pcbnew/modedit_onclick.cpp:285
#: pcbnew/onrightclick.cpp:798
#: pcbnew/onrightclick.cpp:808
msgid "Global Pad Settings"
msgstr "Edition Globale des pads"
......@@ -2222,9 +2456,9 @@ msgid "Place edge"
msgstr "Place contour"
#: pcbnew/modedit_onclick.cpp:317
#: pcbnew/onrightclick.cpp:716
#: pcbnew/onrightclick.cpp:750
#: pcbnew/onrightclick.cpp:847
#: pcbnew/onrightclick.cpp:726
#: pcbnew/onrightclick.cpp:760
#: pcbnew/onrightclick.cpp:857
#: eeschema/onrightclick.cpp:313
msgid "Edit"
msgstr "Editer"
......@@ -2253,84 +2487,37 @@ msgstr "Effacement contour"
msgid "Set Width"
msgstr "Ajuste Epaiss"
#: pcbnew/class_pad.cpp:801
#: pcbnew/class_pad.cpp:887
msgid "Unknown Pad shape"
msgstr "Forme pad inconnue"
#: pcbnew/class_pad.cpp:976
msgid "RefP"
msgstr "RefP"
#: pcbnew/class_pad.cpp:979
#: pcbnew/class_board_item.cpp:35
msgid "Net"
msgstr "Net"
#: pcbnew/class_pad.cpp:1093
msgid "Drill X / Y"
msgstr "Perage X/Y"
#: pcbnew/class_pad.cpp:1108
msgid "X Pos"
msgstr "X Pos"
#: pcbnew/plotps.cpp:361
#: pcbnew/affiche.cpp:63
#: pcbnew/class_board.cpp:406
msgid "Vias"
msgstr "Vias"
#: pcbnew/class_pad.cpp:1112
msgid "Y pos"
msgstr "Y pos"
#: pcbnew/plotps.cpp:390
msgid "Tracks"
msgstr "Pistes"
#: pcbnew/classpcb.cpp:196
#: pcbnew/classpcb.cpp:175
msgid "Shape"
msgstr "Forme"
#: pcbnew/classpcb.cpp:199
#: pcbnew/class_board_item.cpp:107
#: pcbnew/class_track.cpp:776
#: pcbnew/dialog_pad_edit.cpp:176
#: pcbnew/dialog_pad_edit.cpp:196
msgid "Circle"
msgstr "Cercle"
#: pcbnew/classpcb.cpp:203
#: pcbnew/classpcb.cpp:182
msgid " Arc "
msgstr " Arc "
#: pcbnew/classpcb.cpp:208
#: pcbnew/class_track.cpp:774
#: pcbnew/classpcb.cpp:187
#: pcbnew/class_track.cpp:747
msgid "Segment"
msgstr "Segment"
#: pcbnew/editpads.cpp:77
msgid "Pad Position"
msgstr "Position Pad"
#: pcbnew/editpads.cpp:84
msgid "Pad Size"
msgstr "Taille Pad"
#: pcbnew/editpads.cpp:91
msgid "Delta"
msgstr "Delta"
#: pcbnew/editpads.cpp:98
msgid "Offset"
msgstr "Offset"
#: pcbnew/editpads.cpp:107
msgid "Pad Drill"
msgstr "Diam perage"
#: pcbnew/editpads.cpp:119
msgid "Pad Orient (0.1 deg)"
msgstr "Orient Pad (0.1 deg)"
#: pcbnew/editpads.cpp:389
msgid "Incorrect value for pad drill: pad drill bigger than pad size"
msgstr "Valeur incorrecte pour diametre de perage.percage plus grand que la taille du pad"
#: pcbnew/plotgerb.cpp:72
msgid "unable to create file "
msgstr "Impossible de crer fichier "
#: pcbnew/editpads.cpp:395
msgid "Incorrect value for pad offset"
msgstr "Valeur incorrecte pour offset du pad"
#: pcbnew/plotgerb.cpp:817
#, c-format
msgid "unable to reopen file <%s>"
msgstr "Ne peut pas rouvrir fichier <%s>"
#: pcbnew/onleftclick.cpp:173
msgid "Graphic not authorized on Copper layers"
......@@ -2344,56 +2531,79 @@ msgstr "Pistes sur couches cuivre seulement"
msgid "Cotation not authorized on Copper layers"
msgstr "Cotation non autorise sur Couches Cuivre"
#: pcbnew/dialog_track_options.cpp:130
#: pcbnew/dialog_track_options.cpp:134
msgid "Vias:"
msgstr "Vias:"
#: pcbnew/dialog_track_options.cpp:138
msgid "Via Size"
msgstr "Diametre Via"
#: pcbnew/dialog_track_options.cpp:136
#: pcbnew/dialog_track_options.cpp:144
msgid "Default Via Drill"
msgstr "Perage vias par dfaut"
#: pcbnew/dialog_track_options.cpp:142
#: pcbnew/dialog_track_options.cpp:150
msgid "Alternate Via Drill"
msgstr "Perage vias alternatif"
#: pcbnew/dialog_track_options.cpp:151
#: pcbnew/pcbnew.h:289
msgid "Blind Via"
msgstr "Via borgne"
#: pcbnew/dialog_track_options.cpp:152
#: pcbnew/pcbnew.h:290
msgid "Buried Via"
msgstr "Via enterre"
#: pcbnew/dialog_track_options.cpp:153
#: pcbnew/dialog_track_options.cpp:157
#: pcbnew/pcbnew.h:291
msgid "Standard Via"
msgstr "Via Standard"
msgid "Through Via"
msgstr "Via Traversante"
#: pcbnew/dialog_track_options.cpp:158
msgid "Blind or Buried Via "
msgstr "Via enterre ou Aveugle"
#: pcbnew/dialog_track_options.cpp:154
msgid "Via Type"
msgstr "Type de Via"
#: pcbnew/dialog_track_options.cpp:159
msgid "Default Via Type"
msgstr "Via par Dfaut"
#: pcbnew/dialog_track_options.cpp:163
msgid "Micro Vias:"
msgstr "Micro Vias:"
#: pcbnew/dialog_track_options.cpp:167
msgid "Micro Via Size"
msgstr "Diametre Micro Via"
#: pcbnew/dialog_track_options.cpp:173
msgid "Micro Via Drill"
msgstr "Perage Micro Via"
#: pcbnew/dialog_track_options.cpp:181
msgid "Allows Micro Vias"
msgstr "Autorise Micro Vias"
#: pcbnew/dialog_track_options.cpp:183
#: pcbnew/dialog_track_options.cpp:185
msgid ""
"Allows use of micro vias\n"
"They are very small vias only from an external copper layer to its near neightbour\n"
msgstr ""
"Autorise l'utilisation de micro vias\n"
"Ce sont de petites vias allant d'une couche externe a la plus proche couche interne uniquement\n"
#: pcbnew/dialog_track_options.cpp:191
msgid "Track Width"
msgstr "Epais. Piste"
#: pcbnew/dialog_track_options.cpp:169
#: pcbnew/dialog_track_options.cpp:197
#: pcbnew/dialog_drc.cpp:439
msgid "Clearance"
msgstr "Isolation"
#: pcbnew/dialog_track_options.cpp:175
#: pcbnew/dialog_track_options.cpp:203
msgid "Mask clearance"
msgstr "Retrait Masque"
#: pcbnew/dialog_track_options.cpp:262
#: pcbnew/dialog_track_options.cpp:303
msgid ""
"You have selected VIA Blind or VIA Buried\n"
"You have selected VIA Blind and Buried\n"
"WARNING: this feature is EXPERIMENTAL!!! Accept ?"
msgstr ""
"Vous avez slectionn VIA borgne ou VIA enterre\n"
"Vous avez slectionn VIA borgne et enterre\n"
"ATTENTION: Cette possibilit est EXPERIMENTALE!!! Accepter ?"
#: pcbnew/dialog_display_options.cpp:186
......@@ -2565,7 +2775,7 @@ msgid "Footprint name:"
msgstr "Nom Module: "
#: pcbnew/modules.cpp:281
#: pcbnew/onrightclick.cpp:722
#: pcbnew/onrightclick.cpp:732
msgid "Delete Module"
msgstr "Supprimer Module"
......@@ -3059,7 +3269,7 @@ msgid "Drag Via"
msgstr "Drag Via"
#: pcbnew/onrightclick.cpp:505
#: pcbnew/onrightclick.cpp:569
#: pcbnew/onrightclick.cpp:579
msgid "Edit Via"
msgstr "Edit Via"
......@@ -3119,330 +3329,215 @@ msgstr "Terminer Piste"
msgid "Place Via"
msgstr "Place Via"
#: pcbnew/onrightclick.cpp:567
#: pcbnew/onrightclick.cpp:568
msgid "Place Micro Via"
msgstr "Place Micro Via"
#: pcbnew/onrightclick.cpp:577
msgid "Change Width"
msgstr "Change Largeur"
#: pcbnew/onrightclick.cpp:570
#: pcbnew/onrightclick.cpp:580
msgid "Edit Segment"
msgstr "Edit Segment"
#: pcbnew/onrightclick.cpp:575
#: pcbnew/onrightclick.cpp:585
msgid "Edit Track"
msgstr "Editer Piste"
#: pcbnew/onrightclick.cpp:577
#: pcbnew/onrightclick.cpp:587
msgid "Edit Net"
msgstr "Edit Net"
#: pcbnew/onrightclick.cpp:579
#: pcbnew/onrightclick.cpp:589
msgid "Edit ALL Tracks and Vias"
msgstr "Editer TOUTES Pistes et Vias"
#: pcbnew/onrightclick.cpp:581
#: pcbnew/onrightclick.cpp:591
msgid "Edit ALL Vias (no track)"
msgstr "Editer TOUTES Vias (pas les pistes)"
#: pcbnew/onrightclick.cpp:583
#: pcbnew/onrightclick.cpp:593
msgid "Edit ALL Tracks (no via)"
msgstr "Editer TOUTES Pistes (pas les vias)"
#: pcbnew/onrightclick.cpp:591
#: pcbnew/onrightclick.cpp:601
msgid "Delete Via"
msgstr "Suppression Via"
#: pcbnew/onrightclick.cpp:591
#: pcbnew/onrightclick.cpp:601
msgid "Delete Segment"
msgstr "SupprimerSegment"
#: pcbnew/onrightclick.cpp:598
#: pcbnew/onrightclick.cpp:608
msgid "Delete Track"
msgstr "Effacer Piste"
#: pcbnew/onrightclick.cpp:602
#: pcbnew/onrightclick.cpp:612
msgid "Delete Net"
msgstr "Supprimer Net"
#: pcbnew/onrightclick.cpp:607
#: pcbnew/onrightclick.cpp:617
msgid "Set Flags"
msgstr "Ajust. Flags"
#: pcbnew/onrightclick.cpp:608
#: pcbnew/onrightclick.cpp:618
msgid "Locked: Yes"
msgstr "Verrou: Oui"
#: pcbnew/onrightclick.cpp:609
#: pcbnew/onrightclick.cpp:619
msgid "Locked: No"
msgstr "Verrou: Non"
#: pcbnew/onrightclick.cpp:619
#: pcbnew/onrightclick.cpp:629
msgid "Track Locked: Yes"
msgstr "Piste verrouille: Oui"
#: pcbnew/onrightclick.cpp:620
#: pcbnew/onrightclick.cpp:630
msgid "Track Locked: No"
msgstr "Piste verrouille: Non"
#: pcbnew/onrightclick.cpp:622
#: pcbnew/onrightclick.cpp:632
msgid "Net Locked: Yes"
msgstr "Net verrouill: Oui"
#: pcbnew/onrightclick.cpp:623
#: pcbnew/onrightclick.cpp:633
msgid "Net Locked: No"
msgstr "Net verrouill: Non"
#: pcbnew/onrightclick.cpp:638
#: pcbnew/onrightclick.cpp:648
msgid "Place Corner"
msgstr "Place Sommet"
#: pcbnew/onrightclick.cpp:648
#: pcbnew/onrightclick.cpp:654
#: pcbnew/dialog_drc.cpp:477
msgid "Zones"
msgstr "Zones"
#: pcbnew/onrightclick.cpp:659
msgid "Move Corner"
msgstr "Dplace Sommet"
#: pcbnew/onrightclick.cpp:650
#: pcbnew/onrightclick.cpp:661
msgid "Delete Corner"
msgstr "Supprimer Sommet"
#: pcbnew/onrightclick.cpp:656
#: pcbnew/onrightclick.cpp:666
msgid "Create Corner"
msgstr "Crer Sommet"
#: pcbnew/onrightclick.cpp:661
#: pcbnew/onrightclick.cpp:671
msgid "Add Similar Zone"
msgstr "Addition d'une Zone Semblable"
#: pcbnew/onrightclick.cpp:664
#: pcbnew/onrightclick.cpp:674
msgid "Add Cutout Area"
msgstr "Addition d'une Zone Interdite"
#: pcbnew/onrightclick.cpp:668
#: pcbnew/onrightclick.cpp:678
msgid "Fill Zone"
msgstr "Remplir Zone"
#: pcbnew/onrightclick.cpp:671
#: pcbnew/onrightclick.cpp:681
msgid "Edit Zone Params"
msgstr "Editer Paramtres de la Zone"
#: pcbnew/onrightclick.cpp:675
#: pcbnew/onrightclick.cpp:685
msgid "Delete Cutout"
msgstr "Supprimer Zone Interdite"
#: pcbnew/onrightclick.cpp:678
#: pcbnew/onrightclick.cpp:688
msgid "Delete Zone Outline"
msgstr "Supprimer Contour de Zone"
#: pcbnew/onrightclick.cpp:700
#: pcbnew/onrightclick.cpp:745
#: pcbnew/onrightclick.cpp:783
#: pcbnew/onrightclick.cpp:842
#: pcbnew/onrightclick.cpp:710
#: pcbnew/onrightclick.cpp:755
#: pcbnew/onrightclick.cpp:793
#: pcbnew/onrightclick.cpp:852
msgid "Move"
msgstr "Move"
#: pcbnew/onrightclick.cpp:703
#: pcbnew/onrightclick.cpp:785
#: pcbnew/onrightclick.cpp:713
#: pcbnew/onrightclick.cpp:795
msgid "Drag"
msgstr "Drag"
#: pcbnew/onrightclick.cpp:707
#: pcbnew/onrightclick.cpp:717
msgid "Rotate +"
msgstr "Rotation +"
#: pcbnew/onrightclick.cpp:711
#: pcbnew/onrightclick.cpp:721
#: eeschema/onrightclick.cpp:301
msgid "Rotate -"
msgstr "Rotation -"
#: pcbnew/onrightclick.cpp:712
#: pcbnew/onrightclick.cpp:722
msgid "Flip"
msgstr "Change ct"
#: pcbnew/onrightclick.cpp:802
#: pcbnew/onrightclick.cpp:812
msgid "delete"
msgstr "Effacer"
#: pcbnew/onrightclick.cpp:809
#: pcbnew/onrightclick.cpp:819
msgid "Autoroute Pad"
msgstr "Autoroute Pad"
#: pcbnew/onrightclick.cpp:810
#: pcbnew/onrightclick.cpp:820
msgid "Autoroute Net"
msgstr "Autoroute Net"
#: pcbnew/block.cpp:125
#: pcbnew/block.cpp:122
msgid "Include Modules"
msgstr "Inclure Modules"
#: pcbnew/block.cpp:129
#: pcbnew/block.cpp:126
msgid "Include tracks"
msgstr "Inclure Pistes"
#: pcbnew/block.cpp:133
#: pcbnew/block.cpp:130
msgid "Include zones"
msgstr "Inclure zones"
#: pcbnew/block.cpp:138
#: pcbnew/block.cpp:135
msgid "Include Text on copper layers"
msgstr "Inclure Texte sur couches cuivre"
#: pcbnew/block.cpp:142
#: pcbnew/block.cpp:139
msgid "Include drawings"
msgstr "Inclure tracs"
#: pcbnew/block.cpp:146
#: pcbnew/block.cpp:143
msgid "Include egde layer"
msgstr "Inclure couche Edge"
#: pcbnew/block.cpp:453
#: pcbnew/block.cpp:450
msgid "Delete Block"
msgstr "Effacer Bloc"
#: pcbnew/block.cpp:464
msgid "Delete Footprints"
msgstr "Suppression modules"
#: pcbnew/block.cpp:484
msgid "Delete tracks"
msgstr "Suppression Pistes"
#: pcbnew/block.cpp:505
msgid "Delete draw layers"
msgstr "Suppression couches sessin"
#: pcbnew/block.cpp:570
#: pcbnew/block.cpp:559
msgid "Delete zones"
msgstr "SuppressionZones"
#: pcbnew/block.cpp:605
msgid "Rotate Block"
msgstr "Rotation Bloc"
#: pcbnew/block.cpp:620
msgid "Footprint rotation"
msgstr "Rotation modules"
#: pcbnew/block.cpp:654
msgid "Track rotation"
msgstr "Rotation pistes"
#: pcbnew/block.cpp:675
msgid "Zone rotation"
msgstr "Rotation Zones"
#: pcbnew/block.cpp:696
msgid "Draw layers rotation"
msgstr "Rotation couches dessin"
#: pcbnew/block.cpp:815
msgid "Block mirroring"
msgstr "Bloc Miroir"
#: pcbnew/block.cpp:830
msgid "Footprint mirroring"
msgstr "Miroir modules"
#: pcbnew/block.cpp:863
msgid "Track mirroring"
msgstr "Miroir Pistes"
#: pcbnew/block.cpp:889
msgid "Zone mirroring"
msgstr "Miroir zone"
#: pcbnew/block.cpp:911
msgid "Draw layers mirroring"
msgstr "Draw layers mirroring"
#: pcbnew/block.cpp:1038
msgid "Move Block"
msgstr "Dplacer Bloc"
#: pcbnew/block.cpp:1050
msgid "Move footprints"
msgstr "Dplacement modules"
#: pcbnew/block.cpp:1083
msgid "Move tracks"
msgstr "Dplacement pistes"
#: pcbnew/block.cpp:1104
msgid "Move zones"
msgstr "Dplacement zones"
#: pcbnew/block.cpp:1125
msgid "Move draw layers"
msgstr "Dplacement couches dessin"
#: pcbnew/block.cpp:1230
msgid "Copy Block"
msgstr "Copie Bloc"
#: pcbnew/block.cpp:1242
msgid "Module copy"
msgstr "Copie Modules"
#: pcbnew/block.cpp:1281
msgid "Track copy"
msgstr "Copie Piste"
#: pcbnew/block.cpp:1305
msgid "Zone copy"
msgstr "Copie Zone"
#: pcbnew/block.cpp:1330
msgid "Draw layers copy"
msgstr "Cpoie des couches dessin"
#: pcbnew/globaleditpad.cpp:76
msgid "Pads Global Edit"
msgstr "Pads: Edition globale"
#: pcbnew/globaleditpad.cpp:94
msgid "Pad Settings..."
msgstr "Caract pad ..."
#: pcbnew/globaleditpad.cpp:99
msgid "Change Module"
msgstr "Change module"
#: pcbnew/globaleditpad.cpp:104
msgid "Change Id Modules"
msgstr "Change Modules ident."
#: pcbnew/globaleditpad.cpp:114
msgid "Pad Filter :"
msgstr "Filtre Pad :"
#: pcbnew/globaleditpad.cpp:118
msgid "Shape Filter"
msgstr "Filtre sur forme"
#: pcbnew/globaleditpad.cpp:122
msgid "Layer Filter"
msgstr "Filtre sur couche"
#: pcbnew/globaleditpad.cpp:126
msgid "Orient Filter"
msgstr "Filtre Orientation"
#: pcbnew/globaleditpad.cpp:132
msgid "Change Items :"
msgstr "Elments changer:"
#: pcbnew/globaleditpad.cpp:136
msgid "Change Size"
msgstr "Change Taille"
#: pcbnew/block.cpp:601
msgid "Rotate Block"
msgstr "Rotation Bloc"
#: pcbnew/globaleditpad.cpp:140
msgid "Change Shape"
msgstr "Change Forme"
#: pcbnew/block.cpp:658
msgid "Zone rotation"
msgstr "Rotation Zones"
#: pcbnew/globaleditpad.cpp:144
msgid "Change Drill"
msgstr "Change Perage"
#: pcbnew/block.cpp:766
msgid "Block mirroring"
msgstr "Bloc Miroir"
#: pcbnew/globaleditpad.cpp:148
msgid "Change Orient"
msgstr "Change Orientation"
#: pcbnew/block.cpp:954
msgid "Move Block"
msgstr "Dplacer Bloc"
#: pcbnew/block.cpp:1109
msgid "Copy Block"
msgstr "Copie Bloc"
#: pcbnew/edit.cpp:171
#: pcbnew/editmod.cpp:45
......@@ -3489,15 +3584,21 @@ msgstr "Surbrillance des
msgid "Local Ratsnest"
msgstr "Monter le chevelu gnral"
#: pcbnew/plotps.cpp:361
#: pcbnew/affiche.cpp:63
#: pcbnew/class_board.cpp:400
msgid "Vias"
msgstr "Vias"
#: pcbnew/router.cpp:60
msgid "Unable to create temporary file "
msgstr "Impossible de crer le fichier temporaire "
#: pcbnew/plotps.cpp:390
msgid "Tracks"
msgstr "Pistes"
#: pcbnew/router.cpp:65
msgid "Create temporary file "
msgstr "Creation fichier temporaire "
#: pcbnew/router.cpp:566
msgid "Unable to find data file "
msgstr "Impossible de trouver le fichier de donnes "
#: pcbnew/router.cpp:572
msgid "Reading autorouter data file "
msgstr "Lecture fichier donnes de l'autorouteur"
#: pcbnew/netlist.cpp:96
#, c-format
......@@ -3615,11 +3716,11 @@ msgstr "Pcb Graphic"
#: pcbnew/class_board_item.cpp:59
#: pcbnew/class_board_item.cpp:68
#: pcbnew/class_board_item.cpp:145
#: pcbnew/class_board_item.cpp:169
#: pcbnew/class_board_item.cpp:185
#: pcbnew/class_board_item.cpp:212
#: pcbnew/class_board_item.cpp:229
#: pcbnew/class_board_item.cpp:235
#: pcbnew/class_board_item.cpp:177
#: pcbnew/class_board_item.cpp:193
#: pcbnew/class_board_item.cpp:220
#: pcbnew/class_board_item.cpp:237
#: pcbnew/class_board_item.cpp:243
msgid " on "
msgstr " sur "
......@@ -3637,23 +3738,18 @@ msgstr " de "
msgid "Graphic"
msgstr "Graphique"
#: pcbnew/class_board_item.cpp:101
#: pcbnew/dialog_pad_edit.cpp:198
msgid "Rect"
msgstr "Rect"
#: pcbnew/class_board_item.cpp:104
msgid "Arc"
msgstr "Arc"
#: pcbnew/class_board_item.cpp:139
#: pcbnew/pcbframe.cpp:447
#: pcbnew/class_track.cpp:739
#: pcbnew/class_track.cpp:712
msgid "Track"
msgstr "Piste"
#: pcbnew/class_board_item.cpp:146
#: pcbnew/dialog_zones_by_polygon.cpp:220
#: pcbnew/dialog_zones_by_polygon.cpp:228
msgid "Net:"
msgstr "Net:"
......@@ -3662,51 +3758,57 @@ msgid "Length:"
msgstr "Long.:"
#: pcbnew/class_board_item.cpp:152
#: pcbnew/class_zone.cpp:416
#: pcbnew/class_zone.cpp:448
msgid "Zone Outline"
msgstr "Contour de Zone"
#: pcbnew/class_board_item.cpp:156
#: pcbnew/class_zone.cpp:419
#: pcbnew/class_zone.cpp:451
msgid "(Cutout)"
msgstr "(Cutout)"
#: pcbnew/class_board_item.cpp:173
#: pcbnew/class_track.cpp:743
#: pcbnew/class_board_item.cpp:175
#: pcbnew/class_zone.cpp:471
msgid "Not Found"
msgstr " Non Trouv"
#: pcbnew/class_board_item.cpp:181
#: pcbnew/class_track.cpp:716
msgid "Zone"
msgstr "Zone"
#: pcbnew/class_board_item.cpp:191
#: pcbnew/class_board_item.cpp:199
#: pcbnew/pcbframe.cpp:479
msgid "Via"
msgstr "Via"
#: pcbnew/class_board_item.cpp:195
msgid "Blind"
msgstr "Enterre"
#: pcbnew/class_board_item.cpp:203
msgid "Blind/Buried"
msgstr "Borgne/Aveugle"
#: pcbnew/class_board_item.cpp:197
msgid "Buried"
msgstr "Borgne"
#: pcbnew/class_board_item.cpp:205
#: pcbnew/pcbnew.h:289
msgid "Micro Via"
msgstr "Micro Via"
#: pcbnew/class_board_item.cpp:219
#: pcbnew/class_board_item.cpp:227
#: pcbnew/class_marker.cpp:112
msgid "Marker"
msgstr "Marqueur"
#: pcbnew/class_board_item.cpp:224
#: pcbnew/class_board_item.cpp:232
msgid "Dimension"
msgstr "Dimension"
#: pcbnew/class_board_item.cpp:229
#: pcbnew/class_board_item.cpp:237
msgid "Target"
msgstr "Mire"
#: pcbnew/class_board_item.cpp:230
#: pcbnew/class_board_item.cpp:238
msgid "size"
msgstr "dimension"
#: pcbnew/class_board_item.cpp:235
#: pcbnew/class_board_item.cpp:243
msgid "Edge Zone"
msgstr "Contour Zone"
......@@ -3722,15 +3824,6 @@ msgstr "Type Err"
msgid "Pcbnew is already running, Continue?"
msgstr "Pcbnew est est cours d'excution. Continuer ?"
#: pcbnew/plotgerb.cpp:72
msgid "unable to create file "
msgstr "Impossible de crer fichier "
#: pcbnew/plotgerb.cpp:817
#, c-format
msgid "unable to reopen file <%s>"
msgstr "Ne peut pas rouvrir fichier <%s>"
#: pcbnew/pcbframe.cpp:266
msgid "Board modified, Save before exit ?"
msgstr "Circuit Imprim modifie, Sauver avant de quitter ?"
......@@ -3832,27 +3925,11 @@ msgid "Dimension properties"
msgstr "Proprits des Cotes"
#: pcbnew/cotation.cpp:133
#: pcbnew/dialog_zones_by_polygon.cpp:227
#: pcbnew/dialog_zones_by_polygon.cpp:235
#: gerbview/affiche.cpp:37
msgid "Layer:"
msgstr "Couche:"
#: pcbnew/router.cpp:60
msgid "Unable to create temporary file "
msgstr "Impossible de crer le fichier temporaire "
#: pcbnew/router.cpp:65
msgid "Create temporary file "
msgstr "Creation fichier temporaire "
#: pcbnew/router.cpp:566
msgid "Unable to find data file "
msgstr "Impossible de trouver le fichier de donnes "
#: pcbnew/router.cpp:572
msgid "Reading autorouter data file "
msgstr "Lecture fichier donnes de l'autorouteur"
#: pcbnew/editrack-part2.cpp:32
#, c-format
msgid "Track Width: %s Vias Size : %s"
......@@ -3876,33 +3953,28 @@ msgstr "Net Code"
#: pcbnew/affiche.cpp:52
#: pcbnew/class_module.cpp:1228
#: pcbnew/class_board.cpp:390
#: pcbnew/class_board.cpp:396
msgid "Pads"
msgstr "Pads"
#: pcbnew/class_track.cpp:765
#: pcbnew/class_track.cpp:738
#: pcbnew/zones.cpp:873
#: pcbnew/zones_by_polygon.cpp:831
#: pcbnew/class_zone.cpp:432
#: pcbnew/zones_by_polygon.cpp:864
#: pcbnew/class_zone.cpp:474
msgid "NetName"
msgstr "NetName"
#: pcbnew/class_track.cpp:770
#: pcbnew/class_zone.cpp:437
#: pcbnew/class_track.cpp:743
#: pcbnew/class_zone.cpp:479
msgid "NetCode"
msgstr "NetCode"
#: pcbnew/class_track.cpp:778
#: pcbnew/dialog_pad_edit.cpp:205
msgid "Standard"
msgstr "Standard"
#: pcbnew/class_track.cpp:790
#: pcbnew/class_track.cpp:763
#: pcbnew/class_module.cpp:1236
msgid "Stat"
msgstr "Stat"
#: pcbnew/class_track.cpp:814
#: pcbnew/class_track.cpp:787
msgid "Diam"
msgstr "Diam"
......@@ -4068,134 +4140,6 @@ msgstr "Pin %s (module %s) non trouv
msgid "Locate Pin %s (module %s)"
msgstr "Pin localise %s (module %s)"
#: pcbnew/dialog_pad_edit.cpp:157
msgid "Pad Num :"
msgstr "Num Pad :"
#: pcbnew/dialog_pad_edit.cpp:163
msgid "Pad Net Name :"
msgstr "NetName Pad:"
#: pcbnew/dialog_pad_edit.cpp:177
#: pcbnew/dialog_pad_edit.cpp:197
msgid "Oval"
msgstr "Ovale"
#: pcbnew/dialog_pad_edit.cpp:178
msgid "Drill Shape:"
msgstr "Forme du perage:"
#: pcbnew/dialog_pad_edit.cpp:186
#: pcbnew/clean.cpp:462
#: eeschema/dialog_erc.cpp:192
#: eeschema/dialog_erc.cpp:196
#: eeschema/dialog_edit_component_in_schematic.cpp:171
msgid "0"
msgstr "0"
#: pcbnew/dialog_pad_edit.cpp:187
msgid "90"
msgstr "90"
#: pcbnew/dialog_pad_edit.cpp:188
#: eeschema/dialog_edit_component_in_schematic.cpp:174
msgid "-90"
msgstr "-90"
#: pcbnew/dialog_pad_edit.cpp:189
#: eeschema/dialog_edit_component_in_schematic.cpp:173
msgid "180"
msgstr "180"
#: pcbnew/dialog_pad_edit.cpp:191
msgid "Pad Orient:"
msgstr "Orient pad:"
#: pcbnew/dialog_pad_edit.cpp:199
msgid "Trapezoidal"
msgstr "Trapezoidal"
#: pcbnew/dialog_pad_edit.cpp:200
msgid "Pad Shape:"
msgstr "Forme Pad:"
#: pcbnew/dialog_pad_edit.cpp:206
msgid "SMD"
msgstr "CMS"
#: pcbnew/dialog_pad_edit.cpp:207
#: eeschema/netlist.cpp:210
msgid "Conn"
msgstr "Conn"
#: pcbnew/dialog_pad_edit.cpp:208
msgid "Hole"
msgstr "Hole"
#: pcbnew/dialog_pad_edit.cpp:209
msgid "Mechanical"
msgstr "Mechanical"
#: pcbnew/dialog_pad_edit.cpp:210
msgid "Pad Type:"
msgstr "Type Pad:"
#: pcbnew/dialog_pad_edit.cpp:225
msgid "Layers:"
msgstr "Couches:"
#: pcbnew/dialog_pad_edit.cpp:229
msgid "Copper layer"
msgstr "Couches Cuivre"
#: pcbnew/dialog_pad_edit.cpp:233
msgid "Comp layer"
msgstr "Couche Cmp"
#: pcbnew/dialog_pad_edit.cpp:239
msgid "Adhesive Cmp"
msgstr "Adhesive Cmp"
#: pcbnew/dialog_pad_edit.cpp:243
msgid "Adhesive Copper"
msgstr "Adhesive Cu"
#: pcbnew/dialog_pad_edit.cpp:247
msgid "Solder paste Cmp"
msgstr "Pate souder Cmp"
#: pcbnew/dialog_pad_edit.cpp:251
msgid "Solder paste Copper"
msgstr "Pate souder cuivre"
#: pcbnew/dialog_pad_edit.cpp:255
msgid "Silkscreen Cmp"
msgstr "Srigr Cmp"
#: pcbnew/dialog_pad_edit.cpp:259
msgid "Silkscreen Copper"
msgstr "Srigr Cu "
#: pcbnew/dialog_pad_edit.cpp:263
msgid "Solder mask Cmp"
msgstr "Masque soudure Cmp"
#: pcbnew/dialog_pad_edit.cpp:267
msgid "Solder mask Copper"
msgstr "Masque soudure cuivre"
#: pcbnew/dialog_pad_edit.cpp:271
msgid "E.C.O.1 layer"
msgstr "couche E.C.O.1"
#: pcbnew/dialog_pad_edit.cpp:275
msgid "E.C.O.2 layer"
msgstr "couche E.C.O.2"
#: pcbnew/dialog_pad_edit.cpp:279
msgid "Draft layer"
msgstr "Couche dessin"
#: pcbnew/class_edge_mod.cpp:283
msgid "Seg"
msgstr "Seg"
......@@ -4303,58 +4247,6 @@ msgstr "Change module %s (%s) "
msgid "Cmp files:"
msgstr "Fichiers Cmp: "
#: pcbnew/clean.cpp:177
msgid "Delete unconnected tracks:"
msgstr "Suppression Pistes non connectes"
#: pcbnew/clean.cpp:196
msgid "ViaDef"
msgstr "ViaDef"
#: pcbnew/clean.cpp:368
msgid "Clean Null Segments"
msgstr "Nettoyage segments nulls"
#: pcbnew/clean.cpp:460
msgid "Merging Segments:"
msgstr "Associe Segment"
#: pcbnew/clean.cpp:462
msgid "Merge"
msgstr "Merge"
#: pcbnew/clean.cpp:478
msgid "Merge: "
msgstr "Merge: "
#: pcbnew/clean.cpp:708
msgid "DRC Control:"
msgstr "Controle DRC:"
#: pcbnew/clean.cpp:713
msgid "NetCtr"
msgstr "NetCtr"
#: pcbnew/clean.cpp:1059
msgid "Centre"
msgstr "Centre"
#: pcbnew/clean.cpp:1059
msgid "0 "
msgstr "0"
#: pcbnew/clean.cpp:1070
msgid "Pads: "
msgstr "Pastilles: "
#: pcbnew/clean.cpp:1074
msgid "Max"
msgstr "Max"
#: pcbnew/clean.cpp:1077
msgid "Segm"
msgstr "Segm"
#: pcbnew/zones.cpp:155
#: pcbnew/zones.cpp:156
#: pcbnew/zones.cpp:157
......@@ -4419,12 +4311,12 @@ msgid "Update Options"
msgstr "Maj Options"
#: pcbnew/zones.cpp:235
#: pcbnew/dialog_zones_by_polygon.cpp:239
#: pcbnew/dialog_zones_by_polygon.cpp:247
msgid "Zone clearance value:"
msgstr "Valeur isolation zone:"
#: pcbnew/zones.cpp:238
#: pcbnew/dialog_zones_by_polygon.cpp:242
#: pcbnew/dialog_zones_by_polygon.cpp:250
msgid "Grid :"
msgstr "Grille:"
......@@ -4441,30 +4333,39 @@ msgid "Delete Current Zone Edges"
msgstr "Effacer contour zone courant"
#: pcbnew/zones.cpp:871
#: pcbnew/zones_by_polygon.cpp:829
#: pcbnew/zones_by_polygon.cpp:862
msgid "No Net"
msgstr "No Net"
#: pcbnew/specctra.cpp:1015
#: pcbnew/specctra.cpp:1022
msgid "Expecting"
msgstr "Attendu"
#: pcbnew/dsn.cpp:469
msgid "Line length exceeded"
msgstr "Longueur de ligne dpasse"
#: pcbnew/dsn.cpp:579
msgid "in file"
msgstr "dans le fichier"
#: pcbnew/dsn.cpp:580
msgid "on line"
msgstr "en ligne"
#: pcbnew/specctra.cpp:1031
#: pcbnew/specctra.cpp:1038
msgid "Unexpected"
msgstr "Inattendu"
#: pcbnew/dsn.cpp:581
msgid "at offset"
msgstr "a l'offset"
#: pcbnew/specctra.cpp:1059
#: pcbnew/specctra.cpp:1817
#, c-format
msgid "Unable to open file \"%s\""
msgstr "Ne peut pas ouvrirle fichier \"%s\""
#: pcbnew/dsn.cpp:629
msgid "String delimiter must be a single character of ', \", or $"
msgstr "Le caractre de dlimitation de ligne doit tre un seul caractre ', \", or $"
#: pcbnew/specctra.cpp:1792
#, c-format
msgid "System file error writing to file \"%s\""
msgstr "Erreur systme sur criture fichier \"%s\""
#: pcbnew/dsn.cpp:708
msgid "Un-terminated delimited string"
msgstr "Ligne dlimite non termine"
#: pcbnew/zones_by_polygon.cpp:324
#: pcbnew/zones_by_polygon.cpp:378
#: pcbnew/zones_by_polygon.cpp:667
msgid "Area: DRC outline error"
msgstr "Zone; Erreur DRC sur contour"
#: pcbnew/move_or_drag_track.cpp:714
msgid "Unable to drag this segment: too many segments connected"
......@@ -4502,38 +4403,22 @@ msgstr "Avanc
msgid "Net sorting:"
msgstr "Tri des Equipotentielles:"
#: pcbnew/dialog_zones_by_polygon.cpp:462
#: pcbnew/dialog_zones_by_polygon.cpp:217
msgid "Filter"
msgstr "Filtre"
#: pcbnew/dialog_zones_by_polygon.cpp:222
msgid "Do not list net names which match with this text, in advanced mode"
msgstr ""
#: pcbnew/dialog_zones_by_polygon.cpp:501
msgid "Error : you must choose a layer"
msgstr "Erreur. Vous devez choisir une couche"
#: pcbnew/dialog_zones_by_polygon.cpp:471
#: pcbnew/dialog_zones_by_polygon.cpp:510
msgid "Error : you must choose a net name"
msgstr "Erreur. Vous devez choisir une quipotentielle"
#: pcbnew/dsn.cpp:467
msgid "Line length exceeded"
msgstr "Longueur de ligne dpasse"
#: pcbnew/dsn.cpp:577
msgid "in file"
msgstr "dans le fichier"
#: pcbnew/dsn.cpp:578
msgid "on line"
msgstr "en ligne"
#: pcbnew/dsn.cpp:579
msgid "at offset"
msgstr "a l'offset"
#: pcbnew/dsn.cpp:618
msgid "String delimiter must be a single character of ', \", or $"
msgstr "Le caractre de dlimitation de ligne doit tre un seul caractre ', \", or $"
#: pcbnew/dsn.cpp:697
msgid "Un-terminated delimited string"
msgstr "Ligne dlimite non termine"
#: pcbnew/initpcb.cpp:125
msgid "Current Board will be lost ?"
msgstr "Le C.I. courant sera perdu ?"
......@@ -4564,6 +4449,103 @@ msgstr "Effacement des Modules?"
msgid "Delete Pcb Texts"
msgstr "Effacer Textes Pcb"
#: pcbnew/sel_layer.cpp:92
msgid "Select Layer:"
msgstr "Selection couche:"
#: pcbnew/sel_layer.cpp:137
msgid "(Deselect)"
msgstr "(Deselection)"
#: pcbnew/sel_layer.cpp:238
msgid "Less than two copper layers are being used."
msgstr "Il y a moins de 2 couches cuivre utilises."
#: pcbnew/sel_layer.cpp:239
msgid "Hence Layer Pairs cannot be specified."
msgstr "Donc les paires de couche ne peuvent pas tre spcifies"
#: pcbnew/sel_layer.cpp:263
msgid "Select Layer Pair:"
msgstr "Selection paire de couches"
#: pcbnew/sel_layer.cpp:294
msgid "Top Layer"
msgstr "Couche Sup."
#: pcbnew/sel_layer.cpp:299
msgid "Bottom Layer"
msgstr "Couche Inf."
#: pcbnew/sel_layer.cpp:358
msgid "The Top Layer and Bottom Layer must differ"
msgstr "Les couches dessus et dessous doivent diffrer"
#: pcbnew/move-drag_pads.cpp:251
#, c-format
msgid "Delete Pad (module %s %s) "
msgstr "Effacer Pad (module %s %s) "
#: pcbnew/globaleditpad.cpp:76
msgid "Pads Global Edit"
msgstr "Pads: Edition globale"
#: pcbnew/globaleditpad.cpp:94
msgid "Pad Settings..."
msgstr "Caract pad ..."
#: pcbnew/globaleditpad.cpp:99
msgid "Change Module"
msgstr "Change module"
#: pcbnew/globaleditpad.cpp:104
msgid "Change Id Modules"
msgstr "Change Modules ident."
#: pcbnew/globaleditpad.cpp:114
msgid "Pad Filter :"
msgstr "Filtre Pad :"
#: pcbnew/globaleditpad.cpp:118
msgid "Shape Filter"
msgstr "Filtre sur forme"
#: pcbnew/globaleditpad.cpp:122
msgid "Layer Filter"
msgstr "Filtre sur couche"
#: pcbnew/globaleditpad.cpp:126
msgid "Orient Filter"
msgstr "Filtre Orientation"
#: pcbnew/globaleditpad.cpp:132
msgid "Change Items :"
msgstr "Elments changer:"
#: pcbnew/globaleditpad.cpp:136
msgid "Change Size"
msgstr "Change Taille"
#: pcbnew/globaleditpad.cpp:140
msgid "Change Shape"
msgstr "Change Forme"
#: pcbnew/globaleditpad.cpp:144
msgid "Change Drill"
msgstr "Change Perage"
#: pcbnew/globaleditpad.cpp:148
msgid "Change Orient"
msgstr "Change Orientation"
#: pcbnew/zone_filling_algorithm.cpp:155
msgid "No pads or starting point found to fill this zone outline"
msgstr "Pas de pads ou de points de dpart pour remplir ce contour de zone"
#: pcbnew/zone_filling_algorithm.cpp:193
msgid "Ok"
msgstr "Ok"
#: pcbnew/find.cpp:114
msgid "Marker found"
msgstr "Marqueur trouv"
......@@ -4603,115 +4585,27 @@ msgstr "Chercher Marqueur"
msgid "Find Next Marker"
msgstr "Marqueur Suivant"
#: pcbnew/class_board.cpp:403
#: pcbnew/class_board.cpp:409
msgid "Nodes"
msgstr "Nodes"
#: pcbnew/class_board.cpp:406
#: pcbnew/class_board.cpp:412
msgid "Links"
msgstr "Liens"
#: pcbnew/class_board.cpp:409
#: pcbnew/class_board.cpp:415
msgid "Nets"
msgstr "Nets"
#: pcbnew/class_board.cpp:412
#: pcbnew/class_board.cpp:418
msgid "Connect"
msgstr "Connect"
#: pcbnew/class_board.cpp:415
#: pcbnew/class_board.cpp:421
#: eeschema/eelayer.h:116
msgid "NoConn"
msgstr "Non Conn"
#: pcbnew/drc.cpp:1324
msgid "Tst Pad to Pad\n"
msgstr "Tst Pad to Pad\n"
#: pcbnew/drc.cpp:1370
#: pcbnew/drc.cpp:1444
msgid "SegmNb"
msgstr "SegmNb"
#: pcbnew/drc.cpp:1371
msgid "Track Err"
msgstr "Err Pistes"
#: pcbnew/drc.cpp:1375
msgid "Tst Tracks\n"
msgstr "Tst Pistes\n"
#: pcbnew/drc.cpp:1406
#: pcbnew/drc.cpp:1484
#: eeschema/eelayer.h:104
msgid "Netname"
msgstr "NetName"
#: pcbnew/drc.cpp:1445
msgid "Zone Err"
msgstr "Err. Zone"
#: pcbnew/drc.cpp:1448
msgid "Tst Zones\n"
msgstr "Test Zones\n"
#: pcbnew/drc.cpp:1571
msgid "Look for active routes\n"
msgstr "Recherche des chevelus actifs\n"
#: pcbnew/drc.cpp:1594
#, c-format
msgid "%d > Pad %s (%s) @ %.4f,%.4f and "
msgstr "%d > Pad %s (%s) @ %.4f,%.4f et "
#: pcbnew/drc.cpp:1608
#, c-format
msgid "Pad %s (%s) @ %.4f,%.4f\n"
msgstr "Pad %s (%s) @ %.4f,%.4f\n"
#: pcbnew/drc.cpp:1618
#, c-format
msgid "Active routes: %d\n"
msgstr "Active routes: %d\n"
#: pcbnew/drc.cpp:1620
msgid "OK! (No active routes)\n"
msgstr "OK! (Pas de chevelu actif)\n"
#: pcbnew/drc.cpp:1679
#, c-format
msgid "** End Drc: %d errors **\n"
msgstr "** FinDrc: %d erreurs **\n"
#: pcbnew/drc.cpp:1681
msgid "** End Drc: No Error **\n"
msgstr "** Fin Drc: Aucune Erreur **\n"
#: pcbnew/drc.cpp:1690
#, c-format
msgid "Report file <%s> created\n"
msgstr "Fichier rapport <%s> cr\n"
#: pcbnew/drc.cpp:2588
#, c-format
msgid "%d Drc Err %d %s (net %s) and PAD %s (%s) net %s @ %d,%d\n"
msgstr "%d Err Drc %d %s (net %s) et PAD %s (%s) net %s @ %d,%d\n"
#: pcbnew/drc.cpp:2605
#, c-format
msgid "%d Err type %d: %s (net %s) and VIA (net %s) @ %d,%d\n"
msgstr "%d Err type %d: %s (net %s) et VIA (net %s) @ %d,%d\n"
#: pcbnew/drc.cpp:2621
#, c-format
msgid "%d Err type %d: %s (net %s) and track (net %s) @ %d,%d\n"
msgstr "%d Err type %d: %s (net %s) et piste (net %s) @ %d,%d\n"
#: pcbnew/drc.cpp:2681
#, c-format
msgid "%d Drc Err: PAD %s (%s) net %s @ %d,%d and PAD %s (%s) net %s @ %d,%d\n"
msgstr "%d Err Drc: PAD %s (%s) net %s @ %d,%d et PAD %s (%s) net %s @ %d,%d\n"
#: pcbnew/basepcbframe.cpp:159
msgid "3D Frame already opened"
msgstr "Fenetre 3D dj ouverte"
......@@ -4765,10 +4659,6 @@ msgstr "Pad
msgid "Include tests for clearances between pad to pads"
msgstr "Inclure test de l'isolation entre pads"
#: pcbnew/dialog_drc.cpp:477
msgid "Zones"
msgstr "Zones"
#: pcbnew/dialog_drc.cpp:480
msgid "Include zones in clearance or unconnected tests"
msgstr "Inclure zones dans les test d'isolation en test tests de nonconnexion"
......@@ -4849,11 +4739,11 @@ msgstr "Fichier rapport termin
msgid "DRC Report file"
msgstr "Fichier rapport de contrle DRC:"
#: pcbnew/class_zone.cpp:445
#: pcbnew/class_zone.cpp:487
msgid "Corners"
msgstr "Sommets"
#: pcbnew/class_zone.cpp:449
#: pcbnew/class_zone.cpp:491
msgid "Hatch lines"
msgstr "Lignes de Hachure"
......@@ -4897,12 +4787,20 @@ msgstr "Pad pr
msgid "Via hole > diameter"
msgstr "Perage via > diamtre"
#: pcbnew/hotkeys.cpp:443
#: pcbnew/class_drc_item.cpp:69
msgid "Copper area inside copper area"
msgstr "Zone de cuivre l'intrieur d'une zone de cuivre"
#: pcbnew/class_drc_item.cpp:71
msgid "Copper areas intersect or too close"
msgstr "Les zones de cuivre se coupent ou sont trop proches"
#: pcbnew/hotkeys.cpp:467
#, c-format
msgid "Footprint %s found, but locked"
msgstr "Module %s trouv, mais verrouill"
#: pcbnew/hotkeys.cpp:608
#: pcbnew/hotkeys.cpp:632
msgid "Delete module?"
msgstr "Effacer Module?"
......@@ -5195,7 +5093,7 @@ msgstr "\" de la librairie \""
#: eeschema/libedit.cpp:373
msgid "Clear old component from screen (changes will be lost)?"
msgstr ""
msgstr "Supprimer l'ancien composant de l'cran (les changements seront perdus)?"
#: eeschema/libedit.cpp:391
msgid "\" exists in library \""
......@@ -7113,38 +7011,6 @@ msgstr "Erreur. Vous devez entre une ligne de commande"
msgid "Error. You must provide a Title"
msgstr "Erreur. Vous devez entre un titre"
#: eeschema/netlist.cpp:179
msgid "No component"
msgstr "Pas de composants"
#: eeschema/netlist.cpp:200
#: eeschema/netlist.cpp:305
#: eeschema/netlist.cpp:343
#: eeschema/netlist.cpp:364
#: eeschema/netlist.cpp:379
msgid "Done"
msgstr "Fini"
#: eeschema/netlist.cpp:203
msgid "NbItems"
msgstr "NbItems"
#: eeschema/netlist.cpp:310
msgid "Labels"
msgstr "Labels"
#: eeschema/netlist.cpp:346
msgid "Hierar."
msgstr "Hirar."
#: eeschema/netlist.cpp:367
msgid "Sorting"
msgstr "Tri"
#: eeschema/netlist.cpp:808
msgid "Bad Bus Label: "
msgstr "Mauvais label de Bus: "
#: eeschema/edit_component_in_lib.cpp:168
#: eeschema/dialog_edit_component_in_lib.h:43
msgid "Lib Component Properties"
......@@ -7806,6 +7672,11 @@ msgstr "Tout"
msgid "default"
msgstr "Dfaut"
#: eeschema/symbdraw.cpp:795
#, c-format
msgid "Arc %.1f deg"
msgstr "Arc %.1f deg"
#: eeschema/delsheet.cpp:42
#, c-format
msgid "Sheet %s (file %s) modified. Save it?"
......@@ -7867,11 +7738,6 @@ msgstr "Noir"
msgid "Background Color:"
msgstr "Couleur du Fond:"
#: eeschema/symbdraw.cpp:795
#, c-format
msgid "Arc %.1f deg"
msgstr "Arc %.1f deg"
#: eeschema/pinedit-dialog.cpp:233
msgid "Pin Name :"
msgstr "Nom de la pin :"
......@@ -8044,21 +7910,53 @@ msgstr "Change taille Nom pin s
msgid "Pin Name Size to others"
msgstr "Change taille Nom pin autres pins"
#: eeschema/libedit_onrightclick.cpp:226
msgid "Pin Num Size to selected pin"
msgstr "Change taille Num pins slectionnes"
#: eeschema/libedit_onrightclick.cpp:226
msgid "Pin Num Size to selected pin"
msgstr "Change taille Num pins slectionnes"
#: eeschema/libedit_onrightclick.cpp:226
msgid "Pin Num Size to others"
msgstr "Change taille Num pin autres pins"
#: eeschema/libedit_onrightclick.cpp:249
msgid "Select items"
msgstr "Slection des lments"
#: eeschema/libedit_onrightclick.cpp:252
msgid "Mirror Block (ctrl + drag mouse)"
msgstr "Bloc Miroir (ctrl + drag mouse)"
#: eeschema/netlist.cpp:179
msgid "No component"
msgstr "Pas de composants"
#: eeschema/netlist.cpp:200
#: eeschema/netlist.cpp:305
#: eeschema/netlist.cpp:343
#: eeschema/netlist.cpp:364
#: eeschema/netlist.cpp:379
msgid "Done"
msgstr "Fini"
#: eeschema/netlist.cpp:203
msgid "NbItems"
msgstr "NbItems"
#: eeschema/netlist.cpp:310
msgid "Labels"
msgstr "Labels"
#: eeschema/libedit_onrightclick.cpp:226
msgid "Pin Num Size to others"
msgstr "Change taille Num pin autres pins"
#: eeschema/netlist.cpp:346
msgid "Hierar."
msgstr "Hirar."
#: eeschema/libedit_onrightclick.cpp:249
msgid "Select items"
msgstr "Slection des lments"
#: eeschema/netlist.cpp:367
msgid "Sorting"
msgstr "Tri"
#: eeschema/libedit_onrightclick.cpp:252
msgid "Mirror Block (ctrl + drag mouse)"
msgstr "Bloc Miroir (ctrl + drag mouse)"
#: eeschema/netlist.cpp:808
msgid "Bad Bus Label: "
msgstr "Mauvais label de Bus: "
#: eeschema/eelibs_read_libraryfiles.cpp:115
msgid "Start loading schematic libs"
......@@ -8290,16 +8188,6 @@ msgstr "Format Netliste: ViewLogic net&pkg"
msgid "Component [%s] not found in .pkg file"
msgstr "Composant [%s] non trouv en fichier .pkg"
#: cvpcb/listlib.cpp:69
#, c-format
msgid "Library file <%s> not found"
msgstr "Librairie %s non trouve"
#: cvpcb/listlib.cpp:79
#, c-format
msgid "Library file <%s> is not a module library"
msgstr "Le fichier %s n'est pas une librairie eeschema"
#: cvpcb/init.cpp:64
#, c-format
msgid "Components: %d (free: %d)"
......@@ -8428,6 +8316,16 @@ msgstr "Ouvrir la documentation de cvpcb"
msgid "Netlist Format: Pcad"
msgstr " Format NetListe: Pcad"
#: cvpcb/listlib.cpp:69
#, c-format
msgid "Library file <%s> not found"
msgstr "Librairie %s non trouve"
#: cvpcb/listlib.cpp:79
#, c-format
msgid "Library file <%s> is not a module library"
msgstr "Le fichier %s n'est pas une librairie eeschema"
#: cvpcb/cvframe.cpp:175
msgid "Netlist and Cmp list modified, Save before exit ?"
msgstr "Netlist et liste composants modifis, Sauver avant de quitter ?"
......@@ -9260,126 +9158,6 @@ msgstr "X"
msgid "Y"
msgstr "Y"
#: common/common.cpp:48
msgid " (\"):"
msgstr " (\"):"
#: common/common.cpp:277
msgid "Copper "
msgstr "Cuivre "
#: common/common.cpp:277
msgid "Inner L1 "
msgstr "Interne 1"
#: common/common.cpp:277
msgid "Inner L2 "
msgstr "Interne 2"
#: common/common.cpp:277
msgid "Inner L3 "
msgstr "Interne 3"
#: common/common.cpp:278
msgid "Inner L4 "
msgstr "Interne 4"
#: common/common.cpp:278
msgid "Inner L5 "
msgstr "Interne 5"
#: common/common.cpp:278
msgid "Inner L6 "
msgstr "Interne 6"
#: common/common.cpp:278
msgid "Inner L7 "
msgstr "Interne 7"
#: common/common.cpp:279
msgid "Inner L8 "
msgstr "Interne 8"
#: common/common.cpp:279
msgid "Inner L9 "
msgstr "Interne 9"
#: common/common.cpp:279
msgid "Inner L10"
msgstr "Interne 10"
#: common/common.cpp:279
msgid "Inner L11"
msgstr "Interne 11"
#: common/common.cpp:280
msgid "Inner L12"
msgstr "Interne 12"
#: common/common.cpp:280
msgid "Inner L13"
msgstr "Interne 13"
#: common/common.cpp:280
msgid "Inner L14"
msgstr "Interne 14"
#: common/common.cpp:281
msgid "Adhes Cop"
msgstr "Adhes Cu "
#: common/common.cpp:281
msgid "Adhes Cmp"
msgstr "Adhe Cmp"
#: common/common.cpp:281
msgid "SoldP Cop"
msgstr "SoldP Cu "
#: common/common.cpp:281
msgid "SoldP Cmp"
msgstr "SoldP Cmp"
#: common/common.cpp:282
msgid "SilkS Cop"
msgstr "Srigr Cu "
#: common/common.cpp:282
msgid "SilkS Cmp"
msgstr "Srigr Cmp"
#: common/common.cpp:282
msgid "Mask Cop "
msgstr "Masque Cu "
#: common/common.cpp:282
msgid "Mask Cmp "
msgstr "Masque Cmp"
#: common/common.cpp:283
msgid "Drawings "
msgstr "Drawings "
#: common/common.cpp:283
msgid "Comments "
msgstr "Comments "
#: common/common.cpp:283
msgid "Eco1 "
msgstr "Eco1 "
#: common/common.cpp:283
msgid "Eco2 "
msgstr "Eco2 "
#: common/common.cpp:284
msgid "Edges Pcb"
msgstr "Contour Pcb"
#: common/common.cpp:284
msgid "--- "
msgstr "--- "
#: common/basicframe.cpp:216
#, c-format
msgid "Help file %s not found"
......@@ -9499,6 +9277,202 @@ msgstr "Inversion Bloc"
msgid "Block Mirror"
msgstr "Bloc Miroir"
#: common/common.cpp:49
msgid " (\"):"
msgstr " (\"):"
#: common/common.cpp:295
msgid "H2 Bottom"
msgstr "H2 Bottom"
#: common/common.cpp:295
msgid "Power"
msgstr "Power"
#: common/common.cpp:295
msgid "V2 Signal"
msgstr "V2 Signal"
#: common/common.cpp:295
msgid "H1 Signal"
msgstr "H1 Signal"
#: common/common.cpp:296
msgid "Ground"
msgstr "Ground"
#: common/common.cpp:296
#: common/common.cpp:307
#: common/common.cpp:340
msgid "Inner L5 "
msgstr "Interne 5"
#: common/common.cpp:296
#: common/common.cpp:307
#: common/common.cpp:340
msgid "Inner L6 "
msgstr "Interne 6"
#: common/common.cpp:296
#: common/common.cpp:307
#: common/common.cpp:340
msgid "Inner L7 "
msgstr "Interne 7"
#: common/common.cpp:297
#: common/common.cpp:308
#: common/common.cpp:341
msgid "Inner L8 "
msgstr "Interne 8"
#: common/common.cpp:297
#: common/common.cpp:308
#: common/common.cpp:341
msgid "Inner L9 "
msgstr "Interne 9"
#: common/common.cpp:297
#: common/common.cpp:308
#: common/common.cpp:341
msgid "Inner L10"
msgstr "Interne 10"
#: common/common.cpp:297
#: common/common.cpp:308
#: common/common.cpp:341
msgid "Inner L11"
msgstr "Interne 11"
#: common/common.cpp:298
#: common/common.cpp:309
#: common/common.cpp:342
msgid "Inner L12"
msgstr "Interne 12"
#: common/common.cpp:298
#: common/common.cpp:309
#: common/common.cpp:342
msgid "Inner L13"
msgstr "Interne 13"
#: common/common.cpp:298
#: common/common.cpp:309
#: common/common.cpp:342
msgid "Inner L14"
msgstr "Interne 14"
#: common/common.cpp:299
#: common/common.cpp:310
#: common/common.cpp:343
msgid "Adhes Cop"
msgstr "Adhes Cu "
#: common/common.cpp:299
#: common/common.cpp:310
#: common/common.cpp:343
msgid "Adhes Cmp"
msgstr "Adhe Cmp"
#: common/common.cpp:299
#: common/common.cpp:310
#: common/common.cpp:343
msgid "SoldP Cop"
msgstr "SoldP Cu "
#: common/common.cpp:299
#: common/common.cpp:310
#: common/common.cpp:343
msgid "SoldP Cmp"
msgstr "SoldP Cmp"
#: common/common.cpp:300
#: common/common.cpp:311
#: common/common.cpp:344
msgid "SilkS Cop"
msgstr "Srigr Cu "
#: common/common.cpp:300
#: common/common.cpp:311
#: common/common.cpp:344
msgid "SilkS Cmp"
msgstr "Srigr Cmp"
#: common/common.cpp:300
#: common/common.cpp:311
#: common/common.cpp:344
msgid "Mask Cop "
msgstr "Masque Cu "
#: common/common.cpp:300
#: common/common.cpp:311
#: common/common.cpp:344
msgid "Mask Cmp "
msgstr "Masque Cmp"
#: common/common.cpp:301
#: common/common.cpp:312
#: common/common.cpp:345
msgid "Drawings "
msgstr "Drawings "
#: common/common.cpp:301
#: common/common.cpp:312
#: common/common.cpp:345
msgid "Comments "
msgstr "Comments "
#: common/common.cpp:301
#: common/common.cpp:312
#: common/common.cpp:345
msgid "Eco1 "
msgstr "Eco1 "
#: common/common.cpp:301
#: common/common.cpp:312
#: common/common.cpp:345
msgid "Eco2 "
msgstr "Eco2 "
#: common/common.cpp:302
#: common/common.cpp:313
#: common/common.cpp:346
msgid "Edges Pcb"
msgstr "Contour Pcb"
#: common/common.cpp:302
#: common/common.cpp:313
msgid "BAD INDEX"
msgstr "BAD INDEX"
#: common/common.cpp:306
#: common/common.cpp:339
msgid "Copper "
msgstr "Cuivre "
#: common/common.cpp:306
#: common/common.cpp:339
msgid "Inner L1 "
msgstr "Interne 1"
#: common/common.cpp:306
#: common/common.cpp:339
msgid "Inner L2 "
msgstr "Interne 2"
#: common/common.cpp:306
#: common/common.cpp:339
msgid "Inner L3 "
msgstr "Interne 3"
#: common/common.cpp:307
#: common/common.cpp:340
msgid "Inner L4 "
msgstr "Interne 4"
#: common/common.cpp:346
msgid "--- "
msgstr "--- "
#: common/gestfich.cpp:621
msgid "No default editor found, you must choose it"
msgstr "Pas d'diteur par dfaut trouv, vous devez en choisir un"
......@@ -9996,18 +9970,10 @@ msgid "grid user"
msgstr "grille user"
#: pcbnew/zones.h:59
#: pcbnew/dialog_zones_by_polygon.h:52
#: pcbnew/dialog_zones_by_polygon.h:53
msgid "Fill Zones Options"
msgstr "Options de remplissage de Zone"
#: pcbnew/dialog_initpcb.h:38
msgid "Global Delete"
msgstr "Effacements Gnraux"
#: pcbnew/dialog_edit_mod_text.h:43
msgid "TextMod properties"
msgstr "Proprits du Texte sur Module"
#: pcbnew/gen_self.h:217
msgid "Length(inch):"
msgstr "Longueur (pouces):"
......@@ -10029,6 +9995,14 @@ msgstr "Incapable de cr
msgid "Segm count = %d, Lenght = "
msgstr "Nbr segm = %d, Longueur = "
#: pcbnew/dialog_initpcb.h:38
msgid "Global Delete"
msgstr "Effacements Gnraux"
#: pcbnew/dialog_edit_mod_text.h:43
msgid "TextMod properties"
msgstr "Proprits du Texte sur Module"
#: pcbnew/find.h:38
msgid "Find"
msgstr "Chercher"
......@@ -10037,7 +10011,7 @@ msgstr "Chercher"
msgid "Pad properties"
msgstr "Proprits des Pads"
#: pcbnew/dialog_track_options.h:49
#: pcbnew/dialog_track_options.h:53
msgid "Tracks and Vias Sizes"
msgstr "Dims pistes et vias"
......@@ -10060,6 +10034,15 @@ msgstr "Options de nettoyage"
msgid "General Options"
msgstr "Options gnrales"
#: pcbnew/pcbnew.h:288
msgid "??? Via"
msgstr "??? Via"
#: pcbnew/pcbnew.h:290
#, fuzzy
msgid "Blind/Buried Via"
msgstr "Via enterre"
#: pcbnew/set_color.h:38
msgid "Pcbnew Layer Colors:"
msgstr "Pcbnew: Couleur desCouches"
......@@ -10112,7 +10095,7 @@ msgstr "Afficher Modules Cmp"
msgid "Show Modules Cu"
msgstr "Afficher Modules Cu"
#: pcbnew/drc_stuff.h:120
#: pcbnew/drc_stuff.h:121
#, c-format
msgid "ErrType(%d): <b>%s</b><ul><li> %s: %s </li><li> %s: %s </li></ul>"
msgstr "Type Err(%d): <b>%s</b><ul><li> %s: %s </li><li> %s: %s </li></ul>"
......@@ -10157,6 +10140,10 @@ msgstr "Label"
msgid "GlobLabel"
msgstr "Lab Global"
#: eeschema/eelayer.h:104
msgid "Netname"
msgstr "NetName"
#: eeschema/eelayer.h:110
msgid "Notes"
msgstr "Notes"
......
......@@ -110,6 +110,12 @@ void BOARD::UnLink()
void BOARD::Add( BOARD_ITEM* aBoardItem, int aControl )
{
if ( aBoardItem == NULL )
{
wxFAIL_MSG( wxT("BOARD::Add() param error: aBoardItem NULL") );
return;
}
switch( aBoardItem->Type() )
{
// this one uses a vector
......
......@@ -199,10 +199,10 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
text << _( "Via" ) << wxT( " " ) << via->ShowWidth();
int shape = via->Shape();
if( shape == VIA_BURIED )
text << wxT(" ") << _( "Blind" );
else if( shape == VIA_BLIND )
text << wxT(" ") << _("Buried");
if( shape == VIA_BLIND_BURIED )
text << wxT(" ") << _( "Blind/Buried" );
else if( shape == VIA_MICROVIA )
text << wxT(" ") << _("Micro Via");
// else say nothing about normal (through) vias
net = aPcb->FindNet( via->GetNet() );
......
......@@ -65,6 +65,8 @@ wxString DRC_ITEM::GetErrorText() const
return wxString( _("Pad near pad") );
case DRCE_VIA_HOLE_BIGGER:
return wxString( _("Via hole > diameter"));
case DRCE_MICRO_VIA_INCORRECT_LAYER_PAIR:
return wxString( _("Micro Via: incorrect layer pairs (not adjacent)"));
case COPPERAREA_INSIDE_COPPERAREA:
return wxString( _("Copper area inside copper area"));
case COPPERAREA_CLOSE_TO_COPPERAREA:
......
......@@ -68,6 +68,16 @@ MARKER::MARKER( int aErrorCode, const wxPoint& aMarkerPos,
bText, bPos );
}
MARKER::MARKER( int aErrorCode, const wxPoint& aMarkerPos,
const wxString& aText, const wxPoint& aPos ) :
BOARD_ITEM( NULL, TYPEMARKER ) // parent set during BOARD::Add()
{
init();
SetData( aErrorCode, aMarkerPos,
aText, aPos );
}
/* Effacement memoire de la structure */
MARKER::~MARKER()
......@@ -91,6 +101,17 @@ void MARKER::SetData( int aErrorCode, const wxPoint& aMarkerPos,
}
void MARKER::SetData( int aErrorCode, const wxPoint& aMarkerPos,
const wxString& aText, const wxPoint& aPos )
{
m_drc.SetData( aErrorCode, aMarkerPos,
aText, aPos );
// @todo: switch on error code to set error code specific color, and possibly bitmap.
m_Color = WHITE;
}
/* supprime du chainage la structure Struct
* les structures arrieres et avant sont chainees directement
*/
......@@ -122,7 +143,8 @@ void MARKER::Display_Infos( WinEDA_DrawFrame* frame )
txtA << DRC_ITEM::ShowCoord( rpt.GetPointA() ) << wxT(": ") << rpt.GetTextA();
wxString txtB;
txtB << DRC_ITEM::ShowCoord( rpt.GetPointB() ) << wxT(": ") << rpt.GetTextB();
if ( rpt.AsSecondItem() )
txtB << DRC_ITEM::ShowCoord( rpt.GetPointB() ) << wxT(": ") << rpt.GetTextB();
text_pos = 25;
Affiche_1_Parametre( frame, text_pos, txtA, txtB, DARKBROWN );
......
......@@ -37,8 +37,18 @@ public:
MARKER( int aErrorCode, const wxPoint& aMarkerPos,
const wxString& aText, const wxPoint& aPos,
const wxString& bText, const wxPoint& bPos );
~MARKER();
/**
* Constructor
* @param aErrorCode The categorizing identifier for an error
* @param aMarkerPos The position of the MARKER on the BOARD
* @param aText Text describing the object
* @param aPos The position of the object
*/
MARKER( int aErrorCode, const wxPoint& aMarkerPos,
const wxString& aText, const wxPoint& aPos );
~MARKER();
void UnLink();
void Draw( WinEDA_DrawPanel* panel, wxDC* DC, int DrawMode );
......@@ -78,6 +88,17 @@ public:
const wxString& aText, const wxPoint& aPos,
const wxString& bText, const wxPoint& bPos );
/**
* Function SetData
* fills in all the reportable data associated with a MARKER.
* @param aErrorCode The categorizing identifier for an error
* @param aMarkerPos The position of the MARKER on the BOARD
* @param aText Text describing the object
* @param aPos The position of the object
*/
void SetData( int aErrorCode, const wxPoint& aMarkerPos,
const wxString& aText, const wxPoint& aPos );
/**
* Function GetReporter
......
......@@ -52,7 +52,7 @@ TRACK::TRACK( BOARD_ITEM* StructFather, KICAD_T idtype ) :
start = end = NULL;
SetNet( 0 );
SetSubNet( 0 );
m_Drill = -1;
SetDrillDefault();
m_Param = 0;
}
......@@ -131,6 +131,24 @@ TRACK* TRACK::Copy() const
}
/**
* Function GetDrillValue
* calculate the drill value for vias (m-Drill if > 0, or default drill value for the board
* @return real drill_value
*/
int TRACK::GetDrillValue(void)
{
if ( Type() != TYPEVIA ) return 0;
if ( m_Drill >= 0 ) return m_Drill;
if ( m_Shape == VIA_MICROVIA )
return g_DesignSettings.m_MicroViaDrill;
return g_DesignSettings.m_ViaDrill;
}
/***********************/
bool TRACK::IsNull()
/***********************/
......@@ -253,7 +271,7 @@ int TRACK::ReturnMaskLayer()
if( via_type == VIA_THROUGH )
return ALL_CU_LAYERS;
// VIA_BLIND or VIA_BURIED:
// VIA_BLIND_BURIED or VIA_MICRVIA:
int bottom_layer, top_layer;
......@@ -522,33 +540,6 @@ TRACK* TRACK::GetEndNetCode( int NetCode )
}
#if 0 // replaced by Save()
/********************************************/
bool TRACK::WriteTrackDescr( FILE* File )
/********************************************/
/* write a via description on file
*/
{
int type = 0;
if( Type() == TYPEVIA )
type = 1;
if( GetState( DELETED ) )
return FALSE;
fprintf( File, "Po %d %d %d %d %d %d %d\n", m_Shape,
m_Start.x, m_Start.y, m_End.x, m_End.y, m_Width, m_Drill );
fprintf( File, "De %d %d %d %lX %X\n",
m_Layer, type, GetNet(),
m_TimeStamp, ReturnStatus() );
return TRUE;
}
#endif
bool TRACK::Save( FILE* aFile ) const
{
int type = 0;
......@@ -631,21 +622,18 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode )
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );
if( rayon > (4 * zoom) )
{
int drill_rayon, inner_rayon = rayon - (2 * zoom);
int drill_rayon = GetDrillValue() / 2;
int inner_rayon = rayon - (2 * zoom);
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
inner_rayon, color );
// Draw the via hole if the display option allows it
if( DisplayOpt.m_DisplayViaMode != VIA_HOLE_NOT_SHOW )
{
if( (DisplayOpt.m_DisplayViaMode == ALL_VIA_HOLE_SHOW)
|| ( m_Drill > 0 ) )
if( (DisplayOpt.m_DisplayViaMode == ALL_VIA_HOLE_SHOW) || // Display all drill holes requested
( (drill_rayon > 0 ) && ! IsDrillDefault() ) ) // Or Display non default holes requested
{
if( m_Drill > 0 )
drill_rayon = m_Drill / 2;
else
drill_rayon = g_DesignSettings.m_ViaDrill / 2;
if( drill_rayon < inner_rayon ) // We can show the via hole
if( drill_rayon < inner_rayon ) // We can show the via hole
{
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
drill_rayon, color );
......@@ -656,6 +644,33 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode )
if( DisplayOpt.DisplayTrackIsol )
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
rayon + g_DesignSettings.m_TrackClearence, color );
// for Micro Vias, draw a partial cross :
// X on component layer, or + on copper layer
// (so we can see 2 superimposed microvias ):
if ( Shape() == VIA_MICROVIA )
{
int ax, ay, bx, by;
if ( IsOnLayer(COPPER_LAYER_N) )
{
ax = rayon; ay = 0;
bx = drill_rayon; by = 0;
}
else
{
ax = ay = (rayon * 707) / 1000;
bx = by = (drill_rayon * 707) / 1000;
}
/* lines | or \ */
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax , m_Start.y - ay,
m_Start.x - bx , m_Start.y - by, 0, color );
GRLine( &panel->m_ClipBox, DC, m_Start.x + bx , m_Start.y + by,
m_Start.x + ax , m_Start.y + ay, 0, color );
/* lines - or / */
GRLine( &panel->m_ClipBox, DC, m_Start.x + ay, m_Start.y - ax ,
m_Start.x + by, m_Start.y - bx, 0, color );
GRLine( &panel->m_ClipBox, DC, m_Start.x - by, m_Start.y + bx ,
m_Start.x - ay, m_Start.y + ax, 0, color );
}
}
return;
}
......@@ -813,8 +828,7 @@ void TRACK::Display_Infos( WinEDA_DrawFrame* frame )
{
Affiche_1_Parametre( frame, text_pos, _( "Diam" ), msg, DARKCYAN );
int drill_value = m_Drill >= 0 ?
m_Drill : g_DesignSettings.m_ViaDrill;
int drill_value = GetDrillValue();
valeur_param( (unsigned) drill_value, msg );
......@@ -909,7 +923,7 @@ void TRACK::Show( int nestLevel, std::ostream& os )
" layer=\"" << m_Layer << '"' <<
" width=\"" << m_Width << '"' <<
// " drill=\"" << m_Drill << '"' <<
// " drill=\"" << GetDrillValue() << '"' <<
" netcode=\"" << GetNet() << "\">" <<
"<start" << m_Start << "/>" <<
"<end" << m_End << "/>";
......@@ -935,12 +949,12 @@ void SEGVIA::Show( int nestLevel, std::ostream& os )
cp = "through";
break;
case VIA_BURIED:
cp = "blind";
case VIA_BLIND_BURIED:
cp = "blind/buried";
break;
case VIA_BLIND:
cp = "buried";
case VIA_MICROVIA:
cp = "micro via";
break;
default:
......@@ -959,7 +973,7 @@ void SEGVIA::Show( int nestLevel, std::ostream& os )
" layers=\"" << ReturnPcbLayerName( topLayer ).Trim().mb_str() << ","
<< ReturnPcbLayerName( botLayer ).Trim().mb_str() << '"' <<
" width=\"" << m_Width << '"' <<
" drill=\"" << m_Drill << '"' <<
" drill=\"" << GetDrillValue() << '"' <<
" netcode=\"" << GetNet() << "\">" <<
"<pos" << m_Start << "/>";
......
......@@ -9,10 +9,10 @@
// Via attributes (m_Shape parmeter)
#define VIA_THROUGH 3 /* Always a through hole via */
#define VIA_BURIED 2 /* this via can be on internal layers */
#define VIA_BLIND 1 /* this via which connect from internal layers to an external layer */
#define VIA_NOT_DEFINED 0 /* reserved (unused) */
#define VIA_THROUGH 3 /* Always a through hole via */
#define VIA_BLIND_BURIED 2 /* this via can be on internal layers */
#define VIA_MICROVIA 1 /* this via which connect from an external layer to the near neightbour internal layer */
#define VIA_NOT_DEFINED 0 /* not yet used */
/***/
......@@ -22,10 +22,12 @@ public:
int m_Width; // 0 = line, > 0 = tracks, bus ...
wxPoint m_Start; // Line start point
wxPoint m_End; // Line end point
int m_Shape; // vias: shape and type, Track = shape..
int m_Drill; // for vias: via drill (- 1 for default value)
protected:
int m_Drill; // for vias: via drill (- 1 for default value)
public:
BOARD_ITEM* start; // pointers to a connected item (pad or track)
BOARD_ITEM* end;
......@@ -64,20 +66,20 @@ public:
{
return m_Start; // it had to be start or end.
}
/* supprime du chainage la structure Struct */
void UnLink();
/**
* Function Save
* writes the data structures for this object out to a FILE in "*.brd" format.
* @param aFile The FILE to write to.
* @return bool - true if success writing else false.
*/
bool Save( FILE* aFile ) const;
*/
bool Save( FILE* aFile ) const;
/**
* Function Insert
* inserts a single TRACK, SEGVIA or SEGZONE, or a list of such,
......@@ -90,13 +92,13 @@ public:
* @param InsertPoint See above
*/
void Insert( BOARD* aPcb, BOARD_ITEM* InsertPoint );
/**
* Function GetBestInsertPoint
* searches the "best" insertion point within the track linked list.
* The best point is the begging of the corresponding net code section.
* (The BOARD::m_Track and BOARD::m_Zone lists are sorted by netcode.)
* @param aPcb The BOARD to search for the insertion point.
* @param aPcb The BOARD to search for the insertion point.
* @return TRACK* - the item found in the linked list (or NULL if no track)
*/
TRACK* GetBestInsertPoint( BOARD* aPcb );
......@@ -134,8 +136,9 @@ public:
*/
double GetLength() const
{
int dx = m_Start.x - m_End.x;
int dy = m_Start.y - m_End.y;
int dx = m_Start.x - m_End.x;
int dy = m_Start.y - m_End.y;
return hypot( dx, dy );
}
......@@ -145,6 +148,32 @@ public:
/* divers */
int Shape() const { return m_Shape & 0xFF; }
/**
* Function SetDrillValue
* Set the drill value for vias
* @param drill_value = new drill value
*/
void SetDrillValue(int drill_value) { m_Drill = drill_value; }
/**
* Function SetDrillDefault
* Set the drill value for vias at default value (-1)
*/
void SetDrillDefault(void) { m_Drill = -1; }
/**
* Function IsDrillDefault
* @return true if the drill value is default value (-1)
*/
bool IsDrillDefault(void) { return m_Drill < 0; }
/**
* Function GetDrillValue
* calculate the drill value for vias (m-Drill if > 0, or default drill value for the board
* @return real drill_value
*/
int GetDrillValue(void);
/**
* Function ReturnMaskLayer
......@@ -203,13 +232,13 @@ public:
/**
* Function HitTest (overlayed)
* tests if the given wxRect intersect this object.
* For now, an ending point must be inside this rect.
* For now, an ending point must be inside this rect.
* @param refPos A wxPoint to test
* @return bool - true if a hit, else false
*/
bool HitTest( EDA_Rect& refArea );
bool HitTest( EDA_Rect& refArea );
/**
/**
* Function GetClass
* returns the class name.
* @return wxString
......@@ -284,12 +313,14 @@ public:
* returns the position of this object.
* @return const wxPoint& - The position of this object.
*/
wxPoint& GetPosition()
{
return m_Start;
wxPoint& GetPosition()
{
return m_Start;
}
void SetPosition( const wxPoint& aPoint ) { m_Start=aPoint; m_End=aPoint; }
void SetPosition( const wxPoint& aPoint ) { m_Start = aPoint; m_End = aPoint; }
/**
* Function GetClass
* returns the class name.
......
......@@ -19,6 +19,8 @@
#include "trigo.h"
/**************************************************************/
void EDA_BaseStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC )
/**************************************************************/
......@@ -301,6 +303,29 @@ void PCB_SCREEN::Init()
}
/* Return true if a microvia can be put on board
* A microvia ia a small via restricted to 2 near neighbour layers
* because its is hole is made by laser which can penetrate only one layer
* It is mainly used to connect BGA to the first inner layer
* And it is allowed from an external layer to the first inner layer
*/
bool PCB_SCREEN::IsMicroViaAcceptable(void)
{
int copperlayercnt = g_DesignSettings.m_CopperLayerCount;
if ( ! g_DesignSettings.m_MicroViasAllowed )
return false; // Obvious..
if ( copperlayercnt < 4 )
return false; // Only on multilayer boards..
if ( (m_Active_Layer == COPPER_LAYER_N) ||
(m_Active_Layer == LAYER_CMP_N) ||
(m_Active_Layer == g_DesignSettings.m_CopperLayerCount - 2) ||
(m_Active_Layer == LAYER_N_2) )
return true;
return false;
}
/*************************/
/* class DISPLAY_OPTIONS */
/*************************/
......@@ -381,8 +406,9 @@ EDA_BoardDesignSettings::EDA_BoardDesignSettings()
m_LayerColor[ii] = default_layer_color[ii];
// Layer colors (tracks and graphic items)
m_ViaColor[VIA_BLIND] = CYAN;
m_ViaColor[VIA_BURIED] = BROWN;
m_ViaColor[VIA_NOT_DEFINED] = DARKGRAY;
m_ViaColor[VIA_MICROVIA] = CYAN;
m_ViaColor[VIA_BLIND_BURIED] = BROWN;
m_ViaColor[VIA_THROUGH] = WHITE;
m_ModuleTextCMPColor = LIGHTGRAY; // Text module color for modules on the COMPONENT layer
m_ModuleTextCUColor = MAGENTA; // Text module color for modules on the COPPER layer
......
......@@ -49,6 +49,8 @@ BEGIN_EVENT_TABLE( WinEDA_PcbTracksDialog, wxDialog )
////@begin WinEDA_PcbTracksDialog event table entries
EVT_INIT_DIALOG( WinEDA_PcbTracksDialog::OnInitDialog )
EVT_CHECKBOX( ID_CHECKBOX_ALLOWS_MICROVIA, WinEDA_PcbTracksDialog::OnCheckboxAllowsMicroviaClick )
EVT_BUTTON( wxID_OK, WinEDA_PcbTracksDialog::OnOkClick )
EVT_BUTTON( wxID_CANCEL, WinEDA_PcbTracksDialog::OnCancelClick )
......@@ -86,6 +88,11 @@ bool WinEDA_PcbTracksDialog::Create( wxWindow* parent, wxWindowID id, const wxSt
m_ViaAltDrillValueTitle = NULL;
m_OptCustomViaDrill = NULL;
m_OptViaType = NULL;
m_MicroViaSizeTitle = NULL;
m_MicroViaSizeCtrl = NULL;
m_MicroViaDrillTitle = NULL;
m_MicroViaDrillCtrl = NULL;
m_AllowMicroViaCtrl = NULL;
m_TrackWidthTitle = NULL;
m_OptTrackWidth = NULL;
m_TrackClearanceTitle = NULL;
......@@ -117,80 +124,101 @@ void WinEDA_PcbTracksDialog::CreateControls()
SetFont(*g_DialogFont);
////@begin WinEDA_PcbTracksDialog content construction
// Generated by DialogBlocks, Sun 25 Nov 2007 15:41:58 CST (unregistered)
// Generated by DialogBlocks, 11/01/2008 21:51:48 (unregistered)
WinEDA_PcbTracksDialog* itemDialog1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
itemDialog1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 0, wxGROW|wxALL, 5);
wxStaticBox* itemStaticBoxSizer3Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Vias:"));
wxStaticBoxSizer* itemStaticBoxSizer3 = new wxStaticBoxSizer(itemStaticBoxSizer3Static, wxVERTICAL);
itemBoxSizer2->Add(itemStaticBoxSizer3, 0, wxGROW|wxALL, 5);
m_ViaSizeTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Via Size"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer3->Add(m_ViaSizeTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
itemStaticBoxSizer3->Add(m_ViaSizeTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_OptViaSize = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer3->Add(m_OptViaSize, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemStaticBoxSizer3->Add(m_OptViaSize, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
m_ViaDefaultDrillValueTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Default Via Drill"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer3->Add(m_ViaDefaultDrillValueTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
itemStaticBoxSizer3->Add(m_ViaDefaultDrillValueTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_OptViaDrill = new wxTextCtrl( itemDialog1, ID_TEXTCTRL1, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer3->Add(m_OptViaDrill, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemStaticBoxSizer3->Add(m_OptViaDrill, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
m_ViaAltDrillValueTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Alternate Via Drill"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer3->Add(m_ViaAltDrillValueTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
itemStaticBoxSizer3->Add(m_ViaAltDrillValueTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_OptCustomViaDrill = new wxTextCtrl( itemDialog1, ID_TEXTCTRL2, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer3->Add(m_OptCustomViaDrill, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
itemStaticBoxSizer3->Add(m_OptCustomViaDrill, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
wxArrayString m_OptViaTypeStrings;
m_OptViaTypeStrings.Add(_("Blind Via"));
m_OptViaTypeStrings.Add(_("Buried Via"));
m_OptViaTypeStrings.Add(_("Standard Via"));
m_OptViaType = new wxRadioBox( itemDialog1, ID_VIA_TYPE_SELECTION, _("Via Type"), wxDefaultPosition, wxDefaultSize, m_OptViaTypeStrings, 1, wxRA_SPECIFY_COLS );
m_OptViaTypeStrings.Add(_("Through Via"));
m_OptViaTypeStrings.Add(_("Blind or Buried Via "));
m_OptViaType = new wxRadioBox( itemDialog1, ID_VIA_TYPE_SELECTION, _("Default Via Type"), wxDefaultPosition, wxDefaultSize, m_OptViaTypeStrings, 1, wxRA_SPECIFY_COLS );
m_OptViaType->SetSelection(0);
itemBoxSizer3->Add(m_OptViaType, 0, wxGROW|wxALL, 5);
itemStaticBoxSizer3->Add(m_OptViaType, 0, wxGROW|wxALL, 5);
wxStaticBox* itemStaticBoxSizer11Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Micro Vias:"));
wxStaticBoxSizer* itemStaticBoxSizer11 = new wxStaticBoxSizer(itemStaticBoxSizer11Static, wxVERTICAL);
itemBoxSizer2->Add(itemStaticBoxSizer11, 0, wxGROW|wxALL, 5);
m_MicroViaSizeTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Micro Via Size"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer11->Add(m_MicroViaSizeTitle, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
m_MicroViaSizeCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL7, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer11->Add(m_MicroViaSizeCtrl, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemBoxSizer2->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_MicroViaDrillTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Micro Via Drill"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer11->Add(m_MicroViaDrillTitle, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer13, 0, wxGROW|wxALL, 5);
m_MicroViaDrillCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL6, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer11->Add(m_MicroViaDrillCtrl, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemStaticBoxSizer11->Add(5, 5, 0, wxGROW|wxALL, 5);
m_AllowMicroViaCtrl = new wxCheckBox( itemDialog1, ID_CHECKBOX_ALLOWS_MICROVIA, _("Allows Micro Vias"), wxDefaultPosition, wxDefaultSize, 0 );
m_AllowMicroViaCtrl->SetValue(false);
m_AllowMicroViaCtrl->SetHelpText(_("Allows use of micro vias\nThey are very small vias only from an external copper layer to its near neightbour\n"));
if (WinEDA_PcbTracksDialog::ShowToolTips())
m_AllowMicroViaCtrl->SetToolTip(_("Allows use of micro vias\nThey are very small vias only from an external copper layer to its near neightbour\n"));
itemStaticBoxSizer11->Add(m_AllowMicroViaCtrl, 0, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer18 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer18, 0, wxGROW|wxALL, 5);
m_TrackWidthTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Track Width"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer13->Add(m_TrackWidthTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
itemBoxSizer18->Add(m_TrackWidthTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_OptTrackWidth = new wxTextCtrl( itemDialog1, ID_TEXTCTRL3, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer13->Add(m_OptTrackWidth, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemBoxSizer18->Add(m_OptTrackWidth, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
m_TrackClearanceTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Clearance"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer13->Add(m_TrackClearanceTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
itemBoxSizer18->Add(m_TrackClearanceTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_OptTrackClearance = new wxTextCtrl( itemDialog1, ID_TEXTCTRL4, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer13->Add(m_OptTrackClearance, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemBoxSizer18->Add(m_OptTrackClearance, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
m_MaskClearanceTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Mask clearance"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer13->Add(m_MaskClearanceTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
itemBoxSizer18->Add(m_MaskClearanceTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_OptMaskMargin = new wxTextCtrl( itemDialog1, ID_TEXTCTRL5, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer13->Add(m_OptMaskMargin, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemBoxSizer13->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
itemBoxSizer18->Add(m_OptMaskMargin, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer21 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer13->Add(itemBoxSizer21, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
wxBoxSizer* itemBoxSizer25 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer25, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* itemButton22 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton22->SetForegroundColour(wxColour(210, 0, 0));
itemBoxSizer21->Add(itemButton22, 0, wxGROW|wxALL, 5);
wxButton* itemButton26 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton26->SetForegroundColour(wxColour(210, 0, 0));
itemBoxSizer25->Add(itemButton26, 0, wxGROW|wxALL, 5);
wxButton* itemButton23 = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, wxBU_LEFT );
itemButton23->SetForegroundColour(wxColour(0, 0, 255));
itemBoxSizer21->Add(itemButton23, 0, wxGROW|wxALL, 5);
wxButton* itemButton27 = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, wxBU_LEFT );
itemButton27->SetForegroundColour(wxColour(0, 0, 255));
itemBoxSizer25->Add(itemButton27, 0, wxGROW|wxALL, 5);
// Set validators
m_AllowMicroViaCtrl->SetValidator( wxGenericValidator(& g_DesignSettings.m_MicroViasAllowed) );
////@end WinEDA_PcbTracksDialog content construction
SetDisplayValue();
}
......@@ -235,7 +263,9 @@ void WinEDA_PcbTracksDialog::SetDisplayValue()
/*************************************************/
{
AddUnitSymbol(*m_ViaSizeTitle);
AddUnitSymbol(*m_MicroViaSizeTitle);
AddUnitSymbol(*m_ViaDefaultDrillValueTitle);
AddUnitSymbol(*m_MicroViaDrillTitle);
AddUnitSymbol(*m_ViaAltDrillValueTitle);
AddUnitSymbol(*m_TrackWidthTitle);
AddUnitSymbol(*m_TrackClearanceTitle);
......@@ -243,32 +273,50 @@ void WinEDA_PcbTracksDialog::SetDisplayValue()
int Internal_Unit = m_Parent->m_InternalUnits;
PutValueInLocalUnits(*m_OptViaSize, g_DesignSettings.m_CurrentViaSize, Internal_Unit);
PutValueInLocalUnits(*m_MicroViaSizeCtrl, g_DesignSettings.m_CurrentMicroViaSize, Internal_Unit);
PutValueInLocalUnits(*m_OptViaDrill, g_DesignSettings.m_ViaDrill, Internal_Unit);
PutValueInLocalUnits(*m_MicroViaDrillCtrl, g_DesignSettings.m_MicroViaDrill, Internal_Unit);
PutValueInLocalUnits(*m_OptCustomViaDrill, g_ViaHoleLastValue, Internal_Unit);
PutValueInLocalUnits(*m_OptTrackWidth, g_DesignSettings.m_CurrentTrackWidth, Internal_Unit);
PutValueInLocalUnits(*m_OptTrackClearance, g_DesignSettings.m_TrackClearence, Internal_Unit);
PutValueInLocalUnits(*m_OptMaskMargin, g_DesignSettings.m_MaskMargin, Internal_Unit);
m_OptViaType->SetSelection(g_DesignSettings.m_CurrentViaType - 1);
if ( g_DesignSettings.m_CurrentViaType != VIA_THROUGH )
m_OptViaType->SetSelection(1);
m_MicroViaSizeTitle->Enable(g_DesignSettings.m_MicroViasAllowed);
m_MicroViaSizeCtrl->Enable(g_DesignSettings.m_MicroViasAllowed);
m_MicroViaDrillTitle->Enable(g_DesignSettings.m_MicroViasAllowed);
m_MicroViaDrillCtrl->Enable(g_DesignSettings.m_MicroViasAllowed);
}
/*******************************************************************/
void WinEDA_PcbTracksDialog::AcceptPcbOptions(wxCommandEvent& event)
/*******************************************************************/
{
g_DesignSettings.m_CurrentViaType = m_OptViaType->GetSelection() + 1;
g_DesignSettings.m_CurrentViaType = VIA_THROUGH;
if ( m_OptViaType->GetSelection() > 0 )
g_DesignSettings.m_CurrentViaType = VIA_BLIND_BURIED;
if ( g_DesignSettings.m_CurrentViaType != VIA_THROUGH )
{
if( ! IsOK(this,
_("You have selected VIA Blind or VIA Buried\nWARNING: this feature is EXPERIMENTAL!!! Accept ?") ) )
_("You have selected VIA Blind and Buried\nWARNING: this feature is EXPERIMENTAL!!! Accept ?") ) )
g_DesignSettings.m_CurrentViaType = VIA_THROUGH;
}
g_DesignSettings.m_CurrentViaSize =
ReturnValueFromTextCtrl(*m_OptViaSize, m_Parent->m_InternalUnits);
g_DesignSettings.m_CurrentMicroViaSize =
ReturnValueFromTextCtrl(*m_MicroViaSizeCtrl, m_Parent->m_InternalUnits);
g_DesignSettings.m_MicroViaDrill =
ReturnValueFromTextCtrl(*m_MicroViaDrillCtrl, m_Parent->m_InternalUnits);
g_DesignSettings.m_ViaDrill =
ReturnValueFromTextCtrl(*m_OptViaDrill, m_Parent->m_InternalUnits);
g_ViaHoleLastValue =
ReturnValueFromTextCtrl(*m_OptCustomViaDrill, m_Parent->m_InternalUnits);
g_DesignSettings.m_MicroViasAllowed = m_AllowMicroViaCtrl->IsChecked();
g_DesignSettings.m_CurrentTrackWidth =
ReturnValueFromTextCtrl(*m_OptTrackWidth, m_Parent->m_InternalUnits);
g_DesignSettings.m_TrackClearence =
......@@ -391,3 +439,17 @@ void WinEDA_PcbTracksDialog::OnInitDialog( wxInitDialogEvent& event )
event.Skip();
}
/*!
* wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_ALLOWS_MICROVIA
*/
void WinEDA_PcbTracksDialog::OnCheckboxAllowsMicroviaClick( wxCommandEvent& event )
{
bool state = m_AllowMicroViaCtrl->IsChecked();
m_MicroViaSizeTitle->Enable(state);
m_MicroViaSizeCtrl->Enable(state);
m_MicroViaDrillTitle->Enable(state);
m_MicroViaDrillCtrl->Enable(state);
}
......@@ -23,6 +23,7 @@
*/
////@begin includes
#include "wx/valgen.h"
////@end includes
/*!
......@@ -42,6 +43,9 @@
#define ID_TEXTCTRL1 10002
#define ID_TEXTCTRL2 10003
#define ID_VIA_TYPE_SELECTION 10004
#define ID_TEXTCTRL7 10008
#define ID_TEXTCTRL6 10010
#define ID_CHECKBOX_ALLOWS_MICROVIA 10009
#define ID_TEXTCTRL3 10005
#define ID_TEXTCTRL4 10006
#define ID_TEXTCTRL5 10007
......@@ -85,6 +89,9 @@ public:
/// wxEVT_INIT_DIALOG event handler for ID_DIALOG
void OnInitDialog( wxInitDialogEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_ALLOWS_MICROVIA
void OnCheckboxAllowsMicroviaClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
void OnOkClick( wxCommandEvent& event );
......@@ -115,6 +122,11 @@ public:
wxStaticText* m_ViaAltDrillValueTitle;
wxTextCtrl* m_OptCustomViaDrill;
wxRadioBox* m_OptViaType;
wxStaticText* m_MicroViaSizeTitle;
wxTextCtrl* m_MicroViaSizeCtrl;
wxStaticText* m_MicroViaDrillTitle;
wxTextCtrl* m_MicroViaDrillCtrl;
wxCheckBox* m_AllowMicroViaCtrl;
wxStaticText* m_TrackWidthTitle;
wxTextCtrl* m_OptTrackWidth;
wxStaticText* m_TrackClearanceTitle;
......
......@@ -108,10 +108,12 @@
<bool name="use_resource_archive">0</bool>
<bool name="use_generated_xrc_cpp">0</bool>
<bool name="always_generate_xrc">1</bool>
<bool name="use_id_name_for_name">0</bool>
<bool name="archive_xrc_files">1</bool>
<bool name="archive_image_files">1</bool>
<bool name="archive_all_image_files">0</bool>
<bool name="xrc_retain_relative_paths">1</bool>
<bool name="xrc_generate_id_tags">0</bool>
</header>
<data>
<document>
......@@ -247,7 +249,6 @@
<bool name="proxy-wxDEFAULT_DIALOG_STYLE">0</bool>
<bool name="proxy-wxCAPTION">1</bool>
<bool name="proxy-wxRESIZE_BORDER">0</bool>
<bool name="proxy-wxTHICK_FRAME">0</bool>
<bool name="proxy-wxSYSTEM_MENU">1</bool>
<bool name="proxy-wxSTAY_ON_TOP">0</bool>
<bool name="proxy-wxDIALOG_NO_PARENT">0</bool>
......@@ -295,7 +296,7 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<document>
<string name="title">"wxBoxSizer V"</string>
<string name="title">"wxStaticBoxSizer V"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"sizer"</string>
......@@ -304,9 +305,18 @@
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"24/4/2006"</string>
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-type">"wbStaticBoxSizerProxy"</string>
<string name="proxy-Id name">"wxID_ANY"</string>
<long name="proxy-Id value">-1</long>
<string name="proxy-Label">"Vias:"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Sizer member variable name">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Static box class">"wxStaticBox"</string>
<string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Expand"</string>
<long name="proxy-Stretch factor">0</long>
......@@ -328,7 +338,7 @@
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"24/4/2006"</string>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long>
......@@ -398,7 +408,7 @@
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"24/4/2006"</string>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL"</string>
<long name="proxy-Id value">10001</long>
......@@ -470,7 +480,6 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
<bool name="proxy-wxTE_LINEWRAP">0</bool>
</document>
<document>
<string name="title">"wxStaticText: wxID_STATIC"</string>
......@@ -481,7 +490,7 @@
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"24/4/2006"</string>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long>
......@@ -551,7 +560,7 @@
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"24/4/2006"</string>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL1"</string>
<long name="proxy-Id value">10002</long>
......@@ -623,7 +632,6 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
<bool name="proxy-wxTE_LINEWRAP">0</bool>
</document>
<document>
<string name="title">"wxStaticText: wxID_STATIC"</string>
......@@ -634,7 +642,7 @@
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"24/4/2006"</string>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long>
......@@ -704,7 +712,7 @@
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"24/4/2006"</string>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL2"</string>
<long name="proxy-Id value">10003</long>
......@@ -776,33 +784,6 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
<bool name="proxy-wxTE_LINEWRAP">0</bool>
</document>
<document>
<string name="title">"Spacer"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"spacer"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"24/4/2006"</string>
<string name="proxy-type">"wbSpacerProxy"</string>
<long name="proxy-Width">5</long>
<long name="proxy-Height">5</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
</document>
<document>
<string name="title">"wxRadioBox: ID_VIA_TYPE_SELECTION"</string>
......@@ -813,7 +794,7 @@
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"24/4/2006"</string>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbRadioBoxProxy"</string>
<string name="proxy-Id name">"ID_VIA_TYPE_SELECTION"</string>
<long name="proxy-Id value">10004</long>
......@@ -825,9 +806,9 @@
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_OptViaType"</string>
<string name="proxy-Label">"Via Type"</string>
<string name="proxy-Label">"Default Via Type"</string>
<long name="proxy-Major dimension count">1</long>
<string name="proxy-Items">"Blind Via|Buried Via|Standard Via"</string>
<string name="proxy-Items">"Through Via|Blind or Buried Via "</string>
<long name="proxy-Initial value">0</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
......@@ -870,20 +851,29 @@
</document>
</document>
<document>
<string name="title">"Spacer"</string>
<string name="title">"wxStaticBoxSizer V"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"spacer"</string>
<string name="icon-name">"sizer"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"24/4/2006"</string>
<string name="proxy-type">"wbSpacerProxy"</string>
<long name="proxy-Width">5</long>
<long name="proxy-Height">5</long>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbStaticBoxSizerProxy"</string>
<string name="proxy-Id name">"wxID_ANY"</string>
<long name="proxy-Id value">-1</long>
<string name="proxy-Label">"Micro Vias:"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Sizer member variable name">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Static box class">"wxStaticBox"</string>
<string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<string name="proxy-AlignV">"Expand"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
......@@ -894,6 +884,403 @@
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<document>
<string name="title">"wxStaticText: wxID_STATIC"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"statictext"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_MicroViaSizeTitle"</string>
<string name="proxy-Label">"Micro Via Size"</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxALIGN_LEFT">0</bool>
<bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxALIGN_CENTRE">0</bool>
<bool name="proxy-wxST_NO_AUTORESIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
<bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<document>
<string name="title">"wxTextCtrl: ID_TEXTCTRL7"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"textctrl"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL7"</string>
<long name="proxy-Id value">10008</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_MicroViaSizeCtrl"</string>
<string name="proxy-Initial value">""</string>
<long name="proxy-Max length">0</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxTE_MULTILINE">0</bool>
<bool name="proxy-wxTE_PROCESS_ENTER">0</bool>
<bool name="proxy-wxTE_PROCESS_TAB">0</bool>
<bool name="proxy-wxTE_PASSWORD">0</bool>
<bool name="proxy-wxTE_READONLY">0</bool>
<bool name="proxy-wxTE_RICH">0</bool>
<bool name="proxy-wxTE_RICH2">0</bool>
<bool name="proxy-wxTE_AUTO_URL">0</bool>
<bool name="proxy-wxTE_NOHIDESEL">0</bool>
<bool name="proxy-wxTE_LEFT">0</bool>
<bool name="proxy-wxTE_CENTRE">0</bool>
<bool name="proxy-wxTE_RIGHT">0</bool>
<bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxTE_CHARWRAP">0</bool>
<bool name="proxy-wxTE_WORDWRAP">0</bool>
<bool name="proxy-wxTE_CAPITALIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
<bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<document>
<string name="title">"wxStaticText: wxID_STATIC"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"statictext"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_MicroViaDrillTitle"</string>
<string name="proxy-Label">"Micro Via Drill"</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxALIGN_LEFT">0</bool>
<bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxALIGN_CENTRE">0</bool>
<bool name="proxy-wxST_NO_AUTORESIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
<bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<document>
<string name="title">"wxTextCtrl: ID_TEXTCTRL6"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"textctrl"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbTextCtrlProxy"</string>
<string name="proxy-Id name">"ID_TEXTCTRL6"</string>
<long name="proxy-Id value">10010</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxTextCtrl"</string>
<string name="proxy-Base class">"wxTextCtrl"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_MicroViaDrillCtrl"</string>
<string name="proxy-Initial value">""</string>
<long name="proxy-Max length">0</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxTE_MULTILINE">0</bool>
<bool name="proxy-wxTE_PROCESS_ENTER">0</bool>
<bool name="proxy-wxTE_PROCESS_TAB">0</bool>
<bool name="proxy-wxTE_PASSWORD">0</bool>
<bool name="proxy-wxTE_READONLY">0</bool>
<bool name="proxy-wxTE_RICH">0</bool>
<bool name="proxy-wxTE_RICH2">0</bool>
<bool name="proxy-wxTE_AUTO_URL">0</bool>
<bool name="proxy-wxTE_NOHIDESEL">0</bool>
<bool name="proxy-wxTE_LEFT">0</bool>
<bool name="proxy-wxTE_CENTRE">0</bool>
<bool name="proxy-wxTE_RIGHT">0</bool>
<bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxTE_CHARWRAP">0</bool>
<bool name="proxy-wxTE_WORDWRAP">0</bool>
<bool name="proxy-wxTE_CAPITALIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
<bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<document>
<string name="title">"Spacer"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"spacer"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbSpacerProxy"</string>
<long name="proxy-Width">5</long>
<long name="proxy-Height">5</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
</document>
<document>
<string name="title">"wxCheckBox: ID_CHECKBOX_ALLOWS_MICROVIA"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"checkbox"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbCheckBoxProxy"</string>
<string name="event-handler-0">"wxEVT_COMMAND_CHECKBOX_CLICKED|OnCheckboxAllowsMicroviaClick|NONE||WinEDA_PcbTracksDialog"</string>
<string name="proxy-Id name">"ID_CHECKBOX_ALLOWS_MICROVIA"</string>
<long name="proxy-Id value">10009</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxCheckBox"</string>
<string name="proxy-Base class">"wxCheckBox"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"m_AllowMicroViaCtrl"</string>
<string name="proxy-Label">"Allows Micro Vias"</string>
<bool name="proxy-Initial value">0</bool>
<string name="proxy-Help text">"Allows use of micro vias
They are very small vias only from an external copper layer to its near neightbour
"</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">"g_DesignSettings.m_MicroViasAllowed"</string>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxCHK_2STATE">0</bool>
<bool name="proxy-wxCHK_3STATE">0</bool>
<bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
</document>
<document>
<string name="title">"wxBoxSizer V"</string>
......@@ -1379,20 +1766,86 @@
<string name="proxy-Custom ctor arguments">""</string>
<bool name="proxy-wxTE_LINEWRAP">0</bool>
</document>
</document>
<document>
<string name="title">"wxBoxSizer V"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"sizer"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<document>
<string name="title">"Spacer"</string>
<string name="title">"wxButton: wxID_OK"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"spacer"</string>
<string name="icon-name">"dialogcontrol"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"24/4/2006"</string>
<string name="proxy-type">"wbSpacerProxy"</string>
<long name="proxy-Width">5</long>
<long name="proxy-Height">5</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbButtonProxy"</string>
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnOkClick"</string>
<string name="proxy-Id name">"wxID_OK"</string>
<long name="proxy-Id value">5100</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"&amp;OK"</string>
<bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">"D20000"</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<bool name="proxy-wxBU_LEFT">0</bool>
<bool name="proxy-wxBU_RIGHT">0</bool>
<bool name="proxy-wxBU_TOP">0</bool>
<bool name="proxy-wxBU_BOTTOM">0</bool>
<bool name="proxy-wxBU_EXACTFIT">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
......@@ -1403,22 +1856,63 @@
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<document>
<string name="title">"wxBoxSizer V"</string>
<string name="title">"wxButton: wxID_CANCEL"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"sizer"</string>
<string name="icon-name">"dialogcontrol"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"25/2/2006"</string>
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Vertical"</string>
<string name="created">"11/1/2008"</string>
<string name="proxy-type">"wbButtonProxy"</string>
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCancelClick"</string>
<string name="proxy-Id name">"wxID_CANCEL"</string>
<long name="proxy-Id value">5101</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-Label">"&amp;Cancel"</string>
<bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">"0000FF"</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<bool name="proxy-wxBU_LEFT">1</bool>
<bool name="proxy-wxBU_RIGHT">0</bool>
<bool name="proxy-wxBU_TOP">0</bool>
<bool name="proxy-wxBU_BOTTOM">0</bool>
<bool name="proxy-wxBU_EXACTFIT">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
......@@ -1429,141 +1923,8 @@
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<document>
<string name="title">"wxButton: wxID_OK"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"dialogcontrol"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"25/2/2006"</string>
<string name="proxy-type">"wbButtonProxy"</string>
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnOkClick"</string>
<string name="proxy-Id name">"wxID_OK"</string>
<long name="proxy-Id value">5100</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"&amp;OK"</string>
<bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">"D20000"</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<bool name="proxy-wxBU_LEFT">0</bool>
<bool name="proxy-wxBU_RIGHT">0</bool>
<bool name="proxy-wxBU_TOP">0</bool>
<bool name="proxy-wxBU_BOTTOM">0</bool>
<bool name="proxy-wxBU_EXACTFIT">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<document>
<string name="title">"wxButton: wxID_CANCEL"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"dialogcontrol"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"25/2/2006"</string>
<string name="proxy-type">"wbButtonProxy"</string>
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCancelClick"</string>
<string name="proxy-Id name">"wxID_CANCEL"</string>
<long name="proxy-Id value">5101</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxButton"</string>
<string name="proxy-Base class">"wxButton"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"&amp;Cancel"</string>
<bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">"0000FF"</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<bool name="proxy-wxBU_LEFT">1</bool>
<bool name="proxy-wxBU_RIGHT">0</bool>
<bool name="proxy-wxBU_TOP">0</bool>
<bool name="proxy-wxBU_BOTTOM">0</bool>
<bool name="proxy-wxBU_EXACTFIT">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
</document>
</document>
......
......@@ -215,8 +215,8 @@ void DRC::testTracks()
if( !doTrackDrc( segm, segm->Next() ) )
{
wxASSERT( m_currentMarker );
m_pcb->Add( m_currentMarker );
m_currentMarker = 0;
m_pcb->Add( m_currentMarker );
m_currentMarker = 0;
}
}
}
......@@ -367,13 +367,25 @@ MARKER* DRC::fillMarker( TRACK* aTrack, BOARD_ITEM* aItem, int aErrorCode, MARKE
if( fillMe )
fillMe->SetData( aErrorCode, position,
{
if ( aItem )
fillMe->SetData( aErrorCode, position,
textA, aTrack->GetPosition(),
textB, posB );
else
fillMe->SetData( aErrorCode, position,
textA, aTrack->GetPosition() );
}
else
fillMe = new MARKER( aErrorCode, position,
{
if ( aItem )
fillMe = new MARKER( aErrorCode, position,
textA, aTrack->GetPosition(),
textB, posB );
else
fillMe = new MARKER( aErrorCode, position,
textA, aTrack->GetPosition() );
}
return fillMe;
}
......@@ -421,23 +433,41 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart )
m_segmAngle = 0;
// @todo: is this necessary?
/**************************************************************/
/* Phase 0 : test if via's hole is bigger than its diameter : */
/**************************************************************/
/* Phase 0 : Test vias : */
if( aRefSeg->Type() == TYPEVIA )
{
// test if via's hole is bigger than its diameter
// This test seems necessary since the dialog box that displays the
// desired via hole size and width does not enforce a hole size smaller
// than the via's diameter.
if( aRefSeg->m_Drill > aRefSeg->m_Width )
if( aRefSeg->GetDrillValue() > aRefSeg->m_Width )
{
m_currentMarker = fillMarker( aRefSeg, NULL,
DRCE_VIA_HOLE_BIGGER, m_currentMarker );
return false;
}
// For microvias: test if they are blindvias and only between 2 layers
// because they are used for very small drill size and are drill by laser
// and **only** one layer can be drilled
if( aRefSeg->Shape() == VIA_MICROVIA )
{
int layer1, layer2;
bool err = true;
((SEGVIA*)aRefSeg)->ReturnLayerPair(&layer1, &layer2);
if (layer1> layer2 ) EXCHG(layer1,layer2);
// test:
if (layer1 == COPPER_LAYER_N && layer2 == LAYER_N_2 ) err = false;
if (layer1 == (g_DesignSettings.m_CopperLayerCount - 2 ) && layer2 == LAYER_CMP_N ) err = false;
if ( err )
{
m_currentMarker = fillMarker( aRefSeg, NULL,
DRCE_MICRO_VIA_INCORRECT_LAYER_PAIR, m_currentMarker );
return false;
}
}
}
// for a non horizontal or vertical segment Compute the segment angle
......
......@@ -34,28 +34,29 @@
/// DRC error codes:
#define DRCE_ 1 // not used yet
#define DRCE_UNCONNECTED_PADS 2 ///< pads are unconnected
#define DRCE_TRACK_NEAR_THROUGH_HOLE 3 ///< thru hole is too close to track
#define DRCE_TRACK_NEAR_PAD 4 ///< pad too close to track
#define DRCE_TRACK_NEAR_VIA 5 ///< track too close to via
#define DRCE_VIA_NEAR_VIA 6 ///< via too close to via
#define DRCE_VIA_NEAR_TRACK 7 ///< via too close to track
#define DRCE_TRACK_ENDS1 8 ///< @todo say what this problem is
#define DRCE_TRACK_ENDS2 9 ///< @todo say what this problem is
#define DRCE_TRACK_ENDS3 10 ///< @todo say what this problem is
#define DRCE_TRACK_ENDS4 11 ///< @todo say what this problem is
#define DRCE_TRACK_UNKNOWN1 12 ///< @todo check source code and change this comment
#define DRCE_TRACKS_CROSSING 13 ///< tracks are crossing
#define DRCE_ENDS_PROBLEM1 14 ///< track ends are too close
#define DRCE_ENDS_PROBLEM2 15 ///< track ends are too close
#define DRCE_ENDS_PROBLEM3 16 ///< track ends are too close
#define DRCE_ENDS_PROBLEM4 17 ///< track ends are too close
#define DRCE_ENDS_PROBLEM5 18 ///< track ends are too close
#define DRCE_PAD_NEAR_PAD1 19 ///< pad too close to pad
#define DRCE_VIA_HOLE_BIGGER 20 ///< via's hole is bigger than its diameter
#define COPPERAREA_INSIDE_COPPERAREA 21 ///< copper area outlines intersect
#define COPPERAREA_CLOSE_TO_COPPERAREA 22 ///< copper area outlines are too close
#define DRCE_ 1 // not used yet
#define DRCE_UNCONNECTED_PADS 2 ///< pads are unconnected
#define DRCE_TRACK_NEAR_THROUGH_HOLE 3 ///< thru hole is too close to track
#define DRCE_TRACK_NEAR_PAD 4 ///< pad too close to track
#define DRCE_TRACK_NEAR_VIA 5 ///< track too close to via
#define DRCE_VIA_NEAR_VIA 6 ///< via too close to via
#define DRCE_VIA_NEAR_TRACK 7 ///< via too close to track
#define DRCE_TRACK_ENDS1 8 ///< @todo say what this problem is
#define DRCE_TRACK_ENDS2 9 ///< @todo say what this problem is
#define DRCE_TRACK_ENDS3 10 ///< @todo say what this problem is
#define DRCE_TRACK_ENDS4 11 ///< @todo say what this problem is
#define DRCE_TRACK_UNKNOWN1 12 ///< @todo check source code and change this comment
#define DRCE_TRACKS_CROSSING 13 ///< tracks are crossing
#define DRCE_ENDS_PROBLEM1 14 ///< track ends are too close
#define DRCE_ENDS_PROBLEM2 15 ///< track ends are too close
#define DRCE_ENDS_PROBLEM3 16 ///< track ends are too close
#define DRCE_ENDS_PROBLEM4 17 ///< track ends are too close
#define DRCE_ENDS_PROBLEM5 18 ///< track ends are too close
#define DRCE_PAD_NEAR_PAD1 19 ///< pad too close to pad
#define DRCE_VIA_HOLE_BIGGER 20 ///< via's hole is bigger than its diameter
#define DRCE_MICRO_VIA_INCORRECT_LAYER_PAIR 21 ///< micro via's layer pair incorrect (layers must be adjacent)
#define COPPERAREA_INSIDE_COPPERAREA 22 ///< copper area outlines intersect
#define COPPERAREA_CLOSE_TO_COPPERAREA 23 ///< copper area outlines are too close
/**
* Class DRC_ITEM
......@@ -64,48 +65,67 @@
* information held is the board coordinate and the MenuText for each item.
* Also held is the type of error by number and the location of the MARKER.
* A function is provided to translate that number into text.
* Some errors involve only one item (item with an incorrect param) so m_AsSecondItem is set to false in this case
*/
class DRC_ITEM
class DRC_ITEM
{
protected:
int m_ErrorCode; ///< the error code's numeric value
wxPoint m_Pos; ///< position of the issue
wxString m_AText; ///< text for the first BOARD_ITEM
wxString m_BText; ///< text for the second BOARD_ITEM
wxPoint m_APos; ///< the location of the first BOARD_ITEM
wxPoint m_BPos; ///< the location of the first BOARD_ITEM
int m_ErrorCode; ///< the error code's numeric value
wxPoint m_Pos; ///< position of the issue
wxString m_AText; ///< text for the first BOARD_ITEM
wxString m_BText; ///< text for the second BOARD_ITEM
wxPoint m_APos; ///< the location of the first (or main ) BOARD_ITEM
wxPoint m_BPos; ///< the location of the second BOARD_ITEM
bool m_AsSecondItem; ///< true when 2 items create a DRC error, false if only one item
public:
DRC_ITEM() :
m_ErrorCode(0)
m_ErrorCode( 0 )
{
}
DRC_ITEM( int aErrorCode, const wxPoint& aIssuePos,
const wxString& aText, const wxString& bText,
const wxPoint& aPos, const wxPoint& bPos )
DRC_ITEM( int aErrorCode, const wxPoint& aIssuePos,
const wxString& aText, const wxString& bText,
const wxPoint& aPos, const wxPoint& bPos )
{
SetData( aErrorCode, aIssuePos,
SetData( aErrorCode, aIssuePos,
aText, bText,
aPos, bPos );
}
void SetData( int aErrorCode, const wxPoint& aIssuePos,
const wxString& aText, const wxString& bText,
const wxPoint& aPos, const wxPoint& bPos )
DRC_ITEM( int aErrorCode, const wxPoint& aIssuePos,
const wxString& aText, const wxPoint& aPos )
{
SetData( aErrorCode, aIssuePos, aText, aPos );
}
void SetData( int aErrorCode, const wxPoint& aIssuePos,
const wxString& aText, const wxPoint& aPos )
{
SetData( aErrorCode, aIssuePos,
aText, aText,
aPos, aPos );
m_AsSecondItem = false;
}
void SetData( int aErrorCode, const wxPoint& aIssuePos,
const wxString& aText, const wxString& bText,
const wxPoint& aPos, const wxPoint& bPos )
{
m_ErrorCode = aErrorCode;
m_Pos = aIssuePos;
m_AText = aText;
m_BText = bText;
m_APos = aPos;
m_BPos = bPos;
m_Pos = aIssuePos;
m_AText = aText;
m_BText = bText;
m_APos = aPos;
m_BPos = bPos;
m_AsSecondItem = true;
}
bool AsSecondItem(void) const { return m_AsSecondItem; }
/**
* Function ShowHtml
* translates this object into a fragment of HTML suitable for the
......@@ -118,16 +138,16 @@ public:
// an html fragment for the entire message in the listbox. feel free
// to add color if you want:
ret.Printf( _("ErrType(%d): <b>%s</b><ul><li> %s: %s </li><li> %s: %s </li></ul>"),
m_ErrorCode,
GetErrorText().GetData(),
ShowCoord( m_APos ).GetData(), m_AText.GetData(),
ShowCoord( m_BPos ).GetData(), m_BText.GetData() );
ret.Printf( _( "ErrType(%d): <b>%s</b><ul><li> %s: %s </li><li> %s: %s </li></ul>" ),
m_ErrorCode,
GetErrorText().GetData(),
ShowCoord( m_APos ).GetData(), m_AText.GetData(),
ShowCoord( m_BPos ).GetData(), m_BText.GetData() );
return ret;
}
/**
* Function ShowReport
* translates this object into a text string suitable for saving
......@@ -138,15 +158,16 @@ public:
{
wxString ret;
ret.Printf( wxT("ErrType(%d): %s\n %s: %s\n %s: %s\n"),
m_ErrorCode,
GetErrorText().GetData(),
ShowCoord( m_APos ).GetData(), m_AText.GetData(),
ShowCoord( m_BPos ).GetData(), m_BText.GetData() );
ret.Printf( wxT( "ErrType(%d): %s\n %s: %s\n %s: %s\n" ),
m_ErrorCode,
GetErrorText().GetData(),
ShowCoord( m_APos ).GetData(), m_AText.GetData(),
ShowCoord( m_BPos ).GetData(), m_BText.GetData() );
return ret;
}
/**
* Function GetErrorCode
* returns the error code.
......@@ -156,7 +177,7 @@ public:
return m_ErrorCode;
}
/**
* Function GetErrorText
* returns the string form of a drc error code.
......@@ -167,33 +188,37 @@ public:
{
return m_AText;
}
const wxString& GetTextB() const
{
return m_BText;
}
const wxPoint& GetPointA() const
const wxPoint& GetPointA() const
{
return m_APos;
}
const wxPoint& GetPointB() const
const wxPoint& GetPointB() const
{
return m_BPos;
}
/**
* Function GetPosition
* @return wxPoint& - the position of this report item within
* @return wxPoint& - the position of this report item within
* the drawing.
*/
const wxPoint& GetPosition() const
const wxPoint& GetPosition() const
{
return m_Pos;
}
/**
* Function ShowCoord
* formats a coordinate or position to text.
......@@ -225,7 +250,7 @@ public:
* removes and deletes all the items in the list.
*/
virtual void DeleteAllItems() = 0;
/**
* Function GetItem
* retrieves a DRC_ITEM by pointer. The actual item remains owned by the
......@@ -233,12 +258,12 @@ public:
* @param aIndex The 0 based index into the list of the desired item.
* @return const DRC_ITEM* - the desired item or NULL if aIndex is out of range.
*/
virtual const DRC_ITEM* GetItem( int aIndex ) = 0;
virtual const DRC_ITEM* GetItem( int aIndex ) = 0;
/**
* Function DeleteAllItems
* removes and deletes desired item from the list.
* @param aIndex The 0 based index into the list of the desired item which
* @param aIndex The 0 based index into the list of the desired item which
* is to be deleted.
*/
virtual void DeleteItem( int aIndex ) = 0;
......@@ -247,13 +272,13 @@ public:
* Function GetCount
* returns the number of items in the list.
*/
virtual int GetCount() = 0;
virtual ~DRC_ITEM_LIST() {}
virtual int GetCount() = 0;
virtual ~DRC_ITEM_LIST() { }
};
typedef std::vector<DRC_ITEM*> DRC_LIST;
typedef std::vector<DRC_ITEM*> DRC_LIST;
/**
......@@ -264,88 +289,89 @@ typedef std::vector<DRC_ITEM*> DRC_LIST;
* be sent to a text file on disk.
* This class is given access to the windows and the BOARD
* that it needs via its constructor or public access functions.
*/
*/
class DRC
{
friend class DrcDialog;
friend class DrcDialog;
private:
// protected or private functions() are lowercase first character.
bool m_doPad2PadTest;
bool m_doUnconnectedTest;
bool m_doZonesTest;
bool m_doCreateRptFile;
wxString m_rptFilename;
bool m_doPad2PadTest;
bool m_doUnconnectedTest;
bool m_doZonesTest;
bool m_doCreateRptFile;
wxString m_rptFilename;
// int m_errorCount;
MARKER* m_currentMarker;
bool m_aboartDRC;
bool m_drcInProgress;
int m_spotcx;
int m_spotcy;
int m_finx;
int m_finy; // coord relatives de l'extremite du segm de reference
int m_segmAngle; // angle d'inclinaison du segment de reference en 0,1 degre
int m_segmLength; // length of the reference segment
int m_xcliplo;
int m_ycliplo;
int m_xcliphi;
int m_ycliphi; // coord de la surface de securite du segment a comparer
WinEDA_PcbFrame* m_mainWindow;
WinEDA_DrawPanel* m_drawPanel;
BOARD* m_pcb;
DrcDialog* m_ui;
DRC_LIST m_unconnected; ///< list of unconnected pads, as DRC_ITEMs
/**
MARKER* m_currentMarker;
bool m_aboartDRC;
bool m_drcInProgress;
int m_spotcx;
int m_spotcy;
int m_finx;
int m_finy; // coord relatives de l'extremite du segm de reference
int m_segmAngle; // angle d'inclinaison du segment de reference en 0,1 degre
int m_segmLength; // length of the reference segment
int m_xcliplo;
int m_ycliplo;
int m_xcliphi;
int m_ycliphi; // coord de la surface de securite du segment a comparer
WinEDA_PcbFrame* m_mainWindow;
WinEDA_DrawPanel* m_drawPanel;
BOARD* m_pcb;
DrcDialog* m_ui;
DRC_LIST m_unconnected; ///< list of unconnected pads, as DRC_ITEMs
/**
* Function updatePointers
* is a private helper function used to update needed pointers from the
* one pointer which is known not to change, m_mainWindow.
*/
void updatePointers();
void updatePointers();
/**
* Function fillMarker
* optionally creates a marker and fills it in with information,
* but does not add it to the BOARD. Use this to report any kind of
* optionally creates a marker and fills it in with information,
* but does not add it to the BOARD. Use this to report any kind of
* DRC problem, or unconnected pad problem.
*
* @param aTrack The reference track
* @param aItem Another item on the BOARD, such as a SEGVIA, SEGZONE,
* @param aItem Another item on the BOARD, such as a SEGVIA, SEGZONE,
* or TRACK.
* @param aErrorCode A categorizing identifier for the particular type
* of error that is being reported.
* @param fillMe A MARKER* which is to be filled in, or NULL if one is to
* @param fillMe A MARKER* which is to be filled in, or NULL if one is to
* first be allocated, then filled.
*/
MARKER* fillMarker( TRACK* aTrack, BOARD_ITEM* aItem, int aErrorCode, MARKER* fillMe );
MARKER* fillMarker( D_PAD* aPad, D_PAD* bPad, int aErrorCode, MARKER* fillMe );
//-----<categorical group tests>-----------------------------------------
void testTracks();
void testPad2Pad();
void testUnconnected();
//-----<categorical group tests>-----------------------------------------
void testTracks();
void testPad2Pad();
void testUnconnected();
void testZones();
void testZones();
//-----<single "item" tests>-----------------------------------------
//-----<single "item" tests>-----------------------------------------
/**
* Function doPadToPadsDrc
* tests the clearance between aRefPad and other pads.
......@@ -355,18 +381,18 @@ private:
* @param aEnd Marks the end of the list and is not included
* @param max_size The size of the biggest pad (used to stop the test when the X distance is > max_size)
*/
bool doPadToPadsDrc( D_PAD* aRefPad, LISTE_PAD* aStart,
LISTE_PAD* aEnd, int max_size );
bool doPadToPadsDrc( D_PAD* aRefPad, LISTE_PAD* aStart,
LISTE_PAD* aEnd, int max_size );
/**
* Function DoTrackDrc
* tests the current segment.
* tests the current segment.
* @param aRefSeg The segment to test
* @param aStart The head of a list of tracks to test against (usually BOARD::m_Track)
* @return bool - true if no poblems, else false and m_currentMarker is
* @return bool - true if no poblems, else false and m_currentMarker is
* filled in with the problem information.
*/
bool doTrackDrc( TRACK* aRefSeg, TRACK* aStart );
bool doTrackDrc( TRACK* aRefSeg, TRACK* aStart );
//-----<single tests>----------------------------------------------
......@@ -377,9 +403,9 @@ private:
* @param aPad Another pad to check against
* @return bool - true if clearance between aRefPad and pad is >= dist_min, else false
*/
bool checkClearancePadToPad( D_PAD* aRefPad, D_PAD* aPad, const int dist_min );
bool checkClearancePadToPad( D_PAD* aRefPad, D_PAD* aPad, const int dist_min );
/**
* Function checkClearanceSegmToPad
* check the distance from a pad to segment. This function uses several
......@@ -390,30 +416,30 @@ private:
* spot_cX, spot_cY = position of pad / origin of segment
* @param pad_to_test Is the pad involved in the check
* @param w_segm Hhalf width of the segment to test
* @param dist_min Is the minimum clearance needed
* @param dist_min Is the minimum clearance needed
*
* @return false distance >= dist_min,
* true if distance < dist_min
*/
bool checkClearanceSegmToPad( const D_PAD* pad_to_test, int w_segm, int dist_min );
bool checkClearanceSegmToPad( const D_PAD* pad_to_test, int w_segm, int dist_min );
/**
* Function checkMarginToCircle
* @todo this translation is no good, fix this:
* calculates the distance from a circle (via or round end of track) to the
* segment of reference on the right hand side.
*
*
* @param cx The x coordinate of the circle's center
* @param cy The y coordinate of the circle's center
* @param radius A "keep out" radius centered over the circle
* @param cy The y coordinate of the circle's center
* @param radius A "keep out" radius centered over the circle
* @param length The length of the segment (i.e. coordinate of end)
* @return bool - true if distance >= radius, else
* false when distance < radius
*/
static bool checkMarginToCircle( int cx, int cy, int radius, int length );
/**
* Function checkLine
* tests to see if one track is in contact with another track.
......@@ -422,15 +448,15 @@ private:
* dans le cadre (xcliplo,ycliplo xcliphi,ycliphi) (variables globales,
* locales a ce fichier)
*/
bool checkLine( int x1, int y1, int x2, int y2 );
bool checkLine( int x1, int y1, int x2, int y2 );
//-----</single tests>---------------------------------------------
public:
DRC( WinEDA_PcbFrame* aPcbWindow );
~DRC();
/**
* Function Drc
* tests the current segment and returns the result and displays the error
......@@ -441,10 +467,10 @@ public:
*/
int Drc( TRACK* aRefSeg, TRACK* aList );
/**
* Function DrcBlind
* tests the current segment and returns the result. Any error is not
* tests the current segment and returns the result. Any error is not
* displayed in the status panel.
* @param aRefSeg The current segment to test.
* @param aList The track list to test (usually m_Pcb->m_Track)
......@@ -453,18 +479,18 @@ public:
int DrcBlind( TRACK* aRefSeg, TRACK* aList )
{
updatePointers();
return doTrackDrc( aRefSeg, aList ) ? OK_DRC : BAD_DRC;
}
/**
* Function ShowDialog
* opens a dialog and prompts the user, then if a test run button is
* opens a dialog and prompts the user, then if a test run button is
* clicked, runs the test(s) and creates the MARKERS. The dialog is only
* created if it is not already in existence.
*/
void ShowDialog();
void ShowDialog();
/**
......@@ -473,9 +499,9 @@ public:
* the state of the dialog's existence.
* @param aReason Indication of which button was clicked to cause the destruction.
*/
void DestroyDialog( int aReason );
void DestroyDialog( int aReason );
/**
* Function SetSettings
* saves all the UI or test settings and may be called before running the tests.
......@@ -483,38 +509,36 @@ public:
* @param aUnconnectedTest Tells whether to list unconnected pads.
* @param aZonesTest Tells whether to test zones.
* @param aReportName A string telling the disk file report name entered.
* @param aSaveReport A boolean telling whether to generate disk file report.
* @param aSaveReport A boolean telling whether to generate disk file report.
*/
void SetSettings( bool aPad2PadTest, bool aUnconnectedTest,
bool aZonesTest, const wxString& aReportName, bool aSaveReport )
void SetSettings( bool aPad2PadTest, bool aUnconnectedTest,
bool aZonesTest, const wxString& aReportName, bool aSaveReport )
{
m_doPad2PadTest = aPad2PadTest;
m_doUnconnectedTest = aUnconnectedTest;
m_doZonesTest = aZonesTest;
m_rptFilename = aReportName;
m_doCreateRptFile = aSaveReport;
m_doZonesTest = aZonesTest;
m_rptFilename = aReportName;
m_doCreateRptFile = aSaveReport;
}
/**
* Function RunTests
* will actually run all the tests specified with a previous call to
* SetSettings()
*/
void RunTests();
void RunTests();
/**
* Function ListUnconnectedPad
* gathers a list of all the unconnected pads and shows them in the
* gathers a list of all the unconnected pads and shows them in the
* dialog, and optionally prints a report of such.
*/
void ListUnconnectedPads();
void ListUnconnectedPads();
};
#endif // _DRC_STUFF_H
//EOF
......@@ -61,6 +61,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
case ID_POPUP_PCB_STOP_CURRENT_DRAWING:
case ID_POPUP_PCB_END_TRACK:
case ID_POPUP_PCB_PLACE_VIA:
case ID_POPUP_PCB_PLACE_MICROVIA:
case ID_POPUP_PCB_IMPORT_PAD_SETTINGS:
case ID_POPUP_PCB_EXPORT_PAD_SETTINGS:
case ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS:
......@@ -372,6 +373,9 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
}
break;
case ID_POPUP_PCB_PLACE_MICROVIA:
if ( ! GetScreen()->IsMicroViaAcceptable() )
break;
case ID_POPUP_PCB_PLACE_VIA:
DrawPanel->MouseToCursorSchema();
if( GetCurItem()->m_Flags & IS_DRAGGED )
......@@ -380,13 +384,17 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
}
else
{
int v_type = g_DesignSettings.m_CurrentViaType;
if ( id == ID_POPUP_PCB_PLACE_MICROVIA )
g_DesignSettings.m_CurrentViaType = VIA_MICROVIA; // place micro via and switch layer
Other_Layer_Route( (TRACK*) GetCurItem(), &dc );
g_DesignSettings.m_CurrentViaType = v_type;
if( DisplayOpt.ContrastModeDisplay )
GetScreen()->SetRefreshReq();
}
break;
case ID_POPUP_PCB_DELETE_TRACKSEG:
case ID_POPUP_PCB_DELETE_TRACKSEG:
if( GetCurItem() == NULL )
break;
DrawPanel->MouseToCursorSchema();
......
......@@ -34,6 +34,8 @@ int WinEDA_PcbFrame::Edit_TrackSegm_Width( wxDC* DC, TRACK* pt_segm )
if( pt_segm->Type() == TYPEVIA )
{
consigne = pt_segm->m_Width = g_DesignSettings.m_CurrentViaSize;
if ( pt_segm->m_Shape == VIA_MICROVIA )
consigne = pt_segm->m_Width = g_DesignSettings.m_CurrentMicroViaSize;
}
if( old_w < consigne ) /* DRC utile puisque augm de dimension */
......
......@@ -210,11 +210,10 @@ bool WinEDA_PcbFrame::Other_Layer_Route( TRACK* track, wxDC* DC )
/* create the via */
Via = new SEGVIA( m_Pcb );
Via->m_Flags = IS_NEW;
Via->m_Width = g_DesignSettings.m_CurrentViaSize;
Via->m_Shape = g_DesignSettings.m_CurrentViaType;
Via->m_Width = g_DesignSettings.m_CurrentViaSize;
Via->SetNet( g_HightLigth_NetCode );
Via->m_Start = Via->m_End = g_CurrentTrackSegment->m_End;
int old_layer = GetScreen()->m_Active_Layer;
//swap the layers.
......@@ -224,21 +223,30 @@ bool WinEDA_PcbFrame::Other_Layer_Route( TRACK* track, wxDC* DC )
GetScreen()->m_Active_Layer = GetScreen()->m_Route_Layer_BOTTOM;
/* Adjust the via layer pair */
if( Via->Shape() == VIA_BURIED )
{
Via->SetLayerPair( old_layer, GetScreen()->m_Active_Layer );
}
else if( Via->Shape() == VIA_BLIND ) //blind via
{
// A revoir! ( la via devrait deboucher sur 1 cote )
Via->SetLayerPair( old_layer, GetScreen()->m_Active_Layer );
}
else
{
// Usual via is from copper to component; layer pair is 0 and 0x0F.
Via->SetLayerPair( COPPER_LAYER_N, LAYER_CMP_N );
switch ( Via->Shape() )
{
case VIA_BLIND_BURIED:
Via->SetLayerPair( old_layer, GetScreen()->m_Active_Layer );
break;
case VIA_MICROVIA: // from external to the near neghbour inner layer
if ( old_layer == COPPER_LAYER_N )
GetScreen()->m_Active_Layer = LAYER_N_2;
else if ( old_layer == LAYER_CMP_N )
GetScreen()->m_Active_Layer = m_Pcb->m_BoardSettings->m_CopperLayerCount - 2;
else if ( old_layer == LAYER_N_2 )
GetScreen()->m_Active_Layer = COPPER_LAYER_N;
else if ( old_layer == m_Pcb->m_BoardSettings->m_CopperLayerCount - 2 )
GetScreen()->m_Active_Layer = LAYER_CMP_N;
// else error
Via->SetLayerPair( old_layer, GetScreen()->m_Active_Layer );
Via->m_Width = g_DesignSettings.m_CurrentMicroViaSize;
break;
default:
// Usual via is from copper to component; layer pair is 0 and 0x0F.
Via->SetLayerPair( COPPER_LAYER_N, LAYER_CMP_N );
break;
}
if( Drc_On && BAD_DRC==m_drc->Drc( Via, m_Pcb->m_Track ) )
......
......@@ -469,7 +469,7 @@ void WinEDA_DrillFrame::UpdatePrecisionOptions( wxCommandEvent& event )
int WinEDA_DrillFrame::Gen_Drill_File_EXCELLON( FORET* buffer )
/***************************************************************/
/* Create the drill file in EXECELLON format
/* Create the drill file in EXCELLON format
* Return hole count
* buffer: Drill tools list
*/
......@@ -497,10 +497,10 @@ int WinEDA_DrillFrame::Gen_Drill_File_EXCELLON( FORET* buffer )
{
if( pt_piste->Type() != TYPEVIA )
continue;
if( pt_piste->m_Drill == 0 )
int via_drill = pt_piste->GetDrillValue();
if( via_drill == 0 )
continue;
int via_drill = ( pt_piste->m_Drill <
0 ) ? g_DesignSettings.m_ViaDrill : pt_piste->m_Drill;
if( foret->m_Diameter != via_drill )
continue;
......@@ -789,11 +789,9 @@ int WinEDA_DrillFrame::Gen_Liste_Forets( FORET* buffer, bool print_header )
{
if( pt_piste->Type() != TYPEVIA )
continue;
if( pt_piste->m_Drill == 0 )
int via_drill = pt_piste->GetDrillValue();
if( via_drill == 0 )
continue;
int via_drill = g_DesignSettings.m_ViaDrill;
if( pt_piste->m_Drill > 0 ) // Drill value is not the default value
via_drill = pt_piste->m_Drill;
foret = GetOrAddForet( buffer, via_drill );
if( foret )
foret->m_TotalCount++;
......@@ -1343,9 +1341,7 @@ int WinEDA_DrillFrame::Plot_Drill_PcbMap( FORET* buffer, int format )
{
if( pt_piste->Type() != TYPEVIA )
continue;
int via_drill = g_DesignSettings.m_ViaDrill;
if( pt_piste->m_Drill >= 0 )
via_drill = pt_piste->m_Drill;
int via_drill = pt_piste->GetDrillValue();
if( via_drill != foret->m_Diameter )
continue;
pos = pt_piste->m_Start;
......
......@@ -69,7 +69,8 @@ static Ki_HotkeyInfo HkSavefile( wxT( "Save board" ), HK_SAVE_BOARD, 'S' + GR_KB
static Ki_HotkeyInfo HkLoadfile( wxT( "Load board" ), HK_LOAD_BOARD, 'L' + GR_KB_CTRL );
static Ki_HotkeyInfo HkFindItem( wxT( "Find Item" ), HK_FIND_ITEM, 'F' + GR_KB_CTRL );
static Ki_HotkeyInfo HkBackspace( wxT( "Delete track segment" ), HK_BACK_SPACE, WXK_BACK );
static Ki_HotkeyInfo HkAddVia( wxT( "Add Via" ), HK_ADD_VIA, 'V' );
static Ki_HotkeyInfo HkAddMicroVia( wxT( "Add Via" ), HK_ADD_VIA, 'V' );
static Ki_HotkeyInfo HkAddVia( wxT( "Add MicroVia" ), HK_ADD_MICROVIA, 'V' + GR_KB_CTRL );
static Ki_HotkeyInfo HkEndTrack( wxT( "End Track" ), HK_END_TRACK, WXK_END );
static Ki_HotkeyInfo HkFlipFootprint( wxT( "Flip Footprint" ), HK_FLIP_FOOTPRINT, 'F' );
static Ki_HotkeyInfo HkRotateFootprint( wxT( "Rotate Footprint" ), HK_ROTATE_FOOTPRINT, 'R' );
......@@ -105,7 +106,9 @@ Ki_HotkeyInfo* s_Common_Hotkey_List[] = {
Ki_HotkeyInfo* s_board_edit_Hotkey_List[] = {
&HkTrackDisplayMode,
&HkDelete, &HkBackspace,
&HkAddVia, &HkEndTrack,
&HkAddVia,
&HkAddMicroVia,
&HkEndTrack,
&HkMoveFootprint, &HkFlipFootprint,
&HkRotateFootprint, &HkDragFootprint,
&HkGetAndMoveFootprint,
......@@ -382,6 +385,28 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey,
}
break;
case HK_ADD_MICROVIA: // Place a micro via if a track is in progress
if( m_ID_current_state != ID_TRACK_BUTT )
return;
if( ItemFree ) // no track in progress: nothing to do
break;
if( GetCurItem()->Type() != TYPETRACK ) // Should not occur
return;
if( (GetCurItem()->m_Flags & IS_NEW) == 0 )
return;
// place micro via and switch layer
if ( GetScreen()->IsMicroViaAcceptable() )
{
int v_type = g_DesignSettings.m_CurrentViaType;
g_DesignSettings.m_CurrentViaType = VIA_MICROVIA;
Other_Layer_Route( (TRACK*) GetCurItem(), DC );
g_DesignSettings.m_CurrentViaType = v_type;
if( DisplayOpt.ContrastModeDisplay )
GetScreen()->SetRefreshReq();
}
break;
case HK_ADD_VIA: // Switch to alternate layer and Place a via if a track is in progress
if( m_ID_current_state != ID_TRACK_BUTT )
return;
......
......@@ -22,7 +22,9 @@ enum hotkey_id_commnand {
HK_FLIP_FOOTPRINT,
HK_GET_AND_MOVE_FOOTPRINT,
HK_LOCK_UNLOCK_FOOTPRINT,
HK_ADD_VIA, HK_END_TRACK,
HK_ADD_VIA,
HK_ADD_MICROVIA,
HK_END_TRACK,
HK_SAVE_BOARD, HK_LOAD_BOARD,
HK_SWITCH_UNITS,
HK_SWITCH_TRACK_DISPLAY_MODE,
......
......@@ -88,7 +88,7 @@ int WinEDA_BasePcbFrame::ReadListeSegmentDescr( FILE* File,
* @return items count or - count if no end block ($End...) found.
*/
{
int shape, width, layer, type, flags, net_code;
int shape, width, drill, layer, type, flags, net_code;
int ii = 0;
char line1[256];
char line2[256];
......@@ -149,13 +149,15 @@ int WinEDA_BasePcbFrame::ReadListeSegmentDescr( FILE* File,
int arg_count = sscanf( line1 + 2, " %d %d %d %d %d %d %d", &shape,
&PtSegm->m_Start.x, &PtSegm->m_Start.y,
&PtSegm->m_End.x, &PtSegm->m_End.y, &width,
&PtSegm->m_Drill );
&drill );
PtSegm->m_Width = width;
PtSegm->m_Shape = shape;
if( arg_count < 7 )
PtSegm->m_Drill = -1;
if( arg_count < 7 || drill <= 0 )
PtSegm->SetDrillDefault();
else
PtSegm->SetDrillValue(drill);
PtSegm->SetLayer( layer );
PtSegm->SetNet( net_code );
......@@ -399,6 +401,12 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum )
continue;
}
if( stricmp( Line, "MicroViaSize" ) == 0 )
{
g_DesignSettings.m_CurrentMicroViaSize = atoi( data );
continue;
}
if( stricmp( Line, "ViaSizeHistory" ) == 0 )
{
int tmp = atoi( data );
......@@ -412,6 +420,18 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum )
continue;
}
if( stricmp( Line, "MicroViaDrill" ) == 0 )
{
g_DesignSettings.m_MicroViaDrill = atoi( data );
continue;
}
if( stricmp( Line, "MicroViasAllowed" ) == 0 )
{
g_DesignSettings.m_MicroViasAllowed = atoi( data );
continue;
}
if( stricmp( Line, "TextPcbWidth" ) == 0 )
{
g_DesignSettings.m_PcbTextWidth = atoi( data );
......@@ -521,6 +541,10 @@ static int WriteSetup( FILE* File, WinEDA_BasePcbFrame* frame )
fprintf( File, "ViaSizeHistory %d\n", g_DesignSettings.m_ViaSizeHistory[ii] );
}
fprintf( File, "MicroViaSize %d\n", g_DesignSettings.m_CurrentMicroViaSize);
fprintf( File, "MicroViaDrill %d\n", g_DesignSettings.m_MicroViaDrill);
fprintf( File, "MicroViasAllowed %d\n", g_DesignSettings.m_MicroViasAllowed);
fprintf( File, "TextPcbWidth %d\n", g_DesignSettings.m_PcbTextWidth );
fprintf( File, "TextPcbSize %d %d\n",
g_DesignSettings.m_PcbTextSize.x, g_DesignSettings.m_PcbTextSize.y );
......
......@@ -515,7 +515,7 @@ void WinEDA_PcbFrame::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
_( "Export via hole to others id vias" ), global_options_pad_xpm );
ADD_MENUITEM( via_mnu, ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT,
_( "Set ALL via holes to default" ), apply_xpm );
if( Track->m_Drill <= 0 )
if( ! Track->IsDrillDefault() )
{
via_mnu->Enable( ID_POPUP_PCB_VIA_HOLE_EXPORT, FALSE );
}
......@@ -559,6 +559,12 @@ void WinEDA_PcbFrame::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
}
msg = AddHotkeyName( _( "Place Via" ), s_Board_Editor_Hokeys_Descr, HK_ADD_VIA );
PopMenu->Append( ID_POPUP_PCB_PLACE_VIA, msg );
// See if we can place a Micro Via (4 or more layers, and start from an external layer):
if ( GetScreen()->IsMicroViaAcceptable() )
{
msg = AddHotkeyName( _( "Place Micro Via" ), s_Board_Editor_Hokeys_Descr, HK_ADD_MICROVIA );
PopMenu->Append( ID_POPUP_PCB_PLACE_MICROVIA, msg );
}
}
// track Width control :
......
......@@ -20,21 +20,21 @@ static int Pcbdiv_grille; /* memorisation temporaire */
static PARAM_CFG_WXSTRING UserLibDirBufCfg
(
wxT( "LibDir" ), /* Keyword */
& g_UserLibDirBuffer, /* Parameter address */
&g_UserLibDirBuffer, /* Parameter address */
GROUPLIB
);
static PARAM_CFG_LIBNAME_LIST LibNameBufCfg
(
wxT( "LibName" ), /* Keyword */
& g_LibName_List, /* Parameter address */
&g_LibName_List, /* Parameter address */
GROUPLIB
);
static PARAM_CFG_INT PadDrillCfg
(
wxT( "PadDrlX" ), /* Keyword */
& g_Pad_Master.m_Drill.x, /* Parameter address */
&g_Pad_Master.m_Drill.x, /* Parameter address */
320, /* Default value */
0, 0x7FFF /* Valeurs extremes */
);
......@@ -42,7 +42,7 @@ static PARAM_CFG_INT PadDrillCfg
static PARAM_CFG_INT PadDimHCfg //Pad Diameter / H Size
(
wxT( "PadDimH" ), /* Keyword */
& g_Pad_Master.m_Size.x, /* Parameter address */
&g_Pad_Master.m_Size.x, /* Parameter address */
550, /* Default value */
0, 0x7FFF /* Valeurs extremes */
);
......@@ -50,7 +50,7 @@ static PARAM_CFG_INT PadDimHCfg //Pad Diameter / H Size
static PARAM_CFG_INT PadDimVCfg
(
wxT( "PadDimV" ), /* Keyword */
& g_Pad_Master.m_Size.y, /* Parameter address */
&g_Pad_Master.m_Size.y, /* Parameter address */
550, /* Default value */
0, 0x7FFF /* Valeurs extremes */
);
......@@ -59,7 +59,7 @@ static PARAM_CFG_INT PadDimVCfg
static PARAM_CFG_INT PadFormeCfg
(
wxT( "PadForm" ), /* Keyword */
& g_Pad_Master.m_PadShape, /* Parameter address */
&g_Pad_Master.m_PadShape, /* Parameter address */
PAD_CIRCLE, /* Default value */
0, 0x7F /* Valeurs extremes */
);
......@@ -67,14 +67,14 @@ static PARAM_CFG_INT PadFormeCfg
static PARAM_CFG_INT PadMasqueLayerCfg
(
wxT( "PadMask" ), /* Keyword */
& g_Pad_Master.m_Masque_Layer, /* Parameter address */
&g_Pad_Master.m_Masque_Layer, /* Parameter address */
0x0000FFFF /* Default value */
);
static PARAM_CFG_INT ViaDiametreCfg
(
wxT( "ViaDiam" ), /* Keyword */
& g_DesignSettings.m_CurrentViaSize, /* Parameter address */
&g_DesignSettings.m_CurrentViaSize, /* Parameter address */
450, /* Default value */
0, 0xFFFF /* Valeurs extremes */
);
......@@ -82,15 +82,32 @@ static PARAM_CFG_INT ViaDiametreCfg
static PARAM_CFG_INT ViaDrillCfg
(
wxT( "ViaDril" ), /* Keyword */
& g_DesignSettings.m_ViaDrill, /* Parameter address */
&g_DesignSettings.m_ViaDrill, /* Parameter address */
250, /* Default value */
0, 0xFFFF /* Valeurs extremes */
);
static PARAM_CFG_INT MicroViaDiametreCfg
(
wxT( "MViaDia" ), /* Keyword */
&g_DesignSettings.m_CurrentMicroViaSize, /* Parameter address */
200, /* Default value */
0, 1000 /* Valeurs extremes */
);
static PARAM_CFG_INT MicroViaDrillCfg
(
wxT( "MViaDrl" ), /* Keyword */
&g_DesignSettings.m_MicroViaDrill, /* Parameter address */
80, /* Default value */
0, 800 /* Valeurs extremes */
);
static PARAM_CFG_INT ViaShowHoleCfg
(
INSETUP,
wxT( "ViaSHole" ), /* Keyword */
& DisplayOpt.m_DisplayViaMode, /* Parameter address */
&DisplayOpt.m_DisplayViaMode, /* Parameter address */
VIA_SPECIAL_HOLE_SHOW, /* Default value */
VIA_HOLE_NOT_SHOW, /* Valeurs extremes */
OPT_VIA_HOLE_END - 1 /* Valeurs extremes */
......@@ -99,7 +116,7 @@ static PARAM_CFG_INT ViaShowHoleCfg
static PARAM_CFG_INT TrackClearenceCfg
(
wxT( "Isol" ), /* Keyword */
& g_DesignSettings.m_TrackClearence, /* Parameter address */
&g_DesignSettings.m_TrackClearence, /* Parameter address */
120, /* Default value */
0, 0xFFFF /* Valeurs extremes */
);
......@@ -107,15 +124,15 @@ static PARAM_CFG_INT TrackClearenceCfg
static PARAM_CFG_INT LayerCountCfg // Mask Working Layers
(
wxT( "Countlayer" ), /* Keyword */
& g_DesignSettings.m_CopperLayerCount, /* Parameter address */
&g_DesignSettings.m_CopperLayerCount, /* Parameter address */
2, /* Default value */
1, NB_COPPER_LAYERS /* Valeurs extremes */
1, NB_COPPER_LAYERS /* Valeurs extremes */
);
static PARAM_CFG_INT TrackWidthCfg
(
wxT( "Lpiste" ), /* Keyword */
& g_DesignSettings.m_CurrentTrackWidth, /* Parameter address */
&g_DesignSettings.m_CurrentTrackWidth, /* Parameter address */
170, /* Default value */
2, 0xFFFF /* Valeurs extremes */
);
......@@ -123,7 +140,7 @@ static PARAM_CFG_INT TrackWidthCfg
static PARAM_CFG_INT RouteLayTopCfg // First current working layer
(
wxT( "RouteTo" ), /* Keyword */
& Route_Layer_TOP, /* Parameter address */
&Route_Layer_TOP, /* Parameter address */
15, /* Default value */
0, 15 /* Valeurs extremes */
);
......@@ -131,7 +148,7 @@ static PARAM_CFG_INT RouteLayTopCfg // First current working layer
static PARAM_CFG_INT RouteLayBotCfg // second current working layer
(
wxT( "RouteBo" ), /* Keyword */
& Route_Layer_BOTTOM, /* Parameter address */
&Route_Layer_BOTTOM, /* Parameter address */
0, /* Default value */
0, 15 /* Valeurs extremes */
);
......@@ -139,7 +156,7 @@ static PARAM_CFG_INT RouteLayBotCfg // second current working layer
static PARAM_CFG_INT TypeViaCfg
(
wxT( "TypeVia" ), /* Keyword */
& g_DesignSettings.m_CurrentViaType, /* Parameter address */
&g_DesignSettings.m_CurrentViaType, /* Parameter address */
VIA_THROUGH, /* Default value */
0, 3 /* Valeurs extremes */
);
......@@ -147,70 +164,70 @@ static PARAM_CFG_INT TypeViaCfg
static PARAM_CFG_BOOL Segm45Cfg // Segm Pistes a 0, 45, 90 degres uniquement
(
wxT( "Segm45" ), /* Keyword */
& Track_45_Only, /* Parameter address */
&Track_45_Only, /* Parameter address */
TRUE /* Default value */
);
static PARAM_CFG_BOOL Raccord45Cfg // Generation automatique des Raccords a 45 degres
(
wxT( "Racc45" ), /* Keyword */
& g_Raccord_45_Auto, /* Parameter address */
&g_Raccord_45_Auto, /* Parameter address */
TRUE /* Default value */
);
static PARAM_CFG_INT UnitCfg // Units: 0 inch, 1 mm
(
wxT( "Unite" ), /* Keyword */
& g_UnitMetric, /* Parameter address */
&g_UnitMetric, /* Parameter address */
FALSE /* Default value */
);
static PARAM_CFG_BOOL SegmFillCfg
(
wxT( "SegFill" ), /* Keyword */
& DisplayOpt.DisplayPcbTrackFill, /* Parameter address */
&DisplayOpt.DisplayPcbTrackFill, /* Parameter address */
TRUE /* Default value */
);
static PARAM_CFG_BOOL NewTrackAfficheGardeCfg
(
wxT( "NewAffG" ), /* Keyword */
& g_ShowIsolDuringCreateTrack, /* Parameter address */
&g_ShowIsolDuringCreateTrack, /* Parameter address */
TRUE /* Default value */
);
static PARAM_CFG_BOOL TrackAfficheGardeCfg
(
wxT( "SegAffG" ), /* Keyword */
& DisplayOpt.DisplayTrackIsol, /* Parameter address */
&DisplayOpt.DisplayTrackIsol, /* Parameter address */
FALSE /* Default value */
);
static PARAM_CFG_BOOL PadFillCfg
(
wxT( "PadFill" ), /* Keyword */
& DisplayOpt.DisplayPadFill, /* Parameter address */
&DisplayOpt.DisplayPadFill, /* Parameter address */
TRUE /* Default value */
);
static PARAM_CFG_BOOL PadAfficheGardeCfg
(
wxT( "PadAffG" ), /* Keyword */
& DisplayOpt.DisplayPadIsol, /* Parameter address */
&DisplayOpt.DisplayPadIsol, /* Parameter address */
TRUE /* Default value */
);
static PARAM_CFG_BOOL PadShowNumCfg
(
wxT( "PadSNum" ), /* Keyword */
& DisplayOpt.DisplayPadNum, /* Parameter address */
&DisplayOpt.DisplayPadNum, /* Parameter address */
TRUE /* Default value */
);
static PARAM_CFG_INT AfficheContourModuleCfg // Module Edges: fill/line/sketch
(
wxT( "ModAffC" ), /* Keyword */
& DisplayOpt.DisplayModEdge, /* Parameter address */
&DisplayOpt.DisplayModEdge, /* Parameter address */
FILAIRE, /* Default value */
0, 2 /* Valeurs extremes */
);
......@@ -218,7 +235,7 @@ static PARAM_CFG_INT AfficheContourModuleCfg // Module Edges: fill/line/sketc
static PARAM_CFG_INT AfficheTexteModuleCfg // Module Texts: fill/line/sketch
(
wxT( "ModAffT" ), /* Keyword */
& DisplayOpt.DisplayModText, /* Parameter address */
&DisplayOpt.DisplayModText, /* Parameter address */
FILAIRE, /* Default value */
0, 2 /* Valeurs extremes */
);
......@@ -226,7 +243,7 @@ static PARAM_CFG_INT AfficheTexteModuleCfg // Module Texts: fill/line/sketch
static PARAM_CFG_INT AfficheTextePcbCfg // PCB Texts: fill/line/sketch
(
wxT( "PcbAffT" ), /* Keyword */
& DisplayOpt.DisplayDrawItems, /* Parameter address */
&DisplayOpt.DisplayDrawItems, /* Parameter address */
FILAIRE, /* Default value */
0, 2 /* Valeurs extremes */
);
......@@ -234,14 +251,14 @@ static PARAM_CFG_INT AfficheTextePcbCfg // PCB Texts: fill/line/sketch
static PARAM_CFG_BOOL SegmPcb45Cfg // Force 45 degrees for segments
(
wxT( "SgPcb45" ), /* Keyword */
& Segments_45_Only, /* Parameter address */
&Segments_45_Only, /* Parameter address */
TRUE /* Default value */
);
static PARAM_CFG_INT TextePcbDimVCfg
(
wxT( "TxtPcbV" ), /* Keyword */
& g_DesignSettings.m_PcbTextSize.y, /* Parameter address */
&g_DesignSettings.m_PcbTextSize.y, /* Parameter address */
600, /* Default value */
10, 2000 /* Valeurs extremes */
);
......@@ -249,7 +266,7 @@ static PARAM_CFG_INT TextePcbDimVCfg
static PARAM_CFG_INT TextePcbDimHCfg
(
wxT( "TxtPcbH" ), /* Keyword */
& g_DesignSettings.m_PcbTextSize.x, /* Parameter address */
&g_DesignSettings.m_PcbTextSize.x, /* Parameter address */
600, /* Default value */
10, 2000 /* Valeurs extremes */
);
......@@ -258,7 +275,7 @@ static PARAM_CFG_SETCOLOR ColorLayer0Cfg // CU Layer Color
(
INSETUP,
wxT( "ColLay0" ), /* Keyword */
& g_DesignSettings.m_LayerColor[0], /* Parameter address */
&g_DesignSettings.m_LayerColor[0], /* Parameter address */
GREEN /* Default value */
);
......@@ -266,7 +283,7 @@ static PARAM_CFG_SETCOLOR ColorLayer1Cfg
(
INSETUP,
wxT( "ColLay1" ), /* Keyword */
& g_DesignSettings.m_LayerColor[1], /* Parameter address */
&g_DesignSettings.m_LayerColor[1], /* Parameter address */
BLUE /* Default value */
);
......@@ -274,7 +291,7 @@ static PARAM_CFG_SETCOLOR ColorLayer2Cfg
(
INSETUP,
wxT( "ColLay2" ), /* Keyword */
& g_DesignSettings.m_LayerColor[2], /* Parameter address */
&g_DesignSettings.m_LayerColor[2], /* Parameter address */
LIGHTGRAY /* Default value */
);
......@@ -282,7 +299,7 @@ static PARAM_CFG_SETCOLOR ColorLayer3Cfg
(
INSETUP,
wxT( "ColLay3" ), /* Keyword */
& g_DesignSettings.m_LayerColor[3], /* Parameter address */
&g_DesignSettings.m_LayerColor[3], /* Parameter address */
5 /* Default value */
);
......@@ -290,7 +307,7 @@ static PARAM_CFG_SETCOLOR ColorLayer4Cfg
(
INSETUP,
wxT( "ColLay4" ), /* Keyword */
& g_DesignSettings.m_LayerColor[4], /* Parameter address */
&g_DesignSettings.m_LayerColor[4], /* Parameter address */
4 /* Default value */
);
......@@ -298,7 +315,7 @@ static PARAM_CFG_SETCOLOR ColorLayer5Cfg
(
INSETUP,
wxT( "ColLay5" ), /* Keyword */
& g_DesignSettings.m_LayerColor[5], /* Parameter address */
&g_DesignSettings.m_LayerColor[5], /* Parameter address */
5 /* Default value */
);
......@@ -306,7 +323,7 @@ static PARAM_CFG_SETCOLOR ColorLayer6Cfg
(
INSETUP,
wxT( "ColLay6" ), /* Keyword */
& g_DesignSettings.m_LayerColor[6], /* Parameter address */
&g_DesignSettings.m_LayerColor[6], /* Parameter address */
6 /* Default value */
);
......@@ -314,7 +331,7 @@ static PARAM_CFG_SETCOLOR ColorLayer7Cfg
(
INSETUP,
wxT( "ColLay7" ), /* Keyword */
& g_DesignSettings.m_LayerColor[7], /* Parameter address */
&g_DesignSettings.m_LayerColor[7], /* Parameter address */
5 /* Default value */
);
......@@ -322,7 +339,7 @@ static PARAM_CFG_SETCOLOR ColorLayer8Cfg
(
INSETUP,
wxT( "ColLay8" ), /* Keyword */
& g_DesignSettings.m_LayerColor[8], /* Parameter address */
&g_DesignSettings.m_LayerColor[8], /* Parameter address */
7 /* Default value */
);
......@@ -330,7 +347,7 @@ static PARAM_CFG_SETCOLOR ColorLayer9Cfg
(
INSETUP,
wxT( "ColLay9" ), /* Keyword */
& g_DesignSettings.m_LayerColor[9], /* Parameter address */
&g_DesignSettings.m_LayerColor[9], /* Parameter address */
1 /* Default value */
);
......@@ -338,7 +355,7 @@ static PARAM_CFG_SETCOLOR ColorLayer10Cfg
(
INSETUP,
wxT( "ColLayA" ), /* Keyword */
& g_DesignSettings.m_LayerColor[10], /* Parameter address */
&g_DesignSettings.m_LayerColor[10], /* Parameter address */
2 /* Default value */
);
......@@ -346,7 +363,7 @@ static PARAM_CFG_SETCOLOR ColorLayer11Cfg
(
INSETUP,
wxT( "ColLayB" ), /* Keyword */
& g_DesignSettings.m_LayerColor[11], /* Parameter address */
&g_DesignSettings.m_LayerColor[11], /* Parameter address */
3 /* Default value */
);
......@@ -354,7 +371,7 @@ static PARAM_CFG_SETCOLOR ColorLayer12Cfg
(
INSETUP,
wxT( "ColLayC" ), /* Keyword */
& g_DesignSettings.m_LayerColor[12], /* Parameter address */
&g_DesignSettings.m_LayerColor[12], /* Parameter address */
12 /* Default value */
);
......@@ -362,7 +379,7 @@ static PARAM_CFG_SETCOLOR ColorLayer13Cfg
(
INSETUP,
wxT( "ColLayD" ), /* Keyword */
& g_DesignSettings.m_LayerColor[13], /* Parameter address */
&g_DesignSettings.m_LayerColor[13], /* Parameter address */
13 /* Default value */
);
......@@ -370,7 +387,7 @@ static PARAM_CFG_SETCOLOR ColorLayer14Cfg
(
INSETUP,
wxT( "ColLayE" ), /* Keyword */
& g_DesignSettings.m_LayerColor[14], /* Parameter address */
&g_DesignSettings.m_LayerColor[14], /* Parameter address */
14 /* Default value */
);
......@@ -378,7 +395,7 @@ static PARAM_CFG_SETCOLOR ColorLayer15Cfg // CMP Layer Color
(
INSETUP,
wxT( "ColLayF" ), /* Keyword */
& g_DesignSettings.m_LayerColor[15], /* Parameter address */
&g_DesignSettings.m_LayerColor[15], /* Parameter address */
RED /* Default value */
);
......@@ -386,7 +403,7 @@ static PARAM_CFG_SETCOLOR ColorLayer16Cfg // Adhesive CU Layer Color
(
INSETUP,
wxT( "ColLayG" ), /* Keyword */
& g_DesignSettings.m_LayerColor[16], /* Parameter address */
&g_DesignSettings.m_LayerColor[16], /* Parameter address */
1 /* Default value */
);
......@@ -394,7 +411,7 @@ static PARAM_CFG_SETCOLOR ColorLayer17Cfg // Adhesive CMP Layer Color
(
INSETUP,
wxT( "ColLayH" ), /* Keyword */
& g_DesignSettings.m_LayerColor[17], /* Parameter address */
&g_DesignSettings.m_LayerColor[17], /* Parameter address */
5 /* Default value */
);
......@@ -402,7 +419,7 @@ static PARAM_CFG_SETCOLOR ColorLayer18Cfg // Solder Mask CU Layer Color
(
INSETUP,
wxT( "ColLayI" ), /* Keyword */
& g_DesignSettings.m_LayerColor[18], /* Parameter address */
&g_DesignSettings.m_LayerColor[18], /* Parameter address */
11 /* Default value */
);
......@@ -410,7 +427,7 @@ static PARAM_CFG_SETCOLOR ColorLayer19Cfg // Solder Mask CMP Layer Color
(
INSETUP,
wxT( "ColLayJ" ), /* Keyword */
& g_DesignSettings.m_LayerColor[19], /* Parameter address */
&g_DesignSettings.m_LayerColor[19], /* Parameter address */
4 /* Default value */
);
......@@ -418,7 +435,7 @@ static PARAM_CFG_SETCOLOR ColorLayer20Cfg // Silk Screen CU Layer Color
(
INSETUP,
wxT( "ColLayK" ), /* Keyword */
& g_DesignSettings.m_LayerColor[20], /* Parameter address */
&g_DesignSettings.m_LayerColor[20], /* Parameter address */
5 /* Default value */
);
......@@ -426,7 +443,7 @@ static PARAM_CFG_SETCOLOR ColorLayer21Cfg // Silk Screen CMP Layer Color
(
INSETUP,
wxT( "ColLayL" ), /* Keyword */
& g_DesignSettings.m_LayerColor[21], /* Parameter address */
&g_DesignSettings.m_LayerColor[21], /* Parameter address */
3 /* Default value */
);
......@@ -434,7 +451,7 @@ static PARAM_CFG_SETCOLOR ColorLayer22Cfg // Mask CU Layer Color
(
INSETUP,
wxT( "ColLayM" ), /* Keyword */
& g_DesignSettings.m_LayerColor[22], /* Parameter address */
&g_DesignSettings.m_LayerColor[22], /* Parameter address */
6 /* Default value */
);
......@@ -442,7 +459,7 @@ static PARAM_CFG_SETCOLOR ColorLayer23Cfg // Mask CMP Layer Color
(
INSETUP,
wxT( "ColLayN" ), /* Keyword */
& g_DesignSettings.m_LayerColor[23], /* Parameter address */
&g_DesignSettings.m_LayerColor[23], /* Parameter address */
5 /* Default value */
);
......@@ -450,7 +467,7 @@ static PARAM_CFG_SETCOLOR ColorLayer24Cfg // DRAW Layer Color
(
INSETUP,
wxT( "ColLayO" ), /* Keyword */
& g_DesignSettings.m_LayerColor[24], /* Parameter address */
&g_DesignSettings.m_LayerColor[24], /* Parameter address */
LIGHTGRAY /* Default value */
);
......@@ -458,7 +475,7 @@ static PARAM_CFG_SETCOLOR ColorLayer25Cfg // Comment Layer Color
(
INSETUP,
wxT( "ColLayP" ), /* Keyword */
& g_DesignSettings.m_LayerColor[25], /* Parameter address */
&g_DesignSettings.m_LayerColor[25], /* Parameter address */
1 /* Default value */
);
......@@ -466,7 +483,7 @@ static PARAM_CFG_SETCOLOR ColorLayer26Cfg // ECO1 Layer Color
(
INSETUP,
wxT( "ColLayQ" ), /* Keyword */
& g_DesignSettings.m_LayerColor[26], /* Parameter address */
&g_DesignSettings.m_LayerColor[26], /* Parameter address */
2 /* Default value */
);
......@@ -474,7 +491,7 @@ static PARAM_CFG_SETCOLOR ColorLayer27Cfg //ECO2 Layer Color
(
INSETUP,
wxT( "ColLayR" ), /* Keyword */
& g_DesignSettings.m_LayerColor[27], /* Parameter address */
&g_DesignSettings.m_LayerColor[27], /* Parameter address */
14 /* Default value */
);
......@@ -482,7 +499,7 @@ static PARAM_CFG_SETCOLOR ColorLayer28Cfg // EDGES Layer Color
(
INSETUP,
wxT( "ColLayS" ), /* Keyword */
& g_DesignSettings.m_LayerColor[28], /* Parameter address */
&g_DesignSettings.m_LayerColor[28], /* Parameter address */
YELLOW /* Default value */
);
......@@ -490,7 +507,7 @@ static PARAM_CFG_SETCOLOR ColorLayer29Cfg
(
INSETUP,
wxT( "ColLayT" ), /* Keyword */
& g_DesignSettings.m_LayerColor[29], /* Parameter address */
&g_DesignSettings.m_LayerColor[29], /* Parameter address */
13 /* Default value */
);
......@@ -498,7 +515,7 @@ static PARAM_CFG_SETCOLOR ColorLayer30Cfg
(
INSETUP,
wxT( "ColLayU" ), /* Keyword */
& g_DesignSettings.m_LayerColor[30], /* Parameter address */
&g_DesignSettings.m_LayerColor[30], /* Parameter address */
14 /* Default value */
);
......@@ -506,7 +523,7 @@ static PARAM_CFG_SETCOLOR ColorLayer31Cfg
(
INSETUP,
wxT( "ColLayV" ), /* Keyword */
& g_DesignSettings.m_LayerColor[31], /* Parameter address */
&g_DesignSettings.m_LayerColor[31], /* Parameter address */
7 /* Default value */
);
......@@ -514,7 +531,7 @@ static PARAM_CFG_SETCOLOR ColorTxtModCmpCfg
(
INSETUP,
wxT( "CTxtMoC" ), /* Keyword */
& g_ModuleTextCMPColor, /* Parameter address */
&g_ModuleTextCMPColor, /* Parameter address */
LIGHTGRAY /* Default value */
);
......@@ -522,7 +539,7 @@ static PARAM_CFG_SETCOLOR ColorTxtModCuCfg
(
INSETUP,
wxT( "CTxtMoS" ), /* Keyword */
& g_ModuleTextCUColor, /* Parameter address */
&g_ModuleTextCUColor, /* Parameter address */
1 /* Default value */
);
......@@ -530,14 +547,14 @@ static PARAM_CFG_SETCOLOR VisibleTxtModCfg
(
INSETUP,
wxT( "CTxtVis" ), /* Keyword */
& g_ModuleTextNOVColor, /* Parameter address */
&g_ModuleTextNOVColor, /* Parameter address */
DARKGRAY /* Default value */
);
static PARAM_CFG_INT TexteModDimVCfg
(
wxT( "TxtModV" ), /* Keyword */
& ModuleTextSize.y, /* Parameter address */
&ModuleTextSize.y, /* Parameter address */
500, /* Default value */
1, 20000 /* Valeurs extremes */
);
......@@ -545,7 +562,7 @@ static PARAM_CFG_INT TexteModDimVCfg
static PARAM_CFG_INT TexteModDimHCfg
(
wxT( "TxtModH" ), /* Keyword */
& ModuleTextSize.x, /* Parameter address */
&ModuleTextSize.x, /* Parameter address */
500, /* Default value */
1, 20000 /* Valeurs extremes */
);
......@@ -553,7 +570,7 @@ static PARAM_CFG_INT TexteModDimHCfg
static PARAM_CFG_INT TexteModWidthCfg
(
wxT( "TxtModW" ), /* Keyword */
& ModuleTextWidth, /* Parameter address */
&ModuleTextWidth, /* Parameter address */
100, /* Default value */
1, 10000 /* Valeurs extremes */
);
......@@ -562,7 +579,7 @@ static PARAM_CFG_SETCOLOR ColorAncreModCfg
(
INSETUP,
wxT( "CAncreM" ), /* Keyword */
& g_AnchorColor, /* Parameter address */
&g_AnchorColor, /* Parameter address */
BLUE /* Default value */
);
......@@ -570,7 +587,7 @@ static PARAM_CFG_SETCOLOR ColorPadCuCfg
(
INSETUP,
wxT( "CoPadCu" ), /* Keyword */
& g_PadCUColor, /* Parameter address */
&g_PadCUColor, /* Parameter address */
GREEN /* Default value */
);
......@@ -578,39 +595,39 @@ static PARAM_CFG_SETCOLOR ColorPadCmpCfg
(
INSETUP,
wxT( "CoPadCm" ), /* Keyword */
& g_PadCMPColor, /* Parameter address */
&g_PadCMPColor, /* Parameter address */
RED /* Default value */
);
static PARAM_CFG_SETCOLOR ColorViaNormCfg
static PARAM_CFG_SETCOLOR ColorViaThroughCfg
(
INSETUP,
wxT( "CoViaNo" ), /* Keyword */
& g_DesignSettings.m_ViaColor[VIA_THROUGH], /* Parameter address */
wxT( "CoViaTh" ), /* Keyword */
&g_DesignSettings.m_ViaColor[VIA_THROUGH], /* Parameter address */
LIGHTGRAY /* Default value */
);
static PARAM_CFG_SETCOLOR ColorViaborgneCfg
static PARAM_CFG_SETCOLOR ColorViaBlindBuriedCfg
(
INSETUP,
wxT( "CoViaBo" ), /* Keyword */
& g_DesignSettings.m_ViaColor[VIA_BURIED], /* Parameter address */
CYAN /* Default value */
wxT( "CoViaBu" ), /* Keyword */
&g_DesignSettings.m_ViaColor[VIA_BLIND_BURIED], /* Parameter address */
BROWN /* Default value */
);
static PARAM_CFG_SETCOLOR ColorViaEnterreeCfg // Buried Via Color
static PARAM_CFG_SETCOLOR ColorViaMicroViaCfg // Buried Via Color
(
INSETUP,
wxT( "CoViaEn" ), /* Keyword */
& g_DesignSettings.m_ViaColor[VIA_BLIND], /* Parameter address */
BROWN /* Default value */
wxT( "CoViaMi" ), /* Keyword */
&g_DesignSettings.m_ViaColor[VIA_MICROVIA], /* Parameter address */
CYAN /* Default value */
);
static PARAM_CFG_SETCOLOR ColorpcbGrilleCfg
(
INSETUP,
wxT( "CoPcbGr" ), /* Keyword */
& g_GridColor, /* Parameter address */
&g_GridColor, /* Parameter address */
DARKGRAY /* Default value */
);
......@@ -618,14 +635,14 @@ static PARAM_CFG_SETCOLOR ColorCheveluCfg
(
INSETUP,
wxT( "CoRatsN" ), /* Keyword */
& g_DesignSettings.m_RatsnestColor, /* Parameter address */
&g_DesignSettings.m_RatsnestColor, /* Parameter address */
WHITE /* Default value */
);
static PARAM_CFG_INT HPGLpenNumCfg
(
wxT( "HPGLnum" ), /* Keyword */
& g_HPGL_Pen_Num, /* Parameter address */
&g_HPGL_Pen_Num, /* Parameter address */
1, /* Default value */
1, 16 /* Valeurs extremes */
);
......@@ -633,7 +650,7 @@ static PARAM_CFG_INT HPGLpenNumCfg
static PARAM_CFG_INT HPGLdiamCfg // HPGL pen size (mils)
(
wxT( "HPGdiam" ), /* Keyword */
& g_HPGL_Pen_Diam, /* Parameter address */
&g_HPGL_Pen_Diam, /* Parameter address */
15, /* Default value */
0, 100 /* Valeurs extremes */
);
......@@ -641,7 +658,7 @@ static PARAM_CFG_INT HPGLdiamCfg // HPGL pen size (mils)
static PARAM_CFG_INT HPGLspeedCfg //HPGL pen speed (cm/s)
(
wxT( "HPGLSpd" ), /* Keyword */
& g_HPGL_Pen_Speed, /* Parameter address */
&g_HPGL_Pen_Speed, /* Parameter address */
20, /* Default value */
0, 1000 /* Valeurs extremes */
);
......@@ -649,7 +666,7 @@ static PARAM_CFG_INT HPGLspeedCfg //HPGL pen speed (cm/s)
static PARAM_CFG_INT HPGLrecouvrementCfg
(
wxT( "HPGLrec" ), /* Keyword */
& g_HPGL_Pen_Recouvrement, /* Parameter address */
&g_HPGL_Pen_Recouvrement, /* Parameter address */
2, /* Default value */
0, 0x100 /* Valeurs extremes */
);
......@@ -657,14 +674,14 @@ static PARAM_CFG_INT HPGLrecouvrementCfg
static PARAM_CFG_BOOL HPGLcenterCfg //HPGL Org Coord ( 0 normal, 1 Centre)
(
wxT( "HPGLorg" ), /* Keyword */
& HPGL_Org_Centre, /* Parameter address */
&HPGL_Org_Centre, /* Parameter address */
FALSE /* Default value */
);
static PARAM_CFG_INT GERBERSpotMiniCfg //Aperture Mini (mils)
(
wxT( "GERBmin" ), /* Keyword */
& spot_mini, /* Parameter address */
&spot_mini, /* Parameter address */
15, /* Default value */
1, 100 /* Valeurs extremes */
);
......@@ -672,7 +689,7 @@ static PARAM_CFG_INT GERBERSpotMiniCfg //Aperture Mini (mils)
static PARAM_CFG_INT VernisEpargneGardeCfg
(
wxT( "VEgarde" ), /* Keyword */
& g_DesignSettings.m_MaskMargin, /* Parameter address */
&g_DesignSettings.m_MaskMargin, /* Parameter address */
100, /* Default value */
0, 0xFFFF /* Valeurs extremes */
);
......@@ -680,7 +697,7 @@ static PARAM_CFG_INT VernisEpargneGardeCfg
static PARAM_CFG_INT DrawSegmLargeurCfg
(
wxT( "DrawLar" ), /* Keyword */
& g_DesignSettings.m_DrawSegmentWidth, /* Parameter address */
&g_DesignSettings.m_DrawSegmentWidth, /* Parameter address */
120, /* Default value */
0, 0xFFFF /* Valeurs extremes */
);
......@@ -688,7 +705,7 @@ static PARAM_CFG_INT DrawSegmLargeurCfg
static PARAM_CFG_INT EdgeSegmLargeurCfg
(
wxT( "EdgeLar" ), /* Keyword */
& g_DesignSettings.m_EdgeSegmentWidth, /* Parameter address */
&g_DesignSettings.m_EdgeSegmentWidth, /* Parameter address */
120, /* Default value */
0, 0xFFFF /* Valeurs extremes */
);
......@@ -696,7 +713,7 @@ static PARAM_CFG_INT EdgeSegmLargeurCfg
static PARAM_CFG_INT TexteSegmLargeurCfg
(
wxT( "TxtLar" ), /* Keyword */
& g_DesignSettings.m_PcbTextWidth, /* Parameter address */
&g_DesignSettings.m_PcbTextWidth, /* Parameter address */
120, /* Default value */
0, 0xFFFF /* Valeurs extremes */
);
......@@ -704,7 +721,7 @@ static PARAM_CFG_INT TexteSegmLargeurCfg
static PARAM_CFG_INT ModuleSegmWidthCfg
(
wxT( "MSegLar" ), /* Keyword */
& ModuleSegmentWidth, /* Parameter address */
&ModuleSegmentWidth, /* Parameter address */
120, /* Default value */
0, 0xFFFF /* Valeurs extremes */
);
......@@ -712,7 +729,7 @@ static PARAM_CFG_INT ModuleSegmWidthCfg
static PARAM_CFG_INT FormatPlotCfg
(
wxT( "ForPlot" ), /* Keyword */
& format_plot, /* Parameter address */
&format_plot, /* Parameter address */
1, /* Default value */
0, 3 /* Valeurs extremes */
);
......@@ -720,7 +737,7 @@ static PARAM_CFG_INT FormatPlotCfg
static PARAM_CFG_INT WTraitSerigraphiePlotCfg
(
wxT( "WpenSer" ), /* Keyword */
& g_PlotLine_Width, /* Parameter address */
&g_PlotLine_Width, /* Parameter address */
10, /* Default value */
1, 10000 /* Valeurs extremes */
);
......@@ -728,7 +745,7 @@ static PARAM_CFG_INT WTraitSerigraphiePlotCfg
static PARAM_CFG_DOUBLE UserGrilleXCfg
(
wxT( "UserGrX" ), /* Keyword */
& g_UserGrid.x, /* Parameter address */
&g_UserGrid.x, /* Parameter address */
0.01, /* Default value */
0.0001, 100.0 /* Valeurs extremes (inches)*/
);
......@@ -736,7 +753,7 @@ static PARAM_CFG_DOUBLE UserGrilleXCfg
static PARAM_CFG_DOUBLE UserGrilleYCfg
(
wxT( "UserGrY" ), /* Keyword */
& g_UserGrid.y, /* Parameter address */
&g_UserGrid.y, /* Parameter address */
0.01, /* Default value */
0.0001, 100.0 /* Valeurs extremes (inches)*/
);
......@@ -744,7 +761,7 @@ static PARAM_CFG_DOUBLE UserGrilleYCfg
static PARAM_CFG_INT UserGrilleUnitCfg
(
wxT( "UserGrU" ), /* Keyword */
& g_UserGrid_Unit, /* Parameter address */
&g_UserGrid_Unit, /* Parameter address */
1, /* Default value */
0, 1 /* Valeurs extremes */
);
......@@ -752,7 +769,7 @@ static PARAM_CFG_INT UserGrilleUnitCfg
static PARAM_CFG_INT DivGrillePcbCfg
(
wxT( "DivGrPc" ), /* Keyword */
& Pcbdiv_grille, /* Parameter address */
&Pcbdiv_grille, /* Parameter address */
1, /* Default value */
1, 10 /* Valeurs extremes */
);
......@@ -760,7 +777,7 @@ static PARAM_CFG_INT DivGrillePcbCfg
static PARAM_CFG_INT TimeOutCfg //Duree entre Sauvegardes auto en secondes
(
wxT( "TimeOut" ), /* Keyword */
& g_TimeOut, /* Parameter address */
&g_TimeOut, /* Parameter address */
600, /* Default value */
0, 60000 /* Valeurs extremes */
);
......@@ -769,7 +786,7 @@ static PARAM_CFG_BOOL DisplPolairCfg
(
INSETUP,
wxT( "DPolair" ), /* Keyword */
& DisplayOpt.DisplayPolarCood, /* Parameter address */
&DisplayOpt.DisplayPolarCood, /* Parameter address */
FALSE /* Default value */
);
......@@ -777,7 +794,7 @@ static PARAM_CFG_INT CursorShapeCfg
(
INSETUP,
wxT( "CuShape" ), /* Keyword */
& g_CursorShape, /* Parameter address */
&g_CursorShape, /* Parameter address */
0, /* Default value */
0, 1 /* Valeurs extremes */
);
......@@ -785,7 +802,7 @@ static PARAM_CFG_INT CursorShapeCfg
static PARAM_CFG_INT PrmMaxLinksShowed
(
wxT( "MaxLnkS" ), /* Keyword */
& g_MaxLinksShowed, /* Parameter address */
&g_MaxLinksShowed, /* Parameter address */
3, /* Default value */
0, 15 /* Valeurs extremes */
);
......@@ -793,14 +810,14 @@ static PARAM_CFG_INT PrmMaxLinksShowed
static PARAM_CFG_BOOL ShowRatsnestCfg
(
wxT( "ShowRat" ), /* Keyword */
& g_Show_Ratsnest, /* Parameter address */
&g_Show_Ratsnest, /* Parameter address */
FALSE /* Default value */
);
static PARAM_CFG_BOOL ShowModuleRatsnestCfg
(
wxT( "ShowMRa" ), /* Keyword */
& g_Show_Module_Ratsnest, /* Parameter address */
&g_Show_Module_Ratsnest, /* Parameter address */
TRUE /* Default value */
);
......@@ -808,7 +825,7 @@ static PARAM_CFG_BOOL TwoSegmentTrackBuildCfg
(
INSETUP,
wxT( "TwoSegT" ), /* Keyword */
& g_TwoSegmentTrackBuild, /* Parameter address */
&g_TwoSegmentTrackBuild, /* Parameter address */
TRUE /* Default value */
);
......@@ -823,6 +840,8 @@ PARAM_CFG_BASE* ParamCfgList[] =
&PadMasqueLayerCfg,
&ViaDiametreCfg,
&ViaDrillCfg,
&MicroViaDiametreCfg,
&MicroViaDrillCfg,
&ViaShowHoleCfg,
&TrackClearenceCfg,
&LayerCountCfg,
......@@ -886,9 +905,9 @@ PARAM_CFG_BASE* ParamCfgList[] =
&ColorAncreModCfg,
&ColorPadCuCfg,
&ColorPadCmpCfg,
&ColorViaNormCfg,
&ColorViaborgneCfg,
&ColorViaEnterreeCfg,
&ColorViaThroughCfg,
&ColorViaBlindBuriedCfg,
&ColorViaMicroViaCfg,
&ColorpcbGrilleCfg,
&ColorCheveluCfg,
&HPGLpenNumCfg,
......
......@@ -109,7 +109,7 @@ eda_global bool Drc_On
#endif
;
eda_global bool g_AutoDeleteOldTrack /* Allows automatic deletion of the old track after
creation of a new track */
* creation of a new track */
#ifdef MAIN
= TRUE
#endif
......@@ -157,9 +157,9 @@ bool inline IsModuleLayerVisible( int layer ) {
eda_global bool Track_45_Only; /* Flag pour limiter l'inclinaison
* pistes a 45 degres seulement */
eda_global bool Segments_45_Only;/* Flag pour limiter l'inclinaison
eda_global bool Segments_45_Only; /* Flag pour limiter l'inclinaison
* edge pcb a 45 degres seulement */
eda_global wxString PcbExtBuffer // Board file extension
eda_global wxString PcbExtBuffer // Board file extension
#ifdef MAIN
( wxT( ".brd" ) )
#endif
......@@ -169,13 +169,13 @@ eda_global wxString g_SaveFileName // File Name for periodic saving
( wxT( "$savepcb" ) )
#endif
;
eda_global wxString NetNameBuffer; // Netlist file extension
eda_global wxString NetNameBuffer; // Netlist file extension
eda_global wxString NetExtBuffer
#ifdef MAIN
( wxT( ".net" ) )
#endif
;
eda_global wxString NetCmpExtBuffer // cmp/footprint association file extension
eda_global wxString NetCmpExtBuffer // cmp/footprint association file extension
#ifdef MAIN
( wxT( ".cmp" ) )
#endif
......@@ -187,7 +187,7 @@ eda_global wxString LibExtBuffer
( wxT( ".mod" ) )
#endif
;
eda_global wxString g_Shapes3DExtBuffer //3D shape file extension
eda_global wxString g_Shapes3DExtBuffer //3D shape file extension
#ifdef MAIN
( wxT( ".wrl" ) )
#endif
......@@ -237,7 +237,7 @@ eda_global class EDA_BoardDesignSettings g_DesignSettings;
// Default values for pad editions
#ifndef GERBVIEW
#ifdef MAIN
D_PAD g_Pad_Master( (MODULE*) NULL );
D_PAD g_Pad_Master( (MODULE*) NULL );
#else
extern D_PAD g_Pad_Master;
......@@ -285,10 +285,10 @@ eda_global int g_TrackSegmentCount; // New created segment count
eda_global wxString g_ViaType_Name[4]
#if defined MAIN
= {
wxT( "???" ), // Unused
_( "Blind Via" ), // from inner layer to external layer (TOP or BOTTOM)
_( "Buried Via" ), // from inner to inner layer
_( "Standard Via" ) // Usual via (from TOP to BOTTOM layer)
_( "??? Via" ), // Not used yet
_( "Micro Via" ), // from external layer (TOP or BOTTOM) from the near neightbour inner layer only
_( "Blind/Buried Via" ), // from inner or external to inner or external layer (no restriction)
_( "Through Via" ) // Usual via (from TOP to BOTTOM layer only )
}
......
......@@ -464,12 +464,8 @@ static void PrintDrillMark( BOARD* Pcb )
if( g_DrillShapeOpt == DRILL_MARK )
diam.x = diam.y = SMALL_DRILL;
else
{
if( pts->m_Drill < 0 )
diam.x = diam.y = g_DesignSettings.m_ViaDrill;
else
diam.x = diam.y = pts->m_Drill;
}
diam.x = diam.y = pts->GetDrillValue();
trace_1_pastille_RONDE_POST( pos, diam.x, FILLED );
}
......
......@@ -606,7 +606,7 @@ void WinEDA_PcbFrame::ReadAutoroutedTracks( wxDC* DC )
if( NewVia->GetLayer() == 0x0F || NewVia->GetLayer() == 0xF0 )
NewVia->m_Shape = VIA_THROUGH;
else
NewVia->m_Shape = VIA_BURIED;
NewVia->m_Shape = VIA_BLIND_BURIED;
NewVia->Insert( m_Pcb, NULL );
NbTrack++;
......
......@@ -336,19 +336,19 @@ static ColorButton VIA_THROUGH_Butt =
TRUE // Toggle ITEM_NOT_SHOW bit of the color variable
};
static ColorButton Via_Aveugle_Butt =
static ColorButton VIA_BLIND_BURIED_Butt =
{
wxT( "*" ),
VIA_BLIND, // Layer
&g_DesignSettings.m_ViaColor[VIA_BLIND], // Address of optional parameter
VIA_BLIND_BURIED, // Layer
&g_DesignSettings.m_ViaColor[VIA_BLIND_BURIED], // Address of optional parameter
TRUE // Toggle ITEM_NOT_SHOW bit of the color variable
};
static ColorButton BLIND_VIA_Butt =
static ColorButton MICRO_VIA_Butt =
{
wxT( "*" ),
VIA_BURIED, // Layer
&g_DesignSettings.m_ViaColor[VIA_BURIED], // Address of optional parameter
VIA_MICROVIA, // Layer
&g_DesignSettings.m_ViaColor[VIA_MICROVIA], // Address of optional parameter
TRUE // Toggle ITEM_NOT_SHOW bit of the color variable
};
......@@ -491,8 +491,8 @@ static ColorButton* laytool_list[] = {
// &Layer_32_Butt,
&VIA_THROUGH_Butt,
&Via_Aveugle_Butt,
&BLIND_VIA_Butt,
&VIA_BLIND_BURIED_Butt,
&MICRO_VIA_Butt,
&Ratsnest_Butt,
&Pad_Cu_Butt,
&Pad_Cmp_Butt,
......
/**********************************************/
/* vi_edit.cpp: som editing function for vias */
/**********************************************/
/**********************************************/
/* vi_edit.cpp: som editing function for vias */
/**********************************************/
#include "fctsys.h"
#include "gr_basic.h"
......@@ -12,93 +12,102 @@
/**********************************************************************************/
void WinEDA_PcbFrame::Via_Edit_Control(wxDC * DC, int command_type, SEGVIA * via)
void WinEDA_PcbFrame::Via_Edit_Control( wxDC* DC, int command_type, SEGVIA* via )
/**********************************************************************************/
/*
Execute edit commands relative to vias
*/
* Execute edit commands relative to vias
*/
{
int ii;
TRACK * via_struct ;
switch ( command_type )
{
case ID_POPUP_PCB_SELECT_VIASIZE1:
case ID_POPUP_PCB_SELECT_VIASIZE2:
case ID_POPUP_PCB_SELECT_VIASIZE3:
case ID_POPUP_PCB_SELECT_VIASIZE4:
case ID_POPUP_PCB_SELECT_VIASIZE5:
case ID_POPUP_PCB_SELECT_VIASIZE6:
case ID_POPUP_PCB_SELECT_VIASIZE7:
case ID_POPUP_PCB_SELECT_VIASIZE8: // selec the new current value for via size (via diameter)
DrawPanel->MouseToCursorSchema();
ii = command_type - ID_POPUP_PCB_SELECT_VIASIZE1;
g_DesignSettings.m_CurrentViaSize = g_DesignSettings.m_ViaSizeHistory[ii];
DisplayTrackSettings();
break;
case ID_POPUP_PCB_VIA_HOLE_ENTER_VALUE: // Enter a new alternate value for drill via
InstallPcbOptionsFrame(wxDefaultPosition, DC, ID_PCB_TRACK_SIZE_SETUP);
DrawPanel->MouseToCursorSchema();
case ID_POPUP_PCB_VIA_HOLE_TO_VALUE: // Set the drill via to custom
if ( (g_ViaHoleLastValue > 0) && (g_ViaHoleLastValue < via->m_Width) )
{
via->Draw(DrawPanel, DC, GR_XOR);
via->m_Drill = g_ViaHoleLastValue;
via->Draw(DrawPanel, DC, GR_OR);
GetScreen()->SetModify();
}
else DisplayError(this, _("Incorrect value for Via drill. No via drill change"));
break;
case ID_POPUP_PCB_VIA_HOLE_EXPORT: // Export the current drill value as the new custom value
if ( via->m_Drill > 0 ) g_ViaHoleLastValue = via->m_Drill;
break;
case ID_POPUP_PCB_VIA_HOLE_EXPORT_TO_OTHERS:// Export the current drill value to via which have the same size
if ( via->m_Drill > 0 ) g_ViaHoleLastValue = via->m_Drill;
via_struct = m_Pcb->m_Track ;
for ( ; via_struct != NULL; via_struct = (TRACK*) via_struct->Pnext )
{
if( via_struct->Type() == TYPEVIA ) /* mise a jour du diametre de la via */
{
if ( via_struct->m_Width != via->m_Width ) continue;
via_struct->Draw(DrawPanel, DC, GR_XOR);
via_struct->m_Drill = via->m_Drill;
via_struct->Draw(DrawPanel, DC, GR_OR);
}
}
GetScreen()->SetModify();
break;
case ID_POPUP_PCB_VIA_HOLE_TO_DEFAULT:
via->Draw(DrawPanel, DC, GR_XOR);
via->m_Drill = -1;
via->Draw(DrawPanel, DC, GR_OR);
GetScreen()->SetModify();
break;
case ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT: // Reset all via hole to default value
via_struct = m_Pcb->m_Track ;
for ( ; via_struct != NULL; via_struct = (TRACK*) via_struct->Pnext )
{
if( via_struct->Type() == TYPEVIA ) /* mise a jour du diametre de la via */
{
if( via_struct->m_Drill != -1 )
{
via_struct->Draw(DrawPanel, DC, GR_XOR);
via_struct->m_Drill = -1;
via_struct->Draw(DrawPanel, DC, GR_OR);
}
}
}
GetScreen()->SetModify();
break;
default:
DisplayError( this, wxT("WinEDA_PcbFrame::Via_Edition() error: unknown command"));
break;
}
DrawPanel->MouseToCursorSchema();
int ii;
TRACK* via_struct;
switch( command_type )
{
case ID_POPUP_PCB_SELECT_VIASIZE1:
case ID_POPUP_PCB_SELECT_VIASIZE2:
case ID_POPUP_PCB_SELECT_VIASIZE3:
case ID_POPUP_PCB_SELECT_VIASIZE4:
case ID_POPUP_PCB_SELECT_VIASIZE5:
case ID_POPUP_PCB_SELECT_VIASIZE6:
case ID_POPUP_PCB_SELECT_VIASIZE7:
case ID_POPUP_PCB_SELECT_VIASIZE8: // selec the new current value for via size (via diameter)
DrawPanel->MouseToCursorSchema();
ii = command_type - ID_POPUP_PCB_SELECT_VIASIZE1;
g_DesignSettings.m_CurrentViaSize = g_DesignSettings.m_ViaSizeHistory[ii];
DisplayTrackSettings();
break;
case ID_POPUP_PCB_VIA_HOLE_ENTER_VALUE: // Enter a new alternate value for drill via
InstallPcbOptionsFrame( wxDefaultPosition, DC, ID_PCB_TRACK_SIZE_SETUP );
DrawPanel->MouseToCursorSchema();
case ID_POPUP_PCB_VIA_HOLE_TO_VALUE: // Set the drill via to custom
if( (g_ViaHoleLastValue > 0) && (g_ViaHoleLastValue < via->m_Width) )
{
via->Draw( DrawPanel, DC, GR_XOR );
via->SetDrillValue( g_ViaHoleLastValue );
via->Draw( DrawPanel, DC, GR_OR );
GetScreen()->SetModify();
}
else
DisplayError( this, _( "Incorrect value for Via drill. No via drill change" ) );
break;
case ID_POPUP_PCB_VIA_HOLE_EXPORT: // Export the current drill value as the new custom value
if( via->GetDrillValue() > 0 )
g_ViaHoleLastValue = via->GetDrillValue();
break;
case ID_POPUP_PCB_VIA_HOLE_EXPORT_TO_OTHERS: // Export the current drill value to via which have the same size
if( via->GetDrillValue() > 0 )
g_ViaHoleLastValue = via->GetDrillValue();
via_struct = m_Pcb->m_Track;
for( ; via_struct != NULL; via_struct = (TRACK*) via_struct->Pnext )
{
if( via_struct->Type() == TYPEVIA ) /* mise a jour du diametre de la via */
{
if( via_struct->m_Width != via->m_Width )
continue;
via_struct->Draw( DrawPanel, DC, GR_XOR );
via_struct->SetDrillValue( via->GetDrillValue() );
via_struct->Draw( DrawPanel, DC, GR_OR );
}
}
GetScreen()->SetModify();
break;
case ID_POPUP_PCB_VIA_HOLE_TO_DEFAULT:
via->Draw( DrawPanel, DC, GR_XOR );
via->SetDrillDefault();
via->Draw( DrawPanel, DC, GR_OR );
GetScreen()->SetModify();
break;
case ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT: // Reset all via hole to default value
via_struct = m_Pcb->m_Track;
for( ; via_struct != NULL; via_struct = (TRACK*) via_struct->Pnext )
{
if( via_struct->Type() == TYPEVIA ) /* mise a jour du diametre de la via */
{
if( via_struct->IsDrillDefault() )
{
via_struct->Draw( DrawPanel, DC, GR_XOR );
via_struct->SetDrillDefault();
via_struct->Draw( DrawPanel, DC, GR_OR );
}
}
}
GetScreen()->SetModify();
break;
default:
DisplayError( this, wxT( "WinEDA_PcbFrame::Via_Edition() error: unknown command" ) );
break;
}
DrawPanel->MouseToCursorSchema();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment