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
a1998410
Commit
a1998410
authored
Dec 30, 2009
by
charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Some enhancements and fixes. (see changelog)
parent
cacb2225
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
500 additions
and
307 deletions
+500
-307
CHANGELOG.txt
CHANGELOG.txt
+9
-0
drawpanel.cpp
common/drawpanel.cpp
+2
-2
gr_basic.cpp
common/gr_basic.cpp
+63
-51
class_libentry.cpp
eeschema/class_libentry.cpp
+2
-2
class_libentry_fields.h
eeschema/class_libentry_fields.h
+8
-1
class_sch_cmp_field.h
eeschema/class_sch_cmp_field.h
+8
-0
class_sch_component.cpp
eeschema/class_sch_component.cpp
+32
-21
class_sch_component.h
eeschema/class_sch_component.h
+7
-0
general.h
eeschema/general.h
+0
-2
locate.cpp
eeschema/locate.cpp
+8
-1
program.h
eeschema/program.h
+3
-3
files.cpp
gerbview/files.cpp
+8
-3
base_struct.h
include/base_struct.h
+7
-7
gr_basic.h
include/gr_basic.h
+8
-9
kicad.mo
internat/fr/kicad.mo
+0
-0
kicad.po
internat/fr/kicad.po
+126
-112
treeprj_frame.cpp
kicad/treeprj_frame.cpp
+5
-2
pcbplot.cpp
pcbnew/pcbplot.cpp
+204
-91
No files found.
CHANGELOG.txt
View file @
a1998410
...
...
@@ -4,6 +4,15 @@ KiCad ChangeLog 2009
Please add newer entries at the top, list the date and your name with
email address.
2009-Dec-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++pcbnew
Added option to use some usual Gerber files extension, depending on the layer
Do not allow in plot menu to output files for non enabled layers.
++Kicad and Gerbview
Display Gerber files that use usual files extension (in tree project or dialog files)
(See http://en.wikipedia.org/wiki/Gerber_File)
2009-Dec-20 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
...
...
common/drawpanel.cpp
View file @
a1998410
...
...
@@ -521,7 +521,7 @@ void WinEDA_DrawPanel::EraseScreen( wxDC* DC )
#ifndef WX_ZOOM
GRSFilledRect
(
&
m_ClipBox
,
DC
,
m_ClipBox
.
GetX
(),
m_ClipBox
.
GetY
(),
m_ClipBox
.
GetRight
(),
m_ClipBox
.
GetBottom
(),
g_DrawBgColor
,
g_DrawBgColor
);
0
,
g_DrawBgColor
,
g_DrawBgColor
);
#else
EDA_Rect
tmp
=
m_ClipBox
;
...
...
@@ -534,7 +534,7 @@ void WinEDA_DrawPanel::EraseScreen( wxDC* DC )
GRSFilledRect
(
&
m_ClipBox
,
DC
,
m_ClipBox
.
GetX
(),
m_ClipBox
.
GetY
(),
m_ClipBox
.
GetRight
(),
m_ClipBox
.
GetBottom
(),
g_DrawBgColor
,
g_DrawBgColor
);
0
,
g_DrawBgColor
,
g_DrawBgColor
);
m_ClipBox
=
tmp
;
#endif
...
...
common/gr_basic.cpp
View file @
a1998410
...
...
@@ -60,15 +60,22 @@ static int PenMinWidth = 1; /* minimum pen width (must be> 0)
* (Useful for printing) */
static
bool
ForceBlackPen
;
/* if true: draws in black instead of
* color for printing. */
static
int
xcliplo
=
0
,
ycliplo
=
0
,
xcliphi
=
2000
,
ycliphi
=
2000
;
static
int
lastcolor
=
-
1
;
static
int
lastwidth
=
-
1
;
static
int
xcliplo
=
0
,
ycliplo
=
0
,
xcliphi
=
2000
,
ycliphi
=
2000
;
static
int
lastcolor
=
-
1
;
static
int
lastwidth
=
-
1
;
static
int
s_Last_Pen_Style
=
-
1
;
static
wxDC
*
lastDC
=
NULL
;
/* Local functions: */
static
void
GRSRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
Color
);
static
void
GRSRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
width
,
int
Color
);
/*
* Macro clipping the trace of a line:
* Line (x1, y1 x2, y2) is clipped to remain within
...
...
@@ -362,9 +369,13 @@ void GRSetDrawMode( wxDC* DC, int draw_mode )
if
(
draw_mode
&
GR_OR
)
#if defined(__WXMAC__) && (wxMAC_USE_CORE_GRAPHICS || wxCHECK_VERSION( 2, 9, 0 ) )
DC
->
SetLogicalFunction
(
wxCOPY
);
#else
DC
->
SetLogicalFunction
(
wxOR
);
#endif
else
if
(
draw_mode
&
GR_XOR
)
...
...
@@ -372,9 +383,13 @@ void GRSetDrawMode( wxDC* DC, int draw_mode )
else
if
(
draw_mode
&
GR_NXOR
)
#if defined(__WXMAC__) && (wxMAC_USE_CORE_GRAPHICS || wxCHECK_VERSION( 2, 9, 0 ) )
DC
->
SetLogicalFunction
(
wxXOR
);
#else
DC
->
SetLogicalFunction
(
wxEQUIV
);
#endif
else
...
...
@@ -1397,7 +1412,7 @@ void GRArc( EDA_Rect* ClipBox, wxDC* DC, int xc, int yc, int StAngle,
GRSetColorPen
(
DC
,
Color
);
GRSetBrush
(
DC
,
Color
,
FALSE
);
DC
->
DrawArc
(
GRMapX
(
xc
+
x1
),
GRMapY
(
yc
-
y1
),
GRMapX
(
xc
+
x2
),
GRMapY
(
yc
-
y2
),
GRMapX
(
xc
),
GRMapY
(
yc
)
);
GRMapY
(
yc
-
y2
),
GRMapX
(
xc
),
GRMapY
(
yc
)
);
}
...
...
@@ -1422,13 +1437,9 @@ void GRArc( EDA_Rect* ClipBox,
/*
* Draw a rectangle in drawing space.
*/
void
GRRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
Color
)
void
GRRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
Color
)
{
x1
=
GRMapX
(
x1
);
y1
=
GRMapY
(
y1
);
...
...
@@ -1438,18 +1449,25 @@ void GRRect( EDA_Rect* ClipBox,
GRSRect
(
ClipBox
,
DC
,
x1
,
y1
,
x2
,
y2
,
Color
);
}
void
GRRect
(
EDA_Rect
*
aClipBox
,
wxDC
*
aDC
,
const
EDA_Rect
&
aRect
,
int
aColor
)
{
int
x1
=
GRMapX
(
aRect
.
GetX
()
);
int
y1
=
GRMapY
(
aRect
.
GetY
()
);
int
x2
=
GRMapX
(
aRect
.
GetRight
()
);
int
y2
=
GRMapY
(
aRect
.
GetBottom
()
);
GRSRect
(
aClipBox
,
aDC
,
x1
,
y1
,
x2
,
y2
,
aColor
);
}
/*
* Draw a rectangle in drawing space.
* Draw a rectangle
(thick lines)
in drawing space.
*/
void
GRRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
width
,
int
Color
)
void
GRRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
width
,
int
Color
)
{
x1
=
GRMapX
(
x1
);
y1
=
GRMapY
(
y1
);
...
...
@@ -1460,6 +1478,20 @@ void GRRect( EDA_Rect* ClipBox,
GRSRect
(
ClipBox
,
DC
,
x1
,
y1
,
x2
,
y2
,
width
,
Color
);
}
void
GRRect
(
EDA_Rect
*
aClipBox
,
wxDC
*
aDC
,
const
EDA_Rect
&
aRect
,
int
aWidth
,
int
aColor
)
{
int
x1
=
GRMapX
(
aRect
.
GetX
()
);
int
y1
=
GRMapY
(
aRect
.
GetY
()
);
int
x2
=
GRMapX
(
aRect
.
GetRight
()
);
int
y2
=
GRMapY
(
aRect
.
GetBottom
()
);
int
width
=
ZoomValue
(
aWidth
);
GRSRect
(
aClipBox
,
aDC
,
x1
,
y1
,
x2
,
y2
,
width
,
aColor
);
}
/*
* Draw a rectangle (filled with AreaColor) in drawing space.
...
...
@@ -1543,31 +1575,10 @@ void GRSRect( EDA_Rect* ClipBox, wxDC* DC, int x1, int y1, int x2, int y2,
}
/*
* Draw a filled rectangle in screen space.
*/
void
GRSFilledRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
Color
,
int
BgColor
)
{
GRSFilledRect
(
ClipBox
,
DC
,
x1
,
y1
,
x2
,
y2
,
0
,
Color
,
BgColor
);
}
void
GRSFilledRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
width
,
int
Color
,
int
BgColor
)
void
GRSFilledRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
width
,
int
Color
,
int
BgColor
)
{
if
(
x1
>
x2
)
EXCHG
(
x1
,
x2
);
...
...
@@ -1635,11 +1646,11 @@ void ClipAndDrawFilledPoly( EDA_Rect* aClipBox,
clippedPolygon
.
clear
();
for
(
int
ii
=
0
;
ii
<
n
;
ii
++
)
inputPolygon
.
push_back
(
PointF
(
(
REAL
)
aPoints
[
ii
].
x
,
(
REAL
)
aPoints
[
ii
].
y
)
);
(
REAL
)
aPoints
[
ii
].
y
)
);
RectF
window
(
(
REAL
)
aClipBox
->
GetX
(),
(
REAL
)
aClipBox
->
GetY
(),
(
REAL
)
aClipBox
->
GetWidth
(),
(
REAL
)
aClipBox
->
GetHeight
()
);
(
REAL
)
aClipBox
->
GetWidth
(),
(
REAL
)
aClipBox
->
GetHeight
()
);
SutherlandHodgman
sh
(
window
);
sh
.
Clip
(
inputPolygon
,
outputPolygon
);
...
...
@@ -1649,13 +1660,14 @@ void ClipAndDrawFilledPoly( EDA_Rect* aClipBox,
++
cit
)
{
clippedPolygon
.
push_back
(
wxPoint
(
wxRound
(
cit
->
X
),
wxRound
(
cit
->
Y
)
)
);
wxRound
(
cit
->
Y
)
)
);
}
if
(
clippedPolygon
.
size
()
)
aDC
->
DrawPolygon
(
clippedPolygon
.
size
(),
&
clippedPolygon
[
0
]
);
}
#endif
...
...
eeschema/class_libentry.cpp
View file @
a1998410
...
...
@@ -451,7 +451,7 @@ bool LIB_COMPONENT::Save( FILE* aFile )
if
(
fprintf
(
aFile
,
"DEF"
)
<
0
)
return
false
;
if
(
(
value
.
m_Attributs
&
TEXT_NO_VISIBLE
)
==
0
)
if
(
value
.
IsVisible
()
)
{
if
(
fprintf
(
aFile
,
" %s"
,
CONV_TO_UTF8
(
value
.
m_Text
)
)
<
0
)
return
false
;
...
...
@@ -859,7 +859,7 @@ EDA_Rect LIB_COMPONENT::GetBoundaryBox( int aUnit, int aConvert )
continue
;
if
(
(
item
.
Type
()
==
COMPONENT_FIELD_DRAW_TYPE
)
&&
(
(
(
LIB_TEXT
&
)
item
).
m_Attributs
&
TEXT_NO_VISIBLE
)
)
&&
!
(
(
LIB_FIELD
&
)
item
).
IsVisible
(
)
)
continue
;
bBox
.
Merge
(
item
.
GetBoundingBox
()
);
...
...
eeschema/class_libentry_fields.h
View file @
a1998410
...
...
@@ -84,9 +84,16 @@ public:
int
aColor
,
int
aDrawMode
,
void
*
aData
,
const
int
aTransformMatrix
[
2
][
2
]
);
/** Function IsVisible
* @return true is this field is visible, false if flagged invisible
*/
bool
IsVisible
()
{
return
(
m_Attributs
&
TEXT_NO_VISIBLE
)
==
0
?
true
:
false
;
}
/**
* Return the bounding rectangle of the field text.
*
* @return Bounding rectangle.
*/
virtual
EDA_Rect
GetBoundingBox
();
...
...
eeschema/class_sch_cmp_field.h
View file @
a1998410
...
...
@@ -67,6 +67,14 @@ public:
*/
int
GetPenSize
(
);
/** Function IsVisible
* @return true is this field is visible, false if flagged invisible
*/
bool
IsVisible
()
{
return
(
m_Attributs
&
TEXT_NO_VISIBLE
)
==
0
?
true
:
false
;
}
/**
* Function Draw
*/
...
...
eeschema/class_sch_component.cpp
View file @
a1998410
...
...
@@ -205,8 +205,7 @@ void SCH_COMPONENT::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
SCH_FIELD
*
field
=
GetField
(
REFERENCE
);
if
(
(
(
field
->
m_Attributs
&
TEXT_NO_VISIBLE
)
==
0
)
&&
!
(
field
->
m_Flags
&
IS_MOVED
)
)
if
(
field
->
IsVisible
()
&&
!
(
field
->
m_Flags
&
IS_MOVED
)
)
{
if
(
Entry
->
GetPartCount
()
>
1
)
{
...
...
@@ -236,23 +235,20 @@ void SCH_COMPONENT::Draw( WinEDA_DrawPanel* panel, wxDC* DC,
{
EDA_Rect BoundaryBox;
BoundaryBox = GetBoundaryBox();
int x1 = BoundaryBox.GetX();
int y1 = BoundaryBox.GetY();
int x2 = BoundaryBox.GetRight();
int y2 = BoundaryBox.GetBottom();
GRRect( &panel->m_ClipBox, DC, x1, y1, x2, y2, BROWN );
BoundaryBox = GetField( REFERENCE )->GetBoundaryBox();
x1 = BoundaryBox.GetX();
y1 = BoundaryBox.GetY();
x2 = BoundaryBox.GetRight();
y2 = BoundaryBox.GetBottom();
GRRect( &panel->m_ClipBox, DC, x1, y1, x2, y2, BROWN );
BoundaryBox = GetField( VALUE )->GetBoundaryBox();
x1 = BoundaryBox.GetX();
y1 = BoundaryBox.GetY();
x2 = BoundaryBox.GetRight();
y2 = BoundaryBox.GetBottom();
GRRect( &panel->m_ClipBox, DC, x1, y1, x2, y2, BROWN );
GRRect( &panel->m_ClipBox, DC, BoundaryBox, BROWN );
#if 1
if( GetField( REFERENCE )->IsVisible() )
{
BoundaryBox = GetField( REFERENCE )->GetBoundaryBox();
GRRect( &panel->m_ClipBox, DC, BoundaryBox, BROWN );
}
if( GetField( VALUE )->IsVisible() )
{
BoundaryBox = GetField( VALUE )->GetBoundaryBox();
GRRect( &panel->m_ClipBox, DC, BoundaryBox, BROWN );
}
#endif
}
#endif
}
...
...
@@ -530,7 +526,13 @@ LIB_PIN* SCH_COMPONENT::GetPin( const wxString& number )
return
Entry
->
GetPin
(
number
,
m_Multi
,
m_Convert
);
}
/**
* Function GetBoundaryBox
* returns the orthogonal, bounding box of this object for display purposes.
* This box should be an enclosing perimeter for graphic items and pins.
* this include only fields defined in library
* use GetBoundingBox() to include fields in schematic
*/
EDA_Rect
SCH_COMPONENT
::
GetBoundaryBox
()
const
{
LIB_COMPONENT
*
Entry
=
CMP_LIBRARY
::
FindLibraryComponent
(
m_ChipName
);
...
...
@@ -1064,6 +1066,13 @@ bool SCH_COMPONENT::Save( FILE* f ) const
}
/**
* Function GetBoundingBox
* returns the orthogonal, bounding box of this object for display purposes.
* This box should be an enclosing perimeter for visible components of this
* object, and the units should be in the pcb or schematic coordinate system.
* It is OK to overestimate the size by a few counts.
*/
EDA_Rect
SCH_COMPONENT
::
GetBoundingBox
()
{
const
int
PADDING
=
40
;
...
...
@@ -1074,11 +1083,13 @@ EDA_Rect SCH_COMPONENT::GetBoundingBox()
// Include BoundingBoxes of fields
for
(
int
ii
=
0
;
ii
<
GetFieldCount
();
ii
++
)
{
if
(
!
GetField
(
ii
)
->
IsVisible
()
)
continue
;
bbox
.
Merge
(
GetField
(
ii
)
->
GetBoundaryBox
()
);
}
// ... add padding
bbox
.
Inflate
(
PADDING
,
PADDING
);
bbox
.
Inflate
(
PADDING
);
return
bbox
;
}
...
...
eeschema/class_sch_component.h
View file @
a1998410
...
...
@@ -209,6 +209,13 @@ public:
*/
void
SetTimeStamp
(
long
aNewTimeStamp
);
/**
* Function GetBoundaryBox
* returns the orthogonal, bounding box of this object for display purposes.
* This box should be an enclosing perimeter for graphic items and pins.
* this include only fields defined in library
* use GetBoundingBox() to include fields in schematic
*/
EDA_Rect
GetBoundaryBox
()
const
;
/**
...
...
eeschema/general.h
View file @
a1998410
...
...
@@ -22,8 +22,6 @@
/* Used for EDA_BaseStruct, .m_Select member */
#define IS_SELECTED 1
#define TEXT_NO_VISIBLE 1
//#define GR_DEFAULT_DRAWMODE GR_COPY
#define GR_DEFAULT_DRAWMODE GR_COPY
...
...
eeschema/locate.cpp
View file @
a1998410
...
...
@@ -417,7 +417,6 @@ bool IsItemInBox( EDA_Rect& aBox, SCH_ITEM* DrawStruct )
case
TYPE_SCH_TEXT
:
case
TYPE_SCH_HIERLABEL
:
case
TYPE_SCH_GLOBALLABEL
:
case
TYPE_SCH_COMPONENT
:
case
DRAW_SHEET_STRUCT_TYPE
:
case
TYPE_SCH_MARKER
:
BoundaryBox
=
DrawStruct
->
GetBoundingBox
();
...
...
@@ -425,6 +424,14 @@ bool IsItemInBox( EDA_Rect& aBox, SCH_ITEM* DrawStruct )
return
true
;
break
;
case
TYPE_SCH_COMPONENT
:
// Use a more restrictive area than GetBoundingBox()
// Area is restricted to the body area, excludint fields outside this area
BoundaryBox
=
((
SCH_COMPONENT
*
)
DrawStruct
)
->
GetBoundaryBox
();
if
(
aBox
.
Intersects
(
BoundaryBox
)
)
return
true
;
break
;
case
DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE
:
break
;
...
...
eeschema/program.h
View file @
a1998410
...
...
@@ -5,6 +5,9 @@
#ifndef PROGRAM_H
#define PROGRAM_H
#define HIGHLIGHT_COLOR WHITE
#define TEXT_NO_VISIBLE 1
#include "wxEeschemaStruct.h"
#include "macros.h"
#include "base_struct.h"
...
...
@@ -17,9 +20,6 @@
#include "class_text-label.h"
#include "class_schematic_items.h"
#define HIGHLIGHT_COLOR WHITE
#define TEXT_NO_VISIBLE 1
/* Rotation, mirror of graphic items in components bodies are handled by a
* transform matrix. The default matix is useful to draw lib entries with
...
...
gerbview/files.cpp
View file @
a1998410
...
...
@@ -110,9 +110,14 @@ bool WinEDA_GerberFrame::LoadOneGerberFile( const wxString& FullFileName,
{
wxString
current_path
=
filename
.
GetPath
();
/* Standard gerber filetypes */
filetypes
+=
_
(
"Gerber files (.gbr .gbx .lgr .ger .pho)| \
.gbr;*.GBR;*.gbx;*.GBX;*.lgr;*.LGR;*.ger;*.GER;*.pho;*.PHO|"
);
/* Standard gerber filetypes
* (See http://en.wikipedia.org/wiki/Gerber_File)
* the .pho extension is the default used in Pcbnew
*/
filetypes
=
_
(
"Gerber files (.gb* .gt* .lgr .ger .pho)"
);
filetypes
<<
wxT
(
"|"
);
filetypes
+=
wxT
(
"*.gb*;*.GB*;.gt*;.GT*;.gko;.GKO;*.GPB;*.gpb;*.lgr;*.LGR;*.ger;*.GER;*.pho;*.PHO"
);
filetypes
<<
wxT
(
"|"
);
/* Special gerber filetypes */
filetypes
+=
_
(
"Top layer (*.GTL)|*.GTL;*.gtl|"
);
...
...
include/base_struct.h
View file @
a1998410
...
...
@@ -175,15 +175,15 @@ public:
bool
Inside
(
int
x
,
int
y
)
{
return
Inside
(
wxPoint
(
x
,
y
)
);
}
wxSize
GetSize
()
{
return
m_Size
;
}
int
GetX
()
{
return
m_Pos
.
x
;
}
int
GetY
()
{
return
m_Pos
.
y
;
}
int
GetX
()
const
{
return
m_Pos
.
x
;
}
int
GetY
()
const
{
return
m_Pos
.
y
;
}
wxPoint
GetOrigin
()
{
return
m_Pos
;
}
wxPoint
GetPosition
()
{
return
m_Pos
;
}
wxPoint
GetEnd
()
{
return
wxPoint
(
GetRight
(),
GetBottom
()
);
}
int
GetWidth
()
{
return
m_Size
.
x
;
}
int
GetHeight
()
{
return
m_Size
.
y
;
}
int
GetRight
()
{
return
m_Pos
.
x
+
m_Size
.
x
;
}
int
GetBottom
()
{
return
m_Pos
.
y
+
m_Size
.
y
;
}
wxPoint
GetEnd
()
const
{
return
wxPoint
(
GetRight
(),
GetBottom
()
);
}
int
GetWidth
()
const
{
return
m_Size
.
x
;
}
int
GetHeight
()
const
{
return
m_Size
.
y
;
}
int
GetRight
()
const
{
return
m_Pos
.
x
+
m_Size
.
x
;
}
int
GetBottom
()
const
{
return
m_Pos
.
y
+
m_Size
.
y
;
}
void
SetOrigin
(
const
wxPoint
&
pos
)
{
m_Pos
=
pos
;
}
void
SetOrigin
(
int
x
,
int
y
)
{
m_Pos
.
x
=
x
;
m_Pos
.
y
=
y
;
}
void
SetSize
(
const
wxSize
&
size
)
{
m_Size
=
size
;
}
...
...
include/gr_basic.h
View file @
a1998410
...
...
@@ -58,6 +58,10 @@ void GRForceBlackPen( bool flagforce );
bool
GetGRForceBlackPenState
(
void
);
void
SetPenMinWidth
(
int
minwidth
);
void
GRSPutPixel
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x
,
int
y
,
int
color
);
void
GRSFilledRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
width
,
int
Color
,
int
BgColor
);
void
GRLine
(
EDA_Rect
*
aClipBox
,
wxDC
*
aDC
,
wxPoint
aStart
,
wxPoint
aEnd
,
int
aWidth
,
int
aColor
);
void
GRLine
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
...
...
@@ -205,24 +209,19 @@ void GRSetColor( int Color );
void
GRSetDefaultPalette
();
int
GRGetColor
();
void
GRPutPixel
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x
,
int
y
,
int
color
);
void
GRSPutPixel
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x
,
int
y
,
int
color
);
int
GRGetPixel
(
wxDC
*
DC
,
int
x
,
int
y
);
void
GRFilledRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
Color
,
int
BgColor
);
void
GRFilledRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
width
,
int
Color
,
int
BgColor
);
void
GRSFilledRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
Color
,
int
BgColor
);
void
GRSFilledRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
width
,
int
Color
,
int
BgColor
);
void
GRRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
Color
);
void
GRRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
const
EDA_Rect
&
aRect
,
int
Color
);
void
GRRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
width
,
int
Color
);
void
GRSRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
Color
);
void
GRSRect
(
EDA_Rect
*
ClipBox
,
wxDC
*
DC
,
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
width
,
int
Color
);
void
GRRect
(
EDA_Rect
*
aClipBox
,
wxDC
*
aDC
,
const
EDA_Rect
&
aRect
,
int
aWidth
,
int
aColor
);
#endif
/* define GR_BASIC */
internat/fr/kicad.mo
View file @
a1998410
No preview for this file type
internat/fr/kicad.po
View file @
a1998410
...
...
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: kicad\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-12-
29 11
:30+0100\n"
"PO-Revision-Date: 2009-12-
29 11
:34+0100\n"
"POT-Creation-Date: 2009-12-
30 18
:30+0100\n"
"PO-Revision-Date: 2009-12-
30 18
:34+0100\n"
"Last-Translator: \n"
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
"MIME-Version: 1.0\n"
...
...
@@ -2423,236 +2423,244 @@ msgstr "&3D Visu"
msgid "&Help"
msgstr "&Aide"
#: pcbnew/pcbplot.cpp:1
78
#: pcbnew/pcbplot.cpp:32
7
#: pcbnew/pcbplot.cpp:1
84
#: pcbnew/pcbplot.cpp:32
8
msgid "Plot"
msgstr "Tracer"
#: pcbnew/pcbplot.cpp:2
26
#: pcbnew/pcbplot.cpp:2
32
msgid "Plot Format"
msgstr "Format de tracé"
#: pcbnew/pcbplot.cpp:24
0
#: pcbnew/pcbplot.cpp:24
3
msgid "HPGL Options:"
msgstr "Options HPGL:"
#: pcbnew/pcbplot.cpp:24
5
#: pcbnew/pcbplot.cpp:24
8
msgid "Pen size"
msgstr "Diam plume"
#: pcbnew/pcbplot.cpp:25
2
#: pcbnew/pcbplot.cpp:25
5
msgid "Pen Speed (cm/s)"
msgstr "Vitesse Plume ( cm/s )"
#: pcbnew/pcbplot.cpp:25
6
#: pcbnew/pcbplot.cpp:25
9
msgid "Set pen speed in cm/s"
msgstr "Ajuster Vitesse plume en centimètres par seconde"
#: pcbnew/pcbplot.cpp:2
58
#: pcbnew/pcbplot.cpp:2
61
msgid "Pen ovr"
msgstr "Recouvrement"
#: pcbnew/pcbplot.cpp:26
4
#: pcbnew/pcbplot.cpp:26
7
msgid "Set plot overlay for filling"
msgstr "Ajuste recouvrement des tracés pour les remplissages"
#: pcbnew/pcbplot.cpp:26
6
#: pcbnew/pcbplot.cpp:26
9
msgid "Line width"
msgstr "Epaisseur ligne"
#: pcbnew/pcbplot.cpp:27
2
#: pcbnew/pcbplot.cpp:27
6
msgid "Set lines width used to plot in sketch mode and plot pads outlines on silk screen layers"
msgstr "Ajuste l'épaisseur des lignes utilisées pour tracer en mode contour et pour les contours des pads sur les couches de sérigraphie"
#: pcbnew/pcbplot.cpp:2
77
#: pcbnew/pcbplot.cpp:2
81
msgid "Absolute"
msgstr "Absolu"
#: pcbnew/pcbplot.cpp:2
77
#: pcbnew/pcbplot.cpp:2
81
msgid "Auxiliary axis"
msgstr "Axe Auxiliaire"
#: pcbnew/pcbplot.cpp:28
0
#: pcbnew/pcbplot.cpp:28
4
msgid "Plot Origin"
msgstr "Origine des Coord de Tracé"
#: pcbnew/pcbplot.cpp:30
8
#: pcbnew/pcbplot.cpp:30
9
msgid "X scale adjust"
msgstr "Ajustage Echelle X"
#: pcbnew/pcbplot.cpp:31
1
#: pcbnew/pcbplot.cpp:31
2
msgid "Set X scale adjust for exact scale plotting"
msgstr "Ajuster échelle X pour traçage à l'échelle exacte"
#: pcbnew/pcbplot.cpp:31
5
#: pcbnew/pcbplot.cpp:31
6
msgid "Y scale adjust"
msgstr "Ajustage Echelle Y"
#: pcbnew/pcbplot.cpp:31
8
#: pcbnew/pcbplot.cpp:31
9
msgid "Set Y scale adjust for exact scale plotting"
msgstr "Ajuster échelle Y pour traçage à l'échelle exacte"
#: pcbnew/pcbplot.cpp:32
1
#: pcbnew/pcbplot.cpp:32
2
msgid "Plot negative"
msgstr "Tracé en Négatif"
#: pcbnew/pcbplot.cpp:33
0
#: pcbnew/pcbplot.cpp:33
1
msgid "Save Options"
msgstr "Sauver Options"
#: pcbnew/pcbplot.cpp:33
4
#: pcbnew/pcbplot.cpp:33
5
msgid "Generate drill file"
msgstr "Créer Fichier de perçage"
#: pcbnew/pcbplot.cpp:33
7
#: pcbnew/pcbplot.cpp:33
8
msgid "Close"
msgstr "Fermer"
#: pcbnew/pcbplot.cpp:383
#: pcbnew/pcbplot.cpp:384
msgid "Use Proper Gerber Extensions"
msgstr "Utiliser Extensions Gerber Particulières"
#: pcbnew/pcbplot.cpp:390
msgid "Use Proper Gerber Extensions - .GBL, .GTL, etc..."
msgstr "Utiliser les extensions GERBER specifiques aux couches - .GBL, .GTL, etc..."
#: pcbnew/pcbplot.cpp:397
msgid "Exclude pcb edge layer"
msgstr "Exclure couche contours PCB"
#: pcbnew/pcbplot.cpp:
387
#: pcbnew/pcbplot.cpp:
401
msgid "Exclude contents of the pcb edge layer from all other layers"
msgstr "Exclure les tracés contour PCB des autres couches"
#: pcbnew/pcbplot.cpp:
394
#: pcbnew/pcbplot.cpp:
408
msgid "Print sheet reference"
msgstr "Imprimer cartouche"
#: pcbnew/pcbplot.cpp:4
05
#: pcbnew/pcbplot.cpp:4
19
msgid "Print pads on silkscreen"
msgstr "Pads sur Sérigraphie"
#: pcbnew/pcbplot.cpp:4
13
#: pcbnew/pcbplot.cpp:4
26
msgid "Enable/disable print/plot pads on silkscreen layers"
msgstr "Active/désactive tracé des pastilles sur les couches de sérigraphie"
#: pcbnew/pcbplot.cpp:4
17
#: pcbnew/pcbplot.cpp:4
30
msgid "Always print pads"
msgstr "Toujours tracer pads"
#: pcbnew/pcbplot.cpp:4
23
#: pcbnew/pcbplot.cpp:4
35
msgid "Force print/plot pads on ALL layers"
msgstr "Force le tracé des pastilles sur TOUTES les couches"
#: pcbnew/pcbplot.cpp:4
28
#: pcbnew/pcbplot.cpp:4
40
msgid "Print module value"
msgstr "Imprimer Valeur Module"
#: pcbnew/pcbplot.cpp:4
32
#: pcbnew/pcbplot.cpp:4
44
msgid "Enable/disable print/plot module value on silkscreen layers"
msgstr "Active/désactive le tracé des textes valeurs des modules sur couches de sérigraphie"
#: pcbnew/pcbplot.cpp:4
36
#: pcbnew/pcbplot.cpp:4
48
msgid "Print module reference"
msgstr "Imprimer Référence Module"
#: pcbnew/pcbplot.cpp:4
40
#: pcbnew/pcbplot.cpp:4
52
msgid "Enable/disable print/plot module reference on silkscreen layers"
msgstr "Active/désactive le tracé des textes référence des modules sur couches de sérigraphie"
#: pcbnew/pcbplot.cpp:4
44
#: pcbnew/pcbplot.cpp:4
56
msgid "Print other module texts"
msgstr "Imprimer autres textes module"
#: pcbnew/pcbplot.cpp:4
48
#: pcbnew/pcbplot.cpp:4
60
msgid "Enable/disable print/plot module field texts on silkscreen layers"
msgstr "Active/désactive le tracé des textes des champs des modules sur couches de sérigraphie"
#: pcbnew/pcbplot.cpp:4
53
#: pcbnew/pcbplot.cpp:4
65
msgid "Force print invisible texts"
msgstr "Force tracé textes invisibles"
#: pcbnew/pcbplot.cpp:4
57
#: pcbnew/pcbplot.cpp:4
69
msgid "Force print/plot module invisible texts on silkscreen layers"
msgstr "Force le tracé des textes invisibles sur couches de sérigraphie"
#: pcbnew/pcbplot.cpp:4
62
#: pcbnew/pcbplot.cpp:4
75
msgid "No drill mark"
msgstr "Pas de marque"
#: pcbnew/pcbplot.cpp:4
63
#: pcbnew/pcbplot.cpp:4
76
msgid "Small mark"
msgstr "Petite marque"
#: pcbnew/pcbplot.cpp:4
64
#: pcbnew/pcbplot.cpp:4
77
msgid "Real drill"
msgstr "Perçage réel"
#: pcbnew/pcbplot.cpp:4
68
#: pcbnew/pcbplot.cpp:4
81
msgid "Pads Drill Opt"
msgstr "Options Perçage Pads"
#: pcbnew/pcbplot.cpp:4
77
#: pcbnew/pcbplot.cpp:4
90
msgid "Auto scale"
msgstr "Ech. auto"
#: pcbnew/pcbplot.cpp:4
78
#: pcbnew/pcbplot.cpp:4
91
msgid "Scale 1"
msgstr "Echelle 1"
#: pcbnew/pcbplot.cpp:4
79
#: pcbnew/pcbplot.cpp:4
92
msgid "Scale 1.5"
msgstr "Echelle 1,5"
#: pcbnew/pcbplot.cpp:4
80
#: pcbnew/pcbplot.cpp:4
93
msgid "Scale 2"
msgstr "Echelle 2"
#: pcbnew/pcbplot.cpp:4
81
#: pcbnew/pcbplot.cpp:4
94
msgid "Scale 3"
msgstr "Echelle 3"
#: pcbnew/pcbplot.cpp:4
85
#: pcbnew/pcbplot.cpp:4
98
msgid "Scale Opt"
msgstr "Echelle"
#: pcbnew/pcbplot.cpp:
492
#: pcbnew/pcbplot.cpp:
507
msgid "Line"
msgstr "Ligne"
#: pcbnew/pcbplot.cpp:
492
#: pcbnew/pcbplot.cpp:
507
msgid "Filled"
msgstr "Plein"
#: pcbnew/pcbplot.cpp:
493
#: pcbnew/pcbplot.cpp:
508
msgid "Sketch"
msgstr "Contour"
#: pcbnew/pcbplot.cpp:
495
#: pcbnew/pcbplot.cpp:
511
msgid "Plot Mode"
msgstr "Mode de Tracé"
#: pcbnew/pcbplot.cpp:5
03
#: pcbnew/pcbplot.cpp:5
19
msgid "Plot mirror"
msgstr "Tracé Miroir"
#: pcbnew/pcbplot.cpp:5
09
#: pcbnew/pcbplot.cpp:5
25
msgid "Vias on mask"
msgstr "Vias sur masque"
#: pcbnew/pcbplot.cpp:5
13
#: pcbnew/pcbplot.cpp:5
29
msgid "Print/plot vias on mask layers. They are in this case not protected"
msgstr "Trace vias sur vernis épargne. Elles seront non protégées"
#: pcbnew/pcbplot.cpp:7
62
#: pcbnew/pcbplot.cpp:7
84
msgid "Adobe post script files (.ps)|*.ps"
msgstr "Fichiers Adobe post script (.ps)|*.ps"
#: pcbnew/pcbplot.cpp:7
68
msgid "GERBER photo plot files (.pho
)|*.pho
"
msgstr "Fichiers phot
traçage GERBER (.pho)|*.pho
"
#: pcbnew/pcbplot.cpp:7
90
msgid "GERBER photo plot files (.pho
.gbr)|*.pho;*.gbr
"
msgstr "Fichiers phot
raçage GERBER (.pho .gbr)|*.pho;*.gbr
"
#: pcbnew/pcbplot.cpp:
786
#: pcbnew/pcbplot.cpp:
808
msgid "Warning: Scale option set to a very small value"
msgstr "Attention: option d'échelle ajustée à une valeur très petite"
#: pcbnew/pcbplot.cpp:
789
#: pcbnew/pcbplot.cpp:
811
msgid "Warning: Scale option set to a very large value"
msgstr "Attention: option d'échelle ajustée à une valeur très grande"
#: pcbnew/pcbplot.cpp:
838
#: pcbnew/pcbplot.cpp:
939
msgid "No layer selected"
msgstr "Pas de couche sélectionnée"
...
...
@@ -9710,7 +9718,7 @@ msgstr "Imprimer Tout"
msgid "Current"
msgstr "Courant"
#: eeschema/class_sch_component.cpp:11
03
#: eeschema/class_sch_component.cpp:11
14
msgid "Power symbol"
msgstr "Symbole d'alimentation"
...
...
@@ -11220,105 +11228,105 @@ msgstr "Fichier exécutable ("
msgid "Select Prefered Editor"
msgstr "Sélection Editeur Préféré"
#: kicad/treeprj_frame.cpp:12
3
#: kicad/treeprj_frame.cpp:12
6
msgid "&Run"
msgstr "Exécute&r"
#: kicad/treeprj_frame.cpp:12
4
#: kicad/treeprj_frame.cpp:12
7
msgid "Run the Python Script"
msgstr "Exécuter le Script Python"
#: kicad/treeprj_frame.cpp:13
3
#: kicad/treeprj_frame.cpp:2
08
#: kicad/treeprj_frame.cpp:13
6
#: kicad/treeprj_frame.cpp:2
11
msgid "&Edit in a text editor"
msgstr "Editer avec un éditeur de Texte"
#: kicad/treeprj_frame.cpp:13
4
#: kicad/treeprj_frame.cpp:13
7
msgid "&Open the file in a Text Editor"
msgstr "&Ouvrir le fichier avec un Editeur de texte"
#: kicad/treeprj_frame.cpp:15
1
#: kicad/treeprj_frame.cpp:15
4
msgid "New D&irectory"
msgstr "&Nouveau Répertoire"
#: kicad/treeprj_frame.cpp:15
2
#: kicad/treeprj_frame.cpp:15
5
msgid "Create a New Directory"
msgstr "Créer un nouveau Répertoire"
#: kicad/treeprj_frame.cpp:16
1
#: kicad/treeprj_frame.cpp:16
4
msgid "New P&ython Script"
msgstr "Nouveau Script P&ython"
#: kicad/treeprj_frame.cpp:16
2
#: kicad/treeprj_frame.cpp:16
5
msgid "Create a New Python Script"
msgstr "Créer un nouveau script Python"
#: kicad/treeprj_frame.cpp:17
1
#: kicad/treeprj_frame.cpp:17
4
msgid "New &Text File"
msgstr "Nouveau Fichier &Texte"
#: kicad/treeprj_frame.cpp:17
2
#: kicad/treeprj_frame.cpp:17
5
msgid "Create a New Txt File"
msgstr "Créer un nouveau Fichier texte"
#: kicad/treeprj_frame.cpp:18
0
#: kicad/treeprj_frame.cpp:18
3
msgid "New &File"
msgstr "Nouveau &Fichier"
#: kicad/treeprj_frame.cpp:18
1
#: kicad/treeprj_frame.cpp:18
4
msgid "Create a New File"
msgstr "Créer un nouveau Fichier"
#: kicad/treeprj_frame.cpp:19
5
#: kicad/treeprj_frame.cpp:19
8
msgid "&Rename file"
msgstr "&Renommer fichier"
#: kicad/treeprj_frame.cpp:19
6
#: kicad/treeprj_frame.cpp:
198
#: kicad/treeprj_frame.cpp:19
9
#: kicad/treeprj_frame.cpp:
201
msgid "&Rename directory"
msgstr "&Renommer répertoire"
#: kicad/treeprj_frame.cpp:
197
#: kicad/treeprj_frame.cpp:
200
msgid "Rename file"
msgstr "Renommer fichier"
#: kicad/treeprj_frame.cpp:2
09
#: kicad/treeprj_frame.cpp:2
12
msgid "Open the file in a Text Editor"
msgstr "Ouvrir le fichier avec un Editeur de texte"
#: kicad/treeprj_frame.cpp:2
17
#: kicad/treeprj_frame.cpp:2
20
msgid "&Delete File"
msgstr "&Supprimer Fichier"
#: kicad/treeprj_frame.cpp:2
18
#: kicad/treeprj_frame.cpp:2
21
msgid "&Delete Directory"
msgstr "&Supprimer le Répertoire"
#: kicad/treeprj_frame.cpp:2
19
#: kicad/treeprj_frame.cpp:2
22
msgid "Delete the File"
msgstr "Supprimer le fichier"
#: kicad/treeprj_frame.cpp:22
0
#: kicad/treeprj_frame.cpp:22
3
msgid "&Delete the Directory and its content"
msgstr "Effacer le Répertoire et son contenu"
#: kicad/treeprj_frame.cpp:54
6
#: kicad/treeprj_frame.cpp:54
9
msgid "Create New File"
msgstr "Créer un Nouveau Fichier"
#: kicad/treeprj_frame.cpp:5
47
#: kicad/treeprj_frame.cpp:5
50
msgid "Create New Directory"
msgstr "Créer un nouveau Répertoire"
#: kicad/treeprj_frame.cpp:55
6
#: kicad/treeprj_frame.cpp:55
9
msgid "noname."
msgstr "noname."
#: kicad/treeprj_frame.cpp:108
5
#: kicad/treeprj_frame.cpp:108
8
msgid "Change filename: "
msgstr "Changer Nom Fichier: "
#: kicad/treeprj_frame.cpp:10
87
#: kicad/treeprj_frame.cpp:10
90
msgid "Change filename"
msgstr "Changer Nom Fichier"
...
...
@@ -11360,14 +11368,14 @@ msgid "%d errors while reading Gerber file [%s]"
msgstr "%d erreurs pendant lecture fichier gerber [%s]"
#: gerbview/readgerb.cpp:267
#: gerbview/files.cpp:18
3
#: gerbview/files.cpp:21
6
#: gerbview/files.cpp:18
5
#: gerbview/files.cpp:21
8
#, c-format
msgid "Gerber DCODE files (%s)|*.%s"
msgstr "Fichiers Gerber DCODE (%s)|*.%s"
#: gerbview/readgerb.cpp:272
#: gerbview/files.cpp:1
89
#: gerbview/files.cpp:1
91
msgid "Load GERBER DCODE File"
msgstr "Charger Fichier de DCodes"
...
...
@@ -11384,62 +11392,62 @@ msgid "Not yet available..."
msgstr "non encore disponible"
#: gerbview/files.cpp:114
msgid "Gerber files (.gb
r .gbx .lgr .ger .pho)| .gbr;*.GBR;*.gbx;*.GBX;*.lgr;*.LGR;*.ger;*.GER;*.pho;*.PHO|
"
msgstr "Fichiers Gerber
(.gbr .gbx .lgr .ger .pho)| *.gbr;*.GBR;*.gbx;*.GBX;*.lgr;*.LGR;*.ger;*.GER;*.pho;*.PHO|
"
msgid "Gerber files (.gb
* .gt* .lgr .ger .pho)
"
msgstr "Fichiers Gerber
.gb* .gt* .lgr .ger .pho)
"
#: gerbview/files.cpp:1
18
#: gerbview/files.cpp:1
20
msgid "Top layer (*.GTL)|*.GTL;*.gtl|"
msgstr "Couche composant"
#: gerbview/files.cpp:1
19
#: gerbview/files.cpp:1
21
msgid "Bottom layer (*.GBL)|*.GBL;*.gbl|"
msgstr "Couche cuivre"
#: gerbview/files.cpp:12
0
#: gerbview/files.cpp:12
2
msgid "Bottom solder resist (*.GBS)|*.GBS;*.gbs|"
msgstr "Masque soudure cuivre (*.GBS)|*.GBS;*.gbs|"
#: gerbview/files.cpp:12
1
#: gerbview/files.cpp:12
3
msgid "Top solder resist (*.GTS)|*.GTS;*.gts|"
msgstr "Masque soudure composant (*.GTS)|*.GTS;*.gts|"
#: gerbview/files.cpp:12
2
#: gerbview/files.cpp:12
4
msgid "Bottom overlay (*.GBO)|*.GBO;*.gbo|"
msgstr "
Simple face, CMS coté Cuivre.
"
msgstr "
Bottom overlay (*.GBO)|*.GBO;*.gbo|
"
#: gerbview/files.cpp:12
3
#: gerbview/files.cpp:12
5
msgid "Top overlay (*.GTO)|*.GTO;*.gto|"
msgstr "Top overlay (*.GTO)|*.GTO;*.gto|"
#: gerbview/files.cpp:12
4
#: gerbview/files.cpp:12
6
msgid "Bottom paste (*.GBP)|*.GBP;*.gbp|"
msgstr "
Bottom past
e (*.GBP)|*.GBP;*.gbp|"
msgstr "
Masque pate à souder cuivr
e (*.GBP)|*.GBP;*.gbp|"
#: gerbview/files.cpp:12
5
#: gerbview/files.cpp:12
7
msgid "Top paste (*.GTP)|*.GTP;*.gtp|"
msgstr "Masque pate à souder composant (*.GTP)|*.GTP;*.gtp|"
#: gerbview/files.cpp:12
6
#: gerbview/files.cpp:12
8
msgid "Keep-out layer (*.GKO)|*.GKO;*.gko|"
msgstr "Couche de \"Keep-out\" (*.GKO)|*.GKO;*.gko|"
#: gerbview/files.cpp:12
7
#: gerbview/files.cpp:12
9
msgid "Mechanical layers (*.GMx)|*.GM1;*.gm1;*.GM2;*.gm2;*.GM3;*.gm3|"
msgstr "Couches mécaniques (*.GMx)|*.GM1;*.gm1;*.GM2;*.gm2;*.GM3;*.gm3|"
#: gerbview/files.cpp:1
28
#: gerbview/files.cpp:1
30
msgid "Top Pad Master (*.GPT)|*.GPT;*.gpt|"
msgstr "Top Pad Master (*.GPT)|*.GPT;*.gpt|"
#: gerbview/files.cpp:1
29
#: gerbview/files.cpp:1
31
msgid "Bottom Pad Master (*.GPB)|*.GPB;*.gpb|"
msgstr "Bottom Pad Master (*.GPB)|*.GPB;*.gpb|"
#: gerbview/files.cpp:1
39
#: gerbview/files.cpp:1
41
msgid "Open Gerber File"
msgstr "Ouvrir Fichier Gerber"
#: gerbview/files.cpp:22
0
#: gerbview/files.cpp:22
2
msgid "Save Gerber File"
msgstr "Sauver Fichier Gerber"
...
...
@@ -12842,6 +12850,12 @@ msgstr "Options d'Affichage"
msgid "Page Settings"
msgstr "Ajustage opt Page"
#~ msgid ""
#~ "Gerber files (.gbr .gbx .lgr .ger .pho)| .gbr;*.GBR;*.gbx;*.GBX;*.lgr;*."
#~ "LGR;*.ger;*.GER;*.pho;*.PHO|"
#~ msgstr ""
#~ "Fichiers Gerber (.gbr .gbx .lgr .ger .pho)| *.gbr;*.GBR;*.gbx;*.GBX;*.lgr;"
#~ "*.LGR;*.ger;*.GER;*.pho;*.PHO|"
#~ msgid "&Name:"
#~ msgstr "&Nom:"
#~ msgid "N&umber:"
...
...
kicad/treeprj_frame.cpp
View file @
a1998410
...
...
@@ -40,8 +40,11 @@ const wxChar* s_AllowedExtensionsToList[] =
wxT
(
"^[^$].*
\\
.brd$"
),
wxT
(
"^.*
\\
.net$"
),
wxT
(
"^.*
\\
.txt$"
),
wxT
(
"^.*
\\
.pho$"
),
wxT
(
"^.*
\\
.gbr$"
),
wxT
(
"^.*
\\
.pho$"
),
// Gerber file
wxT
(
"^.*
\\
.gbr$"
),
// Gerber file
wxT
(
"^.*
\\
.gb[alops]$"
),
// Gerber back (or bottom) layer file
wxT
(
"^.*
\\
.gt[alops]$"
),
// Gerber front (or top) layer file
wxT
(
"^.*
\\
.g[0-9]{1,2}$"
),
// Gerber inner layer file
wxT
(
"^.*
\\
.odt$"
),
wxT
(
"^.*
\\
.sxw$"
),
wxT
(
"^.*
\\
.htm$"
),
...
...
pcbnew/pcbplot.cpp
View file @
a1998410
...
...
@@ -14,11 +14,14 @@
#include "worksheet.h"
#include "pcbnew_id.h"
#include "protos.h"
#include "pcbstruct.h"
#include "class_board_design_settings.h"
#define PLOT_DEFAULT_MARGE 300 // mils
/* Keywords to r/w options in config */
#define OPTKEY_EDGELAYER_GERBER wxT( "EdgeLayerGerberOpt" )
#define OPTKEY_GERBER_EXTENSIONS wxT( "GerberOptUseLayersExt" )
#define OPTKEY_XFINESCALE_ADJ wxT( "PlotXFineScaleAdj" )
#define OPTKEY_YFINESCALE_ADJ wxT( "PlotYFineScaleAdj" )
#define OPTKEY_PADS_ON_SILKSCREEN wxT( "PlotPadsOnSilkscreen" )
...
...
@@ -37,12 +40,13 @@ PCB_Plot_Options::PCB_Plot_Options()
Sel_Texte_Divers
=
true
;
DrillShapeOpt
=
PCB_Plot_Options
::
SMALL_DRILL_SHAPE
;
Trace_Mode
=
FILLED
;
Scale
=
1.0
;
ScaleAdjX
=
1.0
;
ScaleAdjY
=
1.0
;
Scale
=
1.0
;
ScaleAdjX
=
1.0
;
ScaleAdjY
=
1.0
;
PlotScaleOpt
=
1
;
}
static
long
s_SelectedLayers
=
LAYER_BACK
|
LAYER_FRONT
|
SILKSCREEN_LAYER_FRONT
|
SILKSCREEN_LAYER_BACK
;
...
...
@@ -69,7 +73,8 @@ enum id_plotps {
ID_PRINT_PAD_ON_SILKSCREEN
,
ID_FORCE_PRINT_PAD
,
ID_CREATE_DRILL_FILE
,
ID_SEL_PLOT_OFFSET_OPTION
ID_SEL_PLOT_OFFSET_OPTION
,
ID_USE_GERBER_EXTENSIONS
};
...
...
@@ -94,6 +99,7 @@ public:
wxCheckBox
*
m_PlotMirorOpt
;
wxCheckBox
*
m_PlotNoViaOnMaskOpt
;
wxCheckBox
*
m_Exclude_Edges_Pcb
;
wxCheckBox
*
m_Use_Gerber_Extensions
;
wxCheckBox
*
m_Plot_Sheet_Ref
;
wxCheckBox
*
m_Plot_Invisible_Text
;
wxCheckBox
*
m_Plot_Text_Value
;
...
...
@@ -110,8 +116,8 @@ public:
WinEDA_DFloatValueCtrl
*
m_FineAdjustXscaleOpt
;
WinEDA_DFloatValueCtrl
*
m_FineAdjustYscaleOpt
;
double
m_XScaleAdjust
;
double
m_YScaleAdjust
;
double
m_XScaleAdjust
;
double
m_YScaleAdjust
;
bool
useA4
()
{
...
...
@@ -130,15 +136,16 @@ public:
// change the A4 to the simple postscript, according to the
// PlotFormat enum
switch
(
radioNdx
)
{
case
3
:
switch
(
radioNdx
)
{
case
3
:
radioNdx
=
PLOT_FORMAT_POST
;
break
;
case
4
:
radioNdx
=
PLOT_FORMAT_DXF
;
break
;
}
break
;
case
4
:
radioNdx
=
PLOT_FORMAT_DXF
;
break
;
}
return
PlotFormat
(
radioNdx
);
}
...
...
@@ -160,14 +167,14 @@ private:
};
BEGIN_EVENT_TABLE
(
WinEDA_PlotFrame
,
wxDialog
)
EVT_INIT_DIALOG
(
WinEDA_PlotFrame
::
OnInitDialog
)
EVT_CLOSE
(
WinEDA_PlotFrame
::
OnClose
)
EVT_BUTTON
(
wxID_CANCEL
,
WinEDA_PlotFrame
::
OnQuit
)
EVT_BUTTON
(
ID_EXEC_PLOT
,
WinEDA_PlotFrame
::
Plot
)
EVT_BUTTON
(
ID_SAVE_OPT_PLOT
,
WinEDA_PlotFrame
::
SaveOptPlot
)
EVT_BUTTON
(
ID_CREATE_DRILL_FILE
,
WinEDA_PlotFrame
::
CreateDrillFile
)
EVT_RADIOBOX
(
ID_SEL_PLOT_FORMAT
,
WinEDA_PlotFrame
::
SetCommands
)
EVT_RADIOBOX
(
ID_SCALE_OPT
,
WinEDA_PlotFrame
::
OnSetScaleOpt
)
EVT_INIT_DIALOG
(
WinEDA_PlotFrame
::
OnInitDialog
)
EVT_CLOSE
(
WinEDA_PlotFrame
::
OnClose
)
EVT_BUTTON
(
wxID_CANCEL
,
WinEDA_PlotFrame
::
OnQuit
)
EVT_BUTTON
(
ID_EXEC_PLOT
,
WinEDA_PlotFrame
::
Plot
)
EVT_BUTTON
(
ID_SAVE_OPT_PLOT
,
WinEDA_PlotFrame
::
SaveOptPlot
)
EVT_BUTTON
(
ID_CREATE_DRILL_FILE
,
WinEDA_PlotFrame
::
CreateDrillFile
)
EVT_RADIOBOX
(
ID_SEL_PLOT_FORMAT
,
WinEDA_PlotFrame
::
SetCommands
)
EVT_RADIOBOX
(
ID_SCALE_OPT
,
WinEDA_PlotFrame
::
OnSetScaleOpt
)
END_EVENT_TABLE
()
...
...
@@ -228,12 +235,9 @@ void WinEDA_PlotFrame::OnInitDialog( wxInitDialogEvent& event )
5
,
fmtmsg
,
1
,
wxRA_SPECIFY_COLS
);
MidRightBoxSizer
->
Add
(
m_PlotFormatOpt
,
0
,
wxGROW
|
wxALL
,
5
);
if
(
config
)
{
config
->
Read
(
OPTKEY_OUTPUT_FORMAT
,
&
g_pcb_plot_options
.
PlotFormat
);
config
->
Read
(
OPTKEY_PLOT_LINEWIDTH_VALUE
,
&
g_pcb_plot_options
.
PlotLine_Width
);
}
config
->
Read
(
OPTKEY_OUTPUT_FORMAT
,
&
g_pcb_plot_options
.
PlotFormat
);
config
->
Read
(
OPTKEY_PLOT_LINEWIDTH_VALUE
,
&
g_pcb_plot_options
.
PlotLine_Width
);
m_PlotFormatOpt
->
SetSelection
(
g_pcb_plot_options
.
PlotFormat
);
...
...
@@ -269,7 +273,8 @@ void WinEDA_PlotFrame::OnInitDialog( wxInitDialogEvent& event )
MidRightBoxSizer
,
PCB_INTERNAL_UNIT
);
m_LinesWidth
->
SetToolTip
(
_
(
"Set lines width used to plot in sketch \
m_LinesWidth
->
SetToolTip
(
_
(
"Set lines width used to plot in sketch \
mode and plot pads outlines on silk screen layers"
)
);
// Create the right column commands
...
...
@@ -292,12 +297,9 @@ mode and plot pads outlines on silk screen layers" ) );
// Create scale adjust option
m_XScaleAdjust
=
m_YScaleAdjust
=
1.0
;
if
(
config
)
{
config
->
Read
(
OPTKEY_EDGELAYER_GERBER
,
&
g_pcb_plot_options
.
Exclude_Edges_Pcb
);
config
->
Read
(
OPTKEY_XFINESCALE_ADJ
,
&
m_XScaleAdjust
);
config
->
Read
(
OPTKEY_YFINESCALE_ADJ
,
&
m_YScaleAdjust
);
}
config
->
Read
(
OPTKEY_EDGELAYER_GERBER
,
&
g_pcb_plot_options
.
Exclude_Edges_Pcb
);
config
->
Read
(
OPTKEY_XFINESCALE_ADJ
,
&
m_XScaleAdjust
);
config
->
Read
(
OPTKEY_YFINESCALE_ADJ
,
&
m_YScaleAdjust
);
// Test for a reasonable scale value. Set to 1 if problem
if
(
m_XScaleAdjust
<
MIN_SCALE
||
m_YScaleAdjust
<
MIN_SCALE
...
...
@@ -331,7 +333,7 @@ scale plotting" ) );
RightBoxSizer
->
Add
(
button
,
0
,
wxGROW
|
wxALL
,
5
);
button
=
new
wxButton
(
this
,
ID_CREATE_DRILL_FILE
,
_
(
"Generate drill file"
)
);
_
(
"Generate drill file"
)
);
RightBoxSizer
->
Add
(
button
,
0
,
wxGROW
|
wxALL
,
5
);
button
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Close"
)
);
...
...
@@ -341,7 +343,7 @@ scale plotting" ) );
wxBoxSizer
*
OneColumnLayerBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
LayersBoxSizer
->
Add
(
OneColumnLayerBoxSizer
,
0
,
wxGROW
|
wxALL
,
5
);
int
mask
=
1
;
int
mask
=
1
;
for
(
int
layer
=
0
;
layer
<
NB_LAYERS
;
layer
++
,
mask
<<=
1
)
{
...
...
@@ -376,11 +378,33 @@ scale plotting" ) );
}
}
// Disable checkboxes if the corresponding layer is not enabled
for
(
int
layer
=
0
;
layer
<
NB_LAYERS
;
layer
++
,
mask
<<=
1
)
{
if
(
!
board
->
m_BoardSettings
->
IsLayerEnabled
(
layer
)
)
{
m_BoxSelectLayer
[
layer
]
->
Enable
(
false
);
m_BoxSelectLayer
[
layer
]
->
SetValue
(
false
);
}
}
// Option for using proper Gerber extensions
m_Use_Gerber_Extensions
=
new
wxCheckBox
(
this
,
ID_USE_GERBER_EXTENSIONS
,
_
(
"Use Proper Gerber Extensions"
)
);
long
ltmp
;
config
->
Read
(
OPTKEY_GERBER_EXTENSIONS
,
&
ltmp
);
m_Use_Gerber_Extensions
->
SetValue
(
ltmp
);
m_Use_Gerber_Extensions
->
SetToolTip
(
_
(
"Use Proper Gerber Extensions - .GBL, .GTL, etc..."
)
);
LeftBoxSizer
->
Add
(
m_Use_Gerber_Extensions
,
0
,
wxGROW
|
wxALL
,
1
);
// Option for excluding contents of "Edges Pcb" layer
m_Exclude_Edges_Pcb
=
new
wxCheckBox
(
this
,
ID_EXCLUDE_EDGES_PCB
,
_
(
"Exclude pcb edge layer"
)
);
ID_EXCLUDE_EDGES_PCB
,
_
(
"Exclude pcb edge layer"
)
);
m_Exclude_Edges_Pcb
->
SetValue
(
g_pcb_plot_options
.
Exclude_Edges_Pcb
);
m_Exclude_Edges_Pcb
->
SetToolTip
(
...
...
@@ -391,7 +415,7 @@ scale plotting" ) );
if
(
m_Parent
->
m_Print_Sheet_Ref
)
{
m_Plot_Sheet_Ref
=
new
wxCheckBox
(
this
,
ID_PRINT_REF
,
_
(
"Print sheet reference"
)
);
_
(
"Print sheet reference"
)
);
m_Plot_Sheet_Ref
->
SetValue
(
g_pcb_plot_options
.
Plot_Frame_Ref
);
LeftBoxSizer
->
Add
(
m_Plot_Sheet_Ref
,
0
,
wxGROW
|
wxALL
,
1
);
...
...
@@ -401,12 +425,11 @@ scale plotting" ) );
// Option to plot pads on silkscreen layers or all layers
m_Plot_Pads_on_Silkscreen
=
new
wxCheckBox
(
this
,
ID_PRINT_PAD_ON_SILKSCREEN
,
_
(
"Print pads on silkscreen"
)
);
ID_PRINT_PAD_ON_SILKSCREEN
,
_
(
"Print pads on silkscreen"
)
);
if
(
config
)
config
->
Read
(
OPTKEY_PADS_ON_SILKSCREEN
,
&
g_pcb_plot_options
.
PlotPadsOnSilkLayer
);
config
->
Read
(
OPTKEY_PADS_ON_SILKSCREEN
,
&
g_pcb_plot_options
.
PlotPadsOnSilkLayer
);
m_Plot_Pads_on_Silkscreen
->
SetValue
(
&
g_pcb_plot_options
.
PlotPadsOnSilkLayer
);
m_Plot_Pads_on_Silkscreen
->
SetToolTip
(
...
...
@@ -414,10 +437,9 @@ scale plotting" ) );
LeftBoxSizer
->
Add
(
m_Plot_Pads_on_Silkscreen
,
0
,
wxGROW
|
wxALL
,
1
);
m_Force_Plot_Pads
=
new
wxCheckBox
(
this
,
ID_FORCE_PRINT_PAD
,
_
(
"Always print pads"
)
);
if
(
config
)
config
->
Read
(
OPTKEY_ALWAYS_PRINT_PADS
,
&
g_pcb_plot_options
.
Plot_Pads_All_Layers
);
_
(
"Always print pads"
)
);
config
->
Read
(
OPTKEY_ALWAYS_PRINT_PADS
,
&
g_pcb_plot_options
.
Plot_Pads_All_Layers
);
m_Force_Plot_Pads
->
SetValue
(
g_pcb_plot_options
.
Plot_Pads_All_Layers
);
m_Force_Plot_Pads
->
SetToolTip
(
_
(
"Force print/plot pads on ALL layers"
)
);
...
...
@@ -425,7 +447,7 @@ scale plotting" ) );
// Options to plot texts on footprints
m_Plot_Text_Value
=
new
wxCheckBox
(
this
,
ID_PRINT_VALUE
,
_
(
"Print module value"
)
);
_
(
"Print module value"
)
);
m_Plot_Text_Value
->
SetValue
(
g_pcb_plot_options
.
Sel_Texte_Valeur
);
m_Plot_Text_Value
->
SetToolTip
(
...
...
@@ -433,7 +455,7 @@ scale plotting" ) );
LeftBoxSizer
->
Add
(
m_Plot_Text_Value
,
0
,
wxGROW
|
wxALL
,
1
);
m_Plot_Text_Ref
=
new
wxCheckBox
(
this
,
ID_PRINT_REF
,
_
(
"Print module reference"
)
);
_
(
"Print module reference"
)
);
m_Plot_Text_Ref
->
SetValue
(
g_pcb_plot_options
.
Sel_Texte_Reference
);
m_Plot_Text_Ref
->
SetToolTip
(
...
...
@@ -441,7 +463,7 @@ scale plotting" ) );
LeftBoxSizer
->
Add
(
m_Plot_Text_Ref
,
0
,
wxGROW
|
wxALL
,
1
);
m_Plot_Text_Div
=
new
wxCheckBox
(
this
,
ID_PRINT_MODULE_TEXTS
,
_
(
"Print other module texts"
)
);
_
(
"Print other module texts"
)
);
m_Plot_Text_Div
->
SetValue
(
g_pcb_plot_options
.
Sel_Texte_Divers
);
m_Plot_Text_Div
->
SetToolTip
(
...
...
@@ -449,8 +471,8 @@ scale plotting" ) );
LeftBoxSizer
->
Add
(
m_Plot_Text_Div
,
0
,
wxGROW
|
wxALL
,
1
);
m_Plot_Invisible_Text
=
new
wxCheckBox
(
this
,
ID_FORCE_PRINT_INVISIBLE_TEXT
,
_
(
"Force print invisible texts"
)
);
ID_FORCE_PRINT_INVISIBLE_TEXT
,
_
(
"Force print invisible texts"
)
);
m_Plot_Invisible_Text
->
SetValue
(
g_pcb_plot_options
.
Sel_Texte_Invisible
);
m_Plot_Invisible_Text
->
SetToolTip
(
...
...
@@ -458,7 +480,8 @@ scale plotting" ) );
LeftBoxSizer
->
Add
(
m_Plot_Invisible_Text
,
0
,
wxGROW
|
wxALL
,
1
);
static
const
wxString
drillmsg
[
3
]
=
{
static
const
wxString
drillmsg
[
3
]
=
{
_
(
"No drill mark"
),
_
(
"Small mark"
),
_
(
"Real drill"
)
...
...
@@ -489,8 +512,11 @@ scale plotting" ) );
m_Scale_Opt
->
SetSelection
(
g_pcb_plot_options
.
PlotScaleOpt
);
MidLeftBoxSizer
->
Add
(
m_Scale_Opt
,
0
,
wxGROW
|
wxALL
,
5
);
static
const
wxString
list_opt3
[
3
]
=
{
_
(
"Line"
),
_
(
"Filled"
),
_
(
"Sketch"
)
};
static
const
wxString
list_opt3
[
3
]
=
{
_
(
"Line"
),
_
(
"Filled"
),
_
(
"Sketch"
)
};
m_PlotModeOpt
=
new
wxRadioBox
(
this
,
ID_PLOT_MODE_OPT
,
_
(
"Plot Mode"
),
wxDefaultPosition
,
wxDefaultSize
,
...
...
@@ -500,13 +526,13 @@ scale plotting" ) );
MidLeftBoxSizer
->
Add
(
m_PlotModeOpt
,
0
,
wxGROW
|
wxALL
,
5
);
m_PlotMirorOpt
=
new
wxCheckBox
(
this
,
ID_MIROR_OPT
,
_
(
"Plot mirror"
)
);
_
(
"Plot mirror"
)
);
m_PlotMirorOpt
->
SetValue
(
g_pcb_plot_options
.
Plot_Set_MIROIR
);
MidLeftBoxSizer
->
Add
(
m_PlotMirorOpt
,
0
,
wxGROW
|
wxALL
,
5
);
m_PlotNoViaOnMaskOpt
=
new
wxCheckBox
(
this
,
ID_MASKVIA_OPT
,
_
(
"Vias on mask"
)
);
_
(
"Vias on mask"
)
);
m_PlotNoViaOnMaskOpt
->
SetValue
(
g_pcb_plot_options
.
DrawViaOnMaskLayer
);
m_PlotNoViaOnMaskOpt
->
SetToolTip
(
...
...
@@ -526,7 +552,7 @@ scale plotting" ) );
}
void
WinEDA_PlotFrame
::
OnQuit
(
wxCommandEvent
&
WXUNUSED
(
event
)
)
void
WinEDA_PlotFrame
::
OnQuit
(
wxCommandEvent
&
WXUNUSED
(
event
)
)
{
Close
(
true
);
// true is to force the frame to close
}
...
...
@@ -543,16 +569,19 @@ void WinEDA_PlotFrame::CreateDrillFile( wxCommandEvent& event )
(
(
WinEDA_PcbFrame
*
)
m_Parent
)
->
InstallDrillFrame
(
event
);
}
void
WinEDA_PlotFrame
::
OnSetScaleOpt
(
wxCommandEvent
&
event
)
{
/* Disable sheet reference for scale != 1:1 */
bool
scale1
=
(
m_Scale_Opt
->
GetSelection
()
==
1
);
m_Plot_Sheet_Ref
->
Enable
(
scale1
);
if
(
!
scale1
)
if
(
!
scale1
)
m_Plot_Sheet_Ref
->
SetValue
(
false
);
}
void
WinEDA_PlotFrame
::
SetCommands
(
wxCommandEvent
&
event
)
{
int
format
=
getFormat
();
...
...
@@ -572,6 +601,7 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event )
m_HPGLPenOverlayOpt
->
Enable
(
false
);
m_Exclude_Edges_Pcb
->
SetValue
(
false
);
m_Exclude_Edges_Pcb
->
Enable
(
false
);
m_Use_Gerber_Extensions
->
Enable
(
false
);
m_Scale_Opt
->
Enable
(
true
);
m_FineAdjustXscaleOpt
->
Enable
(
true
);
m_FineAdjustYscaleOpt
->
Enable
(
true
);
...
...
@@ -591,6 +621,7 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event )
m_HPGLPenSpeedOpt
->
Enable
(
false
);
m_HPGLPenOverlayOpt
->
Enable
(
false
);
m_Exclude_Edges_Pcb
->
Enable
(
true
);
m_Use_Gerber_Extensions
->
Enable
(
true
);
m_Scale_Opt
->
SetSelection
(
1
);
m_Scale_Opt
->
Enable
(
false
);
m_FineAdjustXscaleOpt
->
Enable
(
false
);
...
...
@@ -611,6 +642,7 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event )
m_HPGLPenOverlayOpt
->
Enable
(
true
);
m_Exclude_Edges_Pcb
->
SetValue
(
false
);
m_Exclude_Edges_Pcb
->
Enable
(
false
);
m_Use_Gerber_Extensions
->
Enable
(
false
);
m_Scale_Opt
->
Enable
(
true
);
m_FineAdjustXscaleOpt
->
Enable
(
false
);
m_FineAdjustYscaleOpt
->
Enable
(
false
);
...
...
@@ -631,6 +663,7 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event )
m_HPGLPenOverlayOpt
->
Enable
(
false
);
m_Exclude_Edges_Pcb
->
SetValue
(
false
);
m_Exclude_Edges_Pcb
->
Enable
(
false
);
m_Use_Gerber_Extensions
->
Enable
(
false
);
m_Scale_Opt
->
Enable
(
false
);
m_Scale_Opt
->
SetSelection
(
1
);
m_FineAdjustXscaleOpt
->
Enable
(
false
);
...
...
@@ -670,7 +703,7 @@ void WinEDA_PlotFrame::SaveOptPlot( wxCommandEvent& event )
g_pcb_plot_options
.
PlotOrient
=
PLOT_MIROIR
;
else
g_pcb_plot_options
.
PlotOrient
=
0
;
g_pcb_plot_options
.
Trace_Mode
=
(
GRTraceMode
)
m_PlotModeOpt
->
GetSelection
();
g_pcb_plot_options
.
Trace_Mode
=
(
GRTraceMode
)
m_PlotModeOpt
->
GetSelection
();
g_pcb_plot_options
.
DrawViaOnMaskLayer
=
m_PlotNoViaOnMaskOpt
->
GetValue
();
g_pcb_plot_options
.
HPGL_Pen_Diam
=
m_HPGLPenSizeOpt
->
GetValue
();
...
...
@@ -683,28 +716,27 @@ void WinEDA_PlotFrame::SaveOptPlot( wxCommandEvent& event )
wxConfig
*
config
=
wxGetApp
().
m_EDA_Config
;
if
(
config
)
config
->
Write
(
OPTKEY_EDGELAYER_GERBER
,
g_pcb_plot_options
.
Exclude_Edges_Pcb
);
config
->
Write
(
OPTKEY_GERBER_EXTENSIONS
,
m_Use_Gerber_Extensions
->
GetValue
()
);
config
->
Write
(
OPTKEY_XFINESCALE_ADJ
,
m_XScaleAdjust
);
config
->
Write
(
OPTKEY_YFINESCALE_ADJ
,
m_YScaleAdjust
);
config
->
Write
(
OPTKEY_PADS_ON_SILKSCREEN
,
g_pcb_plot_options
.
PlotPadsOnSilkLayer
);
config
->
Write
(
OPTKEY_ALWAYS_PRINT_PADS
,
g_pcb_plot_options
.
Plot_Pads_All_Layers
);
int
formatNdx
=
m_PlotFormatOpt
->
GetSelection
();
config
->
Write
(
OPTKEY_OUTPUT_FORMAT
,
formatNdx
);
config
->
Write
(
OPTKEY_PLOT_LINEWIDTH_VALUE
,
g_pcb_plot_options
.
PlotLine_Width
);
wxString
layerKey
;
for
(
int
layer
=
0
;
layer
<
NB_LAYERS
;
++
layer
)
{
config
->
Write
(
OPTKEY_EDGELAYER_GERBER
,
g_pcb_plot_options
.
Exclude_Edges_Pcb
);
config
->
Write
(
OPTKEY_XFINESCALE_ADJ
,
m_XScaleAdjust
);
config
->
Write
(
OPTKEY_YFINESCALE_ADJ
,
m_YScaleAdjust
);
config
->
Write
(
OPTKEY_PADS_ON_SILKSCREEN
,
g_pcb_plot_options
.
PlotPadsOnSilkLayer
);
config
->
Write
(
OPTKEY_ALWAYS_PRINT_PADS
,
g_pcb_plot_options
.
Plot_Pads_All_Layers
);
int
formatNdx
=
m_PlotFormatOpt
->
GetSelection
();
config
->
Write
(
OPTKEY_OUTPUT_FORMAT
,
formatNdx
);
config
->
Write
(
OPTKEY_PLOT_LINEWIDTH_VALUE
,
g_pcb_plot_options
.
PlotLine_Width
);
wxString
layerKey
;
for
(
int
layer
=
0
;
layer
<
NB_LAYERS
;
++
layer
)
{
layerKey
.
Printf
(
OPTKEY_LAYERBASE
,
layer
);
config
->
Write
(
layerKey
,
m_BoxSelectLayer
[
layer
]
->
IsChecked
()
);
}
layerKey
.
Printf
(
OPTKEY_LAYERBASE
,
layer
);
config
->
Write
(
layerKey
,
m_BoxSelectLayer
[
layer
]
->
IsChecked
()
);
}
g_pcb_plot_options
.
Plot_PS_Negative
=
m_Plot_PS_Negative
->
GetValue
();
...
...
@@ -764,8 +796,8 @@ void WinEDA_PlotFrame::Plot( wxCommandEvent& event )
case
PLOT_FORMAT_GERBER
:
g_pcb_plot_options
.
Scale
=
1.0
;
// No scale option allowed in gerber format
ext
=
wxT
(
"pho"
);
wildcard
=
_
(
"GERBER photo plot files (.pho
)|*.pho
"
);
ext
=
wxT
(
"pho"
);
wildcard
=
_
(
"GERBER photo plot files (.pho
.gbr)|*.pho;*.gbr
"
);
break
;
case
PLOT_FORMAT_HPGL
:
...
...
@@ -783,10 +815,10 @@ void WinEDA_PlotFrame::Plot( wxCommandEvent& event )
// Test for a reasonable scale value
if
(
g_pcb_plot_options
.
Scale
<
MIN_SCALE
)
DisplayInfoMessage
(
this
,
_
(
"Warning: Scale option set to a very small value"
)
);
_
(
"Warning: Scale option set to a very small value"
)
);
if
(
g_pcb_plot_options
.
Scale
>
MAX_SCALE
)
DisplayInfoMessage
(
this
,
_
(
"Warning: Scale option set to a very large value"
)
);
_
(
"Warning: Scale option set to a very large value"
)
);
int
mask
=
1
;
s_SelectedLayers
=
0
;
...
...
@@ -802,9 +834,90 @@ void WinEDA_PlotFrame::Plot( wxCommandEvent& event )
fn
=
m_Parent
->
GetScreen
()
->
m_FileName
;
// Create file name.
fn
.
SetName
(
fn
.
GetName
()
+
wxT
(
"-"
)
+
board
->
GetLayerName
(
layer_to_plot
)
);
fn
.
SetExt
(
ext
);
wxString
layername
=
board
->
GetLayerName
(
layer_to_plot
);
layername
.
Trim
(
true
);
layername
.
Trim
(
false
);
// remove leading and trailing spaces if any
fn
.
SetName
(
fn
.
GetName
()
+
wxT
(
"-"
)
+
layername
);
// Use Gerber Extensions based on layer number
// (See http://en.wikipedia.org/wiki/Gerber_File)
if
(
(
format
==
PLOT_FORMAT_GERBER
)
&&
m_Use_Gerber_Extensions
->
GetValue
()
)
{
switch
(
layer_to_plot
)
{
case
LAYER_N_FRONT
:
fn
.
SetExt
(
wxT
(
"gtl"
)
);
break
;
case
LAYER_N_2
:
case
LAYER_N_3
:
case
LAYER_N_4
:
case
LAYER_N_5
:
case
LAYER_N_6
:
case
LAYER_N_7
:
case
LAYER_N_8
:
case
LAYER_N_9
:
case
LAYER_N_10
:
case
LAYER_N_11
:
case
LAYER_N_12
:
case
LAYER_N_13
:
case
LAYER_N_14
:
case
LAYER_N_15
:
// TODO: use g1 to gxx according to the
// new internal layers designation
// (1 is the first internal layer from the front layer)
fn
.
SetExt
(
wxT
(
"gbr"
)
);
break
;
case
LAYER_N_BACK
:
fn
.
SetExt
(
wxT
(
"gbl"
)
);
break
;
case
ADHESIVE_N_BACK
:
fn
.
SetExt
(
wxT
(
"gba"
)
);
break
;
case
ADHESIVE_N_FRONT
:
fn
.
SetExt
(
wxT
(
"gta"
)
);
break
;
case
SOLDERPASTE_N_BACK
:
fn
.
SetExt
(
wxT
(
"gbp"
)
);
break
;
case
SOLDERPASTE_N_FRONT
:
fn
.
SetExt
(
wxT
(
"gtp"
)
);
break
;
case
SILKSCREEN_N_BACK
:
fn
.
SetExt
(
wxT
(
"gbo"
)
);
break
;
case
SILKSCREEN_N_FRONT
:
fn
.
SetExt
(
wxT
(
"gto"
)
);
break
;
case
SOLDERMASK_N_BACK
:
fn
.
SetExt
(
wxT
(
"gbs"
)
);
break
;
case
SOLDERMASK_N_FRONT
:
fn
.
SetExt
(
wxT
(
"gts"
)
);
break
;
case
DRAW_N
:
case
COMMENT_N
:
case
ECO1_N
:
case
ECO2_N
:
case
EDGE_N
:
fn
.
SetExt
(
wxT
(
"gbr"
)
);
break
;
}
}
else
{
fn
.
SetExt
(
ext
);
}
switch
(
format
)
{
...
...
@@ -816,7 +929,7 @@ void WinEDA_PlotFrame::Plot( wxCommandEvent& event )
case
PLOT_FORMAT_GERBER
:
m_Parent
->
Genere_GERBER
(
fn
.
GetFullPath
(),
layer_to_plot
,
s_PlotOriginIsAuxAxis
,
g_pcb_plot_options
.
Trace_Mode
);
g_pcb_plot_options
.
Trace_Mode
);
break
;
case
PLOT_FORMAT_HPGL
:
...
...
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