Some enhancements and fixes. (see changelog)
This commit is contained in:
parent
cacb22252c
commit
a1998410fc
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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() );
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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|" );
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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 */
|
||||
|
|
Binary file not shown.
|
@ -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:178
|
||||
#: pcbnew/pcbplot.cpp:327
|
||||
#: pcbnew/pcbplot.cpp:184
|
||||
#: pcbnew/pcbplot.cpp:328
|
||||
msgid "Plot"
|
||||
msgstr "Tracer"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:226
|
||||
#: pcbnew/pcbplot.cpp:232
|
||||
msgid "Plot Format"
|
||||
msgstr "Format de tracé"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:240
|
||||
#: pcbnew/pcbplot.cpp:243
|
||||
msgid "HPGL Options:"
|
||||
msgstr "Options HPGL:"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:245
|
||||
#: pcbnew/pcbplot.cpp:248
|
||||
msgid "Pen size"
|
||||
msgstr "Diam plume"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:252
|
||||
#: pcbnew/pcbplot.cpp:255
|
||||
msgid "Pen Speed (cm/s)"
|
||||
msgstr "Vitesse Plume ( cm/s )"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:256
|
||||
#: pcbnew/pcbplot.cpp:259
|
||||
msgid "Set pen speed in cm/s"
|
||||
msgstr "Ajuster Vitesse plume en centimètres par seconde"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:258
|
||||
#: pcbnew/pcbplot.cpp:261
|
||||
msgid "Pen ovr"
|
||||
msgstr "Recouvrement"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:264
|
||||
#: pcbnew/pcbplot.cpp:267
|
||||
msgid "Set plot overlay for filling"
|
||||
msgstr "Ajuste recouvrement des tracés pour les remplissages"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:266
|
||||
#: pcbnew/pcbplot.cpp:269
|
||||
msgid "Line width"
|
||||
msgstr "Epaisseur ligne"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:272
|
||||
#: pcbnew/pcbplot.cpp:276
|
||||
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:277
|
||||
#: pcbnew/pcbplot.cpp:281
|
||||
msgid "Absolute"
|
||||
msgstr "Absolu"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:277
|
||||
#: pcbnew/pcbplot.cpp:281
|
||||
msgid "Auxiliary axis"
|
||||
msgstr "Axe Auxiliaire"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:280
|
||||
#: pcbnew/pcbplot.cpp:284
|
||||
msgid "Plot Origin"
|
||||
msgstr "Origine des Coord de Tracé"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:308
|
||||
#: pcbnew/pcbplot.cpp:309
|
||||
msgid "X scale adjust"
|
||||
msgstr "Ajustage Echelle X"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:311
|
||||
#: pcbnew/pcbplot.cpp:312
|
||||
msgid "Set X scale adjust for exact scale plotting"
|
||||
msgstr "Ajuster échelle X pour traçage à l'échelle exacte"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:315
|
||||
#: pcbnew/pcbplot.cpp:316
|
||||
msgid "Y scale adjust"
|
||||
msgstr "Ajustage Echelle Y"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:318
|
||||
#: pcbnew/pcbplot.cpp:319
|
||||
msgid "Set Y scale adjust for exact scale plotting"
|
||||
msgstr "Ajuster échelle Y pour traçage à l'échelle exacte"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:321
|
||||
#: pcbnew/pcbplot.cpp:322
|
||||
msgid "Plot negative"
|
||||
msgstr "Tracé en Négatif"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:330
|
||||
#: pcbnew/pcbplot.cpp:331
|
||||
msgid "Save Options"
|
||||
msgstr "Sauver Options"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:334
|
||||
#: pcbnew/pcbplot.cpp:335
|
||||
msgid "Generate drill file"
|
||||
msgstr "Créer Fichier de perçage"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:337
|
||||
#: pcbnew/pcbplot.cpp:338
|
||||
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:405
|
||||
#: pcbnew/pcbplot.cpp:419
|
||||
msgid "Print pads on silkscreen"
|
||||
msgstr "Pads sur Sérigraphie"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:413
|
||||
#: pcbnew/pcbplot.cpp:426
|
||||
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:417
|
||||
#: pcbnew/pcbplot.cpp:430
|
||||
msgid "Always print pads"
|
||||
msgstr "Toujours tracer pads"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:423
|
||||
#: pcbnew/pcbplot.cpp:435
|
||||
msgid "Force print/plot pads on ALL layers"
|
||||
msgstr "Force le tracé des pastilles sur TOUTES les couches"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:428
|
||||
#: pcbnew/pcbplot.cpp:440
|
||||
msgid "Print module value"
|
||||
msgstr "Imprimer Valeur Module"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:432
|
||||
#: pcbnew/pcbplot.cpp:444
|
||||
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:436
|
||||
#: pcbnew/pcbplot.cpp:448
|
||||
msgid "Print module reference"
|
||||
msgstr "Imprimer Référence Module"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:440
|
||||
#: pcbnew/pcbplot.cpp:452
|
||||
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:444
|
||||
#: pcbnew/pcbplot.cpp:456
|
||||
msgid "Print other module texts"
|
||||
msgstr "Imprimer autres textes module"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:448
|
||||
#: pcbnew/pcbplot.cpp:460
|
||||
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:453
|
||||
#: pcbnew/pcbplot.cpp:465
|
||||
msgid "Force print invisible texts"
|
||||
msgstr "Force tracé textes invisibles"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:457
|
||||
#: pcbnew/pcbplot.cpp:469
|
||||
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:462
|
||||
#: pcbnew/pcbplot.cpp:475
|
||||
msgid "No drill mark"
|
||||
msgstr "Pas de marque"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:463
|
||||
#: pcbnew/pcbplot.cpp:476
|
||||
msgid "Small mark"
|
||||
msgstr "Petite marque"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:464
|
||||
#: pcbnew/pcbplot.cpp:477
|
||||
msgid "Real drill"
|
||||
msgstr "Perçage réel"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:468
|
||||
#: pcbnew/pcbplot.cpp:481
|
||||
msgid "Pads Drill Opt"
|
||||
msgstr "Options Perçage Pads"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:477
|
||||
#: pcbnew/pcbplot.cpp:490
|
||||
msgid "Auto scale"
|
||||
msgstr "Ech. auto"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:478
|
||||
#: pcbnew/pcbplot.cpp:491
|
||||
msgid "Scale 1"
|
||||
msgstr "Echelle 1"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:479
|
||||
#: pcbnew/pcbplot.cpp:492
|
||||
msgid "Scale 1.5"
|
||||
msgstr "Echelle 1,5"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:480
|
||||
#: pcbnew/pcbplot.cpp:493
|
||||
msgid "Scale 2"
|
||||
msgstr "Echelle 2"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:481
|
||||
#: pcbnew/pcbplot.cpp:494
|
||||
msgid "Scale 3"
|
||||
msgstr "Echelle 3"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:485
|
||||
#: pcbnew/pcbplot.cpp:498
|
||||
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:503
|
||||
#: pcbnew/pcbplot.cpp:519
|
||||
msgid "Plot mirror"
|
||||
msgstr "Tracé Miroir"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:509
|
||||
#: pcbnew/pcbplot.cpp:525
|
||||
msgid "Vias on mask"
|
||||
msgstr "Vias sur masque"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:513
|
||||
#: pcbnew/pcbplot.cpp:529
|
||||
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:762
|
||||
#: pcbnew/pcbplot.cpp:784
|
||||
msgid "Adobe post script files (.ps)|*.ps"
|
||||
msgstr "Fichiers Adobe post script (.ps)|*.ps"
|
||||
|
||||
#: pcbnew/pcbplot.cpp:768
|
||||
msgid "GERBER photo plot files (.pho)|*.pho"
|
||||
msgstr "Fichiers phottraçage GERBER (.pho)|*.pho"
|
||||
#: pcbnew/pcbplot.cpp:790
|
||||
msgid "GERBER photo plot files (.pho .gbr)|*.pho;*.gbr"
|
||||
msgstr "Fichiers photraç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:1103
|
||||
#: eeschema/class_sch_component.cpp:1114
|
||||
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:123
|
||||
#: kicad/treeprj_frame.cpp:126
|
||||
msgid "&Run"
|
||||
msgstr "Exécute&r"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:124
|
||||
#: kicad/treeprj_frame.cpp:127
|
||||
msgid "Run the Python Script"
|
||||
msgstr "Exécuter le Script Python"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:133
|
||||
#: kicad/treeprj_frame.cpp:208
|
||||
#: kicad/treeprj_frame.cpp:136
|
||||
#: kicad/treeprj_frame.cpp:211
|
||||
msgid "&Edit in a text editor"
|
||||
msgstr "Editer avec un éditeur de Texte"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:134
|
||||
#: kicad/treeprj_frame.cpp:137
|
||||
msgid "&Open the file in a Text Editor"
|
||||
msgstr "&Ouvrir le fichier avec un Editeur de texte"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:151
|
||||
#: kicad/treeprj_frame.cpp:154
|
||||
msgid "New D&irectory"
|
||||
msgstr "&Nouveau Répertoire"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:152
|
||||
#: kicad/treeprj_frame.cpp:155
|
||||
msgid "Create a New Directory"
|
||||
msgstr "Créer un nouveau Répertoire"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:161
|
||||
#: kicad/treeprj_frame.cpp:164
|
||||
msgid "New P&ython Script"
|
||||
msgstr "Nouveau Script P&ython"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:162
|
||||
#: kicad/treeprj_frame.cpp:165
|
||||
msgid "Create a New Python Script"
|
||||
msgstr "Créer un nouveau script Python"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:171
|
||||
#: kicad/treeprj_frame.cpp:174
|
||||
msgid "New &Text File"
|
||||
msgstr "Nouveau Fichier &Texte"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:172
|
||||
#: kicad/treeprj_frame.cpp:175
|
||||
msgid "Create a New Txt File"
|
||||
msgstr "Créer un nouveau Fichier texte"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:180
|
||||
#: kicad/treeprj_frame.cpp:183
|
||||
msgid "New &File"
|
||||
msgstr "Nouveau &Fichier"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:181
|
||||
#: kicad/treeprj_frame.cpp:184
|
||||
msgid "Create a New File"
|
||||
msgstr "Créer un nouveau Fichier"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:195
|
||||
#: kicad/treeprj_frame.cpp:198
|
||||
msgid "&Rename file"
|
||||
msgstr "&Renommer fichier"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:196
|
||||
#: kicad/treeprj_frame.cpp:198
|
||||
#: kicad/treeprj_frame.cpp:199
|
||||
#: 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:209
|
||||
#: kicad/treeprj_frame.cpp:212
|
||||
msgid "Open the file in a Text Editor"
|
||||
msgstr "Ouvrir le fichier avec un Editeur de texte"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:217
|
||||
#: kicad/treeprj_frame.cpp:220
|
||||
msgid "&Delete File"
|
||||
msgstr "&Supprimer Fichier"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:218
|
||||
#: kicad/treeprj_frame.cpp:221
|
||||
msgid "&Delete Directory"
|
||||
msgstr "&Supprimer le Répertoire"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:219
|
||||
#: kicad/treeprj_frame.cpp:222
|
||||
msgid "Delete the File"
|
||||
msgstr "Supprimer le fichier"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:220
|
||||
#: kicad/treeprj_frame.cpp:223
|
||||
msgid "&Delete the Directory and its content"
|
||||
msgstr "Effacer le Répertoire et son contenu"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:546
|
||||
#: kicad/treeprj_frame.cpp:549
|
||||
msgid "Create New File"
|
||||
msgstr "Créer un Nouveau Fichier"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:547
|
||||
#: kicad/treeprj_frame.cpp:550
|
||||
msgid "Create New Directory"
|
||||
msgstr "Créer un nouveau Répertoire"
|
||||
|
||||
#: kicad/treeprj_frame.cpp:556
|
||||
#: kicad/treeprj_frame.cpp:559
|
||||
msgid "noname."
|
||||
msgstr "noname."
|
||||
|
||||
#: kicad/treeprj_frame.cpp:1085
|
||||
#: kicad/treeprj_frame.cpp:1088
|
||||
msgid "Change filename: "
|
||||
msgstr "Changer Nom Fichier: "
|
||||
|
||||
#: kicad/treeprj_frame.cpp:1087
|
||||
#: kicad/treeprj_frame.cpp:1090
|
||||
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:183
|
||||
#: gerbview/files.cpp:216
|
||||
#: gerbview/files.cpp:185
|
||||
#: gerbview/files.cpp:218
|
||||
#, c-format
|
||||
msgid "Gerber DCODE files (%s)|*.%s"
|
||||
msgstr "Fichiers Gerber DCODE (%s)|*.%s"
|
||||
|
||||
#: gerbview/readgerb.cpp:272
|
||||
#: gerbview/files.cpp:189
|
||||
#: gerbview/files.cpp:191
|
||||
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 (.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 "Gerber files (.gb* .gt* .lgr .ger .pho)"
|
||||
msgstr "Fichiers Gerber .gb* .gt* .lgr .ger .pho)"
|
||||
|
||||
#: gerbview/files.cpp:118
|
||||
#: gerbview/files.cpp:120
|
||||
msgid "Top layer (*.GTL)|*.GTL;*.gtl|"
|
||||
msgstr "Couche composant"
|
||||
|
||||
#: gerbview/files.cpp:119
|
||||
#: gerbview/files.cpp:121
|
||||
msgid "Bottom layer (*.GBL)|*.GBL;*.gbl|"
|
||||
msgstr "Couche cuivre"
|
||||
|
||||
#: gerbview/files.cpp:120
|
||||
#: gerbview/files.cpp:122
|
||||
msgid "Bottom solder resist (*.GBS)|*.GBS;*.gbs|"
|
||||
msgstr "Masque soudure cuivre (*.GBS)|*.GBS;*.gbs|"
|
||||
|
||||
#: gerbview/files.cpp:121
|
||||
#: gerbview/files.cpp:123
|
||||
msgid "Top solder resist (*.GTS)|*.GTS;*.gts|"
|
||||
msgstr "Masque soudure composant (*.GTS)|*.GTS;*.gts|"
|
||||
|
||||
#: gerbview/files.cpp:122
|
||||
#: gerbview/files.cpp:124
|
||||
msgid "Bottom overlay (*.GBO)|*.GBO;*.gbo|"
|
||||
msgstr "Simple face, CMS coté Cuivre."
|
||||
msgstr "Bottom overlay (*.GBO)|*.GBO;*.gbo|"
|
||||
|
||||
#: gerbview/files.cpp:123
|
||||
#: gerbview/files.cpp:125
|
||||
msgid "Top overlay (*.GTO)|*.GTO;*.gto|"
|
||||
msgstr "Top overlay (*.GTO)|*.GTO;*.gto|"
|
||||
|
||||
#: gerbview/files.cpp:124
|
||||
#: gerbview/files.cpp:126
|
||||
msgid "Bottom paste (*.GBP)|*.GBP;*.gbp|"
|
||||
msgstr "Bottom paste (*.GBP)|*.GBP;*.gbp|"
|
||||
msgstr "Masque pate à souder cuivre (*.GBP)|*.GBP;*.gbp|"
|
||||
|
||||
#: gerbview/files.cpp:125
|
||||
#: gerbview/files.cpp:127
|
||||
msgid "Top paste (*.GTP)|*.GTP;*.gtp|"
|
||||
msgstr "Masque pate à souder composant (*.GTP)|*.GTP;*.gtp|"
|
||||
|
||||
#: gerbview/files.cpp:126
|
||||
#: gerbview/files.cpp:128
|
||||
msgid "Keep-out layer (*.GKO)|*.GKO;*.gko|"
|
||||
msgstr "Couche de \"Keep-out\" (*.GKO)|*.GKO;*.gko|"
|
||||
|
||||
#: gerbview/files.cpp:127
|
||||
#: gerbview/files.cpp:129
|
||||
msgid "Mechanical layers (*.GMx)|*.GM1;*.gm1;*.GM2;*.gm2;*.GM3;*.gm3|"
|
||||
msgstr "Couches mécaniques (*.GMx)|*.GM1;*.gm1;*.GM2;*.gm2;*.GM3;*.gm3|"
|
||||
|
||||
#: gerbview/files.cpp:128
|
||||
#: gerbview/files.cpp:130
|
||||
msgid "Top Pad Master (*.GPT)|*.GPT;*.gpt|"
|
||||
msgstr "Top Pad Master (*.GPT)|*.GPT;*.gpt|"
|
||||
|
||||
#: gerbview/files.cpp:129
|
||||
#: gerbview/files.cpp:131
|
||||
msgid "Bottom Pad Master (*.GPB)|*.GPB;*.gpb|"
|
||||
msgstr "Bottom Pad Master (*.GPB)|*.GPB;*.gpb|"
|
||||
|
||||
#: gerbview/files.cpp:139
|
||||
#: gerbview/files.cpp:141
|
||||
msgid "Open Gerber File"
|
||||
msgstr "Ouvrir Fichier Gerber"
|
||||
|
||||
#: gerbview/files.cpp:220
|
||||
#: gerbview/files.cpp:222
|
||||
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:"
|
||||
|
|
|
@ -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$" ),
|
||||
|
|
|
@ -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, <mp );
|
||||
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:
|
||||
|
|
Loading…
Reference in New Issue