Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
ca5fd179
Commit
ca5fd179
authored
Oct 13, 2007
by
CHARRAS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ratsnest.cpp translated, onrightclick() bug solved.
parent
3cd47555
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1654 additions
and
1938 deletions
+1654
-1938
change_log.txt
change_log.txt
+9
-0
kicad.mo
internat/fr/kicad.mo
+0
-0
kicad.po
internat/fr/kicad.po
+1176
-1210
class_board_item.cpp
pcbnew/class_board_item.cpp
+12
-2
class_pad.cpp
pcbnew/class_pad.cpp
+1
-1
onrightclick.cpp
pcbnew/onrightclick.cpp
+20
-21
pcbpiste.cpp.notused
pcbnew/pcbpiste.cpp.notused
+0
-305
ratsnest.cpp
pcbnew/ratsnest.cpp
+436
-341
struct.cpp.notused
pcbnew/struct.cpp.notused
+0
-58
No files found.
change_log.txt
View file @
ca5fd179
...
@@ -4,6 +4,15 @@ Started 2007-June-11
...
@@ -4,6 +4,15 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
Please add newer entries at the top, list the date and your name with
email address.
email address.
2007-Oct-13 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew:
ratsnest.cpp translated into english.
Many infos on the LEE algorithm used here added.
todo (by myself): connect.cpp translation.
onrightclick() bug (created by last change) solved: one could reselect an item,
while moving a previously selected item (pcbnew crashes).
2007-Oct-13 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
2007-Oct-13 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
================================================================================
...
...
internat/fr/kicad.mo
View file @
ca5fd179
No preview for this file type
internat/fr/kicad.po
View file @
ca5fd179
...
@@ -2,7 +2,7 @@ msgid ""
...
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
msgstr ""
"Project-Id-Version: kicad\n"
"Project-Id-Version: kicad\n"
"POT-Creation-Date: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2007-10-
08 07:56
+0100\n"
"PO-Revision-Date: 2007-10-
12 09:04
+0100\n"
"Last-Translator: jp charras <jean-pierre.charras@inpg.fr>\n"
"Last-Translator: jp charras <jean-pierre.charras@inpg.fr>\n"
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
"MIME-Version: 1.0\n"
"MIME-Version: 1.0\n"
...
@@ -111,7 +111,6 @@ msgstr "Ajouter Pastilles"
...
@@ -111,7 +111,6 @@ msgstr "Ajouter Pastilles"
#: pcbnew/modedit.cpp:316
#: pcbnew/modedit.cpp:316
#: pcbnew/menubarpcb.cpp:209
#: pcbnew/menubarpcb.cpp:209
#: pcbnew/tool_modedit.cpp:133
#: pcbnew/tool_modedit.cpp:133
#: pcbnew/globaleditpad.cpp:96
#: pcbnew/menubarmodedit.cpp:45
#: pcbnew/menubarmodedit.cpp:45
msgid "Pad Settings"
msgid "Pad Settings"
msgstr "Caract pads"
msgstr "Caract pads"
...
@@ -127,7 +126,7 @@ msgid "Place anchor"
...
@@ -127,7 +126,7 @@ msgid "Place anchor"
msgstr "Place Ancre"
msgstr "Place Ancre"
#: pcbnew/modedit.cpp:344
#: pcbnew/modedit.cpp:344
#: pcbnew/edit.cpp:45
7
#: pcbnew/edit.cpp:45
9
#: eeschema/schedit.cpp:454
#: eeschema/schedit.cpp:454
#: eeschema/libframe.cpp:578
#: eeschema/libframe.cpp:578
msgid "Delete item"
msgid "Delete item"
...
@@ -470,13 +469,11 @@ msgstr "Outils de per
...
@@ -470,13 +469,11 @@ msgstr "Outils de per
#: pcbnew/gendrill.cpp:171
#: pcbnew/gendrill.cpp:171
#: pcbnew/dialog_general_options.cpp:271
#: pcbnew/dialog_general_options.cpp:271
#: eeschema/options.cpp:185
#: gerbview/options.cpp:184
#: gerbview/options.cpp:184
msgid "millimeters"
msgid "millimeters"
msgstr "millimetres"
msgstr "millimetres"
#: pcbnew/gendrill.cpp:171
#: pcbnew/gendrill.cpp:171
#: eeschema/options.cpp:185
#: eeschema/dialog_options.cpp:246
#: eeschema/dialog_options.cpp:246
msgid "inches"
msgid "inches"
msgstr "Pouces"
msgstr "Pouces"
...
@@ -637,9 +634,9 @@ msgstr "Outils"
...
@@ -637,9 +634,9 @@ msgstr "Outils"
#: pcbnew/gendrill.cpp:411
#: pcbnew/gendrill.cpp:411
#: pcbnew/gendrill.cpp:1098
#: pcbnew/gendrill.cpp:1098
#: pcbnew/gendrill.cpp:1674
#: pcbnew/gendrill.cpp:1674
#: pcbnew/class_pad.cpp:9
30
#: pcbnew/class_pad.cpp:9
74
#: pcbnew/class_track.cpp:7
7
1
#: pcbnew/class_track.cpp:7
9
1
#: pcbnew/class_track.cpp:7
7
6
#: pcbnew/class_track.cpp:7
9
6
msgid "Drill"
msgid "Drill"
msgstr "Perage"
msgstr "Perage"
...
@@ -700,102 +697,58 @@ msgstr "Valeur incorrecte pour diametre de per
...
@@ -700,102 +697,58 @@ msgstr "Valeur incorrecte pour diametre de per
msgid "Incorrect value for pad offset"
msgid "Incorrect value for pad offset"
msgstr "Valeur incorrecte pour offset du pad"
msgstr "Valeur incorrecte pour offset du pad"
#: pcbnew/
pcbpiste.cpp:62
#: pcbnew/
edit.cpp:169
#: pcbnew/
swap_layers.cpp:59
#: pcbnew/
editmod.cpp:45
msgid "
Swap Layers:
"
msgid "
Module Editor
"
msgstr "
Permutte couch
es"
msgstr "
Ouvrir Editeur de modul
es"
#: pcbnew/pcbpiste.cpp:77
#: pcbnew/edit.cpp:249
#: pcbnew/pcbpiste.cpp:135
msgid "Add Tracks"
#: pcbnew/swap_layers.cpp:75
msgstr "Addition de pistes"
#: pcbnew/swap_layers.cpp:129
#: pcbnew/swap_layers.cpp:162
msgid "No Change"
msgstr "Garder"
#: pcbnew/pcbpiste.cpp:81
#: pcbnew/edit.cpp:258
#: pcbnew/swap_layers.cpp:80
msgid "Add Zones"
#: gerbview/select_layers_to_pcb.cpp:134
msgstr "Addition de Zones"
msgid "Layers"
msgstr "Couches"
#: pcbnew/pcbpiste.cpp:89
#: pcbnew/edit.cpp:260
#: pcbnew/cotation.cpp:109
msgid "Warning: Display Zone is OFF!!!"
#: pcbnew/muonde.cpp:352
msgstr "Attention: Affichage zones dsactiv !!!"
#: pcbnew/mirepcb.cpp:107
#: pcbnew/block.cpp:153
#: pcbnew/pcbtexte.cpp:116
#: pcbnew/sel_layer.cpp:162
#: pcbnew/sel_layer.cpp:313
#: pcbnew/modedit_onclick.cpp:202
#: pcbnew/modedit_onclick.cpp:234
#: pcbnew/swap_layers.cpp:103
#: pcbnew/dialog_edit_module.cpp:121
#: pcbnew/globaleditpad.cpp:111
#: pcbnew/onrightclick.cpp:143
#: pcbnew/onrightclick.cpp:157
#: eeschema/options.cpp:114
#: eeschema/sheetlab.cpp:97
#: eeschema/libedit_onrightclick.cpp:68
#: eeschema/libedit_onrightclick.cpp:83
#: eeschema/onrightclick.cpp:121
#: eeschema/onrightclick.cpp:133
#: cvpcb/dialog_display_options.cpp:194
#: gerbview/set_color.cpp:251
#: gerbview/options.cpp:167
#: gerbview/options.cpp:296
#: gerbview/reglage.cpp:120
#: gerbview/onrightclick.cpp:40
#: gerbview/onrightclick.cpp:59
#: gerbview/select_layers_to_pcb.cpp:171
#: common/selcolor.cpp:147
#: common/displlst.cpp:103
#: common/get_component_dialog.cpp:121
msgid "Cancel"
msgstr "Annuler"
#: pcbnew/pcbpiste.cpp:96
#: pcbnew/edit.cpp:267
#: pcbnew/cotation.cpp:105
msgid "Add Layer Alignment Target"
#: pcbnew/muonde.cpp:348
msgstr "Ajouter Mire de superposition"
#: pcbnew/block.cpp:156
#: pcbnew/pcbtexte.cpp:111
#: pcbnew/sel_layer.cpp:158
#: pcbnew/sel_layer.cpp:309
#: pcbnew/swap_layers.cpp:98
#: pcbnew/dialog_edit_module.cpp:117
#: eeschema/options.cpp:110
#: eeschema/sheetlab.cpp:93
#: cvpcb/dialog_display_options.cpp:189
#: gerbview/set_color.cpp:247
#: gerbview/options.cpp:163
#: gerbview/options.cpp:292
#: gerbview/reglage.cpp:116
#: gerbview/select_layers_to_pcb.cpp:167
#: common/displlst.cpp:99
#: common/get_component_dialog.cpp:112
msgid "OK"
msgstr "OK"
#: pcbnew/pcbpiste.cpp:103
#: pcbnew/edit.cpp:271
#: pcbnew/swap_layers.cpp:93
msgid "Adjust Zero"
#: gerbview/select_layers_to_pcb.cpp:156
msgstr "Ajuster Zro"
msgid "Deselect"
msgstr "Deselection"
#: pcbnew/pcbpiste.cpp:110
#: pcbnew/edit.cpp:277
#: pcbnew/dialog_netlist.cpp:162
msgid "Add Graphic"
msgid "Select"
msgstr "Addition lments graphiques"
msgstr "Slection"
#: pcbnew/pcbpiste.cpp:259
#: pcbnew/edit.cpp:281
#: pcbnew/surbrill.cpp:35
#: pcbnew/tool_modedit.cpp:180
msgid "Filter for net names:"
#: eeschema/schedit.cpp:314
msgstr "Filtre pour nets:"
#: eeschema/libframe.cpp:502
#: gerbview/tool_gerber.cpp:383
msgid "Add Text"
msgstr "Ajout de Texte"
#: pcbnew/pcbpiste.cpp:263
#: pcbnew/edit.cpp:285
#: pcbnew/surbrill.cpp:39
msgid "Add Modules"
msgid "List Nets"
msgstr "Addition de Modules"
msgstr "Liste quipots"
#: pcbnew/edit.cpp:289
msgid "Add Cotation"
msgstr "Addition de Cotations"
#: pcbnew/edit.cpp:297
msgid "Net Highlight"
msgstr "Surbrillance des quipotentielles"
#: pcbnew/edit.cpp:301
msgid "Local Ratsnest"
msgstr "Monter le chevelu gnral"
#: pcbnew/plotps.cpp:361
#: pcbnew/plotps.cpp:361
#: pcbnew/affiche.cpp:63
#: pcbnew/affiche.cpp:63
...
@@ -807,419 +760,110 @@ msgstr "Vias"
...
@@ -807,419 +760,110 @@ msgstr "Vias"
msgid "Tracks"
msgid "Tracks"
msgstr "Pistes"
msgstr "Pistes"
#: pcbnew/tool_pcb.cpp:51
#: pcbnew/router.cpp:60
msgid ""
msgid "Unable to create temporary file "
"Show active layer selections\n"
msgstr "Impossible de crer le fichier temporaire "
"and select layer pair for route and place via"
msgstr ""
"Affiche selections couche active\n"
"et selection paire de couches pour routage and placement via"
#: pcbnew/tool_pcb.cpp:239
msgid "New Board"
msgstr "Nouveau Circuit Imprim"
#: pcbnew/
tool_pcb.cpp:241
#: pcbnew/
router.cpp:65
msgid "
Open existing Board
"
msgid "
Create temporary file
"
msgstr "
Ouvrir C.I. existant
"
msgstr "
Creation fichier temporaire
"
#: pcbnew/
tool_pcb.cpp:242
#: pcbnew/
router.cpp:566
msgid "
Save Board
"
msgid "
Unable to find data file
"
msgstr "
Sauver Circuit Imprim
"
msgstr "
Impossible de trouver le fichier de donnes
"
#: pcbnew/tool_pcb.cpp:246
#: pcbnew/router.cpp:572
#: eeschema/tool_sch.cpp:65
msgid "Reading autorouter data file "
#: gerbview/tool_gerber.cpp:233
msgstr "Lecture fichier donnes de l'autorouteur"
msgid "page settings (size, texts)"
msgstr "Ajustage de la feuille de dessin (dimensions, textes)"
#: pcbnew/tool_pcb.cpp:250
#: pcbnew/class_pcb_text.cpp:163
msgid "Open Module Editor"
#: gerbview/affiche.cpp:29
msgstr "Ouvrir Editeur de modules"
msgid "COTATION"
msgstr "COTATION"
#: pcbnew/tool_pcb.cpp:253
#: pcbnew/class_pcb_text.cpp:165
#: eeschema/tool_sch.cpp:81
#: gerbview/affiche.cpp:32
#: gerbview/tool_gerber.cpp:244
msgid "PCB Text"
msgid "Cut selected item"
msgstr "Texte Pcb"
msgstr "Suppression des lments slectionns"
#: pcbnew/tool_pcb.cpp:257
#: pcbnew/class_pcb_text.cpp:167
#: eeschema/tool_sch.cpp:84
#: pcbnew/class_pad.cpp:951
#: gerbview/tool_gerber.cpp:249
#: pcbnew/classpcb.cpp:197
msgid "Copy selected item"
#: pcbnew/class_text_mod.cpp:347
msgstr "Copie des lments slectionns"
#: pcbnew/class_text_mod.cpp:351
#: pcbnew/sel_layer.cpp:145
#: pcbnew/dialog_edit_module.cpp:234
#: pcbnew/class_track.cpp:775
#: pcbnew/class_module.cpp:1116
#: gerbview/affiche.cpp:109
msgid "Layer"
msgstr "Couche"
#: pcbnew/tool_pcb.cpp:259
#: pcbnew/class_pcb_text.cpp:171
#: eeschema/tool_sch.cpp:87
#: pcbnew/cotation.cpp:113
#: gerbview/tool_gerber.cpp:255
#: pcbnew/class_text_mod.cpp:358
msgid "Paste"
#: pcbnew/pcbtexte.cpp:176
msgstr "Copie des lments sauvegards"
#: pcbnew/modedit_onclick.cpp:253
#: gerbview/affiche.cpp:40
#: share/dialog_print.cpp:178
msgid "Mirror"
msgstr "Miroir"
#: pcbnew/tool_pcb.cpp:262
#: pcbnew/class_pcb_text.cpp:173
#: gerbview/tool_gerber.cpp:262
#: pcbnew/dialog_display_options.cpp:273
msgid "Undelete"
#: pcbnew/class_text_mod.cpp:341
msgstr "Annulation du dernier effacement"
#: eeschema/dialog_options.cpp:265
#: gerbview/affiche.cpp:43
msgid "No"
msgstr "Non"
#: pcbnew/tool_pcb.cpp:265
#: pcbnew/class_pcb_text.cpp:175
msgid "Print Board"
#: pcbnew/dialog_display_options.cpp:272
msgstr "Imprimer C.I."
#: pcbnew/class_text_mod.cpp:343
#: eeschema/dialog_options.cpp:264
#: gerbview/affiche.cpp:45
msgid "Yes"
msgstr "Oui"
#: pcbnew/tool_pcb.cpp:267
#: pcbnew/class_pcb_text.cpp:178
msgid "Plot (HPGL, PostScript, or GERBER format)"
#: pcbnew/class_pad.cpp:993
msgstr "Tracer en format HPGL, POSTSCRIPT ou GERBER"
#: pcbnew/class_text_mod.cpp:361
#: pcbnew/dialog_edit_module.cpp:245
#: pcbnew/class_module.cpp:1139
#: eeschema/affiche.cpp:117
#: gerbview/affiche.cpp:49
msgid "Orient"
msgstr "Orient"
#: pcbnew/tool_pcb.cpp:270
#: pcbnew/class_pcb_text.cpp:181
#: pcbnew/tool_modedit.cpp:115
#: pcbnew/dialog_edit_mod_text.cpp:204
#: eeschema/tool_lib.cpp:170
#: pcbnew/cotation.cpp:129
#: eeschema/tool_sch.cpp:108
#: pcbnew/mirepcb.cpp:113
#: gerbview/tool_gerber.cpp:272
#: pcbnew/classpcb.cpp:202
msgid "zoom +"
#: pcbnew/class_text_mod.cpp:364
msgstr "zoom +"
#: pcbnew/pcbtexte.cpp:130
#: pcbnew/class_edge_mod.cpp:297
#: pcbnew/class_track.cpp:799
#: eeschema/affiche.cpp:188
#: eeschema/dialog_cmp_graphic_properties.cpp:188
#: gerbview/affiche.cpp:52
#: gerbview/affiche.cpp:113
msgid "Width"
msgstr "Epaisseur"
#: pcbnew/tool_pcb.cpp:274
#: pcbnew/class_pcb_text.cpp:184
#: pcbnew/tool_modedit.cpp:119
#: pcbnew/class_pad.cpp:964
#: eeschema/tool_lib.cpp:174
#: pcbnew/class_text_mod.cpp:367
#: eeschema/tool_sch.cpp:112
#: gerbview/affiche.cpp:55
#: gerbview/tool_gerber.cpp:279
msgid "H Size"
msgid "zoom -"
msgstr "Taille H"
msgstr "zoom -"
#: pcbnew/tool_pcb.cpp:278
#: pcbnew/class_pcb_text.cpp:187
#: pcbnew/tool_modedit.cpp:123
#: pcbnew/class_pad.cpp:968
#: eeschema/tool_lib.cpp:178
#: pcbnew/class_text_mod.cpp:370
#: eeschema/tool_sch.cpp:116
#: gerbview/affiche.cpp:58
#: gerbview/tool_gerber.cpp:286
msgid "V Size"
msgid "redraw"
msgstr "Taille V"
msgstr "Redessin"
#: pcbnew/tool_pcb.cpp:283
#: pcbnew/tool_modedit.cpp:128
#: eeschema/tool_lib.cpp:184
#: eeschema/tool_sch.cpp:121
#: gerbview/tool_gerber.cpp:297
#: 3d-viewer/3d_toolbar.cpp:53
msgid "auto zoom"
msgstr "Zoom automatique"
#: pcbnew/tool_pcb.cpp:286
#: eeschema/tool_sch.cpp:125
msgid "Find components and texts"
msgstr "Recherche de composants et textes"
#: pcbnew/tool_pcb.cpp:292
msgid "Read Netlist"
msgstr "Lire Netliste"
#: pcbnew/tool_pcb.cpp:294
msgid "Pcb Design Rules Check"
msgstr "Controle des rgles de conception"
#: pcbnew/tool_pcb.cpp:305
msgid "Mode Module: Manual and Automatic Move or Place for modules"
msgstr "Mode Module: Dplacements ou Placement Manuel ou Automatique des modules"
#: pcbnew/tool_pcb.cpp:308
msgid "Mode Track and Autorouting"
msgstr "Mode Pistes and Autoroutage"
#: pcbnew/tool_pcb.cpp:332
msgid "Drc OFF"
msgstr "Drc DESACTIVEE"
#: pcbnew/tool_pcb.cpp:334
#: pcbnew/tool_modedit.cpp:212
#: eeschema/tool_sch.cpp:257
#: gerbview/tool_gerber.cpp:412
msgid "Display Grid OFF"
msgstr "Suppression de l'affichage de la grille"
#: pcbnew/tool_pcb.cpp:337
#: pcbnew/tool_modedit.cpp:216
#: gerbview/tool_gerber.cpp:418
msgid "Display Polar Coord ON"
msgstr "Activer affichage coord Polaires"
#: pcbnew/tool_pcb.cpp:339
#: pcbnew/tool_modedit.cpp:220
#: eeschema/tool_sch.cpp:261
#: gerbview/tool_gerber.cpp:422
msgid "Units = Inch"
msgstr "Units = pouce"
#: pcbnew/tool_pcb.cpp:341
#: pcbnew/tool_modedit.cpp:224
#: eeschema/tool_sch.cpp:265
#: gerbview/tool_gerber.cpp:426
msgid "Units = mm"
msgstr "Units = mm"
#: pcbnew/tool_pcb.cpp:344
#: pcbnew/tool_modedit.cpp:230
#: eeschema/tool_sch.cpp:269
#: gerbview/tool_gerber.cpp:432
msgid "Change Cursor Shape"
msgstr "Slection de la forme du curseur"
#: pcbnew/tool_pcb.cpp:349
msgid "Show General Ratsnest"
msgstr "Monter le chevelu gnral"
#: pcbnew/tool_pcb.cpp:352
msgid "Show Module Ratsnest when moving"
msgstr "Monter le chevelu du module pendant dplacement"
#: pcbnew/tool_pcb.cpp:357
msgid "Enable Auto Del Track"
msgstr "Autoriser l'effacement automatique des pistes"
#: pcbnew/tool_pcb.cpp:361
#: pcbnew/pcbframe.cpp:411
#: pcbnew/set_color.cpp:389
msgid "Show Zones"
msgstr "Monter Zones"
#: pcbnew/tool_pcb.cpp:366
#: pcbnew/tool_modedit.cpp:238
msgid "Show Pads Sketch"
msgstr "Afficher pastilles en contour"
#: pcbnew/tool_pcb.cpp:370
msgid "Show Tracks Sketch"
msgstr "Afficher pistes en contour"
#: pcbnew/tool_pcb.cpp:374
#: pcbnew/pcbframe.cpp:432
msgid "Hight Contrast Mode Display"
msgstr "Mode d'affichage Haut Contraste"
#: pcbnew/tool_pcb.cpp:383
msgid ""
"Display auxiliary vertical toolbar (tools for micro wave applications)\n"
" This is a very experimental feature (under development)"
msgstr ""
"Affiche toolbar vertical auxiliaire (outils pour applications micro-ondes)\n"
"C'est un outil exprimental (en cours de dveloppement)"
#: pcbnew/tool_pcb.cpp:412
msgid "Net highlight"
msgstr "Surbrillance des quipotentielles"
#: pcbnew/tool_pcb.cpp:416
msgid "Display local ratsnest (pad or module)"
msgstr "Afficher le chevelu local (pastilles ou modules)"
#: pcbnew/tool_pcb.cpp:421
msgid "Add modules"
msgstr "Addition de Modules"
#: pcbnew/tool_pcb.cpp:425
msgid "Add Tracks an vias"
msgstr "Ajouter pistes et vias"
#: pcbnew/tool_pcb.cpp:429
#: pcbnew/edit.cpp:256
msgid "Add Zones"
msgstr "Addition de Zones"
#: pcbnew/tool_pcb.cpp:434
#: pcbnew/tool_modedit.cpp:168
#: eeschema/tool_sch.cpp:226
msgid "Add graphic line or polygon"
msgstr "Addition de lignes ou polygones graphiques"
#: pcbnew/tool_pcb.cpp:438
#: pcbnew/tool_modedit.cpp:172
msgid "Add graphic circle"
msgstr "Addition de graphiques (Cercle)"
#: pcbnew/tool_pcb.cpp:442
#: pcbnew/tool_modedit.cpp:176
msgid "Add graphic arc"
msgstr "Addition de graphiques (Arc de Cercle)"
#: pcbnew/tool_pcb.cpp:446
#: pcbnew/edit.cpp:279
#: pcbnew/tool_modedit.cpp:180
#: eeschema/schedit.cpp:314
#: eeschema/libframe.cpp:502
#: gerbview/tool_gerber.cpp:383
msgid "Add Text"
msgstr "Ajout de Texte"
#: pcbnew/tool_pcb.cpp:451
#: pcbnew/edit.cpp:287
msgid "Add Cotation"
msgstr "Addition de Cotations"
#: pcbnew/tool_pcb.cpp:455
#: gerbview/tool_gerber.cpp:376
msgid "Add Mires"
msgstr "Addition de Mires de superposition"
#: pcbnew/tool_pcb.cpp:460
#: pcbnew/tool_modedit.cpp:190
#: eeschema/tool_lib.cpp:93
#: eeschema/tool_sch.cpp:235
#: gerbview/tool_gerber.cpp:391
msgid "Delete items"
msgstr "Suppression d'lments"
#: pcbnew/tool_pcb.cpp:465
msgid "Offset adjust for drill and place files"
msgstr "Ajuste offset pour fichier de perage et placement"
#: pcbnew/tool_pcb.cpp:490
msgid "Create line of specified length for microwave applications"
msgstr "Creation de lignes de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:496
msgid "Create gap of specified length for microwave applications"
msgstr "Creation de gaps de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:504
msgid "Create stub of specified length for microwave applications"
msgstr "Creation de stub de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:510
msgid "Create stub (arc) of specified length for microwave applications"
msgstr "Creation de stub (arc) de longueur spcifie (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:517
msgid "Create a polynomial shape for microwave applications"
msgstr "Creation de formes polynomiales (pour applications micro-ondes)"
#: pcbnew/tool_pcb.cpp:567
#: pcbnew/tool_modedit.cpp:285
#: eeschema/plotps.cpp:169
#: share/zoom.cpp:368
msgid "Auto"
msgstr "Auto"
#: pcbnew/tool_pcb.cpp:571
msgid "Zoom "
msgstr "Zoom "
#: pcbnew/tool_pcb.cpp:585
#: pcbnew/set_color.cpp:380
#: gerbview/set_color.h:246
msgid "Grid"
msgstr "Grille"
#: pcbnew/tool_pcb.cpp:601
#: pcbnew/tool_modedit.cpp:314
msgid "User Grid"
msgstr "Grille perso"
#: pcbnew/tool_pcb.cpp:676
msgid "+/- to switch"
msgstr "+/- pour commuter"
#: 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/class_pcb_text.cpp:163
#: gerbview/affiche.cpp:29
msgid "COTATION"
msgstr "COTATION"
#: pcbnew/class_pcb_text.cpp:165
#: gerbview/affiche.cpp:32
msgid "PCB Text"
msgstr "Texte Pcb"
#: pcbnew/class_pcb_text.cpp:167
#: pcbnew/class_pad.cpp:907
#: pcbnew/classpcb.cpp:197
#: pcbnew/class_text_mod.cpp:347
#: pcbnew/class_text_mod.cpp:351
#: pcbnew/sel_layer.cpp:145
#: pcbnew/class_track.cpp:755
#: pcbnew/dialog_edit_module.cpp:234
#: pcbnew/class_module.cpp:1116
#: gerbview/affiche.cpp:109
msgid "Layer"
msgstr "Couche"
#: pcbnew/class_pcb_text.cpp:171
#: pcbnew/cotation.cpp:113
#: pcbnew/class_text_mod.cpp:358
#: pcbnew/pcbtexte.cpp:176
#: pcbnew/modedit_onclick.cpp:253
#: gerbview/affiche.cpp:40
#: share/dialog_print.cpp:178
msgid "Mirror"
msgstr "Miroir"
#: pcbnew/class_pcb_text.cpp:173
#: pcbnew/dialog_display_options.cpp:273
#: pcbnew/class_text_mod.cpp:341
#: eeschema/options.cpp:202
#: eeschema/dialog_options.cpp:265
#: gerbview/affiche.cpp:43
msgid "No"
msgstr "Non"
#: pcbnew/class_pcb_text.cpp:175
#: pcbnew/dialog_display_options.cpp:272
#: pcbnew/class_text_mod.cpp:343
#: eeschema/options.cpp:202
#: eeschema/dialog_options.cpp:264
#: gerbview/affiche.cpp:45
msgid "Yes"
msgstr "Oui"
#: pcbnew/class_pcb_text.cpp:178
#: pcbnew/class_pad.cpp:949
#: pcbnew/class_text_mod.cpp:361
#: pcbnew/dialog_edit_module.cpp:245
#: pcbnew/class_module.cpp:1139
#: eeschema/affiche.cpp:117
#: gerbview/affiche.cpp:49
msgid "Orient"
msgstr "Orient"
#: pcbnew/class_pcb_text.cpp:181
#: pcbnew/dialog_edit_mod_text.cpp:204
#: pcbnew/cotation.cpp:129
#: pcbnew/mirepcb.cpp:117
#: pcbnew/classpcb.cpp:202
#: pcbnew/class_text_mod.cpp:364
#: pcbnew/pcbtexte.cpp:130
#: pcbnew/class_track.cpp:779
#: pcbnew/class_edge_mod.cpp:297
#: eeschema/affiche.cpp:188
#: eeschema/dialog_cmp_graphic_properties.cpp:188
#: gerbview/affiche.cpp:52
#: gerbview/affiche.cpp:113
msgid "Width"
msgstr "Epaisseur"
#: pcbnew/class_pcb_text.cpp:184
#: pcbnew/class_pad.cpp:920
#: pcbnew/class_text_mod.cpp:367
#: gerbview/affiche.cpp:55
msgid "H Size"
msgstr "Taille H"
#: pcbnew/class_pcb_text.cpp:187
#: pcbnew/class_pad.cpp:924
#: pcbnew/class_text_mod.cpp:370
#: gerbview/affiche.cpp:58
msgid "V Size"
msgstr "Taille V"
#: pcbnew/edgemod.cpp:204
#: pcbnew/edgemod.cpp:204
msgid "The graphic item will be on a copper layer.It is very dangerous. Are you sure"
msgid "The graphic item will be on a copper layer.It is very dangerous. Are you sure"
...
@@ -1238,7 +882,7 @@ msgid "Footprint name:"
...
@@ -1238,7 +882,7 @@ msgid "Footprint name:"
msgstr "Nom Module: "
msgstr "Nom Module: "
#: pcbnew/modules.cpp:281
#: pcbnew/modules.cpp:281
#: pcbnew/onrightclick.cpp:6
50
#: pcbnew/onrightclick.cpp:6
88
msgid "Delete Module"
msgid "Delete Module"
msgstr "Supprimer Module"
msgstr "Supprimer Module"
...
@@ -1392,7 +1036,6 @@ msgid "Pad options:"
...
@@ -1392,7 +1036,6 @@ msgid "Pad options:"
msgstr "Options pads"
msgstr "Options pads"
#: pcbnew/zones.cpp:192
#: pcbnew/zones.cpp:192
#: eeschema/options.cpp:194
#: eeschema/dialog_options.cpp:257
#: eeschema/dialog_options.cpp:257
msgid "Any"
msgid "Any"
msgstr "Tout"
msgstr "Tout"
...
@@ -1438,12 +1081,11 @@ msgid "No Net"
...
@@ -1438,12 +1081,11 @@ msgid "No Net"
msgstr "No Net"
msgstr "No Net"
#: pcbnew/zones.cpp:916
#: pcbnew/zones.cpp:916
#: pcbnew/class_track.cpp:7
1
4
#: pcbnew/class_track.cpp:7
3
4
msgid "NetName"
msgid "NetName"
msgstr "NetName"
msgstr "NetName"
#: pcbnew/zones.cpp:984
#: pcbnew/zones.cpp:984
#: pcbnew/mirepcb.cpp:103
msgid "Ok"
msgid "Ok"
msgstr "Ok"
msgstr "Ok"
...
@@ -1605,10 +1247,98 @@ msgstr "Fichiers Doc des Modules"
...
@@ -1605,10 +1247,98 @@ msgstr "Fichiers Doc des Modules"
msgid "library files:"
msgid "library files:"
msgstr "Fichiers Librairies"
msgstr "Fichiers Librairies"
#: pcbnew/reglage.cpp:279
#: pcbnew/reglage.cpp:279
#: pcbnew/dialog_setup_libs.cpp:390
#: pcbnew/dialog_setup_libs.cpp:390
msgid "Library exists! No Change"
msgid "Library exists! No Change"
msgstr "Librairie existante! Pas de changement"
msgstr "Librairie existante! Pas de changement"
#: pcbnew/cotation.cpp:85
msgid "Dimension properties"
msgstr "Proprits des Cotes"
#: pcbnew/cotation.cpp:105
#: pcbnew/mirepcb.cpp:99
#: pcbnew/muonde.cpp:348
#: pcbnew/block.cpp:156
#: pcbnew/pcbtexte.cpp:111
#: pcbnew/sel_layer.cpp:158
#: pcbnew/sel_layer.cpp:309
#: pcbnew/set_color.cpp:275
#: pcbnew/swap_layers.cpp:98
#: pcbnew/dialog_edit_module.cpp:117
#: eeschema/sheetlab.cpp:93
#: cvpcb/dialog_display_options.cpp:189
#: gerbview/set_color.cpp:249
#: gerbview/options.cpp:163
#: gerbview/options.cpp:292
#: gerbview/reglage.cpp:116
#: gerbview/select_layers_to_pcb.cpp:167
#: common/displlst.cpp:99
#: common/get_component_dialog.cpp:112
msgid "OK"
msgstr "OK"
#: pcbnew/cotation.cpp:109
#: pcbnew/mirepcb.cpp:103
#: pcbnew/muonde.cpp:352
#: pcbnew/block.cpp:153
#: pcbnew/pcbtexte.cpp:116
#: pcbnew/sel_layer.cpp:162
#: pcbnew/sel_layer.cpp:313
#: pcbnew/modedit_onclick.cpp:202
#: pcbnew/modedit_onclick.cpp:234
#: pcbnew/set_color.cpp:280
#: pcbnew/swap_layers.cpp:103
#: pcbnew/dialog_edit_module.cpp:121
#: pcbnew/onrightclick.cpp:146
#: pcbnew/onrightclick.cpp:160
#: pcbnew/globaleditpad.cpp:108
#: eeschema/sheetlab.cpp:97
#: eeschema/libedit_onrightclick.cpp:68
#: eeschema/libedit_onrightclick.cpp:83
#: eeschema/onrightclick.cpp:121
#: eeschema/onrightclick.cpp:133
#: cvpcb/dialog_display_options.cpp:194
#: gerbview/set_color.cpp:253
#: gerbview/options.cpp:167
#: gerbview/options.cpp:296
#: gerbview/reglage.cpp:120
#: gerbview/onrightclick.cpp:40
#: gerbview/onrightclick.cpp:59
#: gerbview/select_layers_to_pcb.cpp:171
#: common/selcolor.cpp:147
#: common/displlst.cpp:103
#: common/get_component_dialog.cpp:121
msgid "Cancel"
msgstr "Annuler"
#: pcbnew/cotation.cpp:113
#: pcbnew/muonde.cpp:360
#: pcbnew/pcbtexte.cpp:176
#: pcbnew/dialog_edit_module.cpp:242
#: pcbnew/dialog_edit_module.cpp:288
#: eeschema/dialog_options.cpp:229
#: eeschema/dialog_edit_component_in_schematic.cpp:182
#: eeschema/onrightclick.cpp:305
msgid "Normal"
msgstr "Normal"
#: pcbnew/cotation.cpp:125
#: pcbnew/mirepcb.cpp:108
#: pcbnew/muonde.cpp:367
#: pcbnew/pcbtexte.cpp:126
#: 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/cotation.cpp:133
#: gerbview/affiche.cpp:37
msgid "Layer:"
msgstr "Couche:"
#: pcbnew/dialog_netlist.cpp:133
#: pcbnew/dialog_netlist.cpp:133
#: pcbnew/class_board_item.cpp:67
#: pcbnew/class_board_item.cpp:67
...
@@ -1633,9 +1363,9 @@ msgid "Keep"
...
@@ -1633,9 +1363,9 @@ msgid "Keep"
msgstr "Garder"
msgstr "Garder"
#: pcbnew/dialog_netlist.cpp:141
#: pcbnew/dialog_netlist.cpp:141
#: pcbnew/onrightclick.cpp:
575
#: pcbnew/onrightclick.cpp:
613
#: pcbnew/onrightclick.cpp:
682
#: pcbnew/onrightclick.cpp:
720
#: pcbnew/onrightclick.cpp:
779
#: pcbnew/onrightclick.cpp:
817
#: eeschema/edit_component_in_lib.cpp:239
#: eeschema/edit_component_in_lib.cpp:239
#: eeschema/edit_component_in_lib.cpp:320
#: eeschema/edit_component_in_lib.cpp:320
#: cvpcb/dialog_cvpcb_config.cpp:166
#: cvpcb/dialog_cvpcb_config.cpp:166
...
@@ -1643,171 +1373,449 @@ msgstr "Garder"
...
@@ -1643,171 +1373,449 @@ msgstr "Garder"
msgid "Delete"
msgid "Delete"
msgstr "Supprimer"
msgstr "Supprimer"
#: pcbnew/dialog_netlist.cpp:143
#: pcbnew/dialog_netlist.cpp:143
msgid "Bad Tracks Deletion:"
msgid "Bad Tracks Deletion:"
msgstr "Supp. pistes err.:"
msgstr "Supp. pistes err.:"
#: pcbnew/dialog_netlist.cpp:148
msgid "Change"
msgstr "Changer"
#: pcbnew/dialog_netlist.cpp:150
msgid "Exchange Module:"
msgstr "Echange module:"
#: pcbnew/dialog_netlist.cpp:153
msgid "Display Warnings"
msgstr "Affiche warnings"
#: pcbnew/dialog_netlist.cpp:162
msgid "Select"
msgstr "Slection"
#: pcbnew/dialog_netlist.cpp:166
msgid "Read"
msgstr "Lire"
#: pcbnew/dialog_netlist.cpp:170
msgid "Module Test"
msgstr "Test Modules"
#: pcbnew/dialog_netlist.cpp:174
msgid "Compile"
msgstr "Compile"
#: pcbnew/pcbframe.cpp:261
msgid "Board modified, Save before exit ?"
msgstr "Circuit Imprim modifie, Sauver avant de quitter ?"
#: pcbnew/pcbframe.cpp:262
#: eeschema/schframe.cpp:183
#: cvpcb/cvframe.cpp:169
#: common/confirm.cpp:109
msgid "Confirmation"
msgstr "Confirmation"
#: pcbnew/pcbframe.cpp:362
msgid "DRC Off (Disable !!!), Currently: DRC is active"
msgstr "DRC off (dsactive !!!), actuellement DRC active"
#: pcbnew/pcbframe.cpp:363
msgid "DRC On (Currently: DRC is inactive !!!)"
msgstr "DRC On (Actuellement, DRC dsactive !!!)"
#: pcbnew/pcbframe.cpp:374
msgid "Polar Coords not show"
msgstr "Coord Polaires non affiches"
#: pcbnew/pcbframe.cpp:375
msgid "Display Polar Coords"
msgstr "Affichage coord Polaires"
#: pcbnew/pcbframe.cpp:380
#: eeschema/schframe.cpp:261
msgid "Grid not show"
msgstr "Grille non montre"
#: pcbnew/pcbframe.cpp:380
#: eeschema/schframe.cpp:261
msgid "Show Grid"
msgstr "Afficher grille"
#: pcbnew/pcbframe.cpp:389
msgid "General ratsnest not show"
msgstr "Chevelu gnral non affich"
#: pcbnew/pcbframe.cpp:389
msgid "Show General ratsnest"
msgstr "Afficher le chevelu gnral"
#: pcbnew/pcbframe.cpp:395
msgid "Module ratsnest not show"
msgstr "Ne pas montrer le chevelu du module pendant dplacement"
#: pcbnew/pcbframe.cpp:396
msgid "Show Module ratsnest"
msgstr "Montrer le chevelu du module"
#: pcbnew/pcbframe.cpp:403
msgid "Disable Auto Delete old Track"
msgstr "Ne pas Autoriser l'effacement automatique des pistes"
#: pcbnew/pcbframe.cpp:404
msgid "Enable Auto Delete old Track"
msgstr "Autoriser l'effacement automatique des pistes"
#: pcbnew/pcbframe.cpp:411
msgid "Do not Show Zones"
msgstr "Ne pas monter Zones"
#: pcbnew/pcbframe.cpp:411
#: pcbnew/tool_pcb.cpp:361
#: pcbnew/set_color.h:344
msgid "Show Zones"
msgstr "Monter Zones"
#: pcbnew/pcbframe.cpp:417
msgid "Show Pads Sketch mode"
msgstr "Afficher pastilles en contour"
#: pcbnew/pcbframe.cpp:418
msgid "Show pads filled mode"
msgstr "Afficher pastilles en mode plein"
#: pcbnew/pcbframe.cpp:424
msgid "Show Tracks Sketch mode"
msgstr "Afficher pistes en contour"
#: pcbnew/pcbframe.cpp:425
msgid "Show Tracks filled mode"
msgstr "Afficher pistes en mode plein"
#: pcbnew/pcbframe.cpp:431
msgid "Normal Contrast Mode Display"
msgstr "Mode d'affichage Contraste normal"
#: pcbnew/pcbframe.cpp:432
#: pcbnew/tool_pcb.cpp:374
msgid "Hight Contrast Mode Display"
msgstr "Mode d'affichage Haut Contraste"
#: pcbnew/pcbframe.cpp:442
#: pcbnew/class_board_item.cpp:127
#: pcbnew/class_track.cpp:708
msgid "Track"
msgstr "Piste"
#: pcbnew/pcbframe.cpp:474
#: pcbnew/class_board_item.cpp:154
msgid "Via"
msgstr "Via"
#: pcbnew/tool_pcb.cpp:51
msgid ""
"Show active layer selections\n"
"and select layer pair for route and place via"
msgstr ""
"Affiche selections couche active\n"
"et selection paire de couches pour routage and placement via"
#: pcbnew/tool_pcb.cpp:239
msgid "New Board"
msgstr "Nouveau Circuit Imprim"
#: pcbnew/tool_pcb.cpp:241
msgid "Open existing Board"
msgstr "Ouvrir C.I. existant"
#: pcbnew/tool_pcb.cpp:242
msgid "Save Board"
msgstr "Sauver Circuit Imprim"
#: pcbnew/tool_pcb.cpp:246
#: eeschema/tool_sch.cpp:65
#: gerbview/tool_gerber.cpp:233
msgid "page settings (size, texts)"
msgstr "Ajustage de la feuille de dessin (dimensions, textes)"
#: pcbnew/tool_pcb.cpp:250
msgid "Open Module Editor"
msgstr "Ouvrir Editeur de modules"
#: pcbnew/tool_pcb.cpp:253
#: eeschema/tool_sch.cpp:81
#: gerbview/tool_gerber.cpp:244
msgid "Cut selected item"
msgstr "Suppression des lments slectionns"
#: pcbnew/tool_pcb.cpp:257
#: eeschema/tool_sch.cpp:84
#: gerbview/tool_gerber.cpp:249
msgid "Copy selected item"
msgstr "Copie des lments slectionns"
#: pcbnew/tool_pcb.cpp:259
#: eeschema/tool_sch.cpp:87
#: gerbview/tool_gerber.cpp:255
msgid "Paste"
msgstr "Copie des lments sauvegards"
#: pcbnew/tool_pcb.cpp:262
#: gerbview/tool_gerber.cpp:262
msgid "Undelete"
msgstr "Annulation du dernier effacement"
#: pcbnew/tool_pcb.cpp:265
msgid "Print Board"
msgstr "Imprimer C.I."
#: pcbnew/tool_pcb.cpp:267
msgid "Plot (HPGL, PostScript, or GERBER format)"
msgstr "Tracer en format HPGL, POSTSCRIPT ou GERBER"
#: pcbnew/tool_pcb.cpp:270
#: pcbnew/tool_modedit.cpp:115
#: eeschema/tool_lib.cpp:170
#: eeschema/tool_sch.cpp:108
#: gerbview/tool_gerber.cpp:272
msgid "zoom +"
msgstr "zoom +"
#: pcbnew/tool_pcb.cpp:274
#: pcbnew/tool_modedit.cpp:119
#: eeschema/tool_lib.cpp:174
#: eeschema/tool_sch.cpp:112
#: gerbview/tool_gerber.cpp:279
msgid "zoom -"
msgstr "zoom -"
#: pcbnew/tool_pcb.cpp:278
#: pcbnew/tool_modedit.cpp:123
#: eeschema/tool_lib.cpp:178
#: eeschema/tool_sch.cpp:116
#: gerbview/tool_gerber.cpp:286
msgid "redraw"
msgstr "Redessin"
#: pcbnew/tool_pcb.cpp:283
#: pcbnew/tool_modedit.cpp:128
#: eeschema/tool_lib.cpp:184
#: eeschema/tool_sch.cpp:121
#: gerbview/tool_gerber.cpp:297
#: 3d-viewer/3d_toolbar.cpp:53
msgid "auto zoom"
msgstr "Zoom automatique"
#: pcbnew/tool_pcb.cpp:286
#: eeschema/tool_sch.cpp:125
msgid "Find components and texts"
msgstr "Recherche de composants et textes"
#: pcbnew/tool_pcb.cpp:292
msgid "Read Netlist"
msgstr "Lire Netliste"
#: pcbnew/tool_pcb.cpp:294
msgid "Pcb Design Rules Check"
msgstr "Controle des rgles de conception"
#: pcbnew/tool_pcb.cpp:305
msgid "Mode Module: Manual and Automatic Move or Place for modules"
msgstr "Mode Module: Dplacements ou Placement Manuel ou Automatique des modules"
#: pcbnew/tool_pcb.cpp:308
msgid "Mode Track and Autorouting"
msgstr "Mode Pistes and Autoroutage"
#: pcbnew/
dialog_netlist.cpp:148
#: pcbnew/
tool_pcb.cpp:332
msgid "
Change
"
msgid "
Drc OFF
"
msgstr "
Changer
"
msgstr "
Drc DESACTIVEE
"
#: pcbnew/dialog_netlist.cpp:150
#: pcbnew/tool_pcb.cpp:334
msgid "Exchange Module:"
#: pcbnew/tool_modedit.cpp:212
msgstr "Echange module:"
#: eeschema/tool_sch.cpp:257
#: gerbview/tool_gerber.cpp:412
msgid "Display Grid OFF"
msgstr "Suppression de l'affichage de la grille"
#: pcbnew/dialog_netlist.cpp:153
#: pcbnew/tool_pcb.cpp:337
msgid "Display Warnings"
#: pcbnew/tool_modedit.cpp:216
msgstr "Affiche warnings"
#: gerbview/tool_gerber.cpp:418
msgid "Display Polar Coord ON"
msgstr "Activer affichage coord Polaires"
#: pcbnew/dialog_netlist.cpp:166
#: pcbnew/tool_pcb.cpp:339
msgid "Read"
#: pcbnew/tool_modedit.cpp:220
msgstr "Lire"
#: eeschema/tool_sch.cpp:261
#: gerbview/tool_gerber.cpp:422
msgid "Units = Inch"
msgstr "Units = pouce"
#: pcbnew/dialog_netlist.cpp:170
#: pcbnew/tool_pcb.cpp:341
msgid "Module Test"
#: pcbnew/tool_modedit.cpp:224
msgstr "Test Modules"
#: eeschema/tool_sch.cpp:265
#: gerbview/tool_gerber.cpp:426
msgid "Units = mm"
msgstr "Units = mm"
#: pcbnew/dialog_netlist.cpp:174
#: pcbnew/tool_pcb.cpp:344
msgid "Compile"
#: pcbnew/tool_modedit.cpp:230
msgstr "Compile"
#: eeschema/tool_sch.cpp:269
#: gerbview/tool_gerber.cpp:432
msgid "Change Cursor Shape"
msgstr "Slection de la forme du curseur"
#: pcbnew/
pcbframe.cpp:261
#: pcbnew/
tool_pcb.cpp:349
msgid "
Board modified, Save before exit ?
"
msgid "
Show General Ratsnest
"
msgstr "
Circuit Imprim modifie, Sauver avant de quitter ?
"
msgstr "
Monter le chevelu gnral
"
#: pcbnew/pcbframe.cpp:262
#: pcbnew/tool_pcb.cpp:352
#: eeschema/schframe.cpp:183
msgid "Show Module Ratsnest when moving"
#: cvpcb/cvframe.cpp:169
msgstr "Monter le chevelu du module pendant dplacement"
#: common/confirm.cpp:109
msgid "Confirmation"
msgstr "Confirmation"
#: pcbnew/
pcbframe.cpp:362
#: pcbnew/
tool_pcb.cpp:357
msgid "
DRC Off (Disable !!!), Currently: DRC is active
"
msgid "
Enable Auto Del Track
"
msgstr "
DRC off (dsactive !!!), actuellement DRC active
"
msgstr "
Autoriser l'effacement automatique des pistes
"
#: pcbnew/pcbframe.cpp:363
#: pcbnew/tool_pcb.cpp:366
msgid "DRC On (Currently: DRC is inactive !!!)"
#: pcbnew/tool_modedit.cpp:238
msgstr "DRC On (Actuellement, DRC dsactive !!!)"
msgid "Show Pads Sketch"
msgstr "Afficher pastilles en contour"
#: pcbnew/
pcbframe.cpp:374
#: pcbnew/
tool_pcb.cpp:370
msgid "
Polar Coords not show
"
msgid "
Show Tracks Sketch
"
msgstr "
Coord Polaires non affiches
"
msgstr "
Afficher pistes en contour
"
#: pcbnew/pcbframe.cpp:375
#: pcbnew/tool_pcb.cpp:383
msgid "Display Polar Coords"
msgid ""
msgstr "Affichage coord Polaires"
"Display auxiliary vertical toolbar (tools for micro wave applications)\n"
" This is a very experimental feature (under development)"
msgstr ""
"Affiche toolbar vertical auxiliaire (outils pour applications micro-ondes)\n"
"C'est un outil exprimental (en cours de dveloppement)"
#: pcbnew/pcbframe.cpp:380
#: pcbnew/tool_pcb.cpp:412
#: eeschema/schframe.cpp:261
msgid "Net highlight"
msgid "Grid not show"
msgstr "Surbrillance des quipotentielles"
msgstr "Grille non montre"
#: pcbnew/pcbframe.cpp:380
#: pcbnew/tool_pcb.cpp:416
#: eeschema/schframe.cpp:261
msgid "Display local ratsnest (pad or module)"
msgid "Show Grid"
msgstr "Afficher le chevelu local (pastilles ou modules)"
msgstr "Afficher grille"
#: pcbnew/
pcbframe.cpp:389
#: pcbnew/
tool_pcb.cpp:421
msgid "
General ratsnest not show
"
msgid "
Add modules
"
msgstr "
Chevelu gnral non affich
"
msgstr "
Addition de Modules
"
#: pcbnew/
pcbframe.cpp:389
#: pcbnew/
tool_pcb.cpp:425
msgid "
Show General ratsnest
"
msgid "
Add tracks and vias
"
msgstr "A
fficher le chevelu gnral
"
msgstr "A
jouter pistes et vias
"
#: pcbnew/
pcbframe.cpp:395
#: pcbnew/
tool_pcb.cpp:429
msgid "
Module ratsnest not show
"
msgid "
Add zones
"
msgstr "
Ne pas montrer le chevelu du module pendant dplacement
"
msgstr "
Addition de Zones
"
#: pcbnew/pcbframe.cpp:396
#: pcbnew/tool_pcb.cpp:434
msgid "Show Module ratsnest"
#: pcbnew/tool_modedit.cpp:168
msgstr "Montrer le chevelu du module"
#: eeschema/tool_sch.cpp:226
msgid "Add graphic line or polygon"
msgstr "Addition de lignes ou polygones graphiques"
#: pcbnew/pcbframe.cpp:403
#: pcbnew/tool_pcb.cpp:438
msgid "Disable Auto Delete old Track"
#: pcbnew/tool_modedit.cpp:172
msgstr "Ne pas Autoriser l'effacement automatique des pistes"
msgid "Add graphic circle"
msgstr "Addition de graphiques (Cercle)"
#: pcbnew/pcbframe.cpp:404
#: pcbnew/tool_pcb.cpp:442
msgid "Enable Auto Delete old Track"
#: pcbnew/tool_modedit.cpp:176
msgstr "Autoriser l'effacement automatique des pistes"
msgid "Add graphic arc"
msgstr "Addition de graphiques (Arc de Cercle)"
#: pcbnew/
pcbframe.cpp:411
#: pcbnew/
tool_pcb.cpp:446
msgid "
Do not Show Zones
"
msgid "
Add text
"
msgstr "
Ne pas monter Zones
"
msgstr "
Ajout de Texte
"
#: pcbnew/
pcbframe.cpp:417
#: pcbnew/
tool_pcb.cpp:451
msgid "
Show Pads Sketch mode
"
msgid "
Add dimension
"
msgstr "A
fficher pastilles en contour
"
msgstr "A
jout des cotes
"
#: pcbnew/pcbframe.cpp:418
#: pcbnew/tool_pcb.cpp:455
msgid "Show pads filled mode"
#: gerbview/tool_gerber.cpp:376
msgstr "Afficher pastilles en mode plein"
msgid "Add layer alignment target"
msgstr "Ajouter Mire de superposition"
#: pcbnew/pcbframe.cpp:424
#: pcbnew/tool_pcb.cpp:460
msgid "Show Tracks Sketch mode"
#: pcbnew/tool_modedit.cpp:190
msgstr "Afficher pistes en contour"
#: eeschema/tool_lib.cpp:93
#: eeschema/tool_sch.cpp:235
#: gerbview/tool_gerber.cpp:391
msgid "Delete items"
msgstr "Suppression d'lments"
#: pcbnew/
pcbframe.cpp:42
5
#: pcbnew/
tool_pcb.cpp:46
5
msgid "
Show Tracks filled mode
"
msgid "
Offset adjust for drill and place files
"
msgstr "A
fficher pistes en mode plein
"
msgstr "A
juste offset pour fichier de perage et placement
"
#: pcbnew/
pcbframe.cpp:431
#: pcbnew/
tool_pcb.cpp:490
msgid "
Normal Contrast Mode Display
"
msgid "
Create line of specified length for microwave applications
"
msgstr "
Mode d'affichage Contraste normal
"
msgstr "
Creation de lignes de longueur spcifie (pour applications micro-ondes)
"
#: pcbnew/pcbframe.cpp:442
#: pcbnew/tool_pcb.cpp:496
#: pcbnew/class_board_item.cpp:127
msgid "Create gap of specified length for microwave applications"
#: pcbnew/class_track.cpp:688
msgstr "Creation de gaps de longueur spcifie (pour applications micro-ondes)"
msgid "Track"
msgstr "Piste"
#: pcbnew/pcbframe.cpp:474
#: pcbnew/tool_pcb.cpp:504
#: pcbnew/class_board_item.cpp:154
msgid "Create stub of specified length for microwave applications"
msgid "Via"
msgstr "Creation de stub de longueur spcifie (pour applications micro-ondes)"
msgstr "Via"
#: pcbnew/
class_pad.cpp:732
#: pcbnew/
tool_pcb.cpp:510
msgid "
Unknown Pad shape
"
msgid "
Create stub (arc) of specified length for microwave applications
"
msgstr "
Forme pad inconnue
"
msgstr "
Creation de stub (arc) de longueur spcifie (pour applications micro-ondes)
"
#: pcbnew/class_pad.cpp:818
#: pcbnew/tool_pcb.cpp:517
#: pcbnew/class_text_mod.cpp:328
msgid "Create a polynomial shape for microwave applications"
#: pcbnew/class_edge_mod.cpp:285
msgstr "Creation de formes polynomiales (pour applications micro-ondes)"
#: pcbnew/class_module.cpp:1142
#: cvpcb/setvisu.cpp:30
msgid "Module"
msgstr "Module"
#: pcbnew/class_pad.cpp:821
#: pcbnew/tool_pcb.cpp:567
msgid "RefP"
#: pcbnew/tool_modedit.cpp:285
msgstr "RefP"
#: eeschema/plotps.cpp:169
#: share/zoom.cpp:368
msgid "Auto"
msgstr "Auto"
#: pcbnew/class_pad.cpp:824
#: pcbnew/tool_pcb.cpp:571
#: pcbnew/class_board_item.cpp:35
msgid "Zoom "
msgid "Net"
msgstr "Zoom "
msgstr "Net"
#: pcbnew/class_pad.cpp:938
#: pcbnew/tool_pcb.cpp:585
msgid "Drill X / Y"
#: pcbnew/set_color.h:335
msgstr "Perage X/Y"
#: gerbview/set_color.h:246
msgid "Grid"
msgstr "Grille"
#: pcbnew/class_pad.cpp:953
#: pcbnew/tool_pcb.cpp:601
msgid "X Pos"
#: pcbnew/tool_modedit.cpp:314
msgstr "X Pos"
msgid "User Grid"
msgstr "Grille perso"
#: pcbnew/
class_pad.cpp:957
#: pcbnew/
tool_pcb.cpp:676
msgid "
Y pos
"
msgid "
+/- to switch
"
msgstr "
Y pos
"
msgstr "
+/- pour commuter
"
#: pcbnew/hotkeys.cpp:435
#: pcbnew/mirepcb.cpp:78
#, c-format
msgid "Target Properties"
msgid "Footprint %s found, but locked"
msgstr "Proprits de la mire"
msgstr "Module %s trouv, mais verrouill"
#: pcbnew/mirepcb.cpp:118
msgid "shape +"
msgstr "Forme +"
#: pcbnew/mirepcb.cpp:118
msgid "shape X"
msgstr "Forme X"
#: pcbnew/
hotkeys.cpp:598
#: pcbnew/
mirepcb.cpp:120
msgid "
Delete module?
"
msgid "
Target Shape:
"
msgstr "
Effacer Module?
"
msgstr "
Forme Mire:
"
#: pcbnew/dialog_initpcb.cpp:105
#: pcbnew/dialog_initpcb.cpp:105
msgid "Items to delete"
msgid "Items to delete"
...
@@ -2011,44 +2019,10 @@ msgid "Display other items:"
...
@@ -2011,44 +2019,10 @@ msgid "Display other items:"
msgstr "Afficher autres lments"
msgstr "Afficher autres lments"
#: pcbnew/dialog_display_options.cpp:275
#: pcbnew/dialog_display_options.cpp:275
#: eeschema/options.cpp:204
#: eeschema/dialog_options.cpp:267
#: eeschema/dialog_options.cpp:267
msgid "Show page limits"
msgid "Show page limits"
msgstr " Afficher limites de page"
msgstr " Afficher limites de page"
#: pcbnew/cotation.cpp:85
msgid "Cotation properties"
msgstr "Proprits des Cotations"
#: pcbnew/cotation.cpp:113
#: pcbnew/muonde.cpp:360
#: pcbnew/pcbtexte.cpp:176
#: pcbnew/dialog_edit_module.cpp:242
#: pcbnew/dialog_edit_module.cpp:288
#: eeschema/options.cpp:177
#: eeschema/dialog_options.cpp:229
#: eeschema/dialog_edit_component_in_schematic.cpp:182
#: eeschema/onrightclick.cpp:305
msgid "Normal"
msgstr "Normal"
#: pcbnew/cotation.cpp:125
#: pcbnew/muonde.cpp:367
#: pcbnew/mirepcb.cpp:112
#: pcbnew/pcbtexte.cpp:126
#: 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/cotation.cpp:133
#: gerbview/affiche.cpp:37
msgid "Layer:"
msgstr "Couche:"
#: pcbnew/plotgerb.cpp:72
#: pcbnew/plotgerb.cpp:72
msgid "unable to create file "
msgid "unable to create file "
msgstr "Impossible de crer fichier "
msgstr "Impossible de crer fichier "
...
@@ -2098,21 +2072,18 @@ msgid "Complex shape"
...
@@ -2098,21 +2072,18 @@ msgid "Complex shape"
msgstr "Formr complexe"
msgstr "Formr complexe"
#: pcbnew/muonde.cpp:356
#: pcbnew/muonde.cpp:356
#, fuzzy
msgid "Read Shape Descr File..."
msgid "Read Shape Descr File..."
msgstr "Lire fichier de description de forme"
msgstr "Lire fichier de description de forme
...
"
#: pcbnew/muonde.cpp:360
#: pcbnew/muonde.cpp:360
msgid "Symmetrical"
msgid "Symmetrical"
msgstr "Symtrique"
msgstr "Symtrique"
#: pcbnew/muonde.cpp:360
#: pcbnew/muonde.cpp:360
#, fuzzy
msgid "Mirrored"
msgid "Mirrored"
msgstr "Miroir"
msgstr "Miroir"
#: pcbnew/muonde.cpp:362
#: pcbnew/muonde.cpp:362
#, fuzzy
msgid "Shape Option"
msgid "Shape Option"
msgstr "Option Forme"
msgstr "Option Forme"
...
@@ -2148,22 +2119,6 @@ msgstr "Gap (mm):"
...
@@ -2148,22 +2119,6 @@ msgstr "Gap (mm):"
msgid "Gap (inch):"
msgid "Gap (inch):"
msgstr "Gap (inch):"
msgstr "Gap (inch):"
#: pcbnew/mirepcb.cpp:82
msgid "Mire properties"
msgstr "Proprits des Mires"
#: pcbnew/mirepcb.cpp:122
msgid "shape +"
msgstr "Forme +"
#: pcbnew/mirepcb.cpp:122
msgid "shape X"
msgstr "Forme X"
#: pcbnew/mirepcb.cpp:124
msgid "Mire Shape:"
msgstr "Forme Mire:"
#: pcbnew/deltrack.cpp:153
#: pcbnew/deltrack.cpp:153
msgid "Delete NET ?"
msgid "Delete NET ?"
msgstr "Supprimer Net ?"
msgstr "Supprimer Net ?"
...
@@ -2427,6 +2382,15 @@ msgstr "Grille perso dim X"
...
@@ -2427,6 +2382,15 @@ msgstr "Grille perso dim X"
msgid "User Grid Size Y"
msgid "User Grid Size Y"
msgstr "Grille perso dim Y"
msgstr "Grille perso dim Y"
#: pcbnew/hotkeys.cpp:434
#, c-format
msgid "Footprint %s found, but locked"
msgstr "Module %s trouv, mais verrouill"
#: pcbnew/hotkeys.cpp:597
msgid "Delete module?"
msgstr "Effacer Module?"
#: pcbnew/dialog_pad_edit.cpp:157
#: pcbnew/dialog_pad_edit.cpp:157
msgid "Pad Num :"
msgid "Pad Num :"
msgstr "Num Pad :"
msgstr "Num Pad :"
...
@@ -2439,7 +2403,7 @@ msgstr "NetName Pad:"
...
@@ -2439,7 +2403,7 @@ msgstr "NetName Pad:"
#: pcbnew/dialog_pad_edit.cpp:196
#: pcbnew/dialog_pad_edit.cpp:196
#: pcbnew/classpcb.cpp:186
#: pcbnew/classpcb.cpp:186
#: pcbnew/class_board_item.cpp:100
#: pcbnew/class_board_item.cpp:100
#: pcbnew/class_track.cpp:7
2
5
#: pcbnew/class_track.cpp:7
4
5
msgid "Circle"
msgid "Circle"
msgstr "Cercle"
msgstr "Cercle"
...
@@ -2489,7 +2453,7 @@ msgid "Pad Shape:"
...
@@ -2489,7 +2453,7 @@ msgid "Pad Shape:"
msgstr "Forme Pad:"
msgstr "Forme Pad:"
#: pcbnew/dialog_pad_edit.cpp:205
#: pcbnew/dialog_pad_edit.cpp:205
#: pcbnew/class_track.cpp:7
2
7
#: pcbnew/class_track.cpp:7
4
7
msgid "Standard"
msgid "Standard"
msgstr "Standard"
msgstr "Standard"
...
@@ -2570,35 +2534,9 @@ msgstr "couche E.C.O.2"
...
@@ -2570,35 +2534,9 @@ msgstr "couche E.C.O.2"
msgid "Draft layer"
msgid "Draft layer"
msgstr "Couche dessin"
msgstr "Couche dessin"
#: pcbnew/classpcb.cpp:181
#: pcbnew/controle.cpp:172
#: pcbnew/classpcb.cpp:313
msgid "Selection Clarification"
#: pcbnew/class_text_mod.cpp:337
msgstr "Clarification de la Slection"
#: pcbnew/class_track.cpp:699
#: gerbview/affiche.cpp:93
msgid "Type"
msgstr "Type"
#: pcbnew/classpcb.cpp:183
msgid "Shape"
msgstr "Forme"
#: pcbnew/classpcb.cpp:190
msgid " Arc "
msgstr " Arc "
#: pcbnew/classpcb.cpp:195
#: pcbnew/class_track.cpp:723
msgid "Segment"
msgstr "Segment"
#: pcbnew/classpcb.cpp:313
#: pcbnew/class_board_item.cpp:182
msgid "Marker"
msgstr "Marqueur"
#: pcbnew/classpcb.cpp:316
msgid "Marker Error Text"
msgstr "Texte du Marqueur d'erreurs"
#: pcbnew/pcbcfg.cpp:68
#: pcbnew/pcbcfg.cpp:68
#: eeschema/eeconfig.cpp:58
#: eeschema/eeconfig.cpp:58
...
@@ -2652,6 +2590,69 @@ msgstr "Librairie: "
...
@@ -2652,6 +2590,69 @@ msgstr "Librairie: "
msgid "Modules (%d items)"
msgid "Modules (%d items)"
msgstr "Modules (%d lments)"
msgstr "Modules (%d lments)"
#: pcbnew/class_pad.cpp:776
msgid "Unknown Pad shape"
msgstr "Forme pad inconnue"
#: pcbnew/class_pad.cpp:862
#: pcbnew/class_text_mod.cpp:328
#: pcbnew/class_edge_mod.cpp:285
#: pcbnew/class_module.cpp:1142
#: cvpcb/setvisu.cpp:30
msgid "Module"
msgstr "Module"
#: pcbnew/class_pad.cpp:865
msgid "RefP"
msgstr "RefP"
#: pcbnew/class_pad.cpp:868
#: pcbnew/class_board_item.cpp:35
msgid "Net"
msgstr "Net"
#: pcbnew/class_pad.cpp:982
msgid "Drill X / Y"
msgstr "Perage X/Y"
#: pcbnew/class_pad.cpp:997
msgid "X Pos"
msgstr "X Pos"
#: pcbnew/class_pad.cpp:1001
msgid "Y pos"
msgstr "Y pos"
#: pcbnew/classpcb.cpp:181
#: pcbnew/classpcb.cpp:313
#: pcbnew/class_text_mod.cpp:337
#: pcbnew/class_track.cpp:719
#: gerbview/affiche.cpp:93
msgid "Type"
msgstr "Type"
#: pcbnew/classpcb.cpp:183
msgid "Shape"
msgstr "Forme"
#: pcbnew/classpcb.cpp:190
msgid " Arc "
msgstr " Arc "
#: pcbnew/classpcb.cpp:195
#: pcbnew/class_track.cpp:743
msgid "Segment"
msgstr "Segment"
#: pcbnew/classpcb.cpp:313
#: pcbnew/class_board_item.cpp:182
msgid "Marker"
msgstr "Marqueur"
#: pcbnew/classpcb.cpp:316
msgid "Marker Error Text"
msgstr "Texte du Marqueur d'erreurs"
#: pcbnew/files.cpp:57
#: pcbnew/files.cpp:57
msgid "Recovery file "
msgid "Recovery file "
msgstr "Fichier de secours "
msgstr "Fichier de secours "
...
@@ -2924,10 +2925,6 @@ msgstr "Valeur"
...
@@ -2924,10 +2925,6 @@ msgstr "Valeur"
msgid "Text"
msgid "Text"
msgstr "Texte"
msgstr "Texte"
#: pcbnew/controle.cpp:174
msgid "Selection Clarification"
msgstr "Clarification de la Slection"
#: pcbnew/drc.cpp:80
#: pcbnew/drc.cpp:80
msgid "Look for active routes\n"
msgid "Look for active routes\n"
msgstr "Recherche des chevelus actifs\n"
msgstr "Recherche des chevelus actifs\n"
...
@@ -3001,7 +2998,7 @@ msgid "Tst Zones\n"
...
@@ -3001,7 +2998,7 @@ msgid "Tst Zones\n"
msgstr "Test Zones\n"
msgstr "Test Zones\n"
#: pcbnew/drc.cpp:1367
#: pcbnew/drc.cpp:1367
#,
fuzzy,
c-format
#, c-format
msgid "%d Drc Err %d %s (net %s) and PAD %s (%s) net %s @ %d,%d\n"
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"
msgstr "%d Err Drc %d %s (net %s) et PAD %s (%s) net %s @ %d,%d\n"
...
@@ -3028,10 +3025,13 @@ msgstr "Propri
...
@@ -3028,10 +3025,13 @@ msgstr "Propri
msgid "Position"
msgid "Position"
msgstr "Position"
msgstr "Position"
#: pcbnew/editmod.cpp:45
#: pcbnew/surbrill.cpp:35
#: pcbnew/edit.cpp:167
msgid "Filter for net names:"
msgid "Module Editor"
msgstr "Filtre pour nets:"
msgstr "Ouvrir Editeur de modules"
#: pcbnew/surbrill.cpp:39
msgid "List Nets"
msgstr "Liste quipots"
#: pcbnew/editmod.cpp:144
#: pcbnew/editmod.cpp:144
msgid "Text is REFERENCE!"
msgid "Text is REFERENCE!"
...
@@ -3359,175 +3359,76 @@ msgid "&About"
...
@@ -3359,175 +3359,76 @@ msgid "&About"
msgstr "&Infos logiciel"
msgstr "&Infos logiciel"
#: pcbnew/menubarpcb.cpp:272
#: pcbnew/menubarpcb.cpp:272
#: pcbnew/menubarmodedit.cpp:64
#: pcbnew/menubarmodedit.cpp:64
#: eeschema/menubar.cpp:183
#: eeschema/menubar.cpp:183
#: cvpcb/tool_cvpcb.cpp:163
#: cvpcb/tool_cvpcb.cpp:163
#: kicad/buildmnu.cpp:203
#: kicad/buildmnu.cpp:203
#: gerbview/tool_gerber.cpp:153
#: gerbview/tool_gerber.cpp:153
msgid "About this application"
msgid "About this application"
msgstr "Au sujet de cette application"
msgstr "Au sujet de cette application"
#: pcbnew/menubarpcb.cpp:280
#: pcbnew/menubarmodedit.cpp:72
msgid "3D Display"
msgstr "3D Visu"
#: pcbnew/menubarpcb.cpp:280
#: pcbnew/menubarmodedit.cpp:72
msgid "Show Board in 3D Mode"
msgstr "Visualisation en 3D"
#: pcbnew/menubarpcb.cpp:284
#: eeschema/menubar.cpp:188
#: cvpcb/tool_cvpcb.cpp:167
#: gerbview/tool_gerber.cpp:155
#: 3d-viewer/3d_toolbar.cpp:111
msgid "&File"
msgstr "&Fichiers"
#: pcbnew/menubarpcb.cpp:285
#: eeschema/menubar.cpp:190
#: cvpcb/tool_cvpcb.cpp:168
#: kicad/buildmnu.cpp:210
#: gerbview/tool_gerber.cpp:156
#: 3d-viewer/3d_toolbar.cpp:119
msgid "&Preferences"
msgstr "&Prfrences"
#: pcbnew/menubarpcb.cpp:286
#: pcbnew/menubarmodedit.cpp:76
msgid "&Dimensions"
msgstr "&Dimensions"
#: pcbnew/menubarpcb.cpp:287
#: gerbview/tool_gerber.cpp:157
msgid "&Miscellaneous"
msgstr "&Divers"
#: pcbnew/menubarpcb.cpp:288
msgid "P&ostprocess"
msgstr "P&ostprocesseurs"
#: pcbnew/menubarpcb.cpp:289
#: pcbnew/menubarmodedit.cpp:77
msgid "&3D Display"
msgstr "&3D Visu"
#: pcbnew/menubarpcb.cpp:290
#: pcbnew/menubarmodedit.cpp:78
#: eeschema/menubar.cpp:191
#: cvpcb/tool_cvpcb.cpp:169
#: kicad/buildmnu.cpp:211
#: gerbview/tool_gerber.cpp:160
msgid "&Help"
msgstr "&Aide"
#: pcbnew/set_color.cpp:50
msgid "Copper Layers"
msgstr "Couches Cuivre."
#: pcbnew/set_color.cpp:184
msgid "Tech Layers"
msgstr "Couches Tech."
#: pcbnew/set_color.cpp:323
msgid "Ratsnest"
msgstr "Chevelu"
#: pcbnew/set_color.cpp:332
msgid "Pad Cu"
msgstr "Pad Cu"
#: pcbnew/set_color.cpp:340
msgid "Pad Cmp"
msgstr "Pad Cmp"
#: pcbnew/set_color.cpp:348
msgid "Text Module Cu"
msgstr "Texte Module Cu"
#: pcbnew/set_color.cpp:356
msgid "Text Module Cmp"
msgstr "Texte Module Cmp"
#: pcbnew/set_color.cpp:364
msgid "Text Module invisible"
msgstr "Texte Module invisible"
#: pcbnew/set_color.cpp:372
msgid "Anchors"
msgstr "Ancres"
#: pcbnew/set_color.cpp:398
msgid "Show Noconnect"
msgstr "Montrer Non Conn"
#: pcbnew/set_color.cpp:407
msgid "Show Modules Cmp"
msgstr "Afficher Modules Cmp"
#: pcbnew/set_color.cpp:416
msgid "Show Modules Cu"
msgstr "Afficher Modules Cu"
#: pcbnew/set_color.cpp:577
msgid "Colors:"
msgstr "Couleurs:"
#: pcbnew/set_color.cpp:704
#: gerbview/set_color.cpp:234
msgid "Show All"
msgstr "Tout Afficher"
#: pcbnew/set_color.cpp:710
#: gerbview/set_color.cpp:239
msgid "Show None"
msgstr "Rien Afficher"
#: pcbnew/set_color.cpp:716
#: pcbnew/menubarpcb.cpp:280
msgid "Exit"
#: pcbnew/menubarmodedit.cpp:72
msgstr "Quitter"
msgid "3D Display"
msgstr "3D Visu"
#: pcbnew/edit.cpp:247
#: pcbnew/menubarpcb.cpp:280
msgid "Add Tracks"
#: pcbnew/menubarmodedit.cpp:72
msgstr "Addition de pistes"
msgid "Show Board in 3D Mode"
msgstr "Visualisation en 3D"
#: pcbnew/edit.cpp:258
#: pcbnew/menubarpcb.cpp:284
msgid "Warning: Display Zone is OFF!!!"
#: eeschema/menubar.cpp:188
msgstr "Attention: Affichage zones dsactiv !!!"
#: cvpcb/tool_cvpcb.cpp:167
#: gerbview/tool_gerber.cpp:155
#: 3d-viewer/3d_toolbar.cpp:111
msgid "&File"
msgstr "&Fichiers"
#: pcbnew/edit.cpp:265
#: pcbnew/menubarpcb.cpp:285
msgid "Add Mire"
#: eeschema/menubar.cpp:190
msgstr "Ajouter Mires de superposition"
#: cvpcb/tool_cvpcb.cpp:168
#: kicad/buildmnu.cpp:210
#: gerbview/tool_gerber.cpp:156
#: 3d-viewer/3d_toolbar.cpp:119
msgid "&Preferences"
msgstr "&Prfrences"
#: pcbnew/edit.cpp:269
#: pcbnew/menubarpcb.cpp:286
msgid "Adjust Zero"
#: pcbnew/menubarmodedit.cpp:76
msgstr "Ajuster Zro"
msgid "&Dimensions"
msgstr "&Dimensions"
#: pcbnew/edit.cpp:275
#: pcbnew/menubarpcb.cpp:287
msgid "Add Graphic"
#: gerbview/tool_gerber.cpp:157
msgstr "Addition lments graphiques"
msgid "&Miscellaneous"
msgstr "&Divers"
#: pcbnew/
edit.cpp:283
#: pcbnew/
menubarpcb.cpp:288
msgid "
Add Module
s"
msgid "
P&ostproces
s"
msgstr "
Addition de Module
s"
msgstr "
P&ostprocesseur
s"
#: pcbnew/edit.cpp:295
#: pcbnew/menubarpcb.cpp:289
msgid "Net Highlight"
#: pcbnew/menubarmodedit.cpp:77
msgstr "Surbrillance des quipotentielles"
msgid "&3D Display"
msgstr "&3D Visu"
#: pcbnew/edit.cpp:299
#: pcbnew/menubarpcb.cpp:290
msgid "Local Ratsnest"
#: pcbnew/menubarmodedit.cpp:78
msgstr "Monter le chevelu gnral"
#: eeschema/menubar.cpp:191
#: cvpcb/tool_cvpcb.cpp:169
#: kicad/buildmnu.cpp:211
#: gerbview/tool_gerber.cpp:160
msgid "&Help"
msgstr "&Aide"
#: pcbnew/sel_layer.cpp:92
#: pcbnew/sel_layer.cpp:92
msgid "Select Layer:"
msgid "Select Layer:"
msgstr "Selection couche:"
msgstr "Selection couche:"
#: pcbnew/sel_layer.cpp:137
#: pcbnew/sel_layer.cpp:137
#, fuzzy
msgid "(Deselect)"
msgid "(Deselect)"
msgstr "
Deselection
"
msgstr "
(Deselection)
"
#: pcbnew/sel_layer.cpp:238
#: pcbnew/sel_layer.cpp:238
msgid "Less than two copper layers are being used."
msgid "Less than two copper layers are being used."
...
@@ -3551,7 +3452,7 @@ msgstr "Couche Inf."
...
@@ -3551,7 +3452,7 @@ msgstr "Couche Inf."
#: pcbnew/sel_layer.cpp:351
#: pcbnew/sel_layer.cpp:351
msgid "The Top Layer and Bottom Layer must differ"
msgid "The Top Layer and Bottom Layer must differ"
msgstr ""
msgstr "
Les couches dessus et dessous doivent diffrer
"
#: pcbnew/automove.cpp:212
#: pcbnew/automove.cpp:212
msgid "Move Modules ?"
msgid "Move Modules ?"
...
@@ -3566,74 +3467,16 @@ msgstr "Autoplace modules: pas de contours sur pcb, impossible de placer les mod
...
@@ -3566,74 +3467,16 @@ msgstr "Autoplace modules: pas de contours sur pcb, impossible de placer les mod
msgid "Ok to set module orientation to %d degrees ?"
msgid "Ok to set module orientation to %d degrees ?"
msgstr "Ok pour orientation module %d degrs ?"
msgstr "Ok pour orientation module %d degrs ?"
#: pcbnew/class_board_item.cpp:40
#: pcbnew/basepcbframe.cpp:119
#: eeschema/component_class.cpp:56
msgid "3D Frame already opened"
msgid "Footprint"
msgstr "Fenetre 3D dj ouverte"
msgstr "Module"
#: pcbnew/class_board_item.cpp:45
msgid "Pad"
msgstr "Pad"
#: pcbnew/class_board_item.cpp:45
#: pcbnew/class_board_item.cpp:71
#: pcbnew/class_board_item.cpp:77
#: pcbnew/class_board_item.cpp:122
msgid " of "
msgstr " de "
#: pcbnew/class_board_item.cpp:50
msgid "Pcb Graphic"
msgstr "Pcb Graphic"
#: pcbnew/class_board_item.cpp:50
#: pcbnew/class_board_item.cpp:59
#: pcbnew/class_board_item.cpp:133
#: pcbnew/class_board_item.cpp:148
#: pcbnew/class_board_item.cpp:175
#: pcbnew/class_board_item.cpp:194
msgid " on "
msgstr " sur "
#: pcbnew/class_board_item.cpp:54
msgid "Pcb Text"
msgstr "Texte Pcb"
#: pcbnew/class_board_item.cpp:85
msgid "Graphic"
msgstr "Graphique"
#: pcbnew/class_board_item.cpp:97
msgid "Arc"
msgstr "Arc"
#: pcbnew/class_board_item.cpp:137
#: pcbnew/class_track.cpp:692
msgid "Zone"
msgstr "Zone"
#: pcbnew/class_board_item.cpp:158
msgid "Blind"
msgstr "Enterre"
#: pcbnew/class_board_item.cpp:160
msgid "Buried"
msgstr "Borgne"
#: pcbnew/class_board_item.cpp:186
msgid "Dimension"
msgstr "Dimension"
#: pcbnew/class_board_item.cpp:190
msgid "Mire"
msgstr "Mire"
#: pcbnew/
class_board_item.cpp:194
#: pcbnew/
basepcbframe.cpp:122
msgid "
Edge Zone
"
msgid "
3D Viewer
"
msgstr "
Contour Zone
"
msgstr "
Visu 3D
"
#: pcbnew/modedit_onclick.cpp:206
#: pcbnew/modedit_onclick.cpp:206
#: pcbnew/onrightclick.cpp:1
48
#: pcbnew/onrightclick.cpp:1
51
#: eeschema/libedit_onrightclick.cpp:73
#: eeschema/libedit_onrightclick.cpp:73
#: eeschema/onrightclick.cpp:125
#: eeschema/onrightclick.cpp:125
#: gerbview/onrightclick.cpp:42
#: gerbview/onrightclick.cpp:42
...
@@ -3641,7 +3484,7 @@ msgid "End Tool"
...
@@ -3641,7 +3484,7 @@ msgid "End Tool"
msgstr "Fin Outil"
msgstr "Fin Outil"
#: pcbnew/modedit_onclick.cpp:216
#: pcbnew/modedit_onclick.cpp:216
#: pcbnew/onrightclick.cpp:4
57
#: pcbnew/onrightclick.cpp:4
95
#: eeschema/libedit_onrightclick.cpp:252
#: eeschema/libedit_onrightclick.cpp:252
#: eeschema/onrightclick.cpp:581
#: eeschema/onrightclick.cpp:581
#: gerbview/onrightclick.cpp:51
#: gerbview/onrightclick.cpp:51
...
@@ -3649,13 +3492,13 @@ msgid "Cancel Block"
...
@@ -3649,13 +3492,13 @@ msgid "Cancel Block"
msgstr "Annuler Bloc"
msgstr "Annuler Bloc"
#: pcbnew/modedit_onclick.cpp:218
#: pcbnew/modedit_onclick.cpp:218
#: pcbnew/onrightclick.cpp:4
59
#: pcbnew/onrightclick.cpp:4
97
#: gerbview/onrightclick.cpp:52
#: gerbview/onrightclick.cpp:52
msgid "Zoom Block (Midd butt drag)"
msgid "Zoom Block (Midd butt drag)"
msgstr "Zoom Bloc (drag+bouton milieu)"
msgstr "Zoom Bloc (drag+bouton milieu)"
#: pcbnew/modedit_onclick.cpp:221
#: pcbnew/modedit_onclick.cpp:221
#: pcbnew/onrightclick.cpp:
462
#: pcbnew/onrightclick.cpp:
500
#: eeschema/libedit_onrightclick.cpp:260
#: eeschema/libedit_onrightclick.cpp:260
#: eeschema/onrightclick.cpp:589
#: eeschema/onrightclick.cpp:589
#: gerbview/onrightclick.cpp:54
#: gerbview/onrightclick.cpp:54
...
@@ -3663,7 +3506,7 @@ msgid "Place Block"
...
@@ -3663,7 +3506,7 @@ msgid "Place Block"
msgstr "Place Bloc"
msgstr "Place Bloc"
#: pcbnew/modedit_onclick.cpp:223
#: pcbnew/modedit_onclick.cpp:223
#: pcbnew/onrightclick.cpp:
464
#: pcbnew/onrightclick.cpp:
502
#: eeschema/libedit_onrightclick.cpp:266
#: eeschema/libedit_onrightclick.cpp:266
#: eeschema/onrightclick.cpp:598
#: eeschema/onrightclick.cpp:598
msgid "Copy Block (shift + drag mouse)"
msgid "Copy Block (shift + drag mouse)"
...
@@ -3674,18 +3517,18 @@ msgid "Mirror Block (alt + drag mouse)"
...
@@ -3674,18 +3517,18 @@ msgid "Mirror Block (alt + drag mouse)"
msgstr "Bloc Miroir (alt + drag mouse)"
msgstr "Bloc Miroir (alt + drag mouse)"
#: pcbnew/modedit_onclick.cpp:227
#: pcbnew/modedit_onclick.cpp:227
#: pcbnew/onrightclick.cpp:
468
#: pcbnew/onrightclick.cpp:
506
msgid "Rotate Block (ctrl + drag mouse)"
msgid "Rotate Block (ctrl + drag mouse)"
msgstr "Rotation Bloc (ctrl + drag mouse)"
msgstr "Rotation Bloc (ctrl + drag mouse)"
#: pcbnew/modedit_onclick.cpp:229
#: pcbnew/modedit_onclick.cpp:229
#: pcbnew/onrightclick.cpp:
470
#: pcbnew/onrightclick.cpp:
508
msgid "Delete Block (shift+ctrl + drag mouse)"
msgid "Delete Block (shift+ctrl + drag mouse)"
msgstr "Effacement Bloc (shift+ctrl + drag mouse)"
msgstr "Effacement Bloc (shift+ctrl + drag mouse)"
#: pcbnew/modedit_onclick.cpp:251
#: pcbnew/modedit_onclick.cpp:251
#: pcbnew/onrightclick.cpp:
676
#: pcbnew/onrightclick.cpp:
714
#: pcbnew/onrightclick.cpp:
773
#: pcbnew/onrightclick.cpp:
811
msgid "Rotate"
msgid "Rotate"
msgstr "Rotation"
msgstr "Rotation"
...
@@ -3715,17 +3558,17 @@ msgid "Move Pad"
...
@@ -3715,17 +3558,17 @@ msgid "Move Pad"
msgstr "Dplace Pad"
msgstr "Dplace Pad"
#: pcbnew/modedit_onclick.cpp:273
#: pcbnew/modedit_onclick.cpp:273
#: pcbnew/onrightclick.cpp:7
15
#: pcbnew/onrightclick.cpp:7
53
msgid "Edit Pad"
msgid "Edit Pad"
msgstr "Edit Pad"
msgstr "Edit Pad"
#: pcbnew/modedit_onclick.cpp:275
#: pcbnew/modedit_onclick.cpp:275
#: pcbnew/onrightclick.cpp:7
19
#: pcbnew/onrightclick.cpp:7
57
msgid "New Pad Settings"
msgid "New Pad Settings"
msgstr "Nouvelles Caract. Pads"
msgstr "Nouvelles Caract. Pads"
#: pcbnew/modedit_onclick.cpp:277
#: pcbnew/modedit_onclick.cpp:277
#: pcbnew/onrightclick.cpp:7
21
#: pcbnew/onrightclick.cpp:7
59
msgid "Export Pad Settings"
msgid "Export Pad Settings"
msgstr "Exporte Caract. Pads"
msgstr "Exporte Caract. Pads"
...
@@ -3734,7 +3577,7 @@ msgid "delete Pad"
...
@@ -3734,7 +3577,7 @@ msgid "delete Pad"
msgstr "Supprimer Pad"
msgstr "Supprimer Pad"
#: pcbnew/modedit_onclick.cpp:284
#: pcbnew/modedit_onclick.cpp:284
#: pcbnew/onrightclick.cpp:7
26
#: pcbnew/onrightclick.cpp:7
64
msgid "Global Pad Settings"
msgid "Global Pad Settings"
msgstr "Edition Globale des pads"
msgstr "Edition Globale des pads"
...
@@ -3767,9 +3610,9 @@ msgid "Place edge"
...
@@ -3767,9 +3610,9 @@ msgid "Place edge"
msgstr "Place contour"
msgstr "Place contour"
#: pcbnew/modedit_onclick.cpp:316
#: pcbnew/modedit_onclick.cpp:316
#: pcbnew/onrightclick.cpp:6
44
#: pcbnew/onrightclick.cpp:6
82
#: pcbnew/onrightclick.cpp:
678
#: pcbnew/onrightclick.cpp:
716
#: pcbnew/onrightclick.cpp:
775
#: pcbnew/onrightclick.cpp:
813
#: eeschema/onrightclick.cpp:312
#: eeschema/onrightclick.cpp:312
msgid "Edit"
msgid "Edit"
msgstr "Editer"
msgstr "Editer"
...
@@ -3798,6 +3641,26 @@ msgstr "Effacement contour"
...
@@ -3798,6 +3641,26 @@ msgstr "Effacement contour"
msgid "Set Width"
msgid "Set Width"
msgstr "Ajuste Epaiss"
msgstr "Ajuste Epaiss"
#: pcbnew/set_color.cpp:149
msgid "Colors:"
msgstr "Couleurs:"
#: pcbnew/set_color.cpp:264
#: gerbview/set_color.cpp:236
msgid "Show All"
msgstr "Tout Afficher"
#: pcbnew/set_color.cpp:270
#: gerbview/set_color.cpp:241
msgid "Show None"
msgstr "Rien Afficher"
#: pcbnew/set_color.cpp:285
#: cvpcb/dialog_display_options.cpp:199
#: gerbview/set_color.cpp:257
msgid "Apply"
msgstr "Appliquer"
#: pcbnew/dialog_setup_libs.cpp:191
#: pcbnew/dialog_setup_libs.cpp:191
#: eeschema/eestatus.cpp:139
#: eeschema/eestatus.cpp:139
#: eeschema/dialog_eeschema_config.cpp:211
#: eeschema/dialog_eeschema_config.cpp:211
...
@@ -3949,29 +3812,35 @@ msgstr "Largeur Texte Module"
...
@@ -3949,29 +3812,35 @@ msgstr "Largeur Texte Module"
msgid "GenCAD file:"
msgid "GenCAD file:"
msgstr "Fichier GenCAD:"
msgstr "Fichier GenCAD:"
#: pcbnew/swap_layers.cpp:59
msgid "Swap Layers:"
msgstr "Permutte couches"
#: pcbnew/swap_layers.cpp:75
#: pcbnew/swap_layers.cpp:129
#: pcbnew/swap_layers.cpp:162
msgid "No Change"
msgstr "Garder"
#: pcbnew/swap_layers.cpp:80
#: gerbview/select_layers_to_pcb.cpp:134
msgid "Layers"
msgstr "Couches"
#: pcbnew/swap_layers.cpp:88
#: pcbnew/swap_layers.cpp:88
#: gerbview/select_layers_to_pcb.cpp:152
#: gerbview/select_layers_to_pcb.cpp:152
#, fuzzy
msgid "Select..."
msgid "Select..."
msgstr "Slection"
msgstr "Slection..."
#: pcbnew/swap_layers.cpp:93
#: gerbview/select_layers_to_pcb.cpp:156
msgid "Deselect"
msgstr "Deselection"
#: pcbnew/swap_layers.cpp:150
#: pcbnew/swap_layers.cpp:150
msgid "Deselect this layer to restore its No Change state"
msgid "Deselect this layer to restore its No Change state"
msgstr "Deselectionner cette couche pour restorer l'option Pas de Changement"
msgstr "Deselectionner cette couche pour restorer l'option Pas de Changement"
#: pcbnew/class_track.cpp:719
msgid "NetCode"
msgstr "NetCode"
#: pcbnew/class_track.cpp:739
#: pcbnew/class_module.cpp:1135
msgid "Stat"
msgstr "Stat"
#: pcbnew/class_track.cpp:763
msgid "Diam"
msgstr "Diam"
#: pcbnew/dialog_edit_module.cpp:39
#: pcbnew/dialog_edit_module.cpp:39
msgid "Module properties"
msgid "Module properties"
msgstr "Proprits du Module"
msgstr "Proprits du Module"
...
@@ -4129,53 +3998,71 @@ msgstr "R
...
@@ -4129,53 +3998,71 @@ msgstr "R
msgid "Delete [%s]"
msgid "Delete [%s]"
msgstr "Supprimer [%s]"
msgstr "Supprimer [%s]"
#: pcbnew/globaleditpad.cpp:79
#: pcbnew/class_board_item.cpp:40
msgid "Pads Global Edit"
#: eeschema/component_class.cpp:56
msgstr "Pads: Edition globale"
msgid "Footprint"
msgstr "Module"
#: pcbnew/
globaleditpad.cpp:101
#: pcbnew/
class_board_item.cpp:45
msgid "
Change Module
"
msgid "
Pad
"
msgstr "
Change module
"
msgstr "
Pad
"
#: pcbnew/globaleditpad.cpp:106
#: pcbnew/class_board_item.cpp:45
msgid "Change Id Modules"
#: pcbnew/class_board_item.cpp:71
msgstr "Change Modules ident."
#: pcbnew/class_board_item.cpp:77
#: pcbnew/class_board_item.cpp:122
msgid " of "
msgstr " de "
#: pcbnew/
globaleditpad.cpp:117
#: pcbnew/
class_board_item.cpp:50
msgid "P
ad Filter :
"
msgid "P
cb Graphic
"
msgstr "
Filtre Pad :
"
msgstr "
Pcb Graphic
"
#: pcbnew/globaleditpad.cpp:119
#: pcbnew/class_board_item.cpp:50
msgid "Shape Filter"
#: pcbnew/class_board_item.cpp:59
msgstr "Filtre sur forme"
#: pcbnew/class_board_item.cpp:133
#: pcbnew/class_board_item.cpp:148
#: pcbnew/class_board_item.cpp:175
#: pcbnew/class_board_item.cpp:197
msgid " on "
msgstr " sur "
#: pcbnew/
globaleditpad.cpp:123
#: pcbnew/
class_board_item.cpp:54
msgid "
Layer Filter
"
msgid "
Pcb Text
"
msgstr "
Filtre sur couche
"
msgstr "
Texte Pcb
"
#: pcbnew/
globaleditpad.cpp:127
#: pcbnew/
class_board_item.cpp:85
msgid "
Orient Filter
"
msgid "
Graphic
"
msgstr "
Filtre Orientation
"
msgstr "
Graphique
"
#: pcbnew/
globaleditpad.cpp:132
#: pcbnew/
class_board_item.cpp:97
msgid "
Change Items :
"
msgid "
Arc
"
msgstr "
Elments changer:
"
msgstr "
Arc
"
#: pcbnew/globaleditpad.cpp:134
#: pcbnew/class_board_item.cpp:137
msgid "Change Size"
#: pcbnew/class_track.cpp:712
msgstr "Change Taille"
msgid "Zone"
msgstr "Zone"
#: pcbnew/
globaleditpad.cpp:13
8
#: pcbnew/
class_board_item.cpp:15
8
msgid "
Change Shape
"
msgid "
Blind
"
msgstr "
Change Form
e"
msgstr "
Enterr
e"
#: pcbnew/globaleditpad.cpp:142
#: pcbnew/class_board_item.cpp:160
msgid "Change Drill"
msgid "Buried"
msgstr "Change Perage"
msgstr "Borgne"
#: pcbnew/class_board_item.cpp:186
msgid "Dimension"
msgstr "Dimension"
#: pcbnew/globaleditpad.cpp:146
#: pcbnew/class_board_item.cpp:190
msgid "Change Orient"
msgid "Target"
msgstr "Change Orientation"
msgstr "Mire"
#: pcbnew/class_board_item.cpp:197
msgid "Edge Zone"
msgstr "Contour Zone"
#: pcbnew/class_edge_mod.cpp:283
#: pcbnew/class_edge_mod.cpp:283
msgid "Seg"
msgid "Seg"
...
@@ -4226,6 +4113,19 @@ msgstr "Pin localis
...
@@ -4226,6 +4113,19 @@ msgstr "Pin localis
msgid "Module Editor: module modified!, Continue ?"
msgid "Module Editor: module modified!, Continue ?"
msgstr "Editeur de Module: module modifi! Continuer ?"
msgstr "Editeur de Module: module modifi! Continuer ?"
#: pcbnew/class_track.cpp:739
msgid "NetCode"
msgstr "NetCode"
#: pcbnew/class_track.cpp:759
#: pcbnew/class_module.cpp:1135
msgid "Stat"
msgstr "Stat"
#: pcbnew/class_track.cpp:783
msgid "Diam"
msgstr "Diam"
#: pcbnew/gen_modules_placefile.cpp:76
#: pcbnew/gen_modules_placefile.cpp:76
msgid "No Modules for Automated Placement"
msgid "No Modules for Automated Placement"
msgstr "Pas de Module pour placement Automatis"
msgstr "Pas de Module pour placement Automatis"
...
@@ -4242,379 +4142,435 @@ msgstr "Fichier placement cot
...
@@ -4242,379 +4142,435 @@ msgstr "Fichier placement cot
msgid "Module count"
msgid "Module count"
msgstr "Nb Modules"
msgstr "Nb Modules"
#: pcbnew/basepcbframe.cpp:119
#: pcbnew/onrightclick.cpp:83
msgid "3D Frame already opened"
msgstr "Fenetre 3D dj ouverte"
#: pcbnew/basepcbframe.cpp:122
msgid "3D Viewer"
msgstr "Visu 3D"
#: pcbnew/onrightclick.cpp:80
#, c-format
#, c-format
msgid "Track %.1f"
msgid "Track %.1f"
msgstr "Piste %.1f"
msgstr "Piste %.1f"
#: pcbnew/onrightclick.cpp:8
2
#: pcbnew/onrightclick.cpp:8
5
#, c-format
#, c-format
msgid "Track %.3f"
msgid "Track %.3f"
msgstr "Piste %.3f"
msgstr "Piste %.3f"
#: pcbnew/onrightclick.cpp:
98
#: pcbnew/onrightclick.cpp:
101
#, c-format
#, c-format
msgid "Via %.1f"
msgid "Via %.1f"
msgstr "Via %.1f"
msgstr "Via %.1f"
#: pcbnew/onrightclick.cpp:10
0
#: pcbnew/onrightclick.cpp:10
3
#, c-format
#, c-format
msgid "Via %.3f"
msgid "Via %.3f"
msgstr "Via %.3f"
msgstr "Via %.3f"
#: pcbnew/onrightclick.cpp:
197
#: pcbnew/onrightclick.cpp:
235
msgid "Lock Module"
msgid "Lock Module"
msgstr "Verrouiller Modules"
msgstr "Verrouiller Modules"
#: pcbnew/onrightclick.cpp:2
05
#: pcbnew/onrightclick.cpp:2
43
msgid "Unlock Module"
msgid "Unlock Module"
msgstr "Dverrouiller Modules"
msgstr "Dverrouiller Modules"
#: pcbnew/onrightclick.cpp:2
13
#: pcbnew/onrightclick.cpp:2
51
msgid "Auto place Module"
msgid "Auto place Module"
msgstr "Auto place Module"
msgstr "Auto place Module"
#: pcbnew/onrightclick.cpp:2
19
#: pcbnew/onrightclick.cpp:2
57
msgid "Autoroute"
msgid "Autoroute"
msgstr "Autoroute"
msgstr "Autoroute"
#: pcbnew/onrightclick.cpp:2
35
#: pcbnew/onrightclick.cpp:2
73
msgid "Move Drawing"
msgid "Move Drawing"
msgstr "Dplace Trac"
msgstr "Dplace Trac"
#: pcbnew/onrightclick.cpp:2
40
#: pcbnew/onrightclick.cpp:2
78
msgid "End Drawing"
msgid "End Drawing"
msgstr "Fin trac"
msgstr "Fin trac"
#: pcbnew/onrightclick.cpp:2
42
#: pcbnew/onrightclick.cpp:2
80
msgid "Edit Drawing"
msgid "Edit Drawing"
msgstr "Edit Trac"
msgstr "Edit Trac"
#: pcbnew/onrightclick.cpp:2
43
#: pcbnew/onrightclick.cpp:2
81
msgid "Delete Drawing"
msgid "Delete Drawing"
msgstr "Supprimer Trac"
msgstr "Supprimer Trac"
#: pcbnew/onrightclick.cpp:2
50
#: pcbnew/onrightclick.cpp:2
88
msgid "End edge zone"
msgid "End edge zone"
msgstr "Fin contour Zone"
msgstr "Fin contour Zone"
#: pcbnew/onrightclick.cpp:2
53
#: pcbnew/onrightclick.cpp:2
91
msgid "Delete edge zone"
msgid "Delete edge zone"
msgstr "Supprimer Contour Zone"
msgstr "Supprimer Contour Zone"
#: pcbnew/onrightclick.cpp:
268
#: pcbnew/onrightclick.cpp:
306
msgid "Edit Zone"
msgid "Edit Zone"
msgstr "Editer Zone"
msgstr "Editer Zone"
#: pcbnew/onrightclick.cpp:
270
#: pcbnew/onrightclick.cpp:
308
msgid "Delete Zone"
msgid "Delete Zone"
msgstr "Supprimer Zone"
msgstr "Supprimer Zone"
#: pcbnew/onrightclick.cpp:
275
#: pcbnew/onrightclick.cpp:
313
msgid "Delete Marker"
msgid "Delete Marker"
msgstr "Effacer Marqueur"
msgstr "Effacer Marqueur"
#: pcbnew/onrightclick.cpp:
282
#: pcbnew/onrightclick.cpp:
320
msgid "Edit
Cotat
ion"
msgid "Edit
Dimens
ion"
msgstr "Edit
er Cotation
"
msgstr "Edit
Cote
"
#: pcbnew/onrightclick.cpp:
285
#: pcbnew/onrightclick.cpp:
323
msgid "Delete
Cotat
ion"
msgid "Delete
Dimens
ion"
msgstr "Suppr
imer Cotation
"
msgstr "Suppr
ession Cote
"
#: pcbnew/onrightclick.cpp:
292
#: pcbnew/onrightclick.cpp:
330
msgid "Move
Mire
"
msgid "Move
Target
"
msgstr "Dplace Mire"
msgstr "Dplace
r
Mire"
#: pcbnew/onrightclick.cpp:
295
#: pcbnew/onrightclick.cpp:
333
msgid "Edit
Mire
"
msgid "Edit
Target
"
msgstr "Edit Mire"
msgstr "Edit
er
Mire"
#: pcbnew/onrightclick.cpp:
297
#: pcbnew/onrightclick.cpp:
335
msgid "Delete
Mire
"
msgid "Delete
Target
"
msgstr "Supprimer Mire"
msgstr "Supprimer Mire"
#: pcbnew/onrightclick.cpp:3
24
#: pcbnew/onrightclick.cpp:3
62
msgid "Get and Move Footprint"
msgid "Get and Move Footprint"
msgstr "Sel et Dpl.t module"
msgstr "Sel et Dpl.t module"
#: pcbnew/onrightclick.cpp:3
36
#: pcbnew/onrightclick.cpp:3
74
msgid "Fill zone"
msgid "Fill zone"
msgstr "Remplir zone"
msgstr "Remplir zone"
#: pcbnew/onrightclick.cpp:3
44
#: pcbnew/onrightclick.cpp:3
82
msgid "Select Net"
msgid "Select Net"
msgstr "Slection Net"
msgstr "Slection Net"
#: pcbnew/onrightclick.cpp:3
49
#: pcbnew/onrightclick.cpp:3
87
msgid "Delete Zone Limit"
msgid "Delete Zone Limit"
msgstr "Supprimer Limite de Zone"
msgstr "Supprimer Limite de Zone"
#: pcbnew/onrightclick.cpp:3
54
#: pcbnew/onrightclick.cpp:3
92
#: pcbnew/onrightclick.cpp:
365
#: pcbnew/onrightclick.cpp:
403
#: pcbnew/onrightclick.cpp:
378
#: pcbnew/onrightclick.cpp:
416
#: pcbnew/onrightclick.cpp:4
39
#: pcbnew/onrightclick.cpp:4
77
msgid "Select Working Layer"
msgid "Select Working Layer"
msgstr "Slection de la couche de travail"
msgstr "Slection de la couche de travail"
#: pcbnew/onrightclick.cpp:
363
#: pcbnew/onrightclick.cpp:
401
#: pcbnew/onrightclick.cpp:4
36
#: pcbnew/onrightclick.cpp:4
74
msgid "Select Track Width"
msgid "Select Track Width"
msgstr "Slection Epais. Piste"
msgstr "Slection Epais. Piste"
#: pcbnew/onrightclick.cpp:
367
#: pcbnew/onrightclick.cpp:
405
msgid "Select layer pair for vias"
msgid "Select layer pair for vias"
msgstr "Selection couple de couches pour Vias"
msgstr "Selection couple de couches pour Vias"
#: pcbnew/onrightclick.cpp:
384
#: pcbnew/onrightclick.cpp:
422
msgid "Footprint documentation"
msgid "Footprint documentation"
msgstr "Documentation des modules"
msgstr "Documentation des modules"
#: pcbnew/onrightclick.cpp:
394
#: pcbnew/onrightclick.cpp:
432
msgid "Glob Move and Place"
msgid "Glob Move and Place"
msgstr "Move et Place Globaux"
msgstr "Move et Place Globaux"
#: pcbnew/onrightclick.cpp:
396
#: pcbnew/onrightclick.cpp:
434
msgid "Unlock All Modules"
msgid "Unlock All Modules"
msgstr "Dverrouiller tous les Modules"
msgstr "Dverrouiller tous les Modules"
#: pcbnew/onrightclick.cpp:
398
#: pcbnew/onrightclick.cpp:
436
msgid "Lock All Modules"
msgid "Lock All Modules"
msgstr "Verrouiller tous les Modules"
msgstr "Verrouiller tous les Modules"
#: pcbnew/onrightclick.cpp:4
01
#: pcbnew/onrightclick.cpp:4
39
msgid "Move All Modules"
msgid "Move All Modules"
msgstr "Dplace tous les Modules"
msgstr "Dplace tous les Modules"
#: pcbnew/onrightclick.cpp:4
02
#: pcbnew/onrightclick.cpp:4
40
msgid "Move New Modules"
msgid "Move New Modules"
msgstr "Dplace nouveaux Modules"
msgstr "Dplace nouveaux Modules"
#: pcbnew/onrightclick.cpp:4
04
#: pcbnew/onrightclick.cpp:4
42
msgid "Autoplace All Modules"
msgid "Autoplace All Modules"
msgstr "Autoplace Tous Modules"
msgstr "Autoplace Tous Modules"
#: pcbnew/onrightclick.cpp:4
05
#: pcbnew/onrightclick.cpp:4
43
msgid "Autoplace New Modules"
msgid "Autoplace New Modules"
msgstr "AutoPlace nouveaux Modules"
msgstr "AutoPlace nouveaux Modules"
#: pcbnew/onrightclick.cpp:4
06
#: pcbnew/onrightclick.cpp:4
44
msgid "Autoplace Next Module"
msgid "Autoplace Next Module"
msgstr "Autoplace Module suivant"
msgstr "Autoplace Module suivant"
#: pcbnew/onrightclick.cpp:4
09
#: pcbnew/onrightclick.cpp:4
47
msgid "Orient All Modules"
msgid "Orient All Modules"
msgstr "Oriente Tous Modules"
msgstr "Oriente Tous Modules"
#: pcbnew/onrightclick.cpp:4
16
#: pcbnew/onrightclick.cpp:4
54
msgid "Global Autoroute"
msgid "Global Autoroute"
msgstr "Autoroutage global"
msgstr "Autoroutage global"
#: pcbnew/onrightclick.cpp:4
18
#: pcbnew/onrightclick.cpp:4
56
msgid "Select layer pair"
msgid "Select layer pair"
msgstr "Selection couple de couches"
msgstr "Selection couple de couches"
#: pcbnew/onrightclick.cpp:4
20
#: pcbnew/onrightclick.cpp:4
58
msgid "Autoroute All Modules"
msgid "Autoroute All Modules"
msgstr "Autoroute Tous Modules"
msgstr "Autoroute Tous Modules"
#: pcbnew/onrightclick.cpp:4
22
#: pcbnew/onrightclick.cpp:4
60
msgid "Reset Unrouted"
msgid "Reset Unrouted"
msgstr "Rinit Non routs"
msgstr "Rinit Non routs"
#: pcbnew/onrightclick.cpp:4
27
#: pcbnew/onrightclick.cpp:4
65
msgid "Global AutoRouter"
msgid "Global AutoRouter"
msgstr "Autorouteur Global"
msgstr "Autorouteur Global"
#: pcbnew/onrightclick.cpp:4
29
#: pcbnew/onrightclick.cpp:4
67
msgid "Read Global AutoRouter Data"
msgid "Read Global AutoRouter Data"
msgstr "Lire Donnes de L'autorouteur global"
msgstr "Lire Donnes de L'autorouteur global"
#: pcbnew/onrightclick.cpp:
466
#: pcbnew/onrightclick.cpp:
504
msgid "Flip Block (alt + drag mouse)"
msgid "Flip Block (alt + drag mouse)"
msgstr "Inversion Bloc (alt + drag mouse)"
msgstr "Inversion Bloc (alt + drag mouse)"
#: pcbnew/onrightclick.cpp:
489
#: pcbnew/onrightclick.cpp:
527
msgid "Drag Via"
msgid "Drag Via"
msgstr "Drag Via"
msgstr "Drag Via"
#: pcbnew/onrightclick.cpp:
493
#: pcbnew/onrightclick.cpp:
531
msgid "Edit Via"
msgid "Edit Via"
msgstr "Edit Via"
msgstr "Edit Via"
#: pcbnew/onrightclick.cpp:
495
#: pcbnew/onrightclick.cpp:
533
msgid "Set via hole to Default"
msgid "Set via hole to Default"
msgstr "Ajuste perage via dfaut"
msgstr "Ajuste perage via dfaut"
#: pcbnew/onrightclick.cpp:
497
#: pcbnew/onrightclick.cpp:
535
msgid "Set via hole to alt value"
msgid "Set via hole to alt value"
msgstr "Ajuste perage via valeur alternative"
msgstr "Ajuste perage via valeur alternative"
#: pcbnew/onrightclick.cpp:
499
#: pcbnew/onrightclick.cpp:
537
msgid "Set the via hole alt value"
msgid "Set the via hole alt value"
msgstr "Ajuste la valeur alt. perage via"
msgstr "Ajuste la valeur alt. perage via"
#: pcbnew/onrightclick.cpp:5
01
#: pcbnew/onrightclick.cpp:5
39
msgid "Export Via hole to alt value"
msgid "Export Via hole to alt value"
msgstr "Exporte perage via valeur alt."
msgstr "Exporte perage via valeur alt."
#: pcbnew/onrightclick.cpp:5
03
#: pcbnew/onrightclick.cpp:5
41
msgid "Export via hole to others id vias"
msgid "Export via hole to others id vias"
msgstr "Exporte perage via aux autres semblables."
msgstr "Exporte perage via aux autres semblables."
#: pcbnew/onrightclick.cpp:5
05
#: pcbnew/onrightclick.cpp:5
43
msgid "Set ALL via holes to default"
msgid "Set ALL via holes to default"
msgstr "Ajuste perage TOUTES vias au dfaut"
msgstr "Ajuste perage TOUTES vias au dfaut"
#: pcbnew/onrightclick.cpp:5
18
#: pcbnew/onrightclick.cpp:5
56
msgid "Move Node"
msgid "Move Node"
msgstr "Dplace Noeud"
msgstr "Dplace Noeud"
#: pcbnew/onrightclick.cpp:5
23
#: pcbnew/onrightclick.cpp:5
61
msgid "Drag Segments, keep slope"
msgid "Drag Segments, keep slope"
msgstr "Drag Segments, garder direction"
msgstr "Drag Segments, garder direction"
#: pcbnew/onrightclick.cpp:5
25
#: pcbnew/onrightclick.cpp:5
63
msgid "Drag Segment"
msgid "Drag Segment"
msgstr "Drag Segment"
msgstr "Drag Segment"
#: pcbnew/onrightclick.cpp:5
28
#: pcbnew/onrightclick.cpp:5
66
msgid "Move Segment"
msgid "Move Segment"
msgstr "Dplace Segment"
msgstr "Dplace Segment"
#: pcbnew/onrightclick.cpp:5
31
#: pcbnew/onrightclick.cpp:5
69
msgid "Break Track"
msgid "Break Track"
msgstr "Briser piste"
msgstr "Briser piste"
#: pcbnew/onrightclick.cpp:5
38
#: pcbnew/onrightclick.cpp:5
76
msgid "Place Node"
msgid "Place Node"
msgstr "Place noeud"
msgstr "Place noeud"
#: pcbnew/onrightclick.cpp:5
45
#: pcbnew/onrightclick.cpp:5
83
msgid "End Track"
msgid "End Track"
msgstr "Terminer Piste"
msgstr "Terminer Piste"
#: pcbnew/onrightclick.cpp:5
48
#: pcbnew/onrightclick.cpp:5
86
msgid "Place Via"
msgid "Place Via"
msgstr "Place Via"
msgstr "Place Via"
#: pcbnew/onrightclick.cpp:5
55
#: pcbnew/onrightclick.cpp:5
93
msgid "Change Width"
msgid "Change Width"
msgstr "Change Largeur"
msgstr "Change Largeur"
#: pcbnew/onrightclick.cpp:5
57
#: pcbnew/onrightclick.cpp:5
95
msgid "Edit Segment"
msgid "Edit Segment"
msgstr "Edit Segment"
msgstr "Edit Segment"
#: pcbnew/onrightclick.cpp:5
61
#: pcbnew/onrightclick.cpp:5
99
msgid "Edit Track"
msgid "Edit Track"
msgstr "Editer Piste"
msgstr "Editer Piste"
#: pcbnew/onrightclick.cpp:
563
#: pcbnew/onrightclick.cpp:
601
msgid "Edit Net"
msgid "Edit Net"
msgstr "Edit Net"
msgstr "Edit Net"
#: pcbnew/onrightclick.cpp:
565
#: pcbnew/onrightclick.cpp:
603
msgid "Edit ALL Tracks and Vias"
msgid "Edit ALL Tracks and Vias"
msgstr "Editer TOUTES Pistes et Vias"
msgstr "Editer TOUTES Pistes et Vias"
#: pcbnew/onrightclick.cpp:
567
#: pcbnew/onrightclick.cpp:
605
msgid "Edit ALL Vias (no track)"
msgid "Edit ALL Vias (no track)"
msgstr "Editer TOUTES Vias (pas les pistes)"
msgstr "Editer TOUTES Vias (pas les pistes)"
#: pcbnew/onrightclick.cpp:
569
#: pcbnew/onrightclick.cpp:
607
msgid "Edit ALL Tracks (no via)"
msgid "Edit ALL Tracks (no via)"
msgstr "Editer TOUTES Pistes (pas les vias)"
msgstr "Editer TOUTES Pistes (pas les vias)"
#: pcbnew/onrightclick.cpp:
576
#: pcbnew/onrightclick.cpp:
614
msgid "Delete Segment"
msgid "Delete Segment"
msgstr "SupprimerSegment"
msgstr "SupprimerSegment"
#: pcbnew/onrightclick.cpp:
581
#: pcbnew/onrightclick.cpp:
619
msgid "Delete Track"
msgid "Delete Track"
msgstr "Effacer Piste"
msgstr "Effacer Piste"
#: pcbnew/onrightclick.cpp:
585
#: pcbnew/onrightclick.cpp:
623
msgid "Delete Net"
msgid "Delete Net"
msgstr "Supprimer Net"
msgstr "Supprimer Net"
#: pcbnew/onrightclick.cpp:
590
#: pcbnew/onrightclick.cpp:
628
msgid "Set Flags"
msgid "Set Flags"
msgstr "Ajust. Flags"
msgstr "Ajust. Flags"
#: pcbnew/onrightclick.cpp:
591
#: pcbnew/onrightclick.cpp:
629
msgid "Locked: Yes"
msgid "Locked: Yes"
msgstr "Verrou: Oui"
msgstr "Verrou: Oui"
#: pcbnew/onrightclick.cpp:
592
#: pcbnew/onrightclick.cpp:
630
msgid "Locked: No"
msgid "Locked: No"
msgstr "Verrou: Non"
msgstr "Verrou: Non"
#: pcbnew/onrightclick.cpp:6
02
#: pcbnew/onrightclick.cpp:6
40
msgid "Track Locked: Yes"
msgid "Track Locked: Yes"
msgstr "Piste verrouille: Oui"
msgstr "Piste verrouille: Oui"
#: pcbnew/onrightclick.cpp:6
03
#: pcbnew/onrightclick.cpp:6
41
msgid "Track Locked: No"
msgid "Track Locked: No"
msgstr "Piste verrouille: Non"
msgstr "Piste verrouille: Non"
#: pcbnew/onrightclick.cpp:6
05
#: pcbnew/onrightclick.cpp:6
43
msgid "Net Locked: Yes"
msgid "Net Locked: Yes"
msgstr "Net verrouill: Oui"
msgstr "Net verrouill: Oui"
#: pcbnew/onrightclick.cpp:6
06
#: pcbnew/onrightclick.cpp:6
44
msgid "Net Locked: No"
msgid "Net Locked: No"
msgstr "Net verrouill: Non"
msgstr "Net verrouill: Non"
#: pcbnew/onrightclick.cpp:628
#: pcbnew/onrightclick.cpp:666
#: pcbnew/onrightclick.cpp:673
#: pcbnew/onrightclick.cpp:711
#: pcbnew/onrightclick.cpp:711
#: pcbnew/onrightclick.cpp:770
#: pcbnew/onrightclick.cpp:749
#: pcbnew/onrightclick.cpp:808
msgid "Move"
msgid "Move"
msgstr "Move"
msgstr "Move"
#: pcbnew/onrightclick.cpp:6
31
#: pcbnew/onrightclick.cpp:6
69
#: pcbnew/onrightclick.cpp:7
13
#: pcbnew/onrightclick.cpp:7
51
msgid "Drag"
msgid "Drag"
msgstr "Drag"
msgstr "Drag"
#: pcbnew/onrightclick.cpp:6
35
#: pcbnew/onrightclick.cpp:6
73
msgid "Rotate +"
msgid "Rotate +"
msgstr "Rotation +"
msgstr "Rotation +"
#: pcbnew/onrightclick.cpp:6
39
#: pcbnew/onrightclick.cpp:6
77
#: eeschema/onrightclick.cpp:300
#: eeschema/onrightclick.cpp:300
msgid "Rotate -"
msgid "Rotate -"
msgstr "Rotation -"
msgstr "Rotation -"
#: pcbnew/onrightclick.cpp:6
40
#: pcbnew/onrightclick.cpp:6
78
msgid "Flip"
msgid "Flip"
msgstr "Change ct"
msgstr "Change ct"
#: pcbnew/onrightclick.cpp:7
30
#: pcbnew/onrightclick.cpp:7
68
msgid "delete"
msgid "delete"
msgstr "Effacer"
msgstr "Effacer"
#: pcbnew/onrightclick.cpp:7
37
#: pcbnew/onrightclick.cpp:7
75
msgid "Autoroute Pad"
msgid "Autoroute Pad"
msgstr "Autoroute Pad"
msgstr "Autoroute Pad"
#: pcbnew/onrightclick.cpp:7
38
#: pcbnew/onrightclick.cpp:7
76
msgid "Autoroute Net"
msgid "Autoroute Net"
msgstr "Autoroute Net"
msgstr "Autoroute Net"
#: pcbnew/onleftclick.cpp:168
msgid "Graphic not autorized on Copper layers"
msgstr "Graphique non autoris sur couches cuivre"
#: pcbnew/onleftclick.cpp:191
msgid "Tracks on Copper layers only "
msgstr "Pistes sur couches cuivre seulement"
#: pcbnew/onleftclick.cpp:267
msgid "Cotation not autorized on Copper layers"
msgstr "Cotation non autorise sur couches cuivre"
#: pcbnew/menubarmodedit.cpp:40
#: pcbnew/menubarmodedit.cpp:40
msgid "Sizes and Widths"
msgid "Sizes and Widths"
msgstr "Dims. et Epaiss."
msgstr "Dims. et Epaiss."
#: 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/class_board.cpp:317
#: pcbnew/class_board.cpp:317
msgid "Nodes"
msgid "Nodes"
msgstr "Nodes"
msgstr "Nodes"
...
@@ -4722,18 +4678,6 @@ msgstr "Larg. piste: %s Diam Vias : %s"
...
@@ -4722,18 +4678,6 @@ msgstr "Larg. piste: %s Diam Vias : %s"
msgid "Drc error, cancelled"
msgid "Drc error, cancelled"
msgstr "Erreur DRC, annulation"
msgstr "Erreur DRC, annulation"
#: pcbnew/onleftclick.cpp:173
msgid "Graphic not autorized on Copper layers"
msgstr "Graphique non autoris sur couches cuivre"
#: pcbnew/onleftclick.cpp:196
msgid "Tracks on Copper layers only "
msgstr "Pistes sur couches cuivre seulement"
#: pcbnew/onleftclick.cpp:272
msgid "Cotation not autorized on Copper layers"
msgstr "Cotation non autorise sur couches cuivre"
#: pcbnew/cleaningoptions_dialog.cpp:146
#: pcbnew/cleaningoptions_dialog.cpp:146
msgid "Static"
msgid "Static"
msgstr "Static"
msgstr "Static"
...
@@ -4769,7 +4713,6 @@ msgid "Display Polar Coord"
...
@@ -4769,7 +4713,6 @@ msgid "Display Polar Coord"
msgstr "Affichage coord Polaires"
msgstr "Affichage coord Polaires"
#: pcbnew/dialog_general_options.cpp:273
#: pcbnew/dialog_general_options.cpp:273
#: eeschema/options.cpp:187
#: eeschema/dialog_options.cpp:248
#: eeschema/dialog_options.cpp:248
#: gerbview/options.cpp:185
#: gerbview/options.cpp:185
msgid "Units"
msgid "Units"
...
@@ -4834,7 +4777,6 @@ msgid "Segments 45 Only"
...
@@ -4834,7 +4777,6 @@ msgid "Segments 45 Only"
msgstr "Segments 45 seulement"
msgstr "Segments 45 seulement"
#: pcbnew/dialog_general_options.cpp:341
#: pcbnew/dialog_general_options.cpp:341
#: eeschema/options.cpp:124
#: eeschema/dialog_options.cpp:239
#: eeschema/dialog_options.cpp:239
msgid "Auto PAN"
msgid "Auto PAN"
msgstr "Auto PAN"
msgstr "Auto PAN"
...
@@ -5268,120 +5210,98 @@ msgstr "Un fichier %s existe, Le charger ?"
...
@@ -5268,120 +5210,98 @@ msgstr "Un fichier %s existe, Le charger ?"
msgid "Ok to cleanup this sheet"
msgid "Ok to cleanup this sheet"
msgstr "Ok pour nettoyer cette feuille"
msgstr "Ok pour nettoyer cette feuille"
#: eeschema/options.cpp:96
#: eeschema/sheetlab.cpp:72
#: eeschema/eelayer.cpp:282
msgid "PinSheet Properties:"
msgid "EESchema Preferences"
msgstr "Proprits des Pins de Hierarchie"
msgstr "EESchema Prfrences"
#: eeschema/sheetlab.cpp:106
msgid "PinSheet Shape:"
msgstr "Forme Pin de hirarchie:"
#: eeschema/sheetlab.cpp:386
msgid "No New Global Label found"
msgstr "Pas de nouveau Global Label trouv"
#: eeschema/netform.cpp:55
#: eeschema/netform.cpp:254
#: eeschema/save_schemas.cpp:94
msgid "Failed to create file "
msgstr "Impossible de crer le fichier "
#: eeschema/dialog_options.cpp:140
#: eeschema/dialog_options.cpp:288
msgid "Delta Step X"
msgstr "Incrment X"
#: eeschema/dialog_options.cpp:145
#: eeschema/dialog_options.cpp:294
msgid "Delta Step Y"
msgstr "Incrment Y"
#: eeschema/dialog_options.cpp:208
msgid "Draw Options:"
msgstr "Options de trac:"
#: eeschema/options.cpp:119
#: eeschema/dialog_options.cpp:212
#: eeschema/dialog_options.cpp:212
msgid "Show grid"
msgid "Show grid"
msgstr "Afficher grille"
msgstr "Afficher grille"
#: eeschema/options.cpp:130
#: eeschema/dialog_options.cpp:217
#: eeschema/dialog_options.cpp:217
msgid "Normal (50 mils)"
msgid "Normal (50 mils)"
msgstr "Normal (50 mils)"
msgstr "Normal (50 mils)"
#: eeschema/options.cpp:131
#: eeschema/dialog_options.cpp:218
#: eeschema/dialog_options.cpp:218
msgid "Small (25 mils)"
msgid "Small (25 mils)"
msgstr "Petit (25 mils)"
msgstr "Petit (25 mils)"
#: eeschema/options.cpp:132
#: eeschema/dialog_options.cpp:219
#: eeschema/dialog_options.cpp:219
msgid "Very small (10 mils)"
msgid "Very small (10 mils)"
msgstr "Trs petit (10 mils)"
msgstr "Trs petit (10 mils)"
#: eeschema/options.cpp:133
#: eeschema/dialog_options.cpp:220
#: eeschema/dialog_options.cpp:220
msgid "Special (5 mils)"
msgid "Special (5 mils)"
msgstr "Special (5 mils)"
msgstr "Special (5 mils)"
#: eeschema/options.cpp:134
#: eeschema/dialog_options.cpp:221
#: eeschema/dialog_options.cpp:221
msgid "Special (2 mils)"
msgid "Special (2 mils)"
msgstr "Special (2 mils)"
msgstr "Special (2 mils)"
#: eeschema/options.cpp:135
#: eeschema/dialog_options.cpp:222
#: eeschema/dialog_options.cpp:222
msgid "Special (1 mil)"
msgid "Special (1 mil)"
msgstr "Special (1 mil)"
msgstr "Special (1 mil)"
#: eeschema/options.cpp:138
#: eeschema/dialog_options.cpp:224
#: eeschema/dialog_options.cpp:224
msgid "Grid Size"
msgid "Grid Size"
msgstr "Dim Grille"
msgstr "Dim Grille"
#: eeschema/options.cpp:177
#: eeschema/dialog_options.cpp:230
#: eeschema/dialog_options.cpp:230
msgid "Show alls"
msgid "Show alls"
msgstr "Tout Afficher"
msgstr "Tout Afficher"
#: eeschema/options.cpp:179
#: eeschema/dialog_options.cpp:232
#: eeschema/dialog_options.cpp:232
msgid "Show pins"
msgid "Show pins"
msgstr "Monter Pins"
msgstr "Monter Pins"
#: eeschema/options.cpp:194
#: eeschema/dialog_options.cpp:245
msgid "millimeter"
msgstr "millimetre"
#: eeschema/dialog_options.cpp:256
#: eeschema/dialog_options.cpp:256
msgid "Horiz/Vertical"
msgid "Horiz/Vertical"
msgstr "Horiz/Vertical"
msgstr "Horiz/Vertical"
#: eeschema/options.cpp:196
#: eeschema/dialog_options.cpp:259
#: eeschema/dialog_options.cpp:259
msgid "Wires - Bus orient"
msgid "Wires - Bus orient"
msgstr "Fils-Bus Orient"
msgstr "Fils-Bus Orient"
#: eeschema/
options.cpp:211
#: eeschema/
dialog_options.cpp:284
msgid "
Delta Step
"
msgid "
Auto increment params
"
msgstr "
Incrment
"
msgstr "
Auto increment params
"
#: eeschema/options.cpp:216
#: eeschema/dialog_options.cpp:300
#: eeschema/dialog_options.cpp:300
msgid "Delta Label:"
msgid "Delta Label:"
msgstr "Incrment Label:"
msgstr "Incrment Label:"
#: eeschema/sheetlab.cpp:72
msgid "PinSheet Properties:"
msgstr "Proprits des Pins de Hierarchie"
#: eeschema/sheetlab.cpp:106
msgid "PinSheet Shape:"
msgstr "Forme Pin de hirarchie:"
#: eeschema/sheetlab.cpp:386
msgid "No New Global Label found"
msgstr "Pas de nouveau Global Label trouv"
#: eeschema/netform.cpp:55
#: eeschema/netform.cpp:254
#: eeschema/save_schemas.cpp:94
msgid "Failed to create file "
msgstr "Impossible de crer le fichier "
#: eeschema/dialog_options.cpp:140
#: eeschema/dialog_options.cpp:288
msgid "Delta Step X"
msgstr "Incrment X"
#: eeschema/dialog_options.cpp:145
#: eeschema/dialog_options.cpp:294
msgid "Delta Step Y"
msgstr "Incrment Y"
#: eeschema/dialog_options.cpp:208
msgid "Draw Options:"
msgstr "Options de trac:"
#: eeschema/dialog_options.cpp:245
msgid "millimeter"
msgstr "millimetre"
#: eeschema/dialog_options.cpp:284
msgid "Auto increment params"
msgstr "Auto increment params"
#: eeschema/dialog_options.cpp:308
#: eeschema/dialog_options.cpp:308
#: eeschema/plotps.cpp:227
#: eeschema/plotps.cpp:227
msgid "Default Line Width"
msgid "Default Line Width"
...
@@ -6394,6 +6314,10 @@ msgstr "ERC Warning"
...
@@ -6394,6 +6314,10 @@ msgstr "ERC Warning"
msgid "Erc Error"
msgid "Erc Error"
msgstr "ERC Erreur"
msgstr "ERC Erreur"
#: eeschema/eelayer.cpp:282
msgid "EESchema Preferences"
msgstr "EESchema Prfrences"
#: eeschema/eelayer.cpp:367
#: eeschema/eelayer.cpp:367
msgid "White Background"
msgid "White Background"
msgstr "Fond Blanc"
msgstr "Fond Blanc"
...
@@ -8212,11 +8136,6 @@ msgstr "&Pad plein"
...
@@ -8212,11 +8136,6 @@ msgstr "&Pad plein"
msgid "Save Cfg..."
msgid "Save Cfg..."
msgstr "Sauver config..."
msgstr "Sauver config..."
#: cvpcb/dialog_display_options.cpp:199
#: gerbview/set_color.cpp:255
msgid "Apply"
msgstr "Appliquer"
#: cvpcb/tool_cvpcb.cpp:35
#: cvpcb/tool_cvpcb.cpp:35
msgid "Open Netlist"
msgid "Open Netlist"
msgstr "Lire Netliste"
msgstr "Lire Netliste"
...
@@ -8785,8 +8704,7 @@ msgstr "Effacer Zones ?"
...
@@ -8785,8 +8704,7 @@ msgstr "Effacer Zones ?"
msgid "Delete Layer %d"
msgid "Delete Layer %d"
msgstr "Effacer Couche %d"
msgstr "Effacer Couche %d"
#: gerbview/set_color.cpp:149
#: gerbview/set_color.cpp:151
#, fuzzy
msgid "GerbView Layer Colors:"
msgid "GerbView Layer Colors:"
msgstr "Gerbview: Couleur des couches"
msgstr "Gerbview: Couleur des couches"
...
@@ -9215,6 +9133,10 @@ msgstr "Ne peut trouver le visualisateur Pdf %s"
...
@@ -9215,6 +9133,10 @@ msgstr "Ne peut trouver le visualisateur Pdf %s"
msgid "Colors"
msgid "Colors"
msgstr "Couleurs"
msgstr "Couleurs"
#: common/confirm.cpp:97
msgid "Infos:"
msgstr "Infos:"
#: common/common.cpp:48
#: common/common.cpp:48
msgid " (\"):"
msgid " (\"):"
msgstr " (\"):"
msgstr " (\"):"
...
@@ -9335,10 +9257,6 @@ msgstr "Contour Pcb"
...
@@ -9335,10 +9257,6 @@ msgstr "Contour Pcb"
msgid "--- "
msgid "--- "
msgstr "--- "
msgstr "--- "
#: common/confirm.cpp:97
msgid "Infos:"
msgstr "Infos:"
#: common/block_commande.cpp:56
#: common/block_commande.cpp:56
msgid "Block Move"
msgid "Block Move"
msgstr "Move Bloc"
msgstr "Move Bloc"
...
@@ -9891,6 +9809,54 @@ msgstr "Options g
...
@@ -9891,6 +9809,54 @@ msgstr "Options g
msgid "TextMod properties"
msgid "TextMod properties"
msgstr "Proprits du Texte sur Module"
msgstr "Proprits du Texte sur Module"
#: pcbnew/set_color.h:5
msgid "Copper Layers"
msgstr "Couches Cuivre."
#: pcbnew/set_color.h:139
msgid "Tech Layers"
msgstr "Couches Tech."
#: pcbnew/set_color.h:278
msgid "Ratsnest"
msgstr "Chevelu"
#: pcbnew/set_color.h:287
msgid "Pad Cu"
msgstr "Pad Cu"
#: pcbnew/set_color.h:295
msgid "Pad Cmp"
msgstr "Pad Cmp"
#: pcbnew/set_color.h:303
msgid "Text Module Cu"
msgstr "Texte Module Cu"
#: pcbnew/set_color.h:311
msgid "Text Module Cmp"
msgstr "Texte Module Cmp"
#: pcbnew/set_color.h:319
msgid "Text Module invisible"
msgstr "Texte Module invisible"
#: pcbnew/set_color.h:327
msgid "Anchors"
msgstr "Ancres"
#: pcbnew/set_color.h:353
msgid "Show Noconnect"
msgstr "Montrer Non Conn"
#: pcbnew/set_color.h:362
msgid "Show Modules Cmp"
msgstr "Afficher Modules Cmp"
#: pcbnew/set_color.h:371
msgid "Show Modules Cu"
msgstr "Afficher Modules Cu"
#: pcbnew/zones.h:54
#: pcbnew/zones.h:54
msgid "Fill Zones Options"
msgid "Fill Zones Options"
msgstr "Options de remplissage de Zone"
msgstr "Options de remplissage de Zone"
...
...
pcbnew/class_board_item.cpp
View file @
ca5fd179
...
@@ -28,6 +28,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
...
@@ -28,6 +28,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
wxString
text
;
wxString
text
;
const
BOARD_ITEM
*
item
=
this
;
const
BOARD_ITEM
*
item
=
this
;
EQUIPOT
*
net
;
EQUIPOT
*
net
;
D_PAD
*
pad
;
switch
(
item
->
Type
()
)
switch
(
item
->
Type
()
)
{
{
...
@@ -42,8 +43,17 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
...
@@ -42,8 +43,17 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
break
;
break
;
case
TYPEPAD
:
case
TYPEPAD
:
text
<<
_
(
"Pad"
)
<<
wxT
(
" "
)
<<
(
(
D_PAD
*
)
item
)
->
ReturnStringPadName
()
<<
_
(
" of "
)
pad
=
(
D_PAD
*
)
this
;
<<
(
(
MODULE
*
)
GetParent
()
)
->
GetReference
();
text
<<
_
(
"Pad"
)
<<
wxT
(
"
\"
"
)
<<
pad
->
ReturnStringPadName
()
<<
wxT
(
"
\"
("
);
if
(
(
pad
->
m_Masque_Layer
&
ALL_CU_LAYERS
)
==
ALL_CU_LAYERS
)
text
<<
_
(
"all copper layers"
);
else
if
(
(
pad
->
m_Masque_Layer
&
CUIVRE_LAYER
)
==
CUIVRE_LAYER
)
text
<<
_
(
"copper layers"
);
else
if
(
(
pad
->
m_Masque_Layer
&
CMP_LAYER
)
==
CMP_LAYER
)
text
<<
_
(
"cmp layers"
);
else
text
<<
_
(
"???"
);
text
<<
_
(
") of "
)
<<
(
(
MODULE
*
)
GetParent
()
)
->
GetReference
();
break
;
break
;
case
TYPEDRAWSEGMENT
:
case
TYPEDRAWSEGMENT
:
...
...
pcbnew/class_pad.cpp
View file @
ca5fd179
...
@@ -888,7 +888,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
...
@@ -888,7 +888,7 @@ void D_PAD::Display_Infos( WinEDA_DrawFrame* frame )
pos
+=
4
;
pos
+=
4
;
Affiche_1_Parametre
(
frame
,
pos
,
_
(
"Net"
),
m_Netname
,
DARKCYAN
);
Affiche_1_Parametre
(
frame
,
pos
,
_
(
"Net"
),
m_Netname
,
DARKCYAN
);
/*
pour mise au point (peut etre supprim� : Affichage du numero de Net et sous net
*/
/*
For test and debug only: display m_physical_connexion and m_logical_connexion
*/
pos
+=
10
;
pos
+=
10
;
#if 0
#if 0
Line.Printf( wxT( "%d.%d " ), m_logical_connexion, m_physical_connexion );
Line.Printf( wxT( "%d.%d " ), m_logical_connexion, m_physical_connexion );
...
...
pcbnew/onrightclick.cpp
View file @
ca5fd179
...
@@ -173,16 +173,16 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
...
@@ -173,16 +173,16 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
// printf( "cursor=(%d, %d) select=(%d,%d)\n", cursorPos.x, cursorPos.y, selectPos.x, selectPos.y );
// printf( "cursor=(%d, %d) select=(%d,%d)\n", cursorPos.x, cursorPos.y, selectPos.x, selectPos.y );
/* If not editing a track, and there is no selected item or the right click
/* We can reselect an other item only if there are no item being edited
happened at a position other than where the selection was made.
* because ALL moving functions use GetCurItem(),
We cannot call PcbGeneralLocateAndDisplay() when dragging a track because
* therefore GetCurItem() must return the same item during moving.
editrack.cpp's void Exit_Editrack( WinEDA_DrawPanel* Panel, wxDC* DC )
* We know an item is moving if ( item && (item->m_Flags != 0)) is true
uses GetCurItem(), thinking it is an aborted track, yet after calling
* and after calling PcbGeneralLocateAndDisplay(), GetCurItem() is any arbitrary BOARD_ITEM,
PcbGeneralLocateAndDisplay(), GetCurItem() is any arbitrary BOARD_ITEM,
* not the current editen item.
not the aborted track.
*/
*/
if
(
ShowNewTrackWhenMovingCursor
!=
DrawPanel
->
ManageCurseur
if
(
!
item
||
(
item
->
m_Flags
==
0
)
)
&&
(
!
item
||
cursorPos
!=
selectPos
)
)
{
if
(
!
item
||
cursorPos
!=
selectPos
)
// Filter
{
{
DrawPanel
->
m_AbortRequest
=
false
;
DrawPanel
->
m_AbortRequest
=
false
;
item
=
PcbGeneralLocateAndDisplay
();
item
=
PcbGeneralLocateAndDisplay
();
...
@@ -191,8 +191,7 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
...
@@ -191,8 +191,7 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
DrawPanel
->
CursorOn
(
&
dc
);
DrawPanel
->
CursorOn
(
&
dc
);
return
false
;
return
false
;
}
}
}
// SetCurItem( item ); no, PcbGeneralLocateAndDisplay() does this
}
}
#else
#else
...
...
pcbnew/pcbpiste.cpp.notused
deleted
100644 → 0
View file @
3cd47555
/******************************************************/
/* Fonctions diverses (swap..) relatives au pistes */
/* et fonctions de test */
/******************************************************/
/* Fichier PCBPISTE.CPP */
#include "fctsys.h"
#include "gr_basic.h"
#include "common.h"
#include "pcbnew.h"
#include "autorout.h"
#include "protos.h"
/* Variables locales */
static int New_Layer[32];
enum swap_layer_id {
ID_SWAP_LAYER_EXECUTE = 1800,
ID_SWAP_LAYER_CANCEL,
ID_SWAP_LAYER_BUTTON_SELECT,
ID_SWAP_LAYER_DESELECT,
ID_SWAP_LAYER_SELECT
};
/***********************************************/
/* classe pour la frame de selection de layers */
/***********************************************/
class WinEDA_SwapLayerFrame : public wxDialog
{
private:
WinEDA_BasePcbFrame* m_Parent;
wxRadioBox* m_LayerList;
public:
// Constructor and destructor
WinEDA_SwapLayerFrame( WinEDA_BasePcbFrame * parent );
~WinEDA_SwapLayerFrame() { };
private:
void Sel_Layer( wxCommandEvent& event );
void Cancel( wxCommandEvent& event );
void Execute( wxCommandEvent& event );
DECLARE_EVENT_TABLE()
};
/* Table des evenements pour WinEDA_SwapLayerFrame */
BEGIN_EVENT_TABLE( WinEDA_SwapLayerFrame, wxDialog )
EVT_BUTTON( ID_SWAP_LAYER_EXECUTE, WinEDA_SwapLayerFrame::Execute )
EVT_BUTTON( ID_SWAP_LAYER_CANCEL, WinEDA_SwapLayerFrame::Cancel )
EVT_BUTTON( ID_SWAP_LAYER_DESELECT, WinEDA_SwapLayerFrame::Sel_Layer )
EVT_BUTTON( ID_SWAP_LAYER_BUTTON_SELECT, WinEDA_SwapLayerFrame::Sel_Layer )
EVT_RADIOBOX( ID_SWAP_LAYER_SELECT, WinEDA_SwapLayerFrame::Sel_Layer )
END_EVENT_TABLE()
WinEDA_SwapLayerFrame::WinEDA_SwapLayerFrame( WinEDA_BasePcbFrame* parent ) :
wxDialog( parent, -1, _( "Swap Layers:" ), wxPoint( -1, -1 ),
wxSize( 470, 450 ), DIALOG_STYLE )
{
#define START_Y 15
wxButton* Button;
int ii;
wxPoint pos;
wxString g_Layer_Name_Pair[32];
wxSize winsize;
m_Parent = parent;
SetFont( *g_DialogFont );
for( ii = 0; ii < NB_LAYERS; ii++ )
{
g_Layer_Name_Pair[ii] = ReturnPcbLayerName( ii ) + wxT( " -> " ) + _( "No Change" );
}
pos.x = 5; pos.y = START_Y;
m_LayerList = new wxRadioBox( this, ID_SWAP_LAYER_SELECT, _( "Layers" ),
pos, wxSize( -1,
-1 ), 29, g_Layer_Name_Pair, 16, wxRA_SPECIFY_ROWS );
winsize.y = m_LayerList->GetRect().GetBottom();
pos.x = m_LayerList->GetRect().GetRight() + 12;
Button = new wxButton( this, ID_SWAP_LAYER_CANCEL,
_( "Cancel" ), pos );
Button->SetForegroundColour( *wxRED );
winsize.x = MAX( winsize.x, Button->GetRect().GetRight() );
pos.y += Button->GetSize().y + 5;
Button = new wxButton( this, ID_SWAP_LAYER_EXECUTE,
_( "OK" ), pos );
Button->SetForegroundColour( *wxBLUE );
winsize.x = MAX( winsize.x, Button->GetRect().GetRight() );
pos.y += Button->GetSize().y + 15;
Button = new wxButton( this, ID_SWAP_LAYER_DESELECT,
_( "Deselect" ), pos );
Button->SetForegroundColour( wxColour( 0, 100, 0 ) );
winsize.x = MAX( winsize.x, Button->GetRect().GetRight() );
pos.y += Button->GetSize().y + 5;
Button = new wxButton( this, ID_SWAP_LAYER_BUTTON_SELECT,
_( "Select" ), pos );
Button->SetForegroundColour( wxColour( 0, 100, 100 ) );
winsize.x = MAX( winsize.x, Button->GetRect().GetRight() );
winsize.x += 10; winsize.y += 10;
SetClientSize( winsize );
}
/***************************************************************/
void WinEDA_SwapLayerFrame::Sel_Layer( wxCommandEvent& event )
/***************************************************************/
{
int ii, jj;
ii = m_LayerList->GetSelection();
switch( event.GetId() )
{
case ID_SWAP_LAYER_DESELECT:
if( New_Layer[ii] != -1 )
{
New_Layer[ii] = -1;
m_LayerList->SetString( ii, ReturnPcbLayerName( ii ) +
+ wxT( " -> " ) + _( "No Change" ) );
}
break;
case ID_SWAP_LAYER_BUTTON_SELECT:
case ID_SWAP_LAYER_SELECT:
jj = m_Parent->SelectLayer( ii, -1, -1 );
if( (jj < 0) || (jj >= 29) )
return;
if( ii != jj )
{
New_Layer[ii] = jj;
m_LayerList->SetString( ii,
ReturnPcbLayerName( ii ) + wxT( " -> " ) +
ReturnPcbLayerName( jj ) );
}
break;
}
}
/*********************************************************/
void WinEDA_SwapLayerFrame::Cancel( wxCommandEvent& event )
/*********************************************************/
{
EndModal( -1 );
}
/*********************************************************/
void WinEDA_SwapLayerFrame::Execute( wxCommandEvent& event )
/*********************************************************/
{
EndModal( 1 );
}
/********************************************************/
void WinEDA_PcbFrame::Swap_Layers( wxCommandEvent& event )
/********************************************************/
/* Swap layers */
{
int ii, jj;
TRACK* pt_segm;
DRAWSEGMENT* pt_drawsegm;
EDA_BaseStruct* PtStruct;
/* Init default values */
for( ii = 0; ii < 32; ii++ )
New_Layer[ii] = -1;
WinEDA_SwapLayerFrame* frame = new WinEDA_SwapLayerFrame( this );
ii = frame->ShowModal(); frame->Destroy();
if( ii != 1 )
return;
/* Modifications des pistes */
pt_segm = (TRACK*) m_Pcb->m_Track;
for( ; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext )
{
m_CurrentScreen->SetModify();
if( pt_segm->Type() == TYPEVIA )
{
SEGVIA* Via = (SEGVIA*) pt_segm;
if( Via->Shape() == VIA_NORMALE )
continue;
int top_layer, bottom_layer;
Via->ReturnLayerPair( &top_layer, &bottom_layer );
if( New_Layer[bottom_layer] >= 0 )
bottom_layer = New_Layer[bottom_layer];
if( New_Layer[top_layer] >= 0 )
top_layer = New_Layer[top_layer];
Via->SetLayerPair( top_layer, bottom_layer );
}
else
{
jj = pt_segm->m_Layer;
if( New_Layer[jj] >= 0 )
pt_segm->m_Layer = New_Layer[jj];
}
}
/* Modifications des zones */
pt_segm = (TRACK*) m_Pcb->m_Zone;
for( ; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext )
{
m_CurrentScreen->SetModify();
jj = pt_segm->m_Layer;
if( New_Layer[jj] >= 0 )
pt_segm->m_Layer = New_Layer[jj];
}
/* Modifications des autres segments */
PtStruct = m_Pcb->m_Drawings;
for( ; PtStruct != NULL; PtStruct = PtStruct->Pnext )
{
if( PtStruct->Type() == TYPEDRAWSEGMENT )
{
m_CurrentScreen->SetModify();
pt_drawsegm = (DRAWSEGMENT*) PtStruct;
jj = pt_drawsegm->m_Layer;
if( New_Layer[jj] >= 0 )
pt_drawsegm->m_Layer = New_Layer[jj];
}
}
DrawPanel->Refresh( TRUE );
}
/*********************************************************/
void WinEDA_PcbFrame::Liste_Equipot( wxCommandEvent& event )
/*********************************************************/
{
EQUIPOT* Equipot;
wxString msg;
WinEDA_TextFrame* List;
int ii, jj;
msg = wxT( "*" );
Get_Message( _( "Filter for net names:" ), msg, this );
if( msg.IsEmpty() )
return;
List = new WinEDA_TextFrame( this, _( "List Nets" ) );
Equipot = (EQUIPOT*) m_Pcb->m_Equipots;
for( ; Equipot != NULL; Equipot = (EQUIPOT*) Equipot->Pnext )
{
wxString Line;
/* calcul adr relative du nom de la pastille reference de la piste */
if( !WildCompareString( msg, Equipot->m_Netname, FALSE ) )
continue;
Line.Printf( wxT( "net_code = %3.3d [%.16s] " ), Equipot->m_NetCode,
Equipot->m_Netname.GetData() );
List->Append( Line );
}
ii = List->ShowModal(); List->Destroy();
if( ii < 0 )
return;
/* Recherche du numero de net rellement selectionn */
Equipot = (EQUIPOT*) m_Pcb->m_Equipots;
for( jj = 0; Equipot != NULL; Equipot = (EQUIPOT*) Equipot->Pnext )
{
/* calcul adr relative du nom de la pastille reference de la piste */
if( !WildCompareString( msg, Equipot->m_Netname, FALSE ) )
continue;
if( ii == jj )
{
ii = Equipot->m_NetCode;
break;
}
jj++;
}
wxClientDC dc( DrawPanel );
DrawPanel->PrepareGraphicContext( &dc );
if( g_HightLigt_Status )
Hight_Light( &dc );
g_HightLigth_NetCode = ii;
Hight_Light( &dc );
}
pcbnew/ratsnest.cpp
View file @
ca5fd179
/************************************/
/***********************/
/**** editeur de PCB ****/
/**** ratsnest.cpp ****/
/* traitement du Chevelu (Rastnest) */
/* Ratsnets functions */
/************************************/
/***********************/
/* Fichier RATSNEST.CPP */
#include "fctsys.h"
#include "fctsys.h"
#include "gr_basic.h"
#include "gr_basic.h"
...
@@ -14,38 +12,109 @@
...
@@ -14,38 +12,109 @@
#include "protos.h"
#include "protos.h"
/*
variables loca
les */
/*
exported variab
les */
CHEVELU
*
g_pt_chevelu
;
CHEVELU
*
g_pt_chevelu
;
CHEVELU
*
local_liste_chevelu
;
// adresse de base du buffer des chevelus locaux
CHEVELU
*
local_liste_chevelu
;
// Buffer address for local ratsnest
int
nb_local_chevelu
;
// nbr de links du module en deplacement
// (ratnest relative to one footprint while moving it
int
nb_pads_ref
;
// nbr de nodes du module en deplacement
int
nb_local_chevelu
;
// link count (active ratnest count) for the footprint beeing moved
int
nb_pads_externes
;
// nbr de pads connectes au module en deplacement
bool
DisplayRastnestInProgress
;
// autorise affichage chevelu en cours de calcul
/* local variables */
// de celui-ci
static
int
nb_pads_ref
;
// node count (node = pad with a net code) for the footprint beeing moved
static
int
nb_pads_externes
;
// Connected pads count ( pads which are
// in other footprints and connected to a pad of the footprint beeing moved
static
bool
DisplayRastnestInProgress
;
// Enable the display of the ratsnest during the ratsnest computations
/* Note about the ratsnest computation:
* Building the general ratsnest:
* I used the "lee algoritm".
* This is a 2 steps algoritm.
* the m_logical_connexion member of pads handle a "block number" or a "cluster number"
* initially, m_logical_connexion = 0 (pad not connected).
* Build_Board_Ratsnest( wxDC* DC ) Create this rastnest
* for each net:
* First:
* we create links (and therefore a logical block) between 2 pad. This is achieved by:
* search for a pad without link.
* search its nearest pad
* link these 2 pads (i.e. create a ratsnest item)
* the pads are grouped in a logical block ( a cluster).
* until no pad without link found.
* Each logical block has a number called block number,
* stored in m_logical_connexion member for each pad of the block.
* The first block has its block number = 1, the second is 2 ...
* the function to do thas is gen_rats_pad_to_pad()
*
* Secondly:
* The first pass created many logical blocks
* A block contains 2 or more pads.
* we create links between 2 block. This is achieved by:
* Test all pads in the first block, and search (for each pad)
* a neighboor in other blocks and compute the distance between pads,
* We select the pad pair which have the smallest distance.
* These 2 pads are linked (i.e. a new ratsnest item is created between thes 2 pads)
* and the 2 block are merged.
* Therefore the logical block 1 contains the initial block 1 "eats" the pads of the other block
* The computation is made until only one block is found.
* the function used is gen_rats_block_to_block()
*
*
* How existing and new tracks are handled:
* The complete rastnest (using the pad analysis) is computed.
* it is independant of the tracks and handle the "logical connections".
* It depends only on the footprints geometry (and the netlist),
* and must be computed only after a netlist read or a footprints geometry change.
* Each link (ratsnest) can only be INACTIVE (because pads are connected by a track) or ACTIVE (no tracks)
*
* After the complete rastnest is built, or when a track is added or deleted,
* we run an algorithm derived from the complete rastnest computation.
* it is much faster because it analyses only the existing rastnest and not all the pads list
* and determine only if an existing rastnest must be activated
* (no physical track exists) or not (a physical track exists)
* if a track is added or deleted only the corresponding net is tested.
*
* the m_logical_connexion member of pads is set to 0 (no blocks), and alls links are set to INACTIVE (ratsnest not show).
* Before running this fast lee algorithm, we create blocks (and their corresponding block number)
* by grouping pads connected by tracks.
* So, when tracks exists, the fast lee algorithm is started with some blocks already created.
* because the fast lee algorithm test only the ratsnest and does not search for
* nearest pads (this search was previously made) the online ratsnest can be done
* when a track is created without noticeable computing time
* First:
* for all links (in this step, all are inactive):
* search for a link which have 1 (or 2) pad having the m_logical_connexion member = 0.
* if found the link is set to ACTIVE (i.e. the ratsnest will be showed) and the pad is meged with the block
* or a new block is created ( see tst_rats_pad_to_pad() ).
* Secondly:
* blocks are tested:
* for all links we search if the 2 pads linkeds are in 2 different block.
* if yes, the link status is set to ACTIVE, and the 2 block are merged
* until only one block is found
* ( see tst_rats_block_to_block() )
*
*
*/
/******************************************************************************/
/******************************************************************************/
void
WinEDA_BasePcbFrame
::
Compile_Ratsnest
(
wxDC
*
DC
,
bool
display_status_pcb
)
void
WinEDA_BasePcbFrame
::
Compile_Ratsnest
(
wxDC
*
DC
,
bool
display_status_pcb
)
/******************************************************************************/
/******************************************************************************/
/*
/*
*
Génère le chevelu complet de la carte
.
*
Create the entire board ratsnesr
.
*
Doit etre appelé APRES le calcul de connectivité
*
Msut be called AFTER the connectivity computation
*
Doit etre appelé apres changement de structure de la carte (modif
*
Must be called after a board change (changes for
*
de pads, de nets, de modules
).
*
pads, footprints or a read netlist
).
*
*
*
Si display_status_pcb : affichage des résultats en bas d'ecran
*
if display_status_pcb != 0 : Display the computation results
*/
*/
{
{
wxString
msg
;
wxString
msg
;
DisplayRastnestInProgress
=
TRUE
;
DisplayRastnestInProgress
=
TRUE
;
/*
construction de la liste des coordonnées des pastilles
*/
/*
Create the sorted pad list
*/
m_Pcb
->
m_Status_Pcb
=
0
;
/*
réinit total du calcul
*/
m_Pcb
->
m_Status_Pcb
=
0
;
/*
we want a full ratnest computation, from the scratch
*/
build_liste_pads
();
build_liste_pads
();
MsgPanel
->
EraseMsgBox
();
/* effacement du bas d'ecran */
MsgPanel
->
EraseMsgBox
();
msg
.
Printf
(
wxT
(
" %d"
),
m_Pcb
->
m_NbPads
);
msg
.
Printf
(
wxT
(
" %d"
),
m_Pcb
->
m_NbPads
);
Affiche_1_Parametre
(
this
,
1
,
wxT
(
"pads"
),
msg
,
RED
);
Affiche_1_Parametre
(
this
,
1
,
wxT
(
"pads"
),
msg
,
RED
);
...
@@ -55,14 +124,24 @@ void WinEDA_BasePcbFrame::Compile_Ratsnest( wxDC* DC, bool display_status_pcb )
...
@@ -55,14 +124,24 @@ void WinEDA_BasePcbFrame::Compile_Ratsnest( wxDC* DC, bool display_status_pcb )
reattribution_reference_piste
(
display_status_pcb
);
reattribution_reference_piste
(
display_status_pcb
);
Build_Board_Ratsnest
(
DC
);
/* calcul du chevelu general */
/* Compute the full ratsnest
* which can be see like all the possible links or logical connections.
* some of thems are active (no track connected) and others are inactive (when track connect pads)
* This full ratsnest is not modified by track editing.
* It change only when a netlist is read, or footprints are modified
*/
Build_Board_Ratsnest
(
DC
);
test_connexions
(
DC
);
/* determine les blocks de pads connectés par
/* Compute the pad connections due to the existing tracks (physical connections)*/
* les pistes existantes */
test_connexions
(
DC
);
Tst_Ratsnest
(
DC
,
0
);
/* calcul du chevelu actif */
/* Compute the active ratsnest, i.e. the unconnected links
* it is faster than Build_Board_Ratsnest()
* because many optimisations and computations are already made
*/
Tst_Ratsnest
(
DC
,
0
);
// Re
affichage des chevelus actifs
// Re
draw the active ratsnest ( if enabled )
if
(
g_Show_Ratsnest
)
if
(
g_Show_Ratsnest
)
DrawGeneralRatsnest
(
DC
,
0
);
DrawGeneralRatsnest
(
DC
,
0
);
...
@@ -74,7 +153,10 @@ void WinEDA_BasePcbFrame::Compile_Ratsnest( wxDC* DC, bool display_status_pcb )
...
@@ -74,7 +153,10 @@ void WinEDA_BasePcbFrame::Compile_Ratsnest( wxDC* DC, bool display_status_pcb )
/*****************************************************************/
/*****************************************************************/
static
int
tri_par_net
(
const
void
*
o1
,
const
void
*
o2
)
static
int
tri_par_net
(
const
void
*
o1
,
const
void
*
o2
)
/****************************************************************/
/****************************************************************/
/* routine utilisee par la foncion QSORT */
/* Sort function used by QSORT
* Sort pads by net code
*/
{
{
LISTE_PAD
*
pt_ref
=
(
LISTE_PAD
*
)
o1
;
LISTE_PAD
*
pt_ref
=
(
LISTE_PAD
*
)
o1
;
LISTE_PAD
*
pt_compare
=
(
LISTE_PAD
*
)
o2
;
LISTE_PAD
*
pt_compare
=
(
LISTE_PAD
*
)
o2
;
...
@@ -86,7 +168,10 @@ static int tri_par_net( const void* o1, const void* o2 )
...
@@ -86,7 +168,10 @@ static int tri_par_net( const void* o1, const void* o2 )
/********************************************************/
/********************************************************/
static
int
sort_by_length
(
const
void
*
o1
,
const
void
*
o2
)
static
int
sort_by_length
(
const
void
*
o1
,
const
void
*
o2
)
/********************************************************/
/********************************************************/
/* routine de tri par longueur des chevelus utilisee par la foncion QSORT */
/* Sort function used by QSORT
* Sort ratsnest by lenght
*/
{
{
CHEVELU
*
ref
=
(
CHEVELU
*
)
o1
;
CHEVELU
*
ref
=
(
CHEVELU
*
)
o1
;
CHEVELU
*
compare
=
(
CHEVELU
*
)
o2
;
CHEVELU
*
compare
=
(
CHEVELU
*
)
o2
;
...
@@ -100,20 +185,20 @@ static int gen_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -100,20 +185,20 @@ static int gen_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
LISTE_PAD
*
pt_liste_pad
,
LISTE_PAD
*
pt_limite
,
int
*
nblinks
)
LISTE_PAD
*
pt_liste_pad
,
LISTE_PAD
*
pt_limite
,
int
*
nblinks
)
/*****************************************************************************/
/*****************************************************************************/
/*
/*
*
*
Routine utilisee par
Build_Board_Ratsnest()
*
Function used by
Build_Board_Ratsnest()
*
Routine generant le chevelu entre 2 blocks ( supposes du me
me net )
*
This function creates a rastsnet between two blocks ( which fit the sa
me net )
*
la recherche est faite entre les pads du block 1 et les autres blocks
*
A block is a group of pads already linked (by a previous ratsnest computation, or tracks)
*
le block n ( n > 1 ) est alors connecte au block 1 par leur 2 pad
s
*
The search is made between the pads in block 1 (the reference block) and other block
s
*
les plus proche
s.
*
the block n ( n > 1 ) it connected to block 1 by their 2 nearest pad
s.
*
Entree :
*
When the block is found, it is merged with the block 1
*
pt_chain_pad = adresse de debut de recherche
*
the D_PAD member m_logical_connexion handles the block number
*
pt_limite = adresse de fin de recherche (borne non comprise)
*
@param pt_liste_pad = starting address (within the pad list) for search
*
Sortie:
*
@param pt_limite = ending address (within the pad list) for search
*
liste des chevelus ( structures)
*
return in global variables:
*
mise a jour de g_pt_chevelu a la 1ere case libre
*
ratsnest list in buffer
*
Retourne:
*
g_pt_chevelu updated to the first free memory location
*
nombre de blocks non connectes entre eux
*
@return blocks not connected count
*/
*/
{
{
int
dist_min
,
current_dist
;
int
dist_min
,
current_dist
;
...
@@ -132,14 +217,16 @@ static int gen_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -132,14 +217,16 @@ static int gen_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
if
(
DC
)
if
(
DC
)
GRSetDrawMode
(
DC
,
GR_XOR
);
GRSetDrawMode
(
DC
,
GR_XOR
);
/*
Recherche du pad le plus proche du
block 1 */
/*
Search the nearest pad from
block 1 */
for
(
;
pt_liste_pad
<
pt_limite
;
pt_liste_pad
++
)
for
(
;
pt_liste_pad
<
pt_limite
;
pt_liste_pad
++
)
{
{
D_PAD
*
ref_pad
=
*
pt_liste_pad
;
D_PAD
*
ref_pad
=
*
pt_liste_pad
;
/* search a pad which is in the block 1 */
if
(
ref_pad
->
m_logical_connexion
!=
1
)
if
(
ref_pad
->
m_logical_connexion
!=
1
)
continue
;
continue
;
/* pad is found, search its nearest neighbour in other blocks */
for
(
pt_liste_pad_aux
=
pt_start_liste
;
;
pt_liste_pad_aux
++
)
for
(
pt_liste_pad_aux
=
pt_start_liste
;
;
pt_liste_pad_aux
++
)
{
{
D_PAD
*
curr_pad
=
*
pt_liste_pad_aux
;
D_PAD
*
curr_pad
=
*
pt_liste_pad_aux
;
...
@@ -147,15 +234,17 @@ static int gen_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -147,15 +234,17 @@ static int gen_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
if
(
pt_liste_pad_aux
>=
pt_limite
)
if
(
pt_liste_pad_aux
>=
pt_limite
)
break
;
break
;
if
(
curr_pad
->
m_logical_connexion
==
1
)
if
(
curr_pad
->
m_logical_connexion
==
1
)
// not in an other block
continue
;
continue
;
/* Compar
aison des distances des pastilles (calcul simplifi
e) */
/* Compar
e distance between pads ("Manhattan" distanc
e) */
current_dist
=
abs
(
curr_pad
->
m_Pos
.
x
-
ref_pad
->
m_Pos
.
x
)
+
current_dist
=
abs
(
curr_pad
->
m_Pos
.
x
-
ref_pad
->
m_Pos
.
x
)
+
abs
(
curr_pad
->
m_Pos
.
y
-
ref_pad
->
m_Pos
.
y
);
abs
(
curr_pad
->
m_Pos
.
y
-
ref_pad
->
m_Pos
.
y
);
if
(
dist_min
>
current_dist
)
if
(
dist_min
>
current_dist
)
// we have found a better pad pair
{
{
// The tested block can be a good candidate for merging
// we memorise the "best" current values for merging
current_num_block
=
curr_pad
->
m_logical_connexion
;
current_num_block
=
curr_pad
->
m_logical_connexion
;
dist_min
=
current_dist
;
dist_min
=
current_dist
;
pt_liste_pad_tmp
=
pt_liste_pad_aux
;
pt_liste_pad_tmp
=
pt_liste_pad_aux
;
...
@@ -164,9 +253,16 @@ static int gen_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -164,9 +253,16 @@ static int gen_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
}
}
}
}
if
(
current_num_block
>
1
)
/* le block n a ete connecte au bloc 1 */
/* The reference block is labelled block 1.
* if current_num_block != 1 we have found an other block, and we must merge it
* with the reference block
* The link is made by the 2 nearest pads
*/
if
(
current_num_block
>
1
)
{
{
/* le block n est fondu avec le bloc 1 : */
/* The block n is merged with the bloc 1 :
* to do that, we set the m_logical_connexion member to 1 for all pads in block n
*/
for
(
pt_liste_pad
=
pt_start_liste
;
pt_liste_pad
<
pt_limite
;
pt_liste_pad
++
)
for
(
pt_liste_pad
=
pt_start_liste
;
pt_liste_pad
<
pt_limite
;
pt_liste_pad
++
)
{
{
if
(
(
*
pt_liste_pad
)
->
m_logical_connexion
==
current_num_block
)
if
(
(
*
pt_liste_pad
)
->
m_logical_connexion
==
current_num_block
)
...
@@ -175,6 +271,7 @@ static int gen_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -175,6 +271,7 @@ static int gen_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
pt_liste_pad
=
pt_liste_pad_block1
;
pt_liste_pad
=
pt_liste_pad_block1
;
/* Create the new ratsnet */
(
*
nblinks
)
++
;
(
*
nblinks
)
++
;
g_pt_chevelu
->
SetNet
(
(
*
pt_liste_pad
)
->
GetNet
()
);
g_pt_chevelu
->
SetNet
(
(
*
pt_liste_pad
)
->
GetNet
()
);
g_pt_chevelu
->
status
=
CH_ACTIF
|
CH_VISIBLE
;
g_pt_chevelu
->
status
=
CH_ACTIF
|
CH_VISIBLE
;
...
@@ -201,25 +298,26 @@ static int gen_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -201,25 +298,26 @@ static int gen_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
LISTE_PAD
*
pt_limite
,
int
current_num_block
,
int
*
nblinks
)
LISTE_PAD
*
pt_limite
,
int
current_num_block
,
int
*
nblinks
)
/*****************************************************************************/
/*****************************************************************************/
/*
/**
* Routine utilisee par Build_Board_Ratsnest()
* Function used by Build_Board_Ratsnest()
* Routine generant le chevelu entre 2 pads ( supposes du meme net )
* this is the first pass of the lee algorithm
* la routine connecte 1 pad non deja connecte a un autre et crée donc un certqins nombre
* This function creates the link (ratsnest) between 2 pads ( fitting the same net )
* de blocks de pads liées par un chevelu
* the function search for a first not connected pad
* Ces blocks sont donc constitués de 2 pads.
* and search its nearest neighboor
* Its creates a block if the 2 pads are not connected, or merge the unconnected pad to the existing block.
* These blocks include 2 pads and the 2 pads are linked by a ratsnest.
*
*
* Entree :
* @param pt_liste_pad = starting address in the pad buffer
* pt_chain_pad = adresse de debut de recherche
* @param pt_limite = ending address
* pt_limite = adresse de fin de recherche (borne non comprise)
* @param current_num_block = Last existing block number de pads
* current_num_block = numero du dernier block de pads (constitué par les connexions
* These block are created by the existing tracks analysis
* de pistes existantes
*
*
*
Sortie
:
*
output
:
*
liste des chevelus ( structures)
*
Ratsnest list
*
mise a jour de g_pt_chevelu a la 1ere case libre
*
g_pt_chevelu updated to the first free memory address
*
*
*
Retourne
:
*
@return
:
*
nombre de blocks crees (paquets de pads)
*
last block number used
*/
*/
{
{
int
dist_min
,
current_dist
;
int
dist_min
,
current_dist
;
...
@@ -238,7 +336,7 @@ static int gen_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -238,7 +336,7 @@ static int gen_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
ref_pad
=
*
pt_liste_pad
;
ref_pad
=
*
pt_liste_pad
;
if
(
ref_pad
->
m_logical_connexion
)
if
(
ref_pad
->
m_logical_connexion
)
continue
;
// Pad deja connecte
continue
;
// Pad already connected
pt_liste_pad_tmp
=
NULL
;
pt_liste_pad_tmp
=
NULL
;
dist_min
=
0x7FFFFFFF
;
dist_min
=
0x7FFFFFFF
;
...
@@ -253,7 +351,7 @@ static int gen_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -253,7 +351,7 @@ static int gen_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
pad
=
*
pt_liste_pad_aux
;
pad
=
*
pt_liste_pad_aux
;
/* Compar
aison des distances des pastilles (calcul simplifi
e) */
/* Compar
e distance between pads ("Manhattan" distanc
e) */
current_dist
=
abs
(
pad
->
m_Pos
.
x
-
ref_pad
->
m_Pos
.
x
)
+
current_dist
=
abs
(
pad
->
m_Pos
.
x
-
ref_pad
->
m_Pos
.
x
)
+
abs
(
pad
->
m_Pos
.
y
-
ref_pad
->
m_Pos
.
y
);
abs
(
pad
->
m_Pos
.
y
-
ref_pad
->
m_Pos
.
y
);
...
@@ -268,15 +366,16 @@ static int gen_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -268,15 +366,16 @@ static int gen_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
{
{
pad
=
*
pt_liste_pad_tmp
;
pad
=
*
pt_liste_pad_tmp
;
/* Mise a jour du numero de block ( ou de sous graphe ) */
/* Update the block number
/* si aucun des 2 pads n'est deja connecte : creation d'un nouveau block */
* if the 2 pads are not already created : a new block is created
*/
if
(
(
pad
->
m_logical_connexion
==
0
)
&&
(
ref_pad
->
m_logical_connexion
==
0
)
)
if
(
(
pad
->
m_logical_connexion
==
0
)
&&
(
ref_pad
->
m_logical_connexion
==
0
)
)
{
{
current_num_block
++
;
current_num_block
++
;
pad
->
m_logical_connexion
=
current_num_block
;
pad
->
m_logical_connexion
=
current_num_block
;
ref_pad
->
m_logical_connexion
=
current_num_block
;
ref_pad
->
m_logical_connexion
=
current_num_block
;
}
}
/*
si 1 des 2 pads est deja connecte : mise a jour pour l'autre
*/
/*
If a pad is already connected connected : merge the other pad in the block
*/
else
else
{
{
ref_pad
->
m_logical_connexion
=
pad
->
m_logical_connexion
;
ref_pad
->
m_logical_connexion
=
pad
->
m_logical_connexion
;
...
@@ -309,30 +408,29 @@ static int gen_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -309,30 +408,29 @@ static int gen_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
void
WinEDA_BasePcbFrame
::
Build_Board_Ratsnest
(
wxDC
*
DC
)
void
WinEDA_BasePcbFrame
::
Build_Board_Ratsnest
(
wxDC
*
DC
)
/***********************************************************/
/***********************************************************/
/*
Routine de calcul du chevelu complet du circuit (algorithme de LEE
)
/*
* Function to compute the full ratsnest (using the LEE algorithm
)
*
les connexions physiques (pistes) ne sont pas ici prises en compte
*
In the functions tracks are not considered
*
Il s'agit donc du chevelu de base qui ne depend que de la disposition des
pads.
*
This is only the "basic" ratsnest depending only on
pads.
*
*
* - etablit la liste complete des pads si nécessaire
* - Create the sorted pad list (if necessary)
* les pads utiles (cad appartenant a un net ) sont appeles
* The active pads (i.e included in a net ) are called nodes
* nodes (noeuds)
* This pad list is sorted by net codes
* et la trie par blocs de pads homogenes ( i.e. appartenant au meme net )
*
*
* - puis calcule le ratsnest selon l'algorithme de LEE, consistant a
* - Compute the ratsnest (LEE algorithm ):
* a - etablir le ratsnest entre 1 pad non "connecte" et son plus proche
* a - Create the ratsnest between a not connected pad and its nearest
* voisin. Ceci cree des "blocks" ou sous graphes non connectes entre
* neighbour. Blocks of pads are created
* eux
* b - Create the ratsnest between blocks:
* b - "connecter" (par un chevelu) entre eux ces blocks en prenant le 1er block et
* Test the pads of the 1st block and create a link (ratsnest)
* en le connectant a son plus proche voisin par les 2 pads les plus
* with the nearest pad found in an other block.
* proches (Iteration jusqu'a ce qu'il n'y ait plus qu'un seul block).
* Thi other block is merged with the first block.
* until only one block is left.
*
*
*
les chevelus calculés montrent les connexions "logiques"
*
A ratnest can be seen as a logical connection.
*
*
* Entree = adr du buffer de classement (usuellement buf_work)
* Update :
* met a jour :
* nb_nodes = Active pads count for the board
* nb_nodes = nombre de pads connectes a un net ( pads "utiles")
* nb_links = link count for the board (logical connection count)
* nb_links = nombre min de liens :
* (there are n-1 links for an equipotent which have n active pads) .
* il y a n-1 liens par equipotentielle comportant n pads.
*
*
*/
*/
{
{
...
@@ -349,7 +447,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
...
@@ -349,7 +447,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
if
(
m_Pcb
->
m_NbPads
==
0
)
if
(
m_Pcb
->
m_NbPads
==
0
)
return
;
return
;
/*
Etablissement de la liste des pads et leur net_codes si necessaire
*/
/*
Created pad list and the net_codes if needed
*/
if
(
(
m_Pcb
->
m_Status_Pcb
&
NET_CODES_OK
)
==
0
)
if
(
(
m_Pcb
->
m_Status_Pcb
&
NET_CODES_OK
)
==
0
)
recalcule_pad_net_code
();
recalcule_pad_net_code
();
...
@@ -360,13 +458,13 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
...
@@ -360,13 +458,13 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
pad
->
m_logical_connexion
=
0
;
pad
->
m_logical_connexion
=
0
;
}
}
/*
classement des pointeurs sur pads par
nets */
/*
Sort the pad list by
nets */
qsort
(
m_Pcb
->
m_Pads
,
m_Pcb
->
m_NbPads
,
sizeof
(
LISTE_PAD
),
tri_par_net
);
qsort
(
m_Pcb
->
m_Pads
,
m_Pcb
->
m_NbPads
,
sizeof
(
LISTE_PAD
),
tri_par_net
);
/* Allocat
ion memoire du buffer des chevelus: il y a nb_nodes - 1 chevelu
/* Allocat
e memory for buffer ratsnest: there are nb_nodes - 1 ratsnest
*
au maximum ( 1 node = 1 pad connecte
).
*
maximum ( 1 node = 1 active pad
).
*
on alloue donc un buffer pour nb_nodes chevelus... (+ une petite marg
e)
*
Meory is allocated for nb_nodes ratsnests... (+ a bit more, just in cas
e)
*
le nombre reel de chevelus est nb_link
s
*
The real ratsnests count nb_links < nb_node
s
*/
*/
if
(
m_Pcb
->
m_Ratsnest
)
if
(
m_Pcb
->
m_Ratsnest
)
MyFree
(
m_Pcb
->
m_Ratsnest
);
MyFree
(
m_Pcb
->
m_Ratsnest
);
...
@@ -380,7 +478,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
...
@@ -380,7 +478,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
return
;
return
;
/*
calcul du chevelu
*/
/*
Ratsnest computation
*/
DisplayRastnestInProgress
=
TRUE
;
DisplayRastnestInProgress
=
TRUE
;
g_pt_chevelu
=
m_Pcb
->
m_Ratsnest
;
g_pt_chevelu
=
m_Pcb
->
m_Ratsnest
;
pt_liste_pad
=
pt_start_liste
=
m_Pcb
->
m_Pads
;
pt_liste_pad
=
pt_start_liste
=
m_Pcb
->
m_Pads
;
...
@@ -393,13 +491,13 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
...
@@ -393,13 +491,13 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
{
{
pt_deb_liste_ch
=
g_pt_chevelu
;
pt_deb_liste_ch
=
g_pt_chevelu
;
pad
=
*
pt_liste_pad
;
pad
=
*
pt_liste_pad
;
/*
saut des pads non connecte
s */
/*
Skip the not connected pad
s */
if
(
pad
->
GetNet
()
==
0
)
if
(
pad
->
GetNet
()
==
0
)
{
{
pt_liste_pad
++
;
pt_start_liste
=
pt_liste_pad
;
pt_liste_pad
++
;
pt_start_liste
=
pt_liste_pad
;
continue
;
continue
;
}
}
/*
Recherche de la fin de la liste des pads du net couran
t */
/*
Search the end of pad list des pads for the current ne
t */
num_block
=
pad
->
m_logical_connexion
;
num_block
=
pad
->
m_logical_connexion
;
nbpads
=
0
;
nbpads
=
0
;
for
(
pt_end_liste
=
pt_liste_pad
+
1
;
;
pt_end_liste
++
)
for
(
pt_end_liste
=
pt_liste_pad
+
1
;
;
pt_end_liste
++
)
...
@@ -416,7 +514,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
...
@@ -416,7 +514,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
m_Pcb
->
m_NbLinks
+=
nbpads
;
m_Pcb
->
m_NbLinks
+=
nbpads
;
/*
fin de liste trouvee: calcul du chevelu du
net "net_code" */
/*
End of list found: Compute the ratsnest relative to the current
net "net_code" */
equipot
=
m_Pcb
->
FindNet
(
current_net_code
);
equipot
=
m_Pcb
->
FindNet
(
current_net_code
);
if
(
equipot
==
NULL
)
if
(
equipot
==
NULL
)
DisplayError
(
this
,
wxT
(
"Gen ratsnest err: NULL equipot"
)
);
DisplayError
(
this
,
wxT
(
"Gen ratsnest err: NULL equipot"
)
);
...
@@ -429,11 +527,11 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
...
@@ -429,11 +527,11 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
equipot
->
m_RatsnestStart
=
g_pt_chevelu
;
equipot
->
m_RatsnestStart
=
g_pt_chevelu
;
}
}
/* a -
connexion des pads entre eux
*/
/* a -
first pass : create the blocks from "not in block" pads
*/
ii
=
gen_rats_pad_to_pad
(
DrawPanel
,
DC
,
pt_start_liste
,
ii
=
gen_rats_pad_to_pad
(
DrawPanel
,
DC
,
pt_start_liste
,
pt_end_liste
,
num_block
,
&
noconn
);
pt_end_liste
,
num_block
,
&
noconn
);
/* b -
connexion des blocks formes precedemment
(Iteration) */
/* b -
blocks connection
(Iteration) */
while
(
ii
>
1
)
while
(
ii
>
1
)
{
{
ii
=
gen_rats_block_to_block
(
DrawPanel
,
DC
,
pt_liste_pad
,
ii
=
gen_rats_block_to_block
(
DrawPanel
,
DC
,
pt_liste_pad
,
...
@@ -443,7 +541,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
...
@@ -443,7 +541,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
if
(
equipot
)
if
(
equipot
)
{
{
equipot
->
m_RatsnestEnd
=
g_pt_chevelu
;
equipot
->
m_RatsnestEnd
=
g_pt_chevelu
;
/*
classement des chevelus par longueur croissante
*/
/*
sort by lenght
*/
qsort
(
equipot
->
m_RatsnestStart
,
qsort
(
equipot
->
m_RatsnestStart
,
equipot
->
m_RatsnestEnd
-
equipot
->
m_RatsnestStart
,
equipot
->
m_RatsnestEnd
-
equipot
->
m_RatsnestStart
,
sizeof
(
CHEVELU
),
sizeof
(
CHEVELU
),
...
@@ -459,7 +557,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
...
@@ -459,7 +557,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
m_Pcb
->
m_Status_Pcb
|=
LISTE_CHEVELU_OK
;
m_Pcb
->
m_Status_Pcb
|=
LISTE_CHEVELU_OK
;
adr_lowmem
=
buf_work
;
adr_lowmem
=
buf_work
;
//
Effacement du chevelu calcule
//
erase the ratsnest displayed on screen if needed
CHEVELU
*
Chevelu
=
(
CHEVELU
*
)
m_Pcb
->
m_Ratsnest
;
CHEVELU
*
Chevelu
=
(
CHEVELU
*
)
m_Pcb
->
m_Ratsnest
;
GRSetDrawMode
(
DC
,
GR_XOR
);
GRSetDrawMode
(
DC
,
GR_XOR
);
for
(
ii
=
m_Pcb
->
GetNumRatsnests
();
ii
>
0
;
ii
--
,
Chevelu
++
)
for
(
ii
=
m_Pcb
->
GetNumRatsnests
();
ii
>
0
;
ii
--
,
Chevelu
++
)
...
@@ -479,7 +577,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
...
@@ -479,7 +577,7 @@ void WinEDA_BasePcbFrame::Build_Board_Ratsnest( wxDC* DC )
void
WinEDA_BasePcbFrame
::
ReCompile_Ratsnest_After_Changes
(
wxDC
*
DC
)
void
WinEDA_BasePcbFrame
::
ReCompile_Ratsnest_After_Changes
(
wxDC
*
DC
)
/**********************************************************************/
/**********************************************************************/
/* recompile rastnest af
et am
module move, delete, ..
/* recompile rastnest af
ter a
module move, delete, ..
*/
*/
{
{
if
(
g_Show_Ratsnest
&&
DC
)
if
(
g_Show_Ratsnest
&&
DC
)
...
@@ -491,10 +589,10 @@ void WinEDA_BasePcbFrame::ReCompile_Ratsnest_After_Changes( wxDC* DC )
...
@@ -491,10 +589,10 @@ void WinEDA_BasePcbFrame::ReCompile_Ratsnest_After_Changes( wxDC* DC )
void
WinEDA_BasePcbFrame
::
DrawGeneralRatsnest
(
wxDC
*
DC
,
int
net_code
)
void
WinEDA_BasePcbFrame
::
DrawGeneralRatsnest
(
wxDC
*
DC
,
int
net_code
)
/*********************************************************************/
/*********************************************************************/
/*
/*
*
*
Affiche le chevelu general du circui
t
*
Displays the general ratsnes
t
*
Affiche les chevelus dont le bit CH_VISIBLE du status du chevelu est a 1
*
Only ratsnets with the status bit CH_VISIBLE is set are displayed
*
Si net_code > 0, affichage des seuls chevelus de net_code correspondant
*
@param netcode if > 0, Display only the ratsnest relative to the correponding net_code
*/
*/
{
{
int
ii
;
int
ii
;
...
@@ -534,35 +632,35 @@ static int tst_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -534,35 +632,35 @@ static int tst_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
CHEVELU
*
start_rat_list
,
CHEVELU
*
end_rat_list
)
CHEVELU
*
start_rat_list
,
CHEVELU
*
end_rat_list
)
/*****************************************************************************/
/*****************************************************************************/
/*
/*
*
*
Routine utilisee par
Tst_Ratsnest()
*
Function used by
Tst_Ratsnest()
*
Routine tres proche de
gen_rats_block_to_block(..)
*
Function like
gen_rats_block_to_block(..)
*
Routine testant le chevelu entre 2 blocks ( supposes du me
me net )
*
Function testing the ratsnest between 2 blocks ( sa
me net )
*
la recherche est faite entre les pads du block 1 et les autre
s blocks
*
The search is made between pads in block 1 and the other
s blocks
*
le block n ( n > 1 ) est alors connecte au block 1 par le chevelu le plus cour
t
*
The block n ( n > 1 ) is merged with block 1 by the smallest ratsnes
t
*
A la différence de gen_rats_block_to_block(..),
*
Différence between gen_rats_block_to_block(..):
*
l'analyse n'est pas faite pads a pads mais a travers la liste générale des chevelus
.
*
The analysis is not made pads to pads but uses the general ratsnest list
.
*
La routine active alors le chevelu le plus court reliant le block 1 au
block n
*
The function activate the smallest ratsnest between block 1 and the
block n
* (
etablissement d'une connexion "logique"
)
* (
activate a logical connexion
)
*
*
*
Entree :
*
@param pt_liste_pad_start = adresse de debut de zone pad utile
* pt_
chain_pad = adresse de debut de zone pad utile
* pt_
liste_pad_end = adresse de fin de zone pad
*
pt_limite = adresse de fin de zone (borne non comprise)
*
start_rat_list = adresse de debut de zone ratsnest utile
*
Sortie:
*
end_rat_list = adresse de fin de zone ratsnest
*
Membre .state du chevelu sélectionné
*
output:
*
Retourne:
*
.state member of the ratsnests
*
nombre de blocks non connectes entre eux
*
@return blocks not connected count
*/
*/
{
{
int
current_num_block
,
min_block
;
int
current_num_block
,
min_block
;
LISTE_PAD
*
pt_liste_pad
;
LISTE_PAD
*
pt_liste_pad
;
CHEVELU
*
chevelu
,
*
min_chevelu
;
CHEVELU
*
chevelu
,
*
min_chevelu
;
/*
Recherche du chevelu le plus court d'un block a un autre
block */
/*
Search a link from a blockto an other
block */
min_chevelu
=
NULL
;
min_chevelu
=
NULL
;
for
(
chevelu
=
start_rat_list
;
chevelu
<
end_rat_list
;
chevelu
++
)
for
(
chevelu
=
start_rat_list
;
chevelu
<
end_rat_list
;
chevelu
++
)
{
{
if
(
chevelu
->
pad_start
->
m_logical_connexion
==
chevelu
->
pad_end
->
m_logical_connexion
)
if
(
chevelu
->
pad_start
->
m_logical_connexion
==
chevelu
->
pad_end
->
m_logical_connexion
)
// Same block
continue
;
continue
;
if
(
min_chevelu
==
NULL
)
if
(
min_chevelu
==
NULL
)
...
@@ -574,6 +672,9 @@ static int tst_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -574,6 +672,9 @@ static int tst_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
if
(
min_chevelu
==
NULL
)
if
(
min_chevelu
==
NULL
)
return
1
;
return
1
;
/* At this point we have found a link between 2 differents blocks (clusters) :
* we must set its status to ACTIVE and merge the 2 blocks
*/
min_chevelu
->
status
|=
CH_ACTIF
;
min_chevelu
->
status
|=
CH_ACTIF
;
current_num_block
=
min_chevelu
->
pad_start
->
m_logical_connexion
;
current_num_block
=
min_chevelu
->
pad_start
->
m_logical_connexion
;
min_block
=
min_chevelu
->
pad_end
->
m_logical_connexion
;
min_block
=
min_chevelu
->
pad_end
->
m_logical_connexion
;
...
@@ -581,7 +682,7 @@ static int tst_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -581,7 +682,7 @@ static int tst_rats_block_to_block( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
if
(
min_block
>
current_num_block
)
if
(
min_block
>
current_num_block
)
EXCHG
(
min_block
,
current_num_block
);
EXCHG
(
min_block
,
current_num_block
);
/*
les 2 blocks vont etre fondus
*/
/*
Merging the 2 blocks in one cluster
*/
for
(
pt_liste_pad
=
pt_liste_pad_start
;
pt_liste_pad
<
pt_liste_pad_end
;
pt_liste_pad
++
)
for
(
pt_liste_pad
=
pt_liste_pad_start
;
pt_liste_pad
<
pt_liste_pad_end
;
pt_liste_pad
++
)
{
{
if
(
(
*
pt_liste_pad
)
->
m_logical_connexion
==
current_num_block
)
if
(
(
*
pt_liste_pad
)
->
m_logical_connexion
==
current_num_block
)
...
@@ -600,25 +701,23 @@ static int tst_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -600,25 +701,23 @@ static int tst_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
CHEVELU
*
start_rat_list
,
CHEVELU
*
end_rat_list
)
CHEVELU
*
start_rat_list
,
CHEVELU
*
end_rat_list
)
/**********************************************************************/
/**********************************************************************/
/*
/**
* Routine utilisee par Tst_Ratsnest_general()
* Function used by Tst_Ratsnest_general()
* Routine Activant le chevelu entre 2 pads ( supposes du meme net )
* The general ratsnest list must exists
* la routine connecte 1 pad non deja connecte a un autre et active donc
* Activates the ratsnest between 2 pads ( supposes du meme net )
* un certain nombre de blocks de pads liées par un chevelu
* The function links 1 pad not already connected an other pad and activate
* Ces blocks sont donc constitués de 2 pads.
* some blocks linked by a ratsnest
* Its test only the existing ratsnest and activate some ratsnest (status bit CH_ACTIF set)
*
*
* Entree :
* @param start_rat_list = starting address for the ratnest list
* pt_chain_pad = adresse de debut de zone pad
* @param end_rat_list = ending address for the ratnest list
* pt_limite = adresse de fin de recherche (borne non comprise)
* @param current_num_block = last block number (computed from the track analysis)
* current_num_block = numero du dernier block de pads (constitué par les connexions
* de pistes existantes
*
*
*
Sortie
:
*
output
:
*
liste des chevelus ( structures
)
*
ratsnest list (status member set
)
*
mise a jour du membre .state du chevelu activé
*
and pad list (m_logical_connexion set)
*
*
* Retourne:
* @return new block number
* nombre de blocks crees (paquets de pads)
*/
*/
{
{
D_PAD
*
pad_start
,
*
pad_end
;
D_PAD
*
pad_start
,
*
pad_end
;
...
@@ -627,9 +726,9 @@ static int tst_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -627,9 +726,9 @@ static int tst_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
for
(
chevelu
=
start_rat_list
;
chevelu
<
end_rat_list
;
chevelu
++
)
for
(
chevelu
=
start_rat_list
;
chevelu
<
end_rat_list
;
chevelu
++
)
{
{
pad_start
=
chevelu
->
pad_start
;
pad_end
=
chevelu
->
pad_end
;
pad_start
=
chevelu
->
pad_start
;
pad_end
=
chevelu
->
pad_end
;
/* Mise a jour du numero de block ( ou de sous graphe ) */
/* si aucun des 2 pads n'est deja connecte : creation d'un nouveau block */
/* Update the block if the 2 pads are not connected : a new block is created
*/
if
(
(
pad_start
->
m_logical_connexion
==
0
)
&&
(
pad_end
->
m_logical_connexion
==
0
)
)
if
(
(
pad_start
->
m_logical_connexion
==
0
)
&&
(
pad_end
->
m_logical_connexion
==
0
)
)
{
{
current_num_block
++
;
current_num_block
++
;
...
@@ -637,7 +736,7 @@ static int tst_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -637,7 +736,7 @@ static int tst_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
pad_end
->
m_logical_connexion
=
current_num_block
;
pad_end
->
m_logical_connexion
=
current_num_block
;
chevelu
->
status
|=
CH_ACTIF
;
chevelu
->
status
|=
CH_ACTIF
;
}
}
/*
si 1 des 2 pads est deja connecte : mise a jour pour l'autre
*/
/*
If a pad is already connected : the other is merged in the current block
*/
else
if
(
pad_start
->
m_logical_connexion
==
0
)
else
if
(
pad_start
->
m_logical_connexion
==
0
)
{
{
pad_start
->
m_logical_connexion
=
pad_end
->
m_logical_connexion
;
pad_start
->
m_logical_connexion
=
pad_end
->
m_logical_connexion
;
...
@@ -658,9 +757,9 @@ static int tst_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
...
@@ -658,9 +757,9 @@ static int tst_rats_pad_to_pad( WinEDA_DrawPanel* DrawPanel, wxDC* DC,
void
WinEDA_BasePcbFrame
::
Tst_Ratsnest
(
wxDC
*
DC
,
int
ref_netcode
)
void
WinEDA_BasePcbFrame
::
Tst_Ratsnest
(
wxDC
*
DC
,
int
ref_netcode
)
/*******************************************************************/
/*******************************************************************/
/*
calcul du chevelu actif
/*
Compute the active ratsnest
*
Le chevelu général doit etre calculé
*
The general ratsnest list must exists
*
Determite les chevelus ACTIFS dans la liste générale des chevelus
*
Compute the ACTIVE ratsnests in the general ratsnest list
*/
*/
{
{
LISTE_PAD
*
pt_liste_pad
;
LISTE_PAD
*
pt_liste_pad
;
...
@@ -696,11 +795,11 @@ void WinEDA_BasePcbFrame::Tst_Ratsnest( wxDC* DC, int ref_netcode )
...
@@ -696,11 +795,11 @@ void WinEDA_BasePcbFrame::Tst_Ratsnest( wxDC* DC, int ref_netcode )
chevelu
->
status
&=
~
CH_ACTIF
;
chevelu
->
status
&=
~
CH_ACTIF
;
}
}
/* a - tst conne
xion des pads entre eux
*/
/* a - tst conne
ction between pads
*/
ii
=
tst_rats_pad_to_pad
(
DrawPanel
,
DC
,
num_block
,
ii
=
tst_rats_pad_to_pad
(
DrawPanel
,
DC
,
num_block
,
equipot
->
m_RatsnestStart
,
equipot
->
m_RatsnestEnd
);
equipot
->
m_RatsnestStart
,
equipot
->
m_RatsnestEnd
);
/* b -
connexion des blocks formes precedemment
(Iteration) */
/* b -
test connexion between blocks
(Iteration) */
while
(
ii
>
1
)
while
(
ii
>
1
)
{
{
ii
=
tst_rats_block_to_block
(
DrawPanel
,
DC
,
ii
=
tst_rats_block_to_block
(
DrawPanel
,
DC
,
...
@@ -722,7 +821,11 @@ void WinEDA_BasePcbFrame::Tst_Ratsnest( wxDC* DC, int ref_netcode )
...
@@ -722,7 +821,11 @@ void WinEDA_BasePcbFrame::Tst_Ratsnest( wxDC* DC, int ref_netcode )
/**************************************************************************/
/**************************************************************************/
int
WinEDA_BasePcbFrame
::
Test_1_Net_Ratsnest
(
wxDC
*
DC
,
int
ref_netcode
)
int
WinEDA_BasePcbFrame
::
Test_1_Net_Ratsnest
(
wxDC
*
DC
,
int
ref_netcode
)
/**************************************************************************/
/**************************************************************************/
/* Calcule le chevelu du net net_code */
/**
* Compute the rastnest relative to the net "net_code"
* @param ref_netcode = netcode used to compute the rastnest.
*/
{
{
DisplayRastnestInProgress
=
FALSE
;
DisplayRastnestInProgress
=
FALSE
;
DrawGeneralRatsnest
(
DC
,
ref_netcode
);
DrawGeneralRatsnest
(
DC
,
ref_netcode
);
...
@@ -737,11 +840,13 @@ int WinEDA_BasePcbFrame::Test_1_Net_Ratsnest( wxDC* DC, int ref_netcode )
...
@@ -737,11 +840,13 @@ int WinEDA_BasePcbFrame::Test_1_Net_Ratsnest( wxDC* DC, int ref_netcode )
void
WinEDA_BasePcbFrame
::
recalcule_pad_net_code
()
void
WinEDA_BasePcbFrame
::
recalcule_pad_net_code
()
/*****************************************************/
/*****************************************************/
/*
/**
* Calcule et met a jour les net_codes des PADS et des equipotentielles
* Compute and update the net_codes for PADS et and equipots (.m_NetCode member)
* met a jour le buffer des equipotentielles
* net_codes are >= 1 (net_code = 0 means not connected)
* A utiliser apres edition de nets sur un pad ou lecture d'une netliste
* Update the equipotents buffer
* positionne a 1 le bit NET_CODE_OK du status_pcb;
* Must be called after editing pads (netname, or deleting) or after read a netlist
* set to 1 flag NET_CODE_OK of m_Pcb->m_Status_Pcb;
* m_Pcb->m_NbNodes and m_Pcb->m_NbNets are updated
*/
*/
{
{
LISTE_PAD
*
pad_ref
,
*
pad_courant
;
LISTE_PAD
*
pad_ref
,
*
pad_courant
;
...
@@ -750,7 +855,7 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
...
@@ -750,7 +855,7 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
EDA_BaseStruct
*
PtStruct
;
EDA_BaseStruct
*
PtStruct
;
EQUIPOT
**
BufPtEquipot
;
EQUIPOT
**
BufPtEquipot
;
/*
construction de la liste des adr des PADS
*/
/*
Build the PAD list
*/
build_liste_pads
();
build_liste_pads
();
/* calcul des net_codes des pads */
/* calcul des net_codes des pads */
...
@@ -758,10 +863,11 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
...
@@ -758,10 +863,11 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
m_Pcb
->
m_NbNodes
=
0
;
m_Pcb
->
m_NbNodes
=
0
;
m_Pcb
->
m_NbNets
=
0
;
m_Pcb
->
m_NbNets
=
0
;
/* search for differents netnames, and create a netcode for each netname */
pad_courant
=
m_Pcb
->
m_Pads
;
pad_courant
=
m_Pcb
->
m_Pads
;
for
(
;
ii
>
0
;
pad_courant
++
,
ii
--
)
for
(
;
ii
>
0
;
pad_courant
++
,
ii
--
)
{
{
if
(
(
*
pad_courant
)
->
m_Netname
.
IsEmpty
()
)
// pad no
n connecte
if
(
(
*
pad_courant
)
->
m_Netname
.
IsEmpty
()
)
// pad no
t connected
{
{
(
*
pad_courant
)
->
SetNet
(
0
);
(
*
pad_courant
)
->
SetNet
(
0
);
continue
;
continue
;
...
@@ -769,7 +875,7 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
...
@@ -769,7 +875,7 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
m_Pcb
->
m_NbNodes
++
;
m_Pcb
->
m_NbNodes
++
;
/*
si le netname a deja ete rencontre: mise a jour , sinon nouveau
net_code */
/*
if the current netname was already found: use the current net_code , else create a new
net_code */
pad_ref
=
m_Pcb
->
m_Pads
;
pad_ref
=
m_Pcb
->
m_Pads
;
while
(
pad_ref
<
pad_courant
)
while
(
pad_ref
<
pad_courant
)
{
{
...
@@ -779,24 +885,25 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
...
@@ -779,24 +885,25 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
pad_ref
++
;
pad_ref
++
;
}
}
/* si pad_ref = pad_courant: nouveau net sinon, deja net deja traite */
/* if pad_ref != pad_courant we have found 2 pads on the same net., Use the current net_code for pad_courant
if
(
pad_ref
==
pad_courant
)
* if pad_ref == pad_courant: new net found (end of list reached) without other pad found on the same net:
* we must create a new net_code
*/
if
(
pad_ref
==
pad_courant
)
// create a new net_code
{
{
m_Pcb
->
m_NbNets
++
;
(
*
pad_courant
)
->
SetNet
(
m_Pcb
->
m_NbNets
);
m_Pcb
->
m_NbNets
++
;
(
*
pad_courant
)
->
SetNet
(
m_Pcb
->
m_NbNets
);
}
}
else
else
// Use the current net_code for pad_courant
(
*
pad_courant
)
->
SetNet
(
(
*
pad_ref
)
->
GetNet
()
);
(
*
pad_courant
)
->
SetNet
(
(
*
pad_ref
)
->
GetNet
()
);
}
}
/* Construction ou correction de la liste des equipotentielles,
/* Build or update the equipotent list: we reuse the old list */
* et construction d'un tableau d'adressage des equipots*/
BufPtEquipot
=
(
EQUIPOT
**
)
MyMalloc
(
sizeof
(
EQUIPOT
*
)
*
(
m_Pcb
->
m_NbNets
+
1
)
);
BufPtEquipot
=
(
EQUIPOT
**
)
MyMalloc
(
sizeof
(
EQUIPOT
*
)
*
(
m_Pcb
->
m_NbNets
+
1
)
);
pt_equipot
=
m_Pcb
->
m_Equipots
;
pt_equipot
=
m_Pcb
->
m_Equipots
;
PtStruct
=
(
EDA_BaseStruct
*
)
m_Pcb
;
PtStruct
=
(
EDA_BaseStruct
*
)
m_Pcb
;
for
(
ii
=
0
;
ii
<=
m_Pcb
->
m_NbNets
;
ii
++
)
for
(
ii
=
0
;
ii
<=
m_Pcb
->
m_NbNets
;
ii
++
)
{
{
if
(
pt_equipot
==
NULL
)
/* Creat
ion d'une nouvelle equipo
t */
if
(
pt_equipot
==
NULL
)
/* Creat
e a new equipot if no more equipot in old lis
t */
{
{
pt_equipot
=
new
EQUIPOT
(
m_Pcb
);
pt_equipot
=
new
EQUIPOT
(
m_Pcb
);
...
@@ -813,7 +920,8 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
...
@@ -813,7 +920,8 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
pt_equipot
->
Pnext
=
NULL
;
pt_equipot
->
Pnext
=
NULL
;
}
}
pt_equipot
->
SetNet
(
ii
);
// Mise a jour du numero d'equipot
// Set the net_code for this equipot and reset other values
pt_equipot
->
SetNet
(
ii
);
pt_equipot
->
m_NbNodes
=
0
;
pt_equipot
->
m_NbNodes
=
0
;
pt_equipot
->
m_Netname
.
Empty
();
pt_equipot
->
m_Netname
.
Empty
();
...
@@ -822,19 +930,19 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
...
@@ -822,19 +930,19 @@ void WinEDA_BasePcbFrame::recalcule_pad_net_code()
pt_equipot
=
(
EQUIPOT
*
)
pt_equipot
->
Pnext
;
pt_equipot
=
(
EQUIPOT
*
)
pt_equipot
->
Pnext
;
}
}
/*
Effacement des equipots inutiles
*/
/*
Delete the unused equipots in the old list
*/
while
(
pt_equipot
)
while
(
pt_equipot
)
{
{
PtStruct
=
pt_equipot
->
Pnext
;
PtStruct
=
pt_equipot
->
Pnext
;
pt_equipot
->
DeleteStructure
();
pt_equipot
->
DeleteStructure
();
pt_equipot
=
(
EQUIPOT
*
)
PtStruct
;
pt_equipot
=
(
EQUIPOT
*
)
PtStruct
;
}
}
pad_courant
=
m_Pcb
->
m_Pads
;
pad_courant
=
m_Pcb
->
m_Pads
;
pt_equipot
=
m_Pcb
->
m_Equipots
;
pt_equipot
=
m_Pcb
->
m_Equipots
;
/*
Placement des noms de net en structure EQUIPOT
*/
/*
Set the equpot net name and node count for each equipot in equipot list
*/
for
(
ii
=
m_Pcb
->
m_NbPads
;
ii
>
0
;
pad_courant
++
,
ii
--
)
for
(
ii
=
m_Pcb
->
m_NbPads
;
ii
>
0
;
pad_courant
++
,
ii
--
)
{
{
jj
=
(
*
pad_courant
)
->
GetNet
();
jj
=
(
*
pad_courant
)
->
GetNet
();
...
@@ -856,29 +964,14 @@ void WinEDA_BasePcbFrame::build_liste_pads()
...
@@ -856,29 +964,14 @@ void WinEDA_BasePcbFrame::build_liste_pads()
/***********************************************/
/***********************************************/
/*
/*
* construction de la liste ( sous forme d'une liste de stucture )
* Create the pad list
* des caract utiles des pads du PCB pour autoroutage,DRC .. )
* initialise:
* parametres:
* m_Pcb->m_Pads (list of pads)
* adresse du buffer de classement = buf_work
* m_Pcb->m_NbPads = pad count
* retourne:
* m_Pcb->m_NbNodes = node count
* 1ere adresse disponible si OK
* set m_Pcb->m_Status_Pcb = LISTE_PAD_OK;
* NULL si trop de pastilles
* and clear for all pad their m_logical_connexion member;
*
* delete ( free memory) m_Pcb->m_Ratsnest and set m_Pcb->m_Ratsnest to NULL
*
* Parametres de routage calcules et mis a jour
* - parametre net_code:
* numero de code interne de chaque net du PCB.
* permet d'accelerer les calculs de chevelu et de connexions
* - parametre .link est mis a jour
* pour chaque pastille, il indique le nombre d'autres pastilles du meme net
* appartenant au meme module.
*
* Variables globales mise a jour:
* pointeur base_adr_liste_pad (adr de classement de la liste des pads)
* nb_pads = nombre total de pastilles du PCB
* nb_nets = nombre de nets differents
* status_pcb |= LISTE_PAD_OK (flag permettant d'eviter la reexecution inutile
* de cette routine)
*/
*/
{
{
LISTE_PAD
*
pt_liste_pad
;
LISTE_PAD
*
pt_liste_pad
;
...
@@ -888,14 +981,14 @@ void WinEDA_BasePcbFrame::build_liste_pads()
...
@@ -888,14 +981,14 @@ void WinEDA_BasePcbFrame::build_liste_pads()
if
(
m_Pcb
->
m_Status_Pcb
&
LISTE_PAD_OK
)
if
(
m_Pcb
->
m_Status_Pcb
&
LISTE_PAD_OK
)
return
;
return
;
/*
construction de la liste des pointeurs sur les structures D_PAD
*/
/*
delete the old list
*/
if
(
m_Pcb
->
m_Pads
)
if
(
m_Pcb
->
m_Pads
)
{
{
MyFree
(
m_Pcb
->
m_Pads
);
MyFree
(
m_Pcb
->
m_Pads
);
m_Pcb
->
m_Pads
=
NULL
;
m_Pcb
->
m_Pads
=
NULL
;
}
}
/*
Calcul du nombre de pads
*/
/*
Set the pad count
*/
m_Pcb
->
m_NbPads
=
0
;
m_Pcb
->
m_NbPads
=
0
;
Module
=
m_Pcb
->
m_Modules
;
Module
=
m_Pcb
->
m_Modules
;
for
(
;
Module
!=
NULL
;
Module
=
(
MODULE
*
)
Module
->
Pnext
)
for
(
;
Module
!=
NULL
;
Module
=
(
MODULE
*
)
Module
->
Pnext
)
...
@@ -908,12 +1001,12 @@ void WinEDA_BasePcbFrame::build_liste_pads()
...
@@ -908,12 +1001,12 @@ void WinEDA_BasePcbFrame::build_liste_pads()
if
(
m_Pcb
->
m_NbPads
==
0
)
if
(
m_Pcb
->
m_NbPads
==
0
)
return
;
return
;
/* Allocat
ion memoire du buffer
*/
/* Allocat
e memory for the pad list
*/
pt_liste_pad
=
m_Pcb
->
m_Pads
pt_liste_pad
=
m_Pcb
->
m_Pads
=
(
D_PAD
**
)
MyZMalloc
(
(
m_Pcb
->
m_NbPads
+
1
)
*
sizeof
(
D_PAD
*
)
);
=
(
D_PAD
**
)
MyZMalloc
(
(
m_Pcb
->
m_NbPads
+
1
)
*
sizeof
(
D_PAD
*
)
);
m_Pcb
->
m_NbNodes
=
0
;
m_Pcb
->
m_NbNodes
=
0
;
/*
Initialisation du buffer et des variables de travail
*/
/*
Clear variables used in rastnest computation
*/
Module
=
m_Pcb
->
m_Modules
;
Module
=
m_Pcb
->
m_Modules
;
for
(
;
Module
!=
NULL
;
Module
=
(
MODULE
*
)
Module
->
Pnext
)
for
(
;
Module
!=
NULL
;
Module
=
(
MODULE
*
)
Module
->
Pnext
)
{
{
...
@@ -922,7 +1015,7 @@ void WinEDA_BasePcbFrame::build_liste_pads()
...
@@ -922,7 +1015,7 @@ void WinEDA_BasePcbFrame::build_liste_pads()
{
{
*
pt_liste_pad
=
PtPad
;
*
pt_liste_pad
=
PtPad
;
PtPad
->
m_logical_connexion
=
0
;
PtPad
->
m_logical_connexion
=
0
;
PtPad
->
m_Parent
=
Module
;
PtPad
->
m_Parent
=
Module
;
// Just in case
if
(
PtPad
->
GetNet
()
)
if
(
PtPad
->
GetNet
()
)
m_Pcb
->
m_NbNodes
++
;
m_Pcb
->
m_NbNodes
++
;
...
@@ -931,7 +1024,7 @@ void WinEDA_BasePcbFrame::build_liste_pads()
...
@@ -931,7 +1024,7 @@ void WinEDA_BasePcbFrame::build_liste_pads()
}
}
}
}
*
pt_liste_pad
=
NULL
;
//
fin de liste
*
pt_liste_pad
=
NULL
;
//
set end of list
adr_lowmem
=
buf_work
;
adr_lowmem
=
buf_work
;
...
@@ -949,19 +1042,19 @@ void WinEDA_BasePcbFrame::build_liste_pads()
...
@@ -949,19 +1042,19 @@ void WinEDA_BasePcbFrame::build_liste_pads()
char
*
WinEDA_BasePcbFrame
::
build_ratsnest_module
(
wxDC
*
DC
,
MODULE
*
Module
)
char
*
WinEDA_BasePcbFrame
::
build_ratsnest_module
(
wxDC
*
DC
,
MODULE
*
Module
)
/*****************************************************************************/
/*****************************************************************************/
/*
/**
* construction de la liste en mode de calcul rapide pour affichage
* Build a rastenest relative to one footprint. This is a simplified computation
* en temps reel lors des deplacements du chevelu d'un module.
* used only in move footprint. It is not optimal, but it is fast and sufficient
* to guide a footprint placement
* It shows the connections from a pad to the nearest conected pad
* @param Module = module to consider.
*
*
* parametres d'appel:
* the general buffer adr_lowmem is used to store the local footprint ratnest (to do: better to allocate memory)
* Module = pointeur sur module dont le ratsnest est a calculer
* The ratsnest has 2 sections:
*
* - An "internal" ratsnet relative to pads of this footprint which are in the same net.
* retourne: adresse memoire disponible
* this ratsnest section is computed once.
* Le chevelu calcule comporte 2 parties
* - An "external" rastnest connecting a pad of this footprint to an other pad (in an other footprint)
* - un chevelu interne relatif aux pads du module appartenant a un
* The ratsnest section must be computed for each new position
* meme net. Il est calcule 1 seule fois
* - le chevelu externe reliant un pad interne a un pad externe au module
* Ce chevelu est recalcule a chaque deplacement
*/
*/
{
{
LISTE_PAD
*
pt_liste_pad
;
LISTE_PAD
*
pt_liste_pad
;
...
@@ -974,22 +1067,24 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
...
@@ -974,22 +1067,24 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
LISTE_PAD
*
pt_end_liste
;
LISTE_PAD
*
pt_end_liste
;
int
ii
,
jj
;
int
ii
,
jj
;
CHEVELU
*
local_chevelu
;
CHEVELU
*
local_chevelu
;
static
CHEVELU
*
pt_fin_int_chevelu
;
// pointeur sur la fin de la liste
static
CHEVELU
*
pt_fin_int_chevelu
;
// End list for "internal" ratsnest
// des chevelus internes au module
static
int
nb_int_chevelu
;
// "internal" ratsnest count
static
int
nb_int_chevelu
;
// nombre e chevelus internes
int
current_net_code
;
int
current_net_code
;
int
increment
,
distance
;
// variables de calcul de ratsnest
int
increment
,
distance
;
// variables de calcul de ratsnest
int
pad_pos_X
,
pad_pos_Y
;
//
position reelle des pads du module en mouvement
int
pad_pos_X
,
pad_pos_Y
;
//
True pad position according to the current footprint position
if
(
(
m_Pcb
->
m_Status_Pcb
&
LISTE_PAD_OK
)
==
0
)
if
(
(
m_Pcb
->
m_Status_Pcb
&
LISTE_PAD_OK
)
==
0
)
build_liste_pads
();
build_liste_pads
();
/* construction de la liste des pads du module si necessaire */
/* Compute the "local" ratsnest if needed (when this footprint starts move)
and the list of external pads to consider, i.e pads in others footprints which are "connected" to
a pad in the current footprint
*/
if
(
(
m_Pcb
->
m_Status_Pcb
&
CHEVELU_LOCAL_OK
)
!=
0
)
if
(
(
m_Pcb
->
m_Status_Pcb
&
CHEVELU_LOCAL_OK
)
!=
0
)
goto
calcul_chevelu_ext
;
goto
calcul_chevelu_ext
;
/*
calcul du chevelu "interne", c.a.d. liant les seuls pads du module
*/
/*
Compute the "internal" ratsnest, i.e the links beteween the curent footprint pads
*/
pt_liste_pad
=
(
LISTE_PAD
*
)
adr_lowmem
;
pt_liste_pad
=
(
LISTE_PAD
*
)
adr_lowmem
;
nb_pads_ref
=
0
;
nb_pads_ref
=
0
;
...
@@ -1008,9 +1103,9 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
...
@@ -1008,9 +1103,9 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
if
(
nb_pads_ref
==
0
)
if
(
nb_pads_ref
==
0
)
return
(
char
*
)
pt_liste_pad
;
/* pas de connexions! */
return
(
char
*
)
pt_liste_pad
;
/* pas de connexions! */
qsort
(
adr_lowmem
,
nb_pads_ref
,
sizeof
(
D_PAD
*
),
tri_par_net
);
qsort
(
adr_lowmem
,
nb_pads_ref
,
sizeof
(
D_PAD
*
),
tri_par_net
);
/*
construction de la liste des pads connectes aux pads de ce module
*/
/*
Build the list of pads linked to the current ffotprint pads
*/
DisplayRastnestInProgress
=
FALSE
;
DisplayRastnestInProgress
=
FALSE
;
pt_liste_ref
=
(
LISTE_PAD
*
)
adr_lowmem
;
pt_liste_ref
=
(
LISTE_PAD
*
)
adr_lowmem
;
...
@@ -1040,13 +1135,14 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
...
@@ -1040,13 +1135,14 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
}
}
}
}
/*
tri par net_codes croissants de la liste des pads externes
*/
/*
Sort the pad list by net_code
*/
qsort
(
pt_liste_ref
+
nb_pads_ref
,
nb_pads_externes
,
sizeof
(
D_PAD
*
),
qsort
(
pt_liste_ref
+
nb_pads_ref
,
nb_pads_externes
,
sizeof
(
D_PAD
*
),
tri_par_net
);
tri_par_net
);
/* calcul du chevelu interne au module:
/* Compute the internal ratsnet:
* Ce calcul est identique au calcul du chevelu general, mais il est
* this is the same as general ratsnest, but considers onluy tje currant footprint pads
* restreint aux seuls pads du module courant */
* it is therefore not time consumming, and it is made onlu once
*/
local_liste_chevelu
=
(
CHEVELU
*
)
(
pt_liste_pad
);
// buffer chevelu a la suite de la liste des pads
local_liste_chevelu
=
(
CHEVELU
*
)
(
pt_liste_pad
);
// buffer chevelu a la suite de la liste des pads
nb_local_chevelu
=
0
;
nb_local_chevelu
=
0
;
pt_liste_ref
=
(
LISTE_PAD
*
)
adr_lowmem
;
pt_liste_ref
=
(
LISTE_PAD
*
)
adr_lowmem
;
...
@@ -1058,7 +1154,7 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
...
@@ -1058,7 +1154,7 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
for
(
;
pt_liste_pad
<
pt_liste_pad_limite
;
)
for
(
;
pt_liste_pad
<
pt_liste_pad_limite
;
)
{
{
/*
Recherche de la fin de la liste des pads du net couran
t */
/*
Search the end of pad list relative to the current ne
t */
for
(
pt_end_liste
=
pt_liste_pad
+
1
;
;
pt_end_liste
++
)
for
(
pt_end_liste
=
pt_liste_pad
+
1
;
;
pt_end_liste
++
)
{
{
...
@@ -1069,12 +1165,12 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
...
@@ -1069,12 +1165,12 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
break
;
break
;
}
}
/*
fin de liste trouvee
: */
/*
End of list found
: */
/* a -
connexion des pads entre eux
*/
/* a -
first step of lee algorithm : build the pad to pad link list
*/
ii
=
gen_rats_pad_to_pad
(
DrawPanel
,
DC
,
pt_start_liste
,
pt_end_liste
,
ii
=
gen_rats_pad_to_pad
(
DrawPanel
,
DC
,
pt_start_liste
,
pt_end_liste
,
0
,
&
nb_local_chevelu
);
0
,
&
nb_local_chevelu
);
/* b -
connexion des blocks formes precedemmen
t (Iteration) */
/* b -
secon step of lee algorithm : build the block to block link lis
t (Iteration) */
while
(
ii
>
1
)
while
(
ii
>
1
)
{
{
ii
=
gen_rats_block_to_block
(
DrawPanel
,
DC
,
pt_liste_pad
,
ii
=
gen_rats_block_to_block
(
DrawPanel
,
DC
,
pt_liste_pad
,
...
@@ -1089,7 +1185,7 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
...
@@ -1089,7 +1185,7 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
pt_fin_int_chevelu
=
local_chevelu
=
g_pt_chevelu
;
pt_fin_int_chevelu
=
local_chevelu
=
g_pt_chevelu
;
nb_int_chevelu
=
nb_local_chevelu
;
nb_int_chevelu
=
nb_local_chevelu
;
/*
Mise a 1 du flag LOCAL
*/
/*
set the ratsnets status, flag LOCAL_CHEVELU
*/
g_pt_chevelu
=
local_liste_chevelu
;
g_pt_chevelu
=
local_liste_chevelu
;
while
(
g_pt_chevelu
<
pt_fin_int_chevelu
)
while
(
g_pt_chevelu
<
pt_fin_int_chevelu
)
{
{
...
@@ -1098,15 +1194,15 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
...
@@ -1098,15 +1194,15 @@ char* WinEDA_BasePcbFrame::build_ratsnest_module( wxDC* DC, MODULE* Module )
m_Pcb
->
m_Status_Pcb
|=
CHEVELU_LOCAL_OK
;
m_Pcb
->
m_Status_Pcb
|=
CHEVELU_LOCAL_OK
;
/
////////////////////////////////////////
/
*
// calcul du chevelu externe au module //
This section computes the "external" ratsnest: must be done when the footprint position changes
////////////////////////////////////////
/
*
/
calcul_chevelu_ext
:
calcul_chevelu_ext
:
/*
Cette partie est executee a chaque deplacement du module: on calcule
/*
This section search:
*
pour chaque pad du module courant la + courte distance a un pad externe
.
*
for each current module pad the nearest neighbour external pad (of course for the same net code)
.
*
Pour chaque groupe de pad du module courant appartenant a un meme net
,
*
For each current footprint cluster of pad (pads having the same net code)
,
*
on ne garde qu'un seul chevelu: le plus cour
t.
*
we keep the smaller ratsnes
t.
*/
*/
local_chevelu
=
pt_fin_int_chevelu
;
local_chevelu
=
pt_fin_int_chevelu
;
nb_local_chevelu
=
nb_int_chevelu
;
nb_local_chevelu
=
nb_int_chevelu
;
...
@@ -1122,8 +1218,7 @@ calcul_chevelu_ext:
...
@@ -1122,8 +1218,7 @@ calcul_chevelu_ext:
pad_ref
=
*
(
pt_liste_ref
+
ii
);
pad_ref
=
*
(
pt_liste_ref
+
ii
);
if
(
pad_ref
->
GetNet
()
!=
current_net_code
)
if
(
pad_ref
->
GetNet
()
!=
current_net_code
)
{
{
/* un nouveau chevelu est cree (si necessaire) pour
/* if needed a new ratsenest for each new net */
* chaque nouveau net */
if
(
increment
)
if
(
increment
)
{
{
nb_local_chevelu
++
;
local_chevelu
++
;
nb_local_chevelu
++
;
local_chevelu
++
;
...
@@ -1141,11 +1236,11 @@ calcul_chevelu_ext:
...
@@ -1141,11 +1236,11 @@ calcul_chevelu_ext:
{
{
pad_externe
=
*
pt_liste_generale
;
pt_liste_generale
++
;
pad_externe
=
*
pt_liste_generale
;
pt_liste_generale
++
;
/*
les netcodes doivent etre identiques
*/
/*
we search pads having the same net coade
*/
if
(
pad_externe
->
GetNet
()
<
pad_ref
->
GetNet
()
)
if
(
pad_externe
->
GetNet
()
<
pad_ref
->
GetNet
()
)
continue
;
continue
;
if
(
pad_externe
->
GetNet
()
>
pad_ref
->
GetNet
()
)
if
(
pad_externe
->
GetNet
()
>
pad_ref
->
GetNet
()
)
// remember pads are sorted by net code
break
;
break
;
distance
=
abs
(
pad_externe
->
m_Pos
.
x
-
pad_pos_X
)
+
distance
=
abs
(
pad_externe
->
m_Pos
.
x
-
pad_pos_X
)
+
...
@@ -1169,12 +1264,12 @@ calcul_chevelu_ext:
...
@@ -1169,12 +1264,12 @@ calcul_chevelu_ext:
local_chevelu
++
;
local_chevelu
++
;
}
}
/*
Retourne l'adr de la zone disponible
*/
/*
return the newt free memory buffer address, in the general buffer
*/
adr_max
=
MAX
(
adr_max
,
(
char
*
)
(
local_chevelu
+
1
)
);
adr_max
=
MAX
(
adr_max
,
(
char
*
)
(
local_chevelu
+
1
)
);
return
(
char
*
)
(
local_chevelu
+
1
);
/*
la struct pointee par
return
(
char
*
)
(
local_chevelu
+
1
);
/*
the struct pointed by local_chevelu is used
* local_chevelu est utilisee
in temporary computations, so we skip it
* pour des calculs temporaires
*/
*/
}
}
...
@@ -1183,8 +1278,7 @@ void WinEDA_BasePcbFrame::trace_ratsnest_module( wxDC* DC )
...
@@ -1183,8 +1278,7 @@ void WinEDA_BasePcbFrame::trace_ratsnest_module( wxDC* DC )
/**********************************************************/
/**********************************************************/
/*
/*
* affiche le chevelu d'un module calcule en mode rapide.
* Display the rastnest of a moving footprint, computed by build_ratsnest_module()
* retourne: rien
*/
*/
{
{
CHEVELU
*
local_chevelu
;
CHEVELU
*
local_chevelu
;
...
@@ -1227,7 +1321,7 @@ void WinEDA_BasePcbFrame::trace_ratsnest_module( wxDC* DC )
...
@@ -1227,7 +1321,7 @@ void WinEDA_BasePcbFrame::trace_ratsnest_module( wxDC* DC )
/* int * WinEDA_BasePcbFrame::build_ratsnest_pad(D_PAD * pad_ref, const wxPoint & refpos) */
/* int * WinEDA_BasePcbFrame::build_ratsnest_pad(D_PAD * pad_ref, const wxPoint & refpos) */
/*********************************************************************************************/
/*********************************************************************************************/
/*
/*
*
* construction de la liste en mode de calcul rapide pour affichage
* construction de la liste en mode de calcul rapide pour affichage
* en temps reel du chevelu d'un pad lors des tracés d'une piste démarrant
* en temps reel du chevelu d'un pad lors des tracés d'une piste démarrant
* sur ce pad.
* sur ce pad.
...
@@ -1241,13 +1335,13 @@ void WinEDA_BasePcbFrame::trace_ratsnest_module( wxDC* DC )
...
@@ -1241,13 +1335,13 @@ void WinEDA_BasePcbFrame::trace_ratsnest_module( wxDC* DC )
* retourne: adresse memoire disponible
* retourne: adresse memoire disponible
*/
*/
/*
routine locale de tri par longueur de links utilisee par la fonction QSORT
*/
/*
Used by build_ratsnest_pad(): sort function by link lenght (manathann distance)
*/
static
int
sort_by_localnetlength
(
const
void
*
o1
,
const
void
*
o2
)
static
int
sort_by_localnetlength
(
const
void
*
o1
,
const
void
*
o2
)
{
{
int
*
ref
=
(
int
*
)
o1
;
int
*
ref
=
(
int
*
)
o1
;
int
*
compare
=
(
int
*
)
o2
;
int
*
compare
=
(
int
*
)
o2
;
int
*
org
=
(
int
*
)
adr_lowmem
;
int
*
org
=
(
int
*
)
adr_lowmem
;
// ref coordinate (todo : change for a betted code: used an external wxPoint variable)
int
ox
=
*
org
++
;
int
ox
=
*
org
++
;
int
oy
=
*
org
++
;
int
oy
=
*
org
++
;
int
lengthref
,
lengthcmp
;
int
lengthref
,
lengthcmp
;
...
@@ -1255,13 +1349,13 @@ static int sort_by_localnetlength( const void* o1, const void* o2 )
...
@@ -1255,13 +1349,13 @@ static int sort_by_localnetlength( const void* o1, const void* o2 )
lengthref
=
abs
(
*
ref
-
ox
);
lengthref
=
abs
(
*
ref
-
ox
);
ref
++
;
ref
++
;
lengthref
+=
abs
(
*
ref
-
oy
);
// =
longueur entre point origine et
pad ref
lengthref
+=
abs
(
*
ref
-
oy
);
// =
distance between ref coordinate and
pad ref
lengthcmp
=
abs
(
*
compare
-
ox
);
lengthcmp
=
abs
(
*
compare
-
ox
);
compare
++
;
compare
++
;
lengthcmp
+=
abs
(
*
compare
-
oy
);
// =
longueur entre point origine et pad comparé
lengthcmp
+=
abs
(
*
compare
-
oy
);
// =
distance between ref coordinate and the other pad
return
lengthref
-
lengthcmp
;
return
lengthref
-
lengthcmp
;
}
}
...
@@ -1341,7 +1435,8 @@ int* WinEDA_BasePcbFrame::build_ratsnest_pad( EDA_BaseStruct* ref,
...
@@ -1341,7 +1435,8 @@ int* WinEDA_BasePcbFrame::build_ratsnest_pad( EDA_BaseStruct* ref,
nb_local_chevelu
++
;
nb_local_chevelu
++
;
}
}
}
}
}
/* Fin Init */
}
/* end if Init */
else
if
(
nb_local_chevelu
)
else
if
(
nb_local_chevelu
)
{
{
*
pt_coord
=
refpos
.
x
;
*
pt_coord
=
refpos
.
x
;
...
@@ -1359,7 +1454,7 @@ void WinEDA_BasePcbFrame::trace_ratsnest_pad( wxDC* DC )
...
@@ -1359,7 +1454,7 @@ void WinEDA_BasePcbFrame::trace_ratsnest_pad( wxDC* DC )
/*******************************************************/
/*******************************************************/
/*
/*
*
affiche le "chevelu" d'un pad lors des trace de segments de piste
*
Displays a "ratsnest" during track creation
*/
*/
{
{
int
*
pt_coord
;
int
*
pt_coord
;
...
...
pcbnew/struct.cpp.notused
deleted
100644 → 0
View file @
3cd47555
/***********************************************/
/* Routines d'effacement et copie de structures*/
/***********************************************/
#include "fctsys.h"
#include "gr_basic.h"
#include "common.h"
#include "pcbnew.h"
#if 0
/* Routines Locales */
/* Variables locales */
/***********************************************/
void DeleteStructure( BOARD_ITEM* item )
/***********************************************/
/* Supprime de la liste chainee la stucture pointee par GenericStructure
et libere la memoire correspondante
*/
{
if( !item )
return;
switch( item->Type() )
{
case TYPE_NOT_INIT:
DisplayError(NULL, wxT("DeleteStruct: Type Structure Non Initialise"));
break;
case PCB_EQUIPOT_STRUCT_TYPE:
case TYPEMODULE:
case TYPEPAD:
case TYPECOTATION:
case TYPEMIRE:
case TYPEDRAWSEGMENT:
case TYPETEXTE:
case TYPETEXTEMODULE:
case TYPEEDGEMODULE:
case TYPETRACK:
case TYPEVIA:
case TYPEZONE:
case TYPEMARQUEUR:
item->UnLink();
delete item;
break;
default:
{
wxString msg;
msg.Printf( wxT(" DeleteStructure: Type %d Inattendu"), item->Type() );
DisplayError(NULL, msg);
}
}
}
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment