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
66080848
Commit
66080848
authored
Aug 08, 2007
by
CHARRAS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug fix in class_hierarchy_sheet.cpp.
parent
6719900e
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
107 additions
and
59 deletions
+107
-59
change_log.txt
change_log.txt
+12
-0
base_struct.cpp
common/base_struct.cpp
+1
-1
class_hierarchy_sheet.cpp
eeschema/class_hierarchy_sheet.cpp
+1
-1
base_struct.h
include/base_struct.h
+1
-1
block.cpp
pcbnew/block.cpp
+32
-20
connect.cpp
pcbnew/connect.cpp
+60
-36
No files found.
change_log.txt
View file @
66080848
...
@@ -5,6 +5,18 @@ Please add newer entries at the top, list the date and your name with
...
@@ -5,6 +5,18 @@ Please add newer entries at the top, list the date and your name with
email address.
email address.
2007-aug-08 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ eeschema
bug in class_hierarchy_sheet.cpp.
+ pcbnew
small change in block commands:
rastnest was updated for each footprint, while moving footprints.
Now it is updated at the end of changes.
enhancements in block.cpp and connect.cpp
2007-Aug-07 UPDATE Dick Hollenbeck <dick@softplc.com>
2007-Aug-07 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
================================================================================
+ pcbnew & common
+ pcbnew & common
...
...
common/base_struct.cpp
View file @
66080848
...
@@ -390,7 +390,7 @@ void EDA_TextStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
...
@@ -390,7 +390,7 @@ void EDA_TextStruct::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
* offset = Offset de trace (usuellement (0,0)
* offset = Offset de trace (usuellement (0,0)
* color = couleur du texte
* color = couleur du texte
* draw_mode = GR_OR, GR_XOR.., -1 si mode courant.
* draw_mode = GR_OR, GR_XOR.., -1 si mode courant.
* display_mo
s
e = FILAIRE, FILLED ou SKETCH
* display_mo
d
e = FILAIRE, FILLED ou SKETCH
* anchor_color = couleur de l'ancre ( -1 si pas d'ancre ).
* anchor_color = couleur de l'ancre ( -1 si pas d'ancre ).
*/
*/
{
{
...
...
eeschema/class_hierarchy_sheet.cpp
View file @
66080848
...
@@ -236,7 +236,7 @@ void DrawSheetLabelStruct::Draw(WinEDA_DrawPanel * panel,wxDC * DC, const wxPoin
...
@@ -236,7 +236,7 @@ void DrawSheetLabelStruct::Draw(WinEDA_DrawPanel * panel,wxDC * DC, const wxPoin
int
side
,
txtcolor
;
int
side
,
txtcolor
;
int
posx
,
tposx
,
posy
,
size2
;
int
posx
,
tposx
,
posy
,
size2
;
wxSize
size
;
wxSize
size
;
int
NbSegm
,
coord
[
12
];
int
NbSegm
,
coord
[
20
];
int
LineWidth
=
g_DrawMinimunLineWidth
;
int
LineWidth
=
g_DrawMinimunLineWidth
;
if
(
Color
>=
0
)
txtcolor
=
Color
;
if
(
Color
>=
0
)
txtcolor
=
Color
;
...
...
include/base_struct.h
View file @
66080848
...
@@ -309,7 +309,7 @@ typedef enum {
...
@@ -309,7 +309,7 @@ typedef enum {
#define SKETCH 2
#define SKETCH 2
#define DEFAULT_SIZE_TEXT 60
/*
Hauteur (en 1/000" par defaut des textes
*/
#define DEFAULT_SIZE_TEXT 60
/*
default text height (in mils or 1/1000")
*/
/* classe de gestion des textes (labels, textes composants ..)
/* classe de gestion des textes (labels, textes composants ..)
* (Non utilisee seule) */
* (Non utilisee seule) */
...
...
pcbnew/block.cpp
View file @
66080848
...
@@ -428,12 +428,12 @@ int masque_layer;
...
@@ -428,12 +428,12 @@ int masque_layer;
/* Effacement des modules */
/* Effacement des modules */
if
(
Block_Include_Modules
)
if
(
Block_Include_Modules
)
{
{
MODULE
*
module
;
MODULE
*
module
;
Affiche_Message
(
_
(
"Delete Footprints"
)
)
;
Affiche_Message
(
_
(
"Delete Footprints"
)
)
;
module
=
m_Pcb
->
m_Modules
;
module
=
m_Pcb
->
m_Modules
;
for
(
;
module
!=
NULL
;
module
=
(
MODULE
*
)
NextS
)
for
(
;
module
!=
NULL
;
module
=
(
MODULE
*
)
NextS
)
{
{
NextS
=
module
->
Pnext
;
NextS
=
module
->
Pnext
;
if
(
IsModuleInBox
(
GetScreen
()
->
BlockLocate
,
module
)
==
NULL
)
continue
;
if
(
IsModuleInBox
(
GetScreen
()
->
BlockLocate
,
module
)
==
NULL
)
continue
;
/* le module est ici bon a etre efface */
/* le module est ici bon a etre efface */
...
@@ -441,8 +441,8 @@ int masque_layer;
...
@@ -441,8 +441,8 @@ int masque_layer;
module
->
Draw
(
DrawPanel
,
DC
,
wxPoint
(
0
,
0
),
GR_XOR
)
;
module
->
Draw
(
DrawPanel
,
DC
,
wxPoint
(
0
,
0
),
GR_XOR
)
;
DeleteStructure
(
module
);
DeleteStructure
(
module
);
m_Pcb
->
m_Status_Pcb
=
0
;
m_Pcb
->
m_Status_Pcb
=
0
;
}
}
}
}
/* Effacement des Pistes */
/* Effacement des Pistes */
if
(
Block_Include_Tracks
)
if
(
Block_Include_Tracks
)
...
@@ -535,6 +535,7 @@ int masque_layer;
...
@@ -535,6 +535,7 @@ int masque_layer;
/* Rafraichissement de l'ecran : */
/* Rafraichissement de l'ecran : */
RedrawActiveWindow
(
DC
,
TRUE
);
RedrawActiveWindow
(
DC
,
TRUE
);
if
(
g_Show_Ratsnest
)
Compile_Ratsnest
(
DC
,
TRUE
);
}
}
...
@@ -565,12 +566,13 @@ int Nx, Ny, centerX, centerY; /* centre de rotation de l'ensemble des elements
...
@@ -565,12 +566,13 @@ int Nx, Ny, centerX, centerY; /* centre de rotation de l'ensemble des elements
/* Rotation des modules */
/* Rotation des modules */
if
(
Block_Include_Modules
)
if
(
Block_Include_Modules
)
{
{
Affiche_Message
(
_
(
"Footprint rotation"
)
);
Affiche_Message
(
_
(
"Footprint rotation"
)
);
bool
Show_Ratsnest_tmp
=
g_Show_Ratsnest
;
g_Show_Ratsnest
=
false
;
int
Angle_Rot_Module
=
900
;
int
Angle_Rot_Module
=
900
;
module
=
m_Pcb
->
m_Modules
;
module
=
m_Pcb
->
m_Modules
;
for
(
;
module
!=
NULL
;
module
=
(
MODULE
*
)
module
->
Pnext
)
for
(
;
module
!=
NULL
;
module
=
(
MODULE
*
)
module
->
Pnext
)
{
{
if
(
IsModuleInBox
(
GetScreen
()
->
BlockLocate
,
module
)
==
NULL
)
continue
;
if
(
IsModuleInBox
(
GetScreen
()
->
BlockLocate
,
module
)
==
NULL
)
continue
;
/* le module est ici bon a etre modifie */
/* le module est ici bon a etre modifie */
m_Pcb
->
m_Status_Pcb
=
0
;
m_Pcb
->
m_Status_Pcb
=
0
;
...
@@ -587,10 +589,11 @@ int Nx, Ny, centerX, centerY; /* centre de rotation de l'ensemble des elements
...
@@ -587,10 +589,11 @@ int Nx, Ny, centerX, centerY; /* centre de rotation de l'ensemble des elements
/* Rotation du module autour de son ancre */
/* Rotation du module autour de son ancre */
Rotate_Module
(
DC
,
module
,
Angle_Rot_Module
,
TRUE
);
Rotate_Module
(
DC
,
module
,
Angle_Rot_Module
,
TRUE
);
}
}
/* regeneration des valeurs originelles */
/* regeneration des valeurs originelles */
GetScreen
()
->
m_Curseur
=
oldpos
;
GetScreen
()
->
m_Curseur
=
oldpos
;
}
g_Show_Ratsnest
=
Show_Ratsnest_tmp
;
}
/* Deplacement des Segments de piste */
/* Deplacement des Segments de piste */
if
(
Block_Include_Tracks
)
if
(
Block_Include_Tracks
)
...
@@ -722,6 +725,7 @@ int Nx, Ny, centerX, centerY; /* centre de rotation de l'ensemble des elements
...
@@ -722,6 +725,7 @@ int Nx, Ny, centerX, centerY; /* centre de rotation de l'ensemble des elements
}
}
}
}
RedrawActiveWindow
(
DC
,
TRUE
)
;
RedrawActiveWindow
(
DC
,
TRUE
)
;
if
(
g_Show_Ratsnest
)
Compile_Ratsnest
(
DC
,
TRUE
);
}
}
...
@@ -755,11 +759,12 @@ int Ny, centerY; /* position de l'axe d'inversion de l'ensemble des elements */
...
@@ -755,11 +759,12 @@ int Ny, centerY; /* position de l'axe d'inversion de l'ensemble des elements */
/* Inversion des modules */
/* Inversion des modules */
if
(
Block_Include_Modules
)
if
(
Block_Include_Modules
)
{
{
bool
Show_Ratsnest_tmp
=
g_Show_Ratsnest
;
g_Show_Ratsnest
=
false
;
Affiche_Message
(
_
(
"Footprint mirroring"
)
);
Affiche_Message
(
_
(
"Footprint mirroring"
)
);
module
=
m_Pcb
->
m_Modules
;
module
=
m_Pcb
->
m_Modules
;
for
(
;
module
!=
NULL
;
module
=
(
MODULE
*
)
module
->
Pnext
)
for
(
;
module
!=
NULL
;
module
=
(
MODULE
*
)
module
->
Pnext
)
{
{
if
(
IsModuleInBox
(
GetScreen
()
->
BlockLocate
,
module
)
==
NULL
)
continue
;
if
(
IsModuleInBox
(
GetScreen
()
->
BlockLocate
,
module
)
==
NULL
)
continue
;
/* le module est ici bon a etre efface */
/* le module est ici bon a etre efface */
m_Pcb
->
m_Status_Pcb
=
0
;
m_Pcb
->
m_Status_Pcb
=
0
;
...
@@ -778,8 +783,9 @@ int Ny, centerY; /* position de l'axe d'inversion de l'ensemble des elements */
...
@@ -778,8 +783,9 @@ int Ny, centerY; /* position de l'axe d'inversion de l'ensemble des elements */
/* regeneration des valeurs originelles */
/* regeneration des valeurs originelles */
GetScreen
()
->
m_Curseur
=
memo
;
GetScreen
()
->
m_Curseur
=
memo
;
}
}
}
g_Show_Ratsnest
=
Show_Ratsnest_tmp
;
}
/* Deplacement des Segments de piste */
/* Deplacement des Segments de piste */
if
(
Block_Include_Tracks
)
if
(
Block_Include_Tracks
)
...
@@ -927,6 +933,7 @@ int Ny, centerY; /* position de l'axe d'inversion de l'ensemble des elements */
...
@@ -927,6 +933,7 @@ int Ny, centerY; /* position de l'axe d'inversion de l'ensemble des elements */
}
}
}
}
RedrawActiveWindow
(
DC
,
TRUE
)
;
RedrawActiveWindow
(
DC
,
TRUE
)
;
if
(
g_Show_Ratsnest
)
Compile_Ratsnest
(
DC
,
TRUE
);
}
}
...
@@ -935,7 +942,7 @@ int Ny, centerY; /* position de l'axe d'inversion de l'ensemble des elements */
...
@@ -935,7 +942,7 @@ int Ny, centerY; /* position de l'axe d'inversion de l'ensemble des elements */
void
WinEDA_BasePcbFrame
::
Block_Move
(
wxDC
*
DC
)
void
WinEDA_BasePcbFrame
::
Block_Move
(
wxDC
*
DC
)
/************************************************/
/************************************************/
/*
/*
routine de deplacement des elements du block deja selectionne
Function to move items withing the selected block
*/
*/
{
{
MODULE
*
module
;
MODULE
*
module
;
...
@@ -956,13 +963,14 @@ wxPoint oldpos;
...
@@ -956,13 +963,14 @@ wxPoint oldpos;
/* Deplacement des modules */
/* Deplacement des modules */
if
(
Block_Include_Modules
)
if
(
Block_Include_Modules
)
{
{
bool
Show_Ratsnest_tmp
=
g_Show_Ratsnest
;
g_Show_Ratsnest
=
false
;
Affiche_Message
(
_
(
"Move footprints"
)
);
Affiche_Message
(
_
(
"Move footprints"
)
);
module
=
m_Pcb
->
m_Modules
;
module
=
m_Pcb
->
m_Modules
;
oldpos
=
GetScreen
()
->
m_Curseur
;
oldpos
=
GetScreen
()
->
m_Curseur
;
for
(
;
module
!=
NULL
;
module
=
(
MODULE
*
)
module
->
Pnext
)
for
(
;
module
!=
NULL
;
module
=
(
MODULE
*
)
module
->
Pnext
)
{
{
if
(
IsModuleInBox
(
GetScreen
()
->
BlockLocate
,
module
)
==
NULL
)
continue
;
if
(
IsModuleInBox
(
GetScreen
()
->
BlockLocate
,
module
)
==
NULL
)
continue
;
/* le module est ici bon a etre deplace */
/* le module est ici bon a etre deplace */
m_Pcb
->
m_Status_Pcb
=
0
;
m_Pcb
->
m_Status_Pcb
=
0
;
...
@@ -974,9 +982,10 @@ wxPoint oldpos;
...
@@ -974,9 +982,10 @@ wxPoint oldpos;
GetScreen
()
->
m_Curseur
.
x
=
module
->
m_Pos
.
x
+
GetScreen
()
->
BlockLocate
.
m_MoveVector
.
x
;
GetScreen
()
->
m_Curseur
.
x
=
module
->
m_Pos
.
x
+
GetScreen
()
->
BlockLocate
.
m_MoveVector
.
x
;
GetScreen
()
->
m_Curseur
.
y
=
module
->
m_Pos
.
y
+
GetScreen
()
->
BlockLocate
.
m_MoveVector
.
y
;
GetScreen
()
->
m_Curseur
.
y
=
module
->
m_Pos
.
y
+
GetScreen
()
->
BlockLocate
.
m_MoveVector
.
y
;
Place_Module
(
module
,
DC
);
Place_Module
(
module
,
DC
);
}
GetScreen
()
->
m_Curseur
=
oldpos
;
}
}
GetScreen
()
->
m_Curseur
=
oldpos
;
g_Show_Ratsnest
=
Show_Ratsnest_tmp
;
}
/* calcul du vecteur de deplacement pour les deplacements suivants */
/* calcul du vecteur de deplacement pour les deplacements suivants */
deltaX
=
GetScreen
()
->
BlockLocate
.
m_MoveVector
.
x
;
deltaX
=
GetScreen
()
->
BlockLocate
.
m_MoveVector
.
x
;
...
@@ -984,24 +993,24 @@ wxPoint oldpos;
...
@@ -984,24 +993,24 @@ wxPoint oldpos;
/* Deplacement des Segments de piste */
/* Deplacement des Segments de piste */
if
(
Block_Include_Tracks
)
if
(
Block_Include_Tracks
)
{
{
TRACK
*
track
;
TRACK
*
track
;
Affiche_Message
(
_
(
"Move tracks"
)
);
Affiche_Message
(
_
(
"Move tracks"
)
);
track
=
m_Pcb
->
m_Track
;
track
=
m_Pcb
->
m_Track
;
while
(
track
)
while
(
track
)
{
{
if
(
IsSegmentInBox
(
GetScreen
()
->
BlockLocate
,
track
)
)
if
(
IsSegmentInBox
(
GetScreen
()
->
BlockLocate
,
track
)
)
{
/* la piste est ici bonne a etre deplacee */
{
/* la piste est ici bonne a etre deplacee */
m_Pcb
->
m_Status_Pcb
=
0
;
m_Pcb
->
m_Status_Pcb
=
0
;
track
->
Draw
(
DrawPanel
,
DC
,
GR_XOR
)
;
// effacement
track
->
Draw
(
DrawPanel
,
DC
,
GR_XOR
)
;
// effacement
track
->
m_Start
.
x
+=
deltaX
;
track
->
m_Start
.
y
+=
deltaY
;
track
->
m_Start
.
x
+=
deltaX
;
track
->
m_Start
.
y
+=
deltaY
;
track
->
m_End
.
x
+=
deltaX
;
track
->
m_End
.
y
+=
deltaY
;
track
->
m_End
.
x
+=
deltaX
;
track
->
m_End
.
y
+=
deltaY
;
track
->
Draw
(
DrawPanel
,
DC
,
GR_OR
)
;
// reaffichage
track
->
Draw
(
DrawPanel
,
DC
,
GR_OR
)
;
// reaffichage
}
track
=
(
TRACK
*
)
track
->
Pnext
;
}
}
track
=
(
TRACK
*
)
track
->
Pnext
;
}
}
}
/* Deplacement des Segments de Zone */
/* Deplacement des Segments de Zone */
if
(
Block_Include_Zones
)
if
(
Block_Include_Zones
)
...
@@ -1100,6 +1109,7 @@ wxPoint oldpos;
...
@@ -1100,6 +1109,7 @@ wxPoint oldpos;
}
}
}
}
DrawPanel
->
Refresh
(
TRUE
);;
DrawPanel
->
Refresh
(
TRUE
);;
if
(
g_Show_Ratsnest
)
Compile_Ratsnest
(
DC
,
TRUE
);
}
}
...
@@ -1129,6 +1139,7 @@ wxPoint oldpos;
...
@@ -1129,6 +1139,7 @@ wxPoint oldpos;
/* Module copy */
/* Module copy */
if
(
Block_Include_Modules
)
if
(
Block_Include_Modules
)
{
{
bool
Show_Ratsnest_tmp
=
g_Show_Ratsnest
;
g_Show_Ratsnest
=
false
;
Affiche_Message
(
_
(
"Module copy"
)
);
Affiche_Message
(
_
(
"Module copy"
)
);
module
=
m_Pcb
->
m_Modules
;
module
=
m_Pcb
->
m_Modules
;
oldpos
=
GetScreen
()
->
m_Curseur
;
oldpos
=
GetScreen
()
->
m_Curseur
;
...
@@ -1154,6 +1165,7 @@ wxPoint oldpos;
...
@@ -1154,6 +1165,7 @@ wxPoint oldpos;
Place_Module
(
new_module
,
DC
);
Place_Module
(
new_module
,
DC
);
}
}
GetScreen
()
->
m_Curseur
=
oldpos
;
GetScreen
()
->
m_Curseur
=
oldpos
;
g_Show_Ratsnest
=
Show_Ratsnest_tmp
;
}
}
/* calcul du vecteur de deplacement pour les deplacements suivants */
/* calcul du vecteur de deplacement pour les deplacements suivants */
...
...
pcbnew/connect.cpp
View file @
66080848
...
@@ -43,35 +43,35 @@ D_PAD * pt_pad;
...
@@ -43,35 +43,35 @@ D_PAD * pt_pad;
if
(
old_val
==
new_val
)
return
(
0
)
;
if
(
old_val
==
new_val
)
return
(
0
)
;
if
(
old_val
<
new_val
)
EXCHG
(
old_val
,
new_val
)
;
if
(
(
old_val
>
0
)
&&
(
old_val
<
new_val
)
)
EXCHG
(
old_val
,
new_val
)
;
pt_conn
=
pt_start_conn
;
pt_conn
=
pt_start_conn
;
for
(
;
pt_conn
!=
NULL
;
pt_conn
=
(
TRACK
*
)
pt_conn
->
Pnext
)
for
(
;
pt_conn
!=
NULL
;
pt_conn
=
(
TRACK
*
)
pt_conn
->
Pnext
)
{
{
if
(
pt_conn
->
m_Sous_Netcode
!=
old_val
)
if
(
pt_conn
->
m_Sous_Netcode
!=
old_val
)
{
{
if
(
pt_conn
==
pt_end_conn
)
break
;
if
(
pt_conn
==
pt_end_conn
)
break
;
continue
;
continue
;
}
}
nb_change
++
;
nb_change
++
;
pt_conn
->
m_Sous_Netcode
=
new_val
;
pt_conn
->
m_Sous_Netcode
=
new_val
;
if
(
pt_conn
->
start
&&
(
pt_conn
->
start
->
m_StructType
==
TYPEPAD
)
)
if
(
pt_conn
->
start
&&
(
pt_conn
->
start
->
m_StructType
==
TYPEPAD
)
)
{
{
pt_pad
=
(
D_PAD
*
)(
pt_conn
->
start
);
pt_pad
=
(
D_PAD
*
)(
pt_conn
->
start
);
if
(
pt_pad
->
m_physical_connexion
==
old_val
)
if
(
pt_pad
->
m_physical_connexion
==
old_val
)
pt_pad
->
m_physical_connexion
=
pt_conn
->
m_Sous_Netcode
;
pt_pad
->
m_physical_connexion
=
pt_conn
->
m_Sous_Netcode
;
}
}
if
(
pt_conn
->
end
&&
(
pt_conn
->
end
->
m_StructType
==
TYPEPAD
)
)
if
(
pt_conn
->
end
&&
(
pt_conn
->
end
->
m_StructType
==
TYPEPAD
)
)
{
{
pt_pad
=
(
D_PAD
*
)(
pt_conn
->
end
);
pt_pad
=
(
D_PAD
*
)(
pt_conn
->
end
);
if
(
pt_pad
->
m_physical_connexion
==
old_val
)
if
(
pt_pad
->
m_physical_connexion
==
old_val
)
pt_pad
->
m_physical_connexion
=
pt_conn
->
m_Sous_Netcode
;
pt_pad
->
m_physical_connexion
=
pt_conn
->
m_Sous_Netcode
;
}
if
(
pt_conn
==
pt_end_conn
)
break
;
}
}
if
(
pt_conn
==
pt_end_conn
)
break
;
}
return
(
nb_change
);
return
(
nb_change
);
}
}
...
@@ -551,7 +551,7 @@ char new_passe_request = 1, flag;
...
@@ -551,7 +551,7 @@ char new_passe_request = 1, flag;
LISTE_PAD
*
pt_mem
;
LISTE_PAD
*
pt_mem
;
EDA_BaseStruct
*
PtStruct
;
EDA_BaseStruct
*
PtStruct
;
int
masque_layer
;
int
masque_layer
;
wxString
msg
;
if
(
m_Pcb
->
m_NbPads
==
0
)
return
;
if
(
m_Pcb
->
m_NbPads
==
0
)
return
;
a_color
=
CYAN
;
a_color
=
CYAN
;
...
@@ -573,10 +573,10 @@ int masque_layer;
...
@@ -573,10 +573,10 @@ int masque_layer;
/* Raz des flags particuliers des segments de piste */
/* Raz des flags particuliers des segments de piste */
pt_piste
=
m_Pcb
->
m_Track
;
pt_piste
=
m_Pcb
->
m_Track
;
for
(
;
pt_piste
!=
NULL
;
pt_piste
=
(
TRACK
*
)
pt_piste
->
Pnext
)
for
(
;
pt_piste
!=
NULL
;
pt_piste
=
(
TRACK
*
)
pt_piste
->
Pnext
)
{
{
pt_piste
->
SetState
(
BUSY
|
EDIT
|
BEGIN_ONPAD
|
END_ONPAD
,
OFF
);
pt_piste
->
SetState
(
BUSY
|
EDIT
|
BEGIN_ONPAD
|
END_ONPAD
,
OFF
);
pt_piste
->
m_NetCode
=
0
;
pt_piste
->
m_NetCode
=
0
;
}
}
pt_piste
=
m_Pcb
->
m_Track
;
pt_piste
=
m_Pcb
->
m_Track
;
for
(
;
pt_piste
!=
NULL
;
pt_piste
=
(
TRACK
*
)
pt_piste
->
Pnext
)
for
(
;
pt_piste
!=
NULL
;
pt_piste
=
(
TRACK
*
)
pt_piste
->
Pnext
)
...
@@ -615,59 +615,84 @@ int masque_layer;
...
@@ -615,59 +615,84 @@ int masque_layer;
if
(
affiche
)
if
(
affiche
)
Affiche_1_Parametre
(
this
,
POS_AFF_CHREF
,
wxEmptyString
,
wxT
(
"Conn Segm"
),
a_color
);
Affiche_1_Parametre
(
this
,
POS_AFF_CHREF
,
wxEmptyString
,
wxT
(
"Conn Segm"
),
a_color
);
for
(
pt_piste
=
m_Pcb
->
m_Track
;
pt_piste
!=
NULL
;
pt_piste
=
(
TRACK
*
)
pt_piste
->
Pnext
)
for
(
pt_piste
=
m_Pcb
->
m_Track
;
pt_piste
!=
NULL
;
pt_piste
=
pt_piste
->
Next
()
)
{
{
if
(
pt_piste
->
start
==
NULL
)
if
(
pt_piste
->
start
==
NULL
)
{
{
pt_piste
->
start
=
Locate_Piste_Connectee
(
pt_piste
,
pt_piste
->
start
=
Locate_Piste_Connectee
(
pt_piste
,
m_Pcb
->
m_Track
,
NULL
,
START
);
m_Pcb
->
m_Track
,
NULL
,
START
);
}
}
if
(
pt_piste
->
end
==
NULL
)
if
(
pt_piste
->
end
==
NULL
)
{
{
pt_piste
->
end
=
Locate_Piste_Connectee
(
pt_piste
,
pt_piste
->
end
=
Locate_Piste_Connectee
(
pt_piste
,
m_Pcb
->
m_Track
,
NULL
,
END
);
m_Pcb
->
m_Track
,
NULL
,
END
);
}
}
}
}
////////////////////////////////
////////////////////////////////
// Reattribution des net_code //
// Reattribution des net_code //
////////////////////////////////
////////////////////////////////
a_color
=
YELLOW
;
a_color
=
YELLOW
;
if
(
affiche
)
Affiche_1_Parametre
(
this
,
POS_AFF_CHREF
,
wxEmptyString
,
wxT
(
"Net->Segm"
),
a_color
);
while
(
new_passe_request
)
while
(
new_passe_request
)
{
{
bool
reset_flag
=
FALSE
;
new_passe_request
=
0
;
new_passe_request
=
0
;
if
(
affiche
)
{
msg
.
Printf
(
wxT
(
"Net->Segm pass %d "
),
new_passe_request
+
1
);
Affiche_1_Parametre
(
this
,
POS_AFF_CHREF
,
wxEmptyString
,
msg
,
a_color
);
}
/* look for vias which could be connect many tracks */
for
(
TRACK
*
via
=
m_Pcb
->
m_Track
;
via
!=
NULL
;
via
=
via
->
Next
()
)
{
if
(
via
->
m_StructType
!=
TYPEVIA
)
continue
;
if
(
via
->
m_NetCode
>
0
)
continue
;
// Netcode already known
// Lock for a connection to a track with a known netcode
pt_next
=
m_Pcb
->
m_Track
;
while
(
(
pt_next
=
Locate_Piste_Connectee
(
via
,
pt_next
,
NULL
,
START
))
!=
NULL
)
{
if
(
pt_next
->
m_NetCode
)
{
via
->
m_NetCode
=
pt_next
->
m_NetCode
;
break
;
}
pt_next
->
SetState
(
BUSY
,
ON
);
reset_flag
=
TRUE
;
}
}
for
(
pt_piste
=
m_Pcb
->
m_Track
;
pt_piste
!=
NULL
;
if
(
reset_flag
)
for
(
pt_piste
=
m_Pcb
->
m_Track
;
pt_piste
!=
NULL
;
pt_piste
=
pt_piste
->
Next
())
pt_piste
=
(
TRACK
*
)
pt_piste
->
Pnext
)
{
{
pt_piste
->
SetState
(
BUSY
,
OFF
);
}
for
(
pt_piste
=
m_Pcb
->
m_Track
;
pt_piste
!=
NULL
;
pt_piste
=
pt_piste
->
Next
())
{
/* Traitement du point de debut */
/* Traitement du point de debut */
PtStruct
=
(
EDA_BaseStruct
*
)
pt_piste
->
start
;
PtStruct
=
(
EDA_BaseStruct
*
)
pt_piste
->
start
;
if
(
PtStruct
&&
(
PtStruct
->
m_StructType
!=
TYPEPAD
)
)
if
(
PtStruct
&&
(
PtStruct
->
m_StructType
!=
TYPEPAD
)
)
{
// start sur piste
{
// Begin on an other track segment
pt_next
=
(
TRACK
*
)
PtStruct
;
pt_next
=
(
TRACK
*
)
PtStruct
;
if
(
pt_piste
->
m_NetCode
)
if
(
pt_piste
->
m_NetCode
)
{
{
if
(
pt_next
->
m_NetCode
==
0
)
if
(
pt_next
->
m_NetCode
==
0
)
{
{
new_passe_request
=
1
;
new_passe_request
=
1
;
pt_next
->
m_NetCode
=
pt_piste
->
m_NetCode
;
pt_next
->
m_NetCode
=
pt_piste
->
m_NetCode
;
}
}
}
}
else
else
{
{
if
(
pt_next
->
m_NetCode
!=
0
)
if
(
pt_next
->
m_NetCode
!=
0
)
{
{
pt_piste
->
m_NetCode
=
pt_next
->
m_NetCode
;
pt_piste
->
m_NetCode
=
pt_next
->
m_NetCode
;
new_passe_request
=
1
;
new_passe_request
=
1
;
}
}
}
}
}
}
/* Localisation du point de fin */
/* Localisation du point de fin */
PtStruct
=
pt_piste
->
end
;
PtStruct
=
pt_piste
->
end
;
...
@@ -694,9 +719,8 @@ int masque_layer;
...
@@ -694,9 +719,8 @@ int masque_layer;
}
}
}
}
if
(
affiche
)
Affiche_1_Parametre
(
this
,
-
1
,
wxEmptyString
,
wxT
(
"Reorder "
),
a_color
);
/* Reclassemment des pistes par numero de net: */
/* Reclassemment des pistes par numero de net: */
if
(
affiche
)
Affiche_1_Parametre
(
this
,
-
1
,
wxEmptyString
,
wxT
(
"Reorder "
),
a_color
);
RebuildTrackChain
(
m_Pcb
);
RebuildTrackChain
(
m_Pcb
);
if
(
affiche
)
Affiche_1_Parametre
(
this
,
-
1
,
wxEmptyString
,
wxT
(
" "
),
a_color
);
if
(
affiche
)
Affiche_1_Parametre
(
this
,
-
1
,
wxEmptyString
,
wxT
(
" "
),
a_color
);
...
...
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