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
bcd7a739
Commit
bcd7a739
authored
Nov 02, 2007
by
CHARRAS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gerbview enhancement: polygons can be shown in sketch mode. Some translations
parent
b30b24c5
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
384 additions
and
331 deletions
+384
-331
opt_show_polygon.xpm
bitmaps/opt_show_polygon.xpm
+27
-0
dcode.cpp
gerbview/dcode.cpp
+2
-2
gerberframe.cpp
gerbview/gerberframe.cpp
+6
-3
gerbview.h
gerbview/gerbview.h
+133
-132
options.cpp
gerbview/options.cpp
+49
-39
readgerb.cpp
gerbview/readgerb.cpp
+41
-35
reglage.cpp
gerbview/reglage.cpp
+97
-110
tool_gerber.cpp
gerbview/tool_gerber.cpp
+16
-4
tracepcb.cpp
gerbview/tracepcb.cpp
+11
-5
bitmaps.h
include/bitmaps.h
+1
-0
id.h
include/id.h
+1
-1
No files found.
bitmaps/opt_show_polygon.xpm
0 → 100644
View file @
bcd7a739
/* XPM */
#ifndef XPMMAIN
extern const char *opt_show_polygon_xpm[];
#else
const char * opt_show_polygon_xpm[] = {
"16 16 3 1",
" c None",
"! c black",
"# c #D90000",
" ",
" ####### ",
" # # ",
" # # ",
" # # ",
" # # ",
" # # ",
" # # ",
"# # ",
"# # ",
" # # ",
" # # ",
" # # ",
" # # ",
" # # ",
" ###### "};
#endif
gerbview/dcode.cpp
View file @
bcd7a739
...
...
@@ -233,7 +233,7 @@ char* ptcar;
int
dimH
,
dimV
,
drill
,
type_outil
,
dummy
;
float
fdimH
,
fdimV
,
fdrill
;
char
c_type_outil
[
256
];
char
Line
[
1024
];
char
Line
[
2000
];
wxString
msg
;
D_CODE
*
pt_Dcode
;
FILE
*
dest
;
...
...
@@ -266,7 +266,7 @@ D_CODE ** ListeDCode;
ListeDCode
=
g_GERBER_Descr_List
[
layer
]
->
m_Aperture_List
;
while
(
fgets
(
Line
,
255
,
dest
)
!=
NULL
)
while
(
fgets
(
Line
,
sizeof
(
Line
)
-
1
,
dest
)
!=
NULL
)
{
if
(
*
Line
==
';'
)
continue
;
/* Commentaire */
if
(
strlen
(
Line
)
<
10
)
continue
;
/* Probablemant ligne vide */
...
...
gerbview/gerberframe.cpp
View file @
bcd7a739
...
...
@@ -198,9 +198,9 @@ PCB_SCREEN * screen;
/*******************************************/
void
WinEDA_GerberFrame
::
SetToolbars
()
/*******************************************/
/*
Active ou desactive les tools du toolbar horizontal, en fonction des commandes
en cour
s
*/
/*
* Function SetToolbars()
* Set the tools state for the toolbars, accordint to display option
s
*/
{
int
layer
=
GetScreen
()
->
m_Active_Layer
;
GERBER_Descr
*
Gerber_layer_descr
=
g_GERBER_Descr_List
[
layer
];
...
...
@@ -277,6 +277,9 @@ GERBER_Descr * Gerber_layer_descr = g_GERBER_Descr_List[layer];
m_OptionsToolBar
->
ToggleTool
(
ID_TB_OPTIONS_SHOW_TRACKS_SKETCH
,
!
m_DisplayPcbTrackFill
);
m_OptionsToolBar
->
ToggleTool
(
ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH
,
g_DisplayPolygonsModeSketch
==
0
?
0
:
1
);
m_OptionsToolBar
->
ToggleTool
(
ID_TB_OPTIONS_SHOW_DCODES
,
DisplayOpt
.
DisplayPadNum
);
}
...
...
gerbview/gerbview.h
View file @
bcd7a739
/*******************************************************/
/* Menu General de Trace (PLOT): Fichier inclus PLOT.H */
/*******************************************************/
/*******************************************************/
/* Menu General de Trace (PLOT): Fichier inclus PLOT.H */
/*******************************************************/
#ifndef GERBVIEW_H
#define GERBVIEW_H
...
...
@@ -19,7 +19,7 @@ typedef enum {
FORMAT_HPGL
,
FORMAT_GERBER
,
FORMAT_POST
}
PlotFormat
;
}
PlotFormat
;
//eda_global wxString g_Plot_FileName;
eda_global
wxString
g_PhotoFilenameExt
;
...
...
@@ -34,14 +34,12 @@ eda_global int g_Default_GERBER_Format;
eda_global
int
g_Plot_Spot_Mini
;
/* Diametre mini de l'ouverture pour trace GERBER */
/*************************************/
/* Constantes utiles en trace GERBER */
/*************************************/
/*************************************/
/* Constantes utiles en trace GERBER */
/*************************************/
/* codes de type de forme d'outils */
enum
Gerb_StandardShape
{
enum
Gerb_StandardShape
{
GERB_CIRCLE
=
1
,
GERB_RECT
,
GERB_LINE
,
...
...
@@ -50,8 +48,7 @@ enum Gerb_StandardShape
};
// Interpolation type
enum
Gerb_Interpolation
{
enum
Gerb_Interpolation
{
GERB_INTERPOL_LINEAR_1X
=
0
,
GERB_INTERPOL_LINEAR_10X
,
GERB_INTERPOL_LINEAR_01X
,
...
...
@@ -62,8 +59,7 @@ enum Gerb_Interpolation
// Command Type (GCodes)
enum
Gerb_GCommand
{
enum
Gerb_GCommand
{
GC_MOVE
=
0
,
GC_LINEAR_INTERPOL_1X
=
1
,
GC_CIRCLE_NEG_INTERPOL
=
2
,
...
...
@@ -87,8 +83,7 @@ enum Gerb_GCommand
#define MAX_TOOLS 2048
#define FIRST_DCODE 10
enum
Gerb_Analyse_Cmd
{
enum
Gerb_Analyse_Cmd
{
CMD_IDLE
=
0
,
END_BLOCK
,
ENTER_RS274X_CMD
...
...
@@ -101,9 +96,9 @@ class D_CODE;
class
GERBER_Descr
{
public
:
GERBER_Descr
*
m_Parent
;
// Pointeur sur la racine pour layers imbriques
GERBER_Descr
*
m_Pback
;
// Pointeur de chainage arriere pour layers imbriques
GERBER_Descr
*
m_Pnext
;
// Pointeur de chainage avant pour layers imbriques
GERBER_Descr
*
m_Parent
;
// Pointeur sur la racine pour layers imbriques
GERBER_Descr
*
m_Pback
;
// Pointeur de chainage arriere pour layers imbriques
GERBER_Descr
*
m_Pnext
;
// Pointeur de chainage avant pour layers imbriques
wxString
m_FileName
;
// Full File Name for this layer
wxString
m_Name
;
// Layer name
int
m_Layer
;
// Layer Number
...
...
@@ -128,10 +123,10 @@ public:
wxPoint
m_CurrentPos
;
// current specified coord for plot
wxPoint
m_PreviousPos
;
// old current specified coord for plot
wxPoint
m_IJPos
;
// IJ coord (for arcs & circles )
D_CODE
*
m_Aperture_List
[
MAX_TOOLS
+
FIRST_DCODE
+
1
];
// Dcode (Aperture) List for this layer
D_CODE
*
m_Aperture_List
[
MAX_TOOLS
+
FIRST_DCODE
+
1
];
// Dcode (Aperture) List for this layer
FILE
*
m_Current_File
;
// Current file to read
FILE
*
m_FilesList
[
12
];
// Files list
FILE
*
m_Current_File
;
// Current file to read
FILE
*
m_FilesList
[
12
];
// Files list
int
m_FilesPtr
;
// Stack pointer for files list
int
m_Selected_Tool
;
// Pour editions: Tool (Dcode) selectionn
...
...
@@ -142,7 +137,7 @@ public:
int
m_PolygonFillModeState
;
// In polygon mode: 0 = first segm, 1 = next segm
public
:
GERBER_Descr
(
int
layer
);
GERBER_Descr
(
int
layer
);
~
GERBER_Descr
();
void
Clear_GERBER_Descr
();
int
ReturnUsedDcodeNumber
();
...
...
@@ -150,16 +145,16 @@ public:
void
InitToolTable
();
// Routines utilises en lecture de ficher gerber
wxPoint
ReadXYCoord
(
char
*
&
Text
);
wxPoint
ReadIJCoord
(
char
*
&
Text
);
int
ReturnGCodeNumber
(
char
*
&
Text
);
int
ReturnDCodeNumber
(
char
*
&
Text
);
bool
Execute_G_Command
(
char
*
&
text
,
int
G_commande
);
bool
Execute_DCODE_Command
(
WinEDA_GerberFrame
*
frame
,
wxDC
*
DC
,
char
*
&
text
,
int
D_commande
);
bool
ReadRS274XCommand
(
WinEDA_GerberFrame
*
frame
,
wxDC
*
DC
,
char
*
buff
,
char
*
&
text
);
bool
ExecuteRS274XCommand
(
int
command
,
char
*
buff
,
char
*
&
text
);
wxPoint
ReadXYCoord
(
char
*&
Text
);
wxPoint
ReadIJCoord
(
char
*&
Text
);
int
ReturnGCodeNumber
(
char
*&
Text
);
int
ReturnDCodeNumber
(
char
*&
Text
);
bool
Execute_G_Command
(
char
*&
text
,
int
G_commande
);
bool
Execute_DCODE_Command
(
WinEDA_GerberFrame
*
frame
,
wxDC
*
DC
,
char
*&
text
,
int
D_commande
);
bool
ReadRS274XCommand
(
WinEDA_GerberFrame
*
frame
,
wxDC
*
DC
,
char
*
buff
,
char
*&
text
);
bool
ExecuteRS274XCommand
(
int
command
,
char
*
buff
,
char
*&
text
);
};
...
...
@@ -169,31 +164,37 @@ class D_CODE
{
public
:
wxSize
m_Size
;
/* Dimensions horiz et Vert */
int
m_Shape
;
/* shape ( Line, rect , circulaire , ovale .. ) */
int
m_Shape
;
/* shape ( Line, rect , circulaire , ovale .. ) */
int
m_Num_Dcode
;
/* numero de code ( >= 10 ) */
wxSize
m_Drill
;
/* dimension du trou central (s'il existe) */
wxSize
m_Drill
;
/* dimension du trou central (s'il existe) */
int
m_DrillShape
;
/* forme du trou central ( rond = 1, rect = 2 ) */
bool
m_InUse
;
/* FALSE si non utilis */
bool
m_Defined
;
/* FALSE si non defini */
wxString
m_SpecialDescr
;
public
:
D_CODE
(
int
num_dcode
);
D_CODE
(
int
num_dcode
);
~
D_CODE
();
void
Clear_D_CODE_Data
();
};
eda_global
const
wxChar
*
g_GERBER_Tool_Type
[
6
]
eda_global
const
wxChar
*
g_GERBER_Tool_Type
[
6
]
#ifdef MAIN
=
{
wxT
(
"????"
),
wxT
(
"Rond"
),
wxT
(
"Rect"
),
wxT
(
"Line"
),
wxT
(
"Oval"
),
wxT
(
"Macro"
)
}
=
{
wxT
(
"????"
),
wxT
(
"Rond"
),
wxT
(
"Rect"
),
wxT
(
"Line"
),
wxT
(
"Oval"
),
wxT
(
"Macro"
)
}
#endif
;
eda_global
GERBER_Descr
*
g_GERBER_Descr_List
[
32
];
eda_global
GERBER_Descr
*
g_GERBER_Descr_List
[
32
];
eda_global
int
g_DisplayPolygonsModeSketch
;
/* How to show filled polygons :
* 0 = filled
* 1 = Sketch mode
*/
#include "pcbnew.h"
#endif // ifndef GERBVIEW_H
gerbview/options.cpp
View file @
bcd7a739
...
...
@@ -2,10 +2,10 @@
/* GERBVIEW - Gestion des Options et Reglages */
/********************************************/
/* Fi
chier
options.cpp */
/* Fi
le
options.cpp */
/*
*
Affichage et modifications des parametres de travail
Gerbview
*
Set the display options for
Gerbview
*/
...
...
@@ -20,45 +20,42 @@
#include "protos.h"
#include <wx/spinctrl.h>
/* Fonctions locales */
/* variables locales */
/*****************************************************************/
void
WinEDA_GerberFrame
::
OnSelectOptionToolbar
(
wxCommandEvent
&
event
)
/*****************************************************************/
/** Function OnSelectOptionToolbar
* called to validate current choices
*/
{
int
id
=
event
.
GetId
();
wxClientDC
dc
(
DrawPanel
);
DrawPanel
->
PrepareGraphicContext
(
&
dc
);
switch
(
id
)
{
case
ID_TB_OPTIONS_SHOW_GRID
:
m_Draw_Grid
=
g_ShowGrid
=
m_OptionsToolBar
->
GetToolState
(
id
);
DrawPanel
->
Re
Draw
(
&
dc
,
TRUE
);
DrawPanel
->
Re
fresh
(
TRUE
);
break
;
case
ID_TB_OPTIONS_SELECT_UNIT_MM
:
g_UnitMetric
=
MILLIMETRE
;
Affiche_Status_Box
();
/* Reaffichage des coord curseur */
Affiche_Status_Box
();
break
;
case
ID_TB_OPTIONS_SELECT_UNIT_INCH
:
g_UnitMetric
=
INCHES
;
Affiche_Status_Box
();
/* Reaffichage des coord curseur */
Affiche_Status_Box
();
break
;
case
ID_TB_OPTIONS_SHOW_POLAR_COORD
:
Affiche_Message
(
wxEmptyString
);
DisplayOpt
.
DisplayPolarCood
=
m_OptionsToolBar
->
GetToolState
(
id
);
Affiche_Status_Box
();
/* Reaffichage des coord curseur */
Affiche_Status_Box
();
break
;
case
ID_TB_OPTIONS_SELECT_CURSOR
:
DrawPanel
->
CursorOff
(
&
dc
);
g_CursorShape
=
m_OptionsToolBar
->
GetToolState
(
id
);
DrawPanel
->
CursorOn
(
&
dc
);
DrawPanel
->
Refresh
(
TRUE
);
break
;
case
ID_TB_OPTIONS_SHOW_PADS_SKETCH
:
...
...
@@ -72,7 +69,7 @@ wxClientDC dc(DrawPanel);
m_DisplayPadFill
=
TRUE
;
DisplayOpt
.
DisplayPadFill
=
TRUE
;
}
DrawPanel
->
Re
Draw
(
&
dc
,
TRUE
);
DrawPanel
->
Re
fresh
(
TRUE
);
break
;
case
ID_TB_OPTIONS_SHOW_TRACKS_SKETCH
:
...
...
@@ -86,12 +83,19 @@ wxClientDC dc(DrawPanel);
m_DisplayPcbTrackFill
=
TRUE
;
DisplayOpt
.
DisplayPcbTrackFill
=
TRUE
;
}
DrawPanel
->
ReDraw
(
&
dc
,
TRUE
);
DrawPanel
->
Refresh
(
TRUE
);
break
;
case
ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH
:
if
(
m_OptionsToolBar
->
GetToolState
(
id
)
)
// Polygons filled asked
g_DisplayPolygonsModeSketch
=
0
;
else
g_DisplayPolygonsModeSketch
=
1
;
DrawPanel
->
Refresh
(
TRUE
);
break
;
case
ID_TB_OPTIONS_SHOW_DCODES
:
DisplayOpt
.
DisplayPadNum
=
m_OptionsToolBar
->
GetToolState
(
id
);
DrawPanel
->
Re
Draw
(
&
dc
,
TRUE
);
DrawPanel
->
Re
fresh
(
TRUE
);
break
;
default
:
...
...
@@ -103,11 +107,9 @@ wxClientDC dc(DrawPanel);
}
/*************************************************/
/* classe derivee pour la frame de Configuration */
/*************************************************/
/******************************************************/
class
WinEDA_GerberGeneralOptionsFrame
:
public
wxDialog
/******************************************************/
{
private
:
...
...
@@ -129,7 +131,7 @@ private:
DECLARE_EVENT_TABLE
()
};
/*
Construction de la table des evenements pou
r WinEDA_GerberGeneralOptionsFrame */
/*
Events table fo
r WinEDA_GerberGeneralOptionsFrame */
BEGIN_EVENT_TABLE
(
WinEDA_GerberGeneralOptionsFrame
,
wxDialog
)
EVT_BUTTON
(
wxID_OK
,
WinEDA_GerberGeneralOptionsFrame
::
OnOkClick
)
EVT_BUTTON
(
wxID_CANCEL
,
WinEDA_GerberGeneralOptionsFrame
::
OnCancelClick
)
...
...
@@ -138,15 +140,15 @@ END_EVENT_TABLE()
/*************************************************/
/* Constructeur de WinEDA_GerberGeneralOptionsFrame */
/************************************************/
/**********************************************************************************************/
WinEDA_GerberGeneralOptionsFrame
::
WinEDA_GerberGeneralOptionsFrame
(
WinEDA_BasePcbFrame
*
parent
,
const
wxPoint
&
framepos
)
:
wxDialog
(
parent
,
-
1
,
_
(
"Gerbview Options"
),
framepos
,
wxSize
(
300
,
240
),
wxDEFAULT_DIALOG_STYLE
|
wxFRAME_FLOAT_ON_PARENT
)
/**********************************************************************************************/
/** WinEDA_GerberGeneralOptionsFrame Constructor
*/
{
m_Parent
=
parent
;
SetFont
(
*
g_DialogFont
);
...
...
@@ -168,7 +170,7 @@ WinEDA_GerberGeneralOptionsFrame::WinEDA_GerberGeneralOptionsFrame(WinEDA_BasePc
Button
->
SetForegroundColour
(
*
wxBLUE
);
RightBoxSizer
->
Add
(
Button
,
0
,
wxGROW
|
wxALL
,
5
);
/* Display
Selection affichage des coordonnes polaires
*/
/* Display
/ not display polar coordinates:
*/
wxString
list_coord
[
2
]
=
{
_
(
"No Display"
),
_
(
"Display"
)
};
...
...
@@ -178,7 +180,7 @@ wxString list_coord[2] =
m_PolarDisplay
->
SetSelection
(
DisplayOpt
.
DisplayPolarCood
?
1
:
0
);
LeftBoxSizer
->
Add
(
m_PolarDisplay
,
0
,
wxGROW
|
wxALL
,
5
);
/* Selection
choix des units d'affichage
*/
/* Selection
of units
*/
wxString
list_units
[
2
]
=
{
_
(
"Inches"
),
_
(
"millimeters"
)
};
...
...
@@ -187,7 +189,7 @@ wxString list_units[2] = {
m_BoxUnits
->
SetSelection
(
g_UnitMetric
?
1
:
0
);
LeftBoxSizer
->
Add
(
m_BoxUnits
,
0
,
wxGROW
|
wxALL
,
5
);
/* Selection
forme du curseur
*/
/* Selection
of cursor shape
*/
wxString
list_cursors
[
2
]
=
{
_
(
"Small"
),
_
(
"Big"
)
};
m_CursorShape
=
new
wxRadioBox
(
this
,
-
1
,
_
(
"Cursor"
),
wxDefaultPosition
,
wxDefaultSize
,
2
,
list_cursors
,
1
);
...
...
@@ -232,30 +234,25 @@ void WinEDA_GerberGeneralOptionsFrame::OnOkClick(wxCommandEvent& event)
/******************************************************************/
/* classe derivee pour la frame de Configuration WinEDA_LookFrame */
/******************************************************************/
/*******************************************/
/* Dialog frame to select deisplay options */
/*******************************************/
class
WinEDA_LookFrame
:
public
wxDialog
{
private
:
protected
:
public
:
WinEDA_BasePcbFrame
*
m_Parent
;
wxRadioBox
*
m_OptDisplayLines
;
wxRadioBox
*
m_OptDisplayFlashes
;
wxRadioBox
*
m_OptDisplayPolygons
;
wxCheckBox
*
m_OptDisplayDCodes
;
wxRadioBox
*
m_OptDisplayDrawings
;
public
:
// Constructor and destructor
WinEDA_LookFrame
(
WinEDA_BasePcbFrame
*
parent
,
const
wxPoint
&
pos
);
~
WinEDA_LookFrame
()
{};
private
:
void
OnOkClick
(
wxCommandEvent
&
event
);
void
OnCancelClick
(
wxCommandEvent
&
event
);
...
...
@@ -313,6 +310,14 @@ wxString list_opt2[2] = { _("Sketch"), _("Filled") };
m_OptDisplayFlashes
->
SetSelection
(
1
);
LeftBoxSizer
->
Add
(
m_OptDisplayFlashes
,
0
,
wxGROW
|
wxALL
,
5
);
// Show Option Draw polygons
m_OptDisplayPolygons
=
new
wxRadioBox
(
this
,
-
1
,
_
(
"Polygons:"
),
wxDefaultPosition
,
wxDefaultSize
,
2
,
list_opt2
,
1
);
if
(
g_DisplayPolygonsModeSketch
==
0
)
m_OptDisplayPolygons
->
SetSelection
(
1
);
LeftBoxSizer
->
Add
(
m_OptDisplayPolygons
,
0
,
wxGROW
|
wxALL
,
5
);
wxString
list_opt3
[
3
]
=
{
_
(
"Sketch"
),
_
(
"Filled"
),
_
(
"Line"
)
};
m_OptDisplayDrawings
=
new
wxRadioBox
(
this
,
-
1
,
_
(
"Display other items:"
),
wxDefaultPosition
,
wxDefaultSize
,
...
...
@@ -354,6 +359,11 @@ void WinEDA_LookFrame::OnOkClick(wxCommandEvent& event)
else
DisplayOpt
.
DisplayPadFill
=
FALSE
;
if
(
m_OptDisplayPolygons
->
GetSelection
()
==
0
)
g_DisplayPolygonsModeSketch
=
1
;
else
g_DisplayPolygonsModeSketch
=
0
;
DisplayOpt
.
DisplayPadNum
=
m_OptDisplayDCodes
->
GetValue
();
DisplayOpt
.
DisplayDrawItems
=
m_OptDisplayDrawings
->
GetSelection
();
...
...
gerbview/readgerb.cpp
View file @
bcd7a739
...
...
@@ -105,24 +105,28 @@ bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC,
const
wxString
&
D_Code_FullFileName
)
/********************************************************/
/*
Lecture de 1 fichier gerber
.
*
Format
/*
Read a gerber file (RS274D or RS274X format)
.
*
Normal format:
* Imperial
* Absolu
*
fin de bloc
= *
* CrLf a
pres chaque commande
* Absolu
te
*
end of block
= *
* CrLf a
fter each command
* G codes repetes
*/
{
int
G_commande
=
0
,
D_commande
=
0
;
/* Numero de commande G et D codes */
char
Line
[
1024
];
// Buffer des lignes du fichier gerber en cours
int
G_commande
=
0
,
D_commande
=
0
;
/* command number for G et D commands (like G04 or D02) */
char
Line
[
4000
];
/* Buffer to read 1 line of the gerber file
* warning: some files can have very long lines, so the buffer must be large
*/
wxString
msg
;
char
*
text
;
int
layer
=
GetScreen
()
->
m_Active_Layer
;
int
layer
;
/* current layer used in gerbview */
GERBER_Descr
*
gerber_layer
;
wxPoint
pos
;
int
error
=
0
;
layer
=
GetScreen
()
->
m_Active_Layer
;
if
(
g_GERBER_Descr_List
[
layer
]
==
NULL
)
{
...
...
@@ -131,10 +135,10 @@ bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC,
gerber_layer
=
g_GERBER_Descr_List
[
layer
];
/*
Mise a jour de l'echelle gerber
: */
/*
Set the gerber scale
: */
gerber_layer
->
ResetDefaultValues
();
/*
Lecture du fichier de Trac
e */
/*
Read the gerber fil
e */
gerber_layer
->
m_Current_File
=
wxFopen
(
GERBER_FullFileName
,
wxT
(
"rt"
)
);
if
(
gerber_layer
->
m_Current_File
==
0
)
{
...
...
@@ -152,7 +156,7 @@ bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC,
while
(
TRUE
)
{
if
(
fgets
(
Line
,
255
,
gerber_layer
->
m_Current_File
)
==
NULL
)
// E.O.F
if
(
fgets
(
Line
,
sizeof
(
Line
)
-
1
,
gerber_layer
->
m_Current_File
)
==
NULL
)
// E.O.F
{
if
(
gerber_layer
->
m_FilesPtr
==
0
)
break
;
...
...
@@ -187,21 +191,22 @@ bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC,
gerber_layer
->
m_CommandState
=
CMD_IDLE
;
while
(
*
text
)
text
++
;
break
;
case
'G'
:
/* Li
gne type Gxx : commande
*/
case
'G'
:
/* Li
ne type Gxx : command
*/
G_commande
=
gerber_layer
->
ReturnGCodeNumber
(
text
);
gerber_layer
->
Execute_G_Command
(
text
,
G_commande
);
break
;
case
'D'
:
/* Li
gne type Dxx : Selection d'un outil ou commande si
xx = 0..9*/
case
'D'
:
/* Li
ne type Dxx : Tool selection (xx > 0) or command if
xx = 0..9*/
D_commande
=
gerber_layer
->
ReturnDCodeNumber
(
text
);
gerber_layer
->
Execute_DCODE_Command
(
this
,
DC
,
text
,
D_commande
);
break
;
case
'X'
:
case
'Y'
:
/*
Commande de deplacement ou de Trace
*/
case
'Y'
:
/*
Move or draw command
*/
pos
=
gerber_layer
->
ReadXYCoord
(
text
);
if
(
*
text
==
'*'
)
// command like X12550Y19250*
{
...
...
@@ -211,7 +216,7 @@ bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC,
break
;
case
'I'
:
case
'J'
:
/*
Commande de deplacement ou de Trace
*/
case
'J'
:
/*
Auxiliary Move command
*/
pos
=
gerber_layer
->
ReadIJCoord
(
text
);
break
;
...
...
@@ -227,7 +232,6 @@ bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC,
}
else
//Error
{
wxBell
();
error
++
;
gerber_layer
->
m_CommandState
=
CMD_IDLE
;
text
++
;
...
...
@@ -252,7 +256,9 @@ bool WinEDA_GerberFrame::Read_GERBER_File( wxDC* DC,
setlocale
(
LC_NUMERIC
,
""
);
/* Init tableau des DCodes et Lecture fichier DCODES */
/* Init DCodes list and perhaps read a DCODES file,
* if the gerber file is only a RS274D file (without any aperture information)
*/
if
(
!
gerber_layer
->
m_As_DCode
)
{
wxString
DCodeFileName
;
...
...
gerbview/reglage.cpp
View file @
bcd7a739
/
********************************************/
/* PCBN
EW - Gestion des Options et Reglages */
/
********************************************/
/**
********************************************/
/* GERBVI
EW - Gestion des Options et Reglages */
/**
********************************************/
/* Fichier reglage.cpp */
/* Fichier reglage.cpp */
/*
* Affichage et modifications des parametres de travail de PcbNew
* Parametres = dimensions des via, pistes, isolements, options...
* Options for file extensions
*/
...
...
@@ -18,136 +17,124 @@
#include "protos.h"
/* Fonctions locales */
/* variables locales */
/***********/
enum
{
ID_SAVE_CFG
=
1000
};
};
/* Routines Locales */
/*************************************************/
/* classe derivee pour la frame de Configuration */
/*************************************************/
class
WinEDA_ConfigFrame
:
public
wxDialog
class
WinEDA_ConfigFrame
:
public
wxDialog
{
private
:
WinEDA_GerberFrame
*
m_Parent
;
wxListBox
*
ListLibr
;
WinEDA_GerberFrame
*
m_Parent
;
wxListBox
*
ListLibr
;
int
LibModified
;
WinEDA_EnterText
*
TextDrillExt
;
WinEDA_EnterText
*
TextPhotoExt
;
WinEDA_EnterText
*
TextPenExt
;
WinEDA_EnterText
*
TextDrillExt
;
WinEDA_EnterText
*
TextPhotoExt
;
WinEDA_EnterText
*
TextPenExt
;
// Constructor and destructor
public
:
WinEDA_ConfigFrame
(
WinEDA_GerberFrame
*
parent
,
const
wxPoint
&
pos
);
~
WinEDA_ConfigFrame
()
{
};
WinEDA_ConfigFrame
(
WinEDA_GerberFrame
*
parent
,
const
wxPoint
&
pos
);
~
WinEDA_ConfigFrame
()
{
};
private
:
void
SaveCfg
(
wxCommandEvent
&
event
);
void
OnOkClick
(
wxCommandEvent
&
event
);
void
OnCancelClick
(
wxCommandEvent
&
event
);
void
SaveCfg
(
wxCommandEvent
&
event
);
void
OnOkClick
(
wxCommandEvent
&
event
);
void
OnCancelClick
(
wxCommandEvent
&
event
);
DECLARE_EVENT_TABLE
()
};
/* Construction de la table des evenements pour WinEDA_ConfigFrame */
BEGIN_EVENT_TABLE
(
WinEDA_ConfigFrame
,
wxDialog
)
EVT_BUTTON
(
ID_SAVE_CFG
,
WinEDA_ConfigFrame
::
SaveCfg
)
EVT_BUTTON
(
wxID_OK
,
WinEDA_ConfigFrame
::
OnOkClick
)
EVT_BUTTON
(
wxID_CANCEL
,
WinEDA_ConfigFrame
::
OnCancelClick
)
BEGIN_EVENT_TABLE
(
WinEDA_ConfigFrame
,
wxDialog
)
EVT_BUTTON
(
ID_SAVE_CFG
,
WinEDA_ConfigFrame
::
SaveCfg
)
EVT_BUTTON
(
wxID_OK
,
WinEDA_ConfigFrame
::
OnOkClick
)
EVT_BUTTON
(
wxID_CANCEL
,
WinEDA_ConfigFrame
::
OnCancelClick
)
END_EVENT_TABLE
()
/*****************************************************************/
void
WinEDA_GerberFrame
::
InstallConfigFrame
(
const
wxPoint
&
pos
)
/*****************************************************************/
/*****************************************************************/
/* void WinEDA_GerberFrame::InstallConfigFrame(const wxPoint & pos) */
/*****************************************************************/
void
WinEDA_GerberFrame
::
InstallConfigFrame
(
const
wxPoint
&
pos
)
/** Function InstallConfigFrame
* install the dialog box to configure some gerbview options
* manly the default file extensions
*/
{
WinEDA_ConfigFrame
*
CfgFrame
=
new
WinEDA_ConfigFrame
(
this
,
pos
);
WinEDA_ConfigFrame
*
CfgFrame
=
new
WinEDA_ConfigFrame
(
this
,
pos
);
CfgFrame
->
ShowModal
();
CfgFrame
->
Destroy
();
}
/************************************************************/
/* Constructeur de WinEDA_ConfigFrame: la fenetre de config */
/************************************************************/
WinEDA_ConfigFrame
::
WinEDA_ConfigFrame
(
WinEDA_GerberFrame
*
parent
,
const
wxPoint
&
framepos
)
:
wxDialog
(
parent
,
-
1
,
wxEmptyString
,
framepos
,
wxSize
(
300
,
180
),
wxDEFAULT_DIALOG_STYLE
|
wxFRAME_FLOAT_ON_PARENT
)
/************************************************************/
WinEDA_ConfigFrame
::
WinEDA_ConfigFrame
(
WinEDA_GerberFrame
*
parent
,
const
wxPoint
&
framepos
)
:
wxDialog
(
parent
,
-
1
,
wxEmptyString
,
framepos
,
wxSize
(
300
,
180
),
wxDEFAULT_DIALOG_STYLE
|
wxFRAME_FLOAT_ON_PARENT
)
/************************************************************/
{
const
int
LEN_EXT
=
100
;
wxString
title
;
const
int
LEN_EXT
=
100
;
wxString
title
;
m_Parent
=
parent
;
SetFont
(
*
g_DialogFont
);
SetFont
(
*
g_DialogFont
);
title
=
_
(
"from "
)
+
g_EDA_Appl
->
m_CurrentOptionFile
;
SetTitle
(
title
);
/* Shows the config filename currently used : */
title
=
_
(
"from "
)
+
g_EDA_Appl
->
m_CurrentOptionFile
;
SetTitle
(
title
);
LibModified
=
FALSE
;
wxBoxSizer
*
MainBoxSizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
SetSizer
(
MainBoxSizer
);
wxBoxSizer
*
RightBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
wxBoxSizer
*
LeftBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
MainBoxSizer
->
Add
(
LeftBoxSizer
,
0
,
wxGROW
|
wxALL
,
5
);
MainBoxSizer
->
Add
(
RightBoxSizer
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
wxBoxSizer
*
MainBoxSizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
SetSizer
(
MainBoxSizer
);
wxBoxSizer
*
RightBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
wxBoxSizer
*
LeftBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
MainBoxSizer
->
Add
(
LeftBoxSizer
,
0
,
wxGROW
|
wxALL
,
5
);
MainBoxSizer
->
Add
(
RightBoxSizer
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
/* Creation des boutons de commande
*/
wxButton
*
Button
=
new
wxButton
(
this
,
ID_SAVE_CFG
,
_
(
"Save Cfg..."
)
);
RightBoxSizer
->
Add
(
Button
,
0
,
wxGROW
|
wxALL
,
5
);
/* Created the buttons
*/
wxButton
*
Button
=
new
wxButton
(
this
,
ID_SAVE_CFG
,
_
(
"Save Cfg..."
)
);
RightBoxSizer
->
Add
(
Button
,
0
,
wxGROW
|
wxALL
,
5
);
// Provide a spacer to improve appearance of dialog box
RightBoxSizer
->
AddSpacer
(
20
);
RightBoxSizer
->
AddSpacer
(
20
);
Button
=
new
wxButton
(
this
,
wxID_OK
,
_
(
"OK"
)
);
Button
->
SetForegroundColour
(
*
wxRED
);
RightBoxSizer
->
Add
(
Button
,
0
,
wxGROW
|
wxALL
,
5
);
Button
=
new
wxButton
(
this
,
wxID_OK
,
_
(
"OK"
)
);
Button
->
SetForegroundColour
(
*
wxRED
);
RightBoxSizer
->
Add
(
Button
,
0
,
wxGROW
|
wxALL
,
5
);
Button
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Cancel"
)
);
Button
->
SetForegroundColour
(
*
wxBLUE
);
RightBoxSizer
->
Add
(
Button
,
0
,
wxGROW
|
wxALL
,
5
);
Button
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Cancel"
)
);
Button
->
SetForegroundColour
(
*
wxBLUE
);
RightBoxSizer
->
Add
(
Button
,
0
,
wxGROW
|
wxALL
,
5
);
wxSize
size
;
size
.
x
=
LEN_EXT
;
size
.
y
=
-
1
;
TextDrillExt
=
new
WinEDA_EnterText
(
this
,
_
(
"Drill File Ext:"
),
g_DrillFilenameExt
,
LeftBoxSizer
,
size
);
TextDrillExt
=
new
WinEDA_EnterText
(
this
,
_
(
"Drill File Ext:"
),
g_DrillFilenameExt
,
LeftBoxSizer
,
size
);
TextPhotoExt
=
new
WinEDA_EnterText
(
this
,
_
(
"Gerber File Ext:"
),
g_PhotoFilenameExt
,
LeftBoxSizer
,
size
);
TextPhotoExt
=
new
WinEDA_EnterText
(
this
,
_
(
"Gerber File Ext:"
),
g_PhotoFilenameExt
,
LeftBoxSizer
,
size
);
TextPenExt
=
new
WinEDA_EnterText
(
this
,
_
(
"D code File Ext:"
),
g_PenFilenameExt
,
LeftBoxSizer
,
size
);
TextPenExt
=
new
WinEDA_EnterText
(
this
,
_
(
"D code File Ext:"
),
g_PenFilenameExt
,
LeftBoxSizer
,
size
);
GetSizer
()
->
Fit
(
this
);
GetSizer
()
->
SetSizeHints
(
this
);
GetSizer
()
->
Fit
(
this
);
GetSizer
()
->
SetSizeHints
(
this
);
}
/*****************************************************************/
/* Fonctions de base de WinEDA_ConfigFrame: la fenetre de config */
/*****************************************************************/
/******************************************************************/
void
WinEDA_ConfigFrame
::
OnOkClick
(
wxCommandEvent
&
WXUNUSED
(
event
)
)
void
WinEDA_ConfigFrame
::
OnOkClick
(
wxCommandEvent
&
WXUNUSED
(
event
)
)
/******************************************************************/
{
g_DrillFilenameExt
=
TextDrillExt
->
GetValue
();
...
...
@@ -159,7 +146,7 @@ void WinEDA_ConfigFrame::OnOkClick(wxCommandEvent& WXUNUSED(event))
/******************************************************************/
void
WinEDA_ConfigFrame
::
OnCancelClick
(
wxCommandEvent
&
WXUNUSED
(
event
)
)
void
WinEDA_ConfigFrame
::
OnCancelClick
(
wxCommandEvent
&
WXUNUSED
(
event
)
)
/******************************************************************/
{
EndModal
(
-
1
);
...
...
@@ -167,7 +154,7 @@ void WinEDA_ConfigFrame::OnCancelClick(wxCommandEvent& WXUNUSED(event))
/******************************************************/
void
WinEDA_ConfigFrame
::
SaveCfg
(
wxCommandEvent
&
event
)
void
WinEDA_ConfigFrame
::
SaveCfg
(
wxCommandEvent
&
event
)
/******************************************************/
{
m_Parent
->
Update_config
();
...
...
gerbview/tool_gerber.cpp
View file @
bcd7a739
...
...
@@ -27,7 +27,6 @@ void WinEDA_GerberFrame::ReCreateMenuBar( void )
{
int
ii
;
wxMenuBar
*
menuBar
=
GetMenuBar
();
// wxMenuItem* item;
if
(
menuBar
==
NULL
)
{
...
...
@@ -162,7 +161,7 @@ void WinEDA_GerberFrame::ReCreateMenuBar( void )
// Associate the menu bar with the frame
SetMenuBar
(
menuBar
);
}
else
//
simple mise a jour de la liste des fichiers anciens
else
//
Only an update of the files list
{
wxMenuItem
*
item
;
int
max_file
=
m_Parent
->
m_LastProjectMaxCount
;
...
...
@@ -342,6 +341,9 @@ void WinEDA_GerberFrame::ReCreateHToolbar( void )
/**********************************************/
void
WinEDA_GerberFrame
::
ReCreateVToolbar
(
void
)
/**********************************************/
/**
create or update the right vertical toolbar
*/
{
if
(
m_VToolBar
)
return
;
...
...
@@ -398,6 +400,9 @@ void WinEDA_GerberFrame::ReCreateVToolbar( void )
/************************************************/
void
WinEDA_GerberFrame
::
ReCreateOptToolbar
(
void
)
/************************************************/
/**
create or update the left vertical toolbar (option toolbar
*/
{
if
(
m_OptionsToolBar
)
return
;
...
...
@@ -437,14 +442,21 @@ void WinEDA_GerberFrame::ReCreateOptToolbar( void )
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Show Spots
Sketch
"
)
);
_
(
"Show Spots
in Sketch Mode
"
)
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_TRACKS_SKETCH
,
BITMAP
(
showtrack_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Show Lines Sketch"
)
);
_
(
"Show Lines in Sketch Mode"
)
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH
,
BITMAP
(
opt_show_polygon_xpm
),
wxNullBitmap
,
TRUE
,
-
1
,
-
1
,
(
wxObject
*
)
NULL
,
_
(
"Show Polygons in Sketch Mode"
)
);
m_OptionsToolBar
->
AddTool
(
ID_TB_OPTIONS_SHOW_DCODES
,
BITMAP
(
show_dcodenumber_xpm
),
...
...
gerbview/tracepcb.cpp
View file @
bcd7a739
...
...
@@ -28,6 +28,7 @@ void WinEDA_DrawPanel::PrintPage( wxDC* DC, bool Print_Sheet_Ref, int printmaskl
/* routine de trace du pcb, avec selection des couches */
{
DISPLAY_OPTIONS
save_opt
;
int
DisplayPolygonsModeImg
;
save_opt
=
DisplayOpt
;
if
(
printmasklayer
&
ALL_CU_LAYERS
)
...
...
@@ -43,6 +44,8 @@ void WinEDA_DrawPanel::PrintPage( wxDC* DC, bool Print_Sheet_Ref, int printmaskl
DisplayOpt
.
DisplayTrackIsol
=
0
;
DisplayOpt
.
DisplayDrawItems
=
FILLED
;
DisplayOpt
.
DisplayZones
=
1
;
DisplayPolygonsModeImg
=
g_DisplayPolygonsModeSketch
;
g_DisplayPolygonsModeSketch
=
0
;
(
(
WinEDA_GerberFrame
*
)
m_Parent
)
->
Trace_Gerber
(
DC
,
GR_COPY
,
printmasklayer
);
...
...
@@ -50,6 +53,7 @@ void WinEDA_DrawPanel::PrintPage( wxDC* DC, bool Print_Sheet_Ref, int printmaskl
m_Parent
->
TraceWorkSheet
(
DC
,
GetScreen
(),
0
);
DisplayOpt
=
save_opt
;
g_DisplayPolygonsModeSketch
=
DisplayPolygonsModeImg
;
}
...
...
@@ -114,11 +118,12 @@ void WinEDA_GerberFrame::Trace_Gerber( wxDC* DC, int draw_mode, int printmasklay
if
(
track
->
GetNet
()
==
0
)
// StartPoint
{
if
(
nbpoints
)
if
(
nbpoints
)
// we have found a new polygon: Draw the old polygon
{
int
Color
=
g_DesignSettings
.
m_LayerColor
[
track
->
GetLayer
()];
int
filled
=
(
g_DisplayPolygonsModeSketch
==
0
)
?
1
:
0
;
GRClosedPoly
(
&
DrawPanel
->
m_ClipBox
,
DC
,
nbpoints
,
coord
,
1
,
Color
,
Color
);
filled
,
Color
,
Color
);
}
nbpoints
=
2
;
ptcoord
=
coord
;
...
...
@@ -142,8 +147,9 @@ void WinEDA_GerberFrame::Trace_Gerber( wxDC* DC, int draw_mode, int printmasklay
if
(
track
->
Next
()
==
NULL
)
// Last point
{
int
Color
=
g_DesignSettings
.
m_LayerColor
[
track
->
GetLayer
()];
int
filled
=
(
g_DisplayPolygonsModeSketch
==
0
)
?
1
:
0
;
GRClosedPoly
(
&
DrawPanel
->
m_ClipBox
,
DC
,
nbpoints
,
coord
,
1
,
Color
,
Color
);
filled
,
Color
,
Color
);
}
}
...
...
include/bitmaps.h
View file @
bcd7a739
...
...
@@ -72,6 +72,7 @@
#include "../bitmaps/Options_Segment.xpm"
#include "../bitmaps/Options_Rectangle.xpm"
#include "../bitmaps/Display_Options.xpm"
#include "../bitmaps/opt_show_polygon.xpm"
#include "../bitmaps/Mirror_V.xpm"
#include "../bitmaps/Mirror_H.xpm"
...
...
include/id.h
View file @
bcd7a739
...
...
@@ -814,7 +814,7 @@ enum main_id {
ID_TB_OPTIONS_SHOW_DCODES
,
ID_TB_OPTIONS_SHOW_HIGHT_CONTRAST_MODE
,
ID_TB_OPTIONS_SHOW_EXTRA_VERTICAL_TOOLBAR1
,
ID_TB_OPTIONS_
UNUSED5
,
ID_TB_OPTIONS_
SHOW_POLYGONS_SKETCH
,
ID_TB_OPTIONS_UNUSED6
,
ID_TB_OPTIONS_UNUSED7
,
ID_TB_OPTIONS_UNUSED8
,
...
...
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