Solved minor problems in eeschema, and code cleaning.

This commit is contained in:
charras 2008-08-17 18:37:03 +00:00
parent ae0768c349
commit f3230893c4
8 changed files with 698 additions and 641 deletions

View File

@ -1,4 +1,5 @@
//////////////////////////////////////
// Name: 3d_draw.cpp
//////////////////////////////////////
@ -42,12 +43,12 @@ static void Draw3D_FilledSegmentWithHole( double startx,
double holey,
double holeradius,
double zpos );
static void Draw3D_ArcSegment(double startx, double starty,
double endx, double endy,double width, double zpos);
static void Draw3D_CircleSegment(double startx, double starty,
double endx, double endy,double width, double zpos);
static int Get3DLayerEnable(int act_layer);
static GLfloat Get3DLayerSide(int act_layer);
static void Draw3D_ArcSegment( double startx, double starty,
double endx, double endy, double width, double zpos );
static void Draw3D_CircleSegment( double startx, double starty,
double endx, double endy, double width, double zpos );
static int Get3DLayerEnable( int act_layer );
static GLfloat Get3DLayerSide( int act_layer );
/******************************************/
void Pcb3D_GLCanvas::Redraw( bool finish )
@ -88,15 +89,17 @@ void Pcb3D_GLCanvas::Redraw( bool finish )
/**********************************************/
GLuint Pcb3D_GLCanvas::CreateDrawGL_List()
/**********************************************/
/* Create the draw list items
*/
{
WinEDA_BasePcbFrame* pcbframe = m_Parent->m_Parent;
BOARD* pcb = pcbframe->m_Pcb;
TRACK* pt_piste;
int ii;
BOARD* pcb = pcbframe->m_Pcb;
TRACK* track;
SEGZONE* segzone;
int ii;
wxBusyCursor dummy;
wxBusyCursor dummy;
m_gllist = glGenLists( 1 );
@ -107,7 +110,7 @@ GLuint Pcb3D_GLCanvas::CreateDrawGL_List()
g_Parm_3D_Visu.m_BoardPos.y = -g_Parm_3D_Visu.m_BoardPos.y;
g_Parm_3D_Visu.m_Layers = pcb->m_BoardSettings->m_CopperLayerCount;
g_Parm_3D_Visu.m_BoardScale = 2.0 / MAX( g_Parm_3D_Visu.m_BoardSize.x,
g_Parm_3D_Visu.m_BoardSize.y );
g_Parm_3D_Visu.m_BoardSize.y );
float epoxy_width = 1.6; // epoxy width in mm
g_Parm_3D_Visu.m_Epoxy_Width = epoxy_width / 2.54 * 1000
* g_Parm_3D_Visu.m_BoardScale;
@ -123,7 +126,7 @@ GLuint Pcb3D_GLCanvas::CreateDrawGL_List()
}
//GLfloat zpos_cu = 500 * g_Parm_3D_Visu.m_BoardScale;
GLfloat zpos_cu = 10 * g_Parm_3D_Visu.m_BoardScale;
GLfloat zpos_cu = 10 * g_Parm_3D_Visu.m_BoardScale;
GLfloat zpos_cmp = g_Parm_3D_Visu.m_Epoxy_Width + zpos_cu;
g_Parm_3D_Visu.m_LayerZcoord[ADHESIVE_N_CU] = -zpos_cu * 2;
g_Parm_3D_Visu.m_LayerZcoord[ADHESIVE_N_CMP] = zpos_cmp + zpos_cu;
@ -138,22 +141,23 @@ GLuint Pcb3D_GLCanvas::CreateDrawGL_List()
glColorMaterial( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE );
/* draw axes */
if (g_Parm_3D_Visu.m_Draw3DAxis){
glEnable( GL_COLOR_MATERIAL );
SetGLColor( WHITE );
glBegin( GL_LINES );
glNormal3f( 0.0, 0.0, 1.0 ); // Normal is Z axis
glVertex3f( 0.0, 0.0, 0.0 );
glVertex3f( 1.0, 0.0, 0.0 ); // X axis
glVertex3f( 0.0, 0.0, 0.0 );
glVertex3f( 0.0, -1.0, 0.0 ); // Y axis
glNormal3f( 1.0, 0.0, 0.0 ); // Normal is Y axis
glVertex3f( 0.0, 0.0, 0.0 );
glVertex3f( 0.0, 0.0, 0.3 ); // Z axis
glEnd();
}
/* draw axis */
if( g_Parm_3D_Visu.m_Draw3DAxis )
{
glEnable( GL_COLOR_MATERIAL );
SetGLColor( WHITE );
glBegin( GL_LINES );
glNormal3f( 0.0, 0.0, 1.0 ); // Normal is Z axis
glVertex3f( 0.0, 0.0, 0.0 );
glVertex3f( 1.0, 0.0, 0.0 ); // X axis
glVertex3f( 0.0, 0.0, 0.0 );
glVertex3f( 0.0, -1.0, 0.0 ); // Y axis
glNormal3f( 1.0, 0.0, 0.0 ); // Normal is Y axis
glVertex3f( 0.0, 0.0, 0.0 );
glVertex3f( 0.0, 0.0, 0.3 ); // Z axis
glEnd();
}
/* Draw epoxy limits (do not use, works and test in progress) */
#if 0
glEnable( GL_FOG );
@ -187,51 +191,52 @@ GLuint Pcb3D_GLCanvas::CreateDrawGL_List()
glEnd();
#endif
/* Translation du tracé du BOARD pour placer son centre en 0, 0 */
/* move the board in order to draw it with its centre at 0,0 3D coordinates */
glTranslatef( -g_Parm_3D_Visu.m_BoardPos.x * g_Parm_3D_Visu.m_BoardScale,
-g_Parm_3D_Visu.m_BoardPos.y * g_Parm_3D_Visu.m_BoardScale,
0.0F );
-g_Parm_3D_Visu.m_BoardPos.y * g_Parm_3D_Visu.m_BoardScale,
0.0F );
glNormal3f( 0.0, 0.0, 1.0 ); // Normal is Z axis
/* Tracé des pistes : */
for( pt_piste = pcb->m_Track; pt_piste != NULL; pt_piste = (TRACK*) pt_piste->Pnext )
/* draw tracks and vias : */
for( track = pcb->m_Track; track != NULL; track = track->Next() )
{
if( pt_piste->Type() == TYPEVIA )
Draw3D_Via( (SEGVIA*) pt_piste );
if( track->Type() == TYPEVIA )
Draw3D_Via( (SEGVIA*) track );
else
Draw3D_Track( pt_piste );
Draw3D_Track( track );
}
if (g_Parm_3D_Visu.m_Draw3DZone){
for( pt_piste = pcb->m_Zone; pt_piste != NULL; pt_piste = (TRACK*) pt_piste->Pnext )
{
if( pt_piste->Type() == TYPEZONE )
Draw3D_Track( pt_piste );
}
}
/* Tracé des edges */
if( g_Parm_3D_Visu.m_Draw3DZone )
{
for( segzone = pcb->m_Zone; segzone != NULL; segzone = segzone->Next() )
{
if( segzone->Type() == TYPEZONE )
Draw3D_Track( segzone );
}
}
/* draw graphic items */
EDA_BaseStruct* PtStruct;
for( PtStruct = pcb->m_Drawings; PtStruct != NULL; PtStruct = PtStruct->Pnext )
{
//if( PtStruct->Type() != TYPEDRAWSEGMENT )
// continue;
if( PtStruct->Type() == TYPEDRAWSEGMENT )
{
#undef STRUCT
#define STRUCT ( (DRAWSEGMENT*) PtStruct )
Draw3D_DrawSegment( STRUCT );
}
if( PtStruct->Type() == TYPETEXTE )
{
#undef STRUCT
#define STRUCT ( (TEXTE_PCB*) PtStruct )
Draw3D_DrawText( STRUCT );
}
switch( PtStruct->Type() )
{
case TYPEDRAWSEGMENT:
Draw3D_DrawSegment( (DRAWSEGMENT*) PtStruct );
break;
case TYPETEXTE:
Draw3D_DrawText( (TEXTE_PCB*) PtStruct );
break;
default:
break;
}
}
/* tracé des modules */
MODULE* Module = (MODULE*) pcb->m_Modules;
for( ; Module != NULL; Module = (MODULE*) Module->Pnext )
/* draw footprints */
MODULE* Module = pcb->m_Modules;
for( ; Module != NULL; Module = Module->Next() )
{
Module->Draw3D( this );
}
@ -304,18 +309,22 @@ void Pcb3D_GLCanvas::Draw3D_Via( SEGVIA* via )
color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[CMP_N];
if( color & ITEM_NOT_SHOW )
continue;
//SetGLColor( color );
SetGLColor( LIGHTGRAY );
SetGLColor( color );
// SetGLColor( LIGHTGRAY );
glNormal3f( 0.0, 0.0, (layer == COPPER_LAYER_N) ? -1.0 : 1.0 );
if (layer == COPPER_LAYER_N) zpos = zpos - 5 * g_Parm_3D_Visu.m_BoardScale;
else zpos = zpos + 5 * g_Parm_3D_Visu.m_BoardScale;
if( layer == COPPER_LAYER_N )
zpos = zpos - 5 * g_Parm_3D_Visu.m_BoardScale;
else
zpos = zpos + 5 * g_Parm_3D_Visu.m_BoardScale;
Draw3D_FilledCircle( x, -y, r, hole, zpos );
if( layer >= top_layer )
break;
}
// Drawing hole:
SetGLColor( DARKGRAY );
color = g_Parm_3D_Visu.m_BoardSettings->m_ViaColor[via->m_Shape];
SetGLColor( color );
height = g_Parm_3D_Visu.m_LayerZcoord[top_layer] - g_Parm_3D_Visu.m_LayerZcoord[bottom_layer];
Draw3D_FilledCylinder( x, -y, hole, height, g_Parm_3D_Visu.m_LayerZcoord[bottom_layer] );
}
@ -346,43 +355,49 @@ void Pcb3D_GLCanvas::Draw3D_DrawSegment( DRAWSEGMENT* segment )
{
glNormal3f( 0.0, 0.0, (layer == COPPER_LAYER_N) ? -1.0 : 1.0 );
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
switch( segment->m_Shape )
{
case S_ARC:
Draw3D_ArcSegment( x, -y, xf, -yf, w, zpos);
break;
case S_CIRCLE:
Draw3D_CircleSegment( x, -y, xf, -yf, w, zpos);
break;
default :
Draw3D_FilledSegment( x, -y, xf, -yf, w, zpos);
break;
}
switch( segment->m_Shape )
{
case S_ARC:
Draw3D_ArcSegment( x, -y, xf, -yf, w, zpos );
break;
case S_CIRCLE:
Draw3D_CircleSegment( x, -y, xf, -yf, w, zpos );
break;
default:
Draw3D_FilledSegment( x, -y, xf, -yf, w, zpos );
break;
}
}
}
else
{
layer = segment->GetLayer();
glNormal3f( 0.0, 0.0, Get3DLayerSide(layer) );
layer = segment->GetLayer();
glNormal3f( 0.0, 0.0, Get3DLayerSide( layer ) );
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
if (Get3DLayerEnable(layer))
{
switch( segment->m_Shape )
{
case S_ARC:
Draw3D_ArcSegment( x, -y, xf, -yf, w, zpos);
break;
case S_CIRCLE:
Draw3D_CircleSegment( x, -y, xf, -yf, w, zpos);
break;
default :
Draw3D_FilledSegment( x, -y, xf, -yf, w, zpos);
break;
}
}
if( Get3DLayerEnable( layer ) )
{
switch( segment->m_Shape )
{
case S_ARC:
Draw3D_ArcSegment( x, -y, xf, -yf, w, zpos );
break;
case S_CIRCLE:
Draw3D_CircleSegment( x, -y, xf, -yf, w, zpos );
break;
default:
Draw3D_FilledSegment( x, -y, xf, -yf, w, zpos );
break;
}
}
}
}
/*************************************************************/
void Pcb3D_GLCanvas::Draw3D_DrawText( TEXTE_PCB* text )
/*************************************************************/
@ -391,47 +406,48 @@ void Pcb3D_GLCanvas::Draw3D_DrawText( TEXTE_PCB* text )
double x, y, xf, yf;
double zpos, w;
int color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[layer];
int coord[104];
int ii, jj, kk, ll, nbpoints;
if (Get3DLayerEnable(layer))
{
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
glNormal3f( 0.0, 0.0, Get3DLayerSide(layer) );
text->CreateDrawData();
jj = 5; ii = jj + 1;
while( ii < text->m_TextDrawingsSize )
{
nbpoints = text->m_TextDrawings[jj];
if( nbpoints > 50 )
nbpoints = 50;
int coord[104];
int ii, jj, kk, ll, nbpoints;
for( kk = 0, ll = 0; (kk < nbpoints) && (ii < text->m_TextDrawingsSize); kk++ )
{
coord[ll++] = text->m_TextDrawings[ii++] + text->m_Pos.x;
coord[ll++] = text->m_TextDrawings[ii++] + text->m_Pos.y;
}
jj = ii++;
if( Get3DLayerEnable( layer ) )
{
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
glNormal3f( 0.0, 0.0, Get3DLayerSide( layer ) );
for( kk = 0, ll = 0; kk < (nbpoints - 1); kk++, ll += 2 )
{
SetGLColor( color );
w = text->m_Width * g_Parm_3D_Visu.m_BoardScale;
x = coord[ll] * g_Parm_3D_Visu.m_BoardScale;
y = coord[ll + 1] * g_Parm_3D_Visu.m_BoardScale;
xf = coord[ll + 2] * g_Parm_3D_Visu.m_BoardScale;
yf = coord[ll + 3] * g_Parm_3D_Visu.m_BoardScale;
text->CreateDrawData();
jj = 5; ii = jj + 1;
while( ii < text->m_TextDrawingsSize )
{
nbpoints = text->m_TextDrawings[jj];
if( nbpoints > 50 )
nbpoints = 50;
//printf("text koordinata x=%d, y=%d, x2=%d, y2=%d\n",x,y,xf,yf);
Draw3D_FilledSegment( x, -y, xf, -yf, w, zpos );
}
}
}
for( kk = 0, ll = 0; (kk < nbpoints) && (ii < text->m_TextDrawingsSize); kk++ )
{
coord[ll++] = text->m_TextDrawings[ii++] + text->m_Pos.x;
coord[ll++] = text->m_TextDrawings[ii++] + text->m_Pos.y;
}
jj = ii++;
for( kk = 0, ll = 0; kk < (nbpoints - 1); kk++, ll += 2 )
{
SetGLColor( color );
w = text->m_Width * g_Parm_3D_Visu.m_BoardScale;
x = coord[ll] * g_Parm_3D_Visu.m_BoardScale;
y = coord[ll + 1] * g_Parm_3D_Visu.m_BoardScale;
xf = coord[ll + 2] * g_Parm_3D_Visu.m_BoardScale;
yf = coord[ll + 3] * g_Parm_3D_Visu.m_BoardScale;
//printf("text koordinata x=%d, y=%d, x2=%d, y2=%d\n",x,y,xf,yf);
Draw3D_FilledSegment( x, -y, xf, -yf, w, zpos );
}
}
}
}
/*********************************************/
void MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas )
/*********************************************/
@ -460,44 +476,38 @@ void MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas )
}
/* Draw module shape: 3D shape if exists (or module edge if not exists) */
Struct3D_Master* Struct3D = m_3D_Drawings;
bool As3dShape = FALSE;
bool Place3D;
if ( (Struct3D->m_Shape3DName.Find(wxString(wxT("placa"))) != -1) ||
(Struct3D->m_Shape3DName.Find(wxString(wxT("place"))) != -1) )
Place3D = TRUE;
else Place3D = FALSE;
if ( (g_Parm_3D_Visu.m_Draw3DModule && !Place3D) ||
(g_Parm_3D_Visu.m_Draw3DPlace && Place3D) )
{
glPushMatrix();
glTranslatef( m_Pos.x * g_Parm_3D_Visu.m_BoardScale,
-m_Pos.y * g_Parm_3D_Visu.m_BoardScale,
g_Parm_3D_Visu.m_LayerZcoord[m_Layer] );
if( m_Orient )
{
glRotatef( (double) m_Orient / 10, 0.0, 0.0, 1.0 );
}
if( m_Layer == COPPER_LAYER_N )
{
glRotatef( 180.0, 0.0, 1.0, 0.0 );
glRotatef( 180.0, 0.0, 0.0, 1.0 );
}
DataScale3D = g_Parm_3D_Visu.m_BoardScale * UNITS3D_TO_UNITSPCB;
Struct3D_Master* Struct3D = m_3D_Drawings;
bool As3dShape = FALSE;
if( g_Parm_3D_Visu.m_Draw3DModule )
{
glPushMatrix();
glTranslatef( m_Pos.x * g_Parm_3D_Visu.m_BoardScale,
-m_Pos.y * g_Parm_3D_Visu.m_BoardScale,
g_Parm_3D_Visu.m_LayerZcoord[m_Layer] );
if( m_Orient )
{
glRotatef( (double) m_Orient / 10, 0.0, 0.0, 1.0 );
}
if( m_Layer == COPPER_LAYER_N )
{
glRotatef( 180.0, 0.0, 1.0, 0.0 );
glRotatef( 180.0, 0.0, 0.0, 1.0 );
}
DataScale3D = g_Parm_3D_Visu.m_BoardScale * UNITS3D_TO_UNITSPCB;
for( ; Struct3D != NULL; Struct3D = (Struct3D_Master*) Struct3D->Pnext )
{
if( !Struct3D->m_Shape3DName.IsEmpty() )
{
As3dShape = TRUE;
Struct3D->ReadData();
}
}
glPopMatrix();
}
if( !As3dShape )
for( ; Struct3D != NULL; Struct3D = (Struct3D_Master*) Struct3D->Pnext )
{
if( !Struct3D->m_Shape3DName.IsEmpty() )
{
As3dShape = TRUE;
Struct3D->ReadData();
}
}
glPopMatrix();
}
if( !As3dShape ) // The footprint does not have a 3D shape, draw its 2D shape instead
{
EDA_BaseStruct* Struct = m_Drawings;
glNormal3f( 0.0, 0.0, 1.0 ); // Normal is Z axis
@ -524,10 +534,10 @@ void MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas )
void EDGE_MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas )
/***************************************************/
{
wxString s;
int dx, dy;
double scale, x, y, fx, fy, w, zpos;
int color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[m_Layer];
wxString s;
int dx, dy;
double scale, x, y, fx, fy, w, zpos;
int color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[m_Layer];
if( color & ITEM_NOT_SHOW )
return;
@ -540,30 +550,30 @@ void EDGE_MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas )
dy = m_End.y;
zpos = g_Parm_3D_Visu.m_LayerZcoord[m_Layer];
w = m_Width * g_Parm_3D_Visu.m_BoardScale;
x = m_Start.x * g_Parm_3D_Visu.m_BoardScale;
y = m_Start.y * g_Parm_3D_Visu.m_BoardScale;
fx = dx * g_Parm_3D_Visu.m_BoardScale;
fy = dy * g_Parm_3D_Visu.m_BoardScale;
x = m_Start.x * g_Parm_3D_Visu.m_BoardScale;
y = m_Start.y * g_Parm_3D_Visu.m_BoardScale;
fx = dx * g_Parm_3D_Visu.m_BoardScale;
fy = dy * g_Parm_3D_Visu.m_BoardScale;
switch( m_Shape )
switch( m_Shape )
{
case S_SEGMENT:
Draw3D_FilledSegment( x, -y, fx, -fy, w, zpos );
break;
case S_CIRCLE:
Draw3D_CircleSegment( x, -y, fx, -fy, w, zpos);
Draw3D_CircleSegment( x, -y, fx, -fy, w, zpos );
break;
case S_ARC:
Draw3D_ArcSegment( x, -y, fx, -fy, w, zpos);
break;
Draw3D_ArcSegment( x, -y, fx, -fy, w, zpos );
break;
default:
s.Printf(wxT("Error: Shape nr %d not implemented!\n"), m_Shape);
printf( CONV_TO_UTF8( s ) );
break;
default:
s.Printf( wxT( "Error: Shape nr %d not implemented!\n" ), m_Shape );
printf( CONV_TO_UTF8( s ) );
break;
}
}
@ -642,12 +652,14 @@ void D_PAD::Draw3D( Pcb3D_GLCanvas* glcanvas )
color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[layer];
if( color & ITEM_NOT_SHOW )
continue;
//SetGLColor( color );
SetGLColor( LIGHTGRAY );
SetGLColor( color );
glNormal3f( 0.0, 0.0, (layer == COPPER_LAYER_N) ? -1.0 : 1.0 );
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
if (layer == COPPER_LAYER_N) zpos = zpos - 5 * g_Parm_3D_Visu.m_BoardScale;
else zpos = zpos + 5 * g_Parm_3D_Visu.m_BoardScale;
if( layer == COPPER_LAYER_N )
zpos = zpos - 5 * g_Parm_3D_Visu.m_BoardScale;
else
zpos = zpos + 5 * g_Parm_3D_Visu.m_BoardScale;
Draw3D_FilledCircle( x, -y, r, hole, zpos );
}
@ -690,11 +702,13 @@ void D_PAD::Draw3D( Pcb3D_GLCanvas* glcanvas )
glNormal3f( 0.0, 0.0, (layer == COPPER_LAYER_N) ? -1.0 : 1.0 );
if( color & ITEM_NOT_SHOW )
continue;
//SetGLColor( color );
SetGLColor( LIGHTGRAY );
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
if (layer == COPPER_LAYER_N) zpos = zpos - 5 * g_Parm_3D_Visu.m_BoardScale;
else zpos = zpos + 5 * g_Parm_3D_Visu.m_BoardScale;
SetGLColor( color );
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
if( layer == COPPER_LAYER_N )
zpos = zpos - 5 * g_Parm_3D_Visu.m_BoardScale;
else
zpos = zpos + 5 * g_Parm_3D_Visu.m_BoardScale;
Draw3D_FilledSegmentWithHole( ox, -oy, fx, -fy, w, drillx, -drilly, hole, zpos );
}
}
@ -702,7 +716,6 @@ void D_PAD::Draw3D( Pcb3D_GLCanvas* glcanvas )
case PAD_RECT:
// case SPECIAL_PAD:
case PAD_TRAPEZOID:
{
int ddx, ddy;
@ -745,7 +758,7 @@ void D_PAD::Draw3D( Pcb3D_GLCanvas* glcanvas )
f_hole_coord[ii][0] = -hole * 0.707;
f_hole_coord[ii][1] = hole * 0.707;
RotatePoint( &f_hole_coord[ii][0], &f_hole_coord[ii][1],
angle - (ii * 450) );
angle - (ii * 450) );
f_hole_coord[ii][0] += drillx;
f_hole_coord[ii][1] += drilly;
}
@ -764,11 +777,13 @@ void D_PAD::Draw3D( Pcb3D_GLCanvas* glcanvas )
glNormal3f( 0.0, 0.0, (layer == COPPER_LAYER_N) ? -1.0 : 1.0 );
if( color & ITEM_NOT_SHOW )
continue;
//SetGLColor( color );
SetGLColor( LIGHTGRAY );
SetGLColor( color );
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
if (layer == COPPER_LAYER_N) zpos = zpos - 5 * g_Parm_3D_Visu.m_BoardScale;
else zpos = zpos + 5 * g_Parm_3D_Visu.m_BoardScale;
if( layer == COPPER_LAYER_N )
zpos = zpos - 5 * g_Parm_3D_Visu.m_BoardScale;
else
zpos = zpos + 5 * g_Parm_3D_Visu.m_BoardScale;
glBegin( GL_QUAD_STRIP );
for( ii = 0; ii < 8; ii++ )
{
@ -1003,88 +1018,94 @@ static void Draw3D_FilledSegmentWithHole( double startx,
glEnd();
}
/********************************************************/
static void Draw3D_ArcSegment(double startx, double starty,
double endx, double endy,double width, double zpos)
static void Draw3D_ArcSegment( double startx, double starty,
double endx, double endy, double width, double zpos )
{
int ii, slice = 36;
double x, y, hole, rayon;
int angle;
int ii, slice = 36;
double x, y, hole, rayon;
int angle;
angle = static_cast<int>(atan2( startx - endx, starty - endy) * 1800 / M_PI) + 900;
rayon = hypot(startx - endx, starty - endy) + ( width / 2);
hole = rayon - width;
angle = static_cast<int>(atan2( startx - endx, starty - endy ) * 1800 / M_PI) + 900;
rayon = hypot( startx - endx, starty - endy ) + ( width / 2);
hole = rayon - width;
glBegin(GL_QUAD_STRIP);
for ( ii = 0; ii <= slice / 4; ii++ )
{
x = hole; y = 0.0;
RotatePoint(&x, &y, angle + (ii * 3600 / slice));
glVertex3f( x + startx, y + starty, zpos);
x = rayon; y = 0.0;
RotatePoint(&x, &y, angle + (ii * 3600 / slice));
glVertex3f( x + startx , y + starty, zpos);
}
glEnd();
glBegin( GL_QUAD_STRIP );
for( ii = 0; ii <= slice / 4; ii++ )
{
x = hole; y = 0.0;
RotatePoint( &x, &y, angle + (ii * 3600 / slice) );
glVertex3f( x + startx, y + starty, zpos );
x = rayon; y = 0.0;
RotatePoint( &x, &y, angle + (ii * 3600 / slice) );
glVertex3f( x + startx, y + starty, zpos );
}
glEnd();
}
/*******************************************************************/
static void Draw3D_CircleSegment(double startx, double starty,
double endx, double endy,double width, double zpos)
static void Draw3D_CircleSegment( double startx, double starty,
double endx, double endy, double width, double zpos )
/*******************************************************************/
{
int ii, slice = 36;
double x, y, hole, rayon;
int ii, slice = 36;
double x, y, hole, rayon;
rayon = hypot(startx - endx, starty - endy) + ( width / 2);
hole = rayon - width;
rayon = hypot( startx - endx, starty - endy ) + ( width / 2);
hole = rayon - width;
glBegin(GL_QUAD_STRIP);
for ( ii = 0; ii <= slice; ii++ )
{
x = hole; y = 0.0;
RotatePoint(&x, &y, ii * 3600 / slice);
glVertex3f( x + startx, y + starty, zpos);
x = rayon; y = 0.0;
RotatePoint(&x, &y, ii * 3600 / slice);
glVertex3f( x + startx , y + starty, zpos);
}
glEnd();
glBegin( GL_QUAD_STRIP );
for( ii = 0; ii <= slice; ii++ )
{
x = hole; y = 0.0;
RotatePoint( &x, &y, ii * 3600 / slice );
glVertex3f( x + startx, y + starty, zpos );
x = rayon; y = 0.0;
RotatePoint( &x, &y, ii * 3600 / slice );
glVertex3f( x + startx, y + starty, zpos );
}
glEnd();
}
/******************************************/
static int Get3DLayerEnable(int act_layer)
static int Get3DLayerEnable( int act_layer )
/******************************************/
{
bool enablelayer;
bool enablelayer;
enablelayer = TRUE;
if (act_layer == DRAW_N && !g_Parm_3D_Visu.m_Draw3DDrawings)
enablelayer = FALSE;
if (act_layer == COMMENT_N && !g_Parm_3D_Visu.m_Draw3DComments)
enablelayer = FALSE;
if (act_layer == ECO1_N && !g_Parm_3D_Visu.m_Draw3DEco1)
enablelayer = FALSE;
if (act_layer == ECO2_N && !g_Parm_3D_Visu.m_Draw3DEco2)
enablelayer = FALSE;
enablelayer = TRUE;
if( act_layer == DRAW_N && !g_Parm_3D_Visu.m_Draw3DDrawings )
enablelayer = FALSE;
if( act_layer == COMMENT_N && !g_Parm_3D_Visu.m_Draw3DComments )
enablelayer = FALSE;
if( act_layer == ECO1_N && !g_Parm_3D_Visu.m_Draw3DEco1 )
enablelayer = FALSE;
if( act_layer == ECO2_N && !g_Parm_3D_Visu.m_Draw3DEco2 )
enablelayer = FALSE;
return enablelayer;
return enablelayer;
}
/******************************************/
static GLfloat Get3DLayerSide(int act_layer)
static GLfloat Get3DLayerSide( int act_layer )
/******************************************/
{
GLfloat nZ;
nZ = 1.0;
if (
(act_layer <= LAST_COPPER_LAYER-1) ||
(act_layer == ADHESIVE_N_CU) ||
(act_layer == SOLDERPASTE_N_CU) ||
(act_layer == SILKSCREEN_N_CU) ||
(act_layer == SOLDERMASK_N_CU)
)
nZ = -1.0;
return nZ;
GLfloat nZ;
nZ = 1.0;
if(
(act_layer <= LAST_COPPER_LAYER - 1)
|| (act_layer == ADHESIVE_N_CU)
|| (act_layer == SOLDERPASTE_N_CU)
|| (act_layer == SILKSCREEN_N_CU)
|| (act_layer == SOLDERMASK_N_CU)
)
nZ = -1.0;
return nZ;
}

View File

@ -103,6 +103,12 @@ void WinEDA3D_DrawFrame::ReCreateVToolbar()
void WinEDA3D_DrawFrame::ReCreateMenuBar()
/**********************************************/
{
bool full_options = true;
// If called from the display frame of cvpcb, only some options are relevant
if ( m_Parent->m_FrameName == wxT( "CmpFrame" ) ) // Called from cvpcb !
full_options = false; // Do not display all options
wxMenuBar* menuBar = new wxMenuBar;
wxMenu* fileMenu = new wxMenu;
@ -121,28 +127,33 @@ void WinEDA3D_DrawFrame::ReCreateMenuBar()
_( "Choose background color" ), palette_xpm );
ADD_MENUITEM( referencesMenu, ID_MENU3D_AXIS_ONOFF,
_( "Axis On/Off" ), axis3d_front_xpm );
_( "3D Axis On/Off" ), axis3d_front_xpm );
if ( full_options )
{
ADD_MENUITEM( referencesMenu, ID_MENU3D_MODULE_ONOFF,
_( "Module 3D On/Off" ), add_component_xpm );
_( "3D Footprints Shapes On/Off" ), add_component_xpm );
#if 0
ADD_MENUITEM( referencesMenu, ID_MENU3D_PLACE_ONOFF,
_( "PCB place 3D On/off" ), select_w_layer_xpm );
#endif
ADD_MENUITEM( referencesMenu, ID_MENU3D_ZONE_ONOFF,
_( "Zone On/Off" ), add_zone_xpm );
_( "Zone Filling On/Off" ), add_zone_xpm );
ADD_MENUITEM( referencesMenu, ID_MENU3D_COMMENTS_ONOFF,
_( "Comments On/Off" ), edit_sheet_xpm );
_( "Comments Layer On/Off" ), edit_sheet_xpm );
ADD_MENUITEM( referencesMenu, ID_MENU3D_DRAWINGS_ONOFF,
_( "Drawings On/Off" ), options_text_xpm );
_( "Drawings Layer On/Off" ), add_polygon_xpm );
ADD_MENUITEM( referencesMenu, ID_MENU3D_ECO1_ONOFF,
_( "Eco1 On/Off" ), options_text_xpm );
_( "Eco1 Layer On/Off" ), tools_xpm );
ADD_MENUITEM( referencesMenu, ID_MENU3D_ECO2_ONOFF,
_( "Eco2 On/Off" ), options_text_xpm );
_( "Eco2 Layer On/Off" ), tools_xpm );
}
SetMenuBar( menuBar );
}

View File

@ -44,17 +44,17 @@ void InitKiCadAbout(wxAboutDialogInfo& info)
/* Add developers */
info.AddDeveloper(_T("Dick Hollenbeck <dick@softplc.com>"));
info.AddDeveloper(_T("Jean-Pierre Charras <jean-pierre.charras@inpg.fr>"));
info.AddDeveloper(_T("\nJean-Pierre Charras <jean-pierre.charras@inpg.fr>"));
/* Add document writers */
info.AddDocWriter(_T("Jean-Pierre Charras <jean-pierre.charras@inpg.fr>"));
info.AddDocWriter(_T("Igor Plyatov <plyatov@gmail.com>"));
info.AddDocWriter(_T("\nIgor Plyatov <plyatov@gmail.com>"));
/* Add translators */
info.AddTranslator(_T("Czech (CZ) Milan Horák <stranger@tiscali.cz>"));
info.AddTranslator(_T("Dutch (NL) Jerry Jacobs <jerkejacobs@gmail.com>"));
info.AddTranslator(_T("French (FR) Jean-Pierre Charras <jean-pierre.charras@inpg.fr>"));
info.AddTranslator(_T("Polish (PL) Mateusz Skowroński <skowri@gmail.com>"));
info.AddTranslator(_T("Russian (RU) Igor Plyatov <plyatov@gmail.com>"));
info.AddTranslator(_T("\nDutch (NL) Jerry Jacobs <jerkejacobs@gmail.com>"));
info.AddTranslator(_T("\nFrench (FR) Jean-Pierre Charras <jean-pierre.charras@inpg.fr>"));
info.AddTranslator(_T("\nPolish (PL) Mateusz Skowroński <skowri@gmail.com>"));
info.AddTranslator(_T("\nRussian (RU) Igor Plyatov <plyatov@gmail.com>"));
}

View File

@ -226,6 +226,8 @@ void WinEDA_SchematicFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPi
wxPoint curpos, oldpos;
int hotkey = 0;
ActiveScreen = screen;
curpos = screen->m_MousePosition;
oldpos = screen->m_Curseur;
@ -355,6 +357,8 @@ void WinEDA_LibeditFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixe
wxPoint curpos, oldpos;
int hotkey = 0;
ActiveScreen = screen;
curpos = screen->m_MousePosition;
oldpos = screen->m_Curseur;
@ -483,6 +487,8 @@ void WinEDA_ViewlibFrame::GeneralControle( wxDC* DC, wxPoint MousePositionInPixe
wxPoint curpos, oldpos;
int hotkey = 0;
ActiveScreen = screen;
curpos = screen->m_MousePosition;
oldpos = screen->m_Curseur;

View File

@ -25,7 +25,7 @@ void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
{
LibEDA_BaseStruct* DrawEntry = CurrentDrawItem;
if( CurrentLibEntry == NULL )
if( CurrentLibEntry == NULL ) // No component loaded !
return;
if( m_ID_current_state == 0 )
@ -107,11 +107,11 @@ void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
case ID_LIBEDIT_BODY_CIRCLE_BUTT:
case ID_LIBEDIT_BODY_RECT_BUTT:
case ID_LIBEDIT_BODY_TEXT_BUTT:
if( CurrentDrawItem == NULL )
if( CurrentDrawItem == NULL || CurrentDrawItem->m_Flags == 0 )
{
CurrentDrawItem = CreateGraphicItem( DC );
}
else
else if( CurrentDrawItem )
{
if( CurrentDrawItem->m_Flags & IS_NEW )
GraphicItemBeginDraw( DC );

View File

@ -181,9 +181,6 @@ LibEDA_BaseStruct* WinEDA_LibeditFrame::CreateGraphicItem( wxDC* DC )
int DrawType;
int* ptpoly;
if( CurrentDrawItem )
return NULL;
DrawPanel->m_IgnoreMouseEvents = TRUE;
// Creation du nouvel element

Binary file not shown.

View File

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: kicad\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-08-12 13:05+0100\n"
"PO-Revision-Date: 2008-08-12 13:05+0100\n"
"POT-Creation-Date: 2008-08-17 18:59+0100\n"
"PO-Revision-Date: 2008-08-17 19:02+0100\n"
"Last-Translator: \n"
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
"MIME-Version: 1.0\n"
@ -3583,98 +3583,6 @@ msgstr " fichier %s non trouvé"
msgid "Save preferences"
msgstr "Sauver préférences"
#: pcbnew/pcbframe.cpp:280
msgid "Board modified, Save before exit ?"
msgstr "Circuit Imprimé modifiée, Sauver avant de quitter ?"
#: pcbnew/pcbframe.cpp:281
msgid "Confirmation"
msgstr "Confirmation"
#: pcbnew/pcbframe.cpp:383
msgid "DRC Off (Disable !!!), Currently: DRC is active"
msgstr "DRC off (désactivée !!!), actuellement DRC active"
#: pcbnew/pcbframe.cpp:385
msgid "DRC On (Currently: DRC is inactive !!!)"
msgstr "DRC On (Actuellement, DRC désactivée !!!)"
#: pcbnew/pcbframe.cpp:396
msgid "Polar Coords not show"
msgstr "Coord Polaires non affichées"
#: pcbnew/pcbframe.cpp:397
msgid "Display Polar Coords"
msgstr "Affichage coord Polaires"
#: pcbnew/pcbframe.cpp:402
msgid "Grid not show"
msgstr "Grille non montrée"
#: pcbnew/pcbframe.cpp:402
msgid "Show Grid"
msgstr "Afficher grille"
#: pcbnew/pcbframe.cpp:411
msgid "General ratsnest not show"
msgstr "Chevelu général non affiché"
#: pcbnew/pcbframe.cpp:412
msgid "Show General ratsnest"
msgstr "Afficher le chevelu général"
#: pcbnew/pcbframe.cpp:418
msgid "Module ratsnest not show"
msgstr "Ne pas montrer le chevelu du module pendant déplacement"
#: pcbnew/pcbframe.cpp:419
msgid "Show Module ratsnest"
msgstr "Montrer le chevelu du module"
#: pcbnew/pcbframe.cpp:426
msgid "Disable Auto Delete old Track"
msgstr "Ne pas Autoriser l'effacement automatique des pistes"
#: pcbnew/pcbframe.cpp:427
msgid "Enable Auto Delete old Track"
msgstr "Autoriser l'effacement automatique des pistes"
#: pcbnew/pcbframe.cpp:434
msgid "Do not Show Zones"
msgstr "Ne pas monter Zones"
#: pcbnew/pcbframe.cpp:434
msgid "Show Zones"
msgstr "Monter Zones"
#: pcbnew/pcbframe.cpp:440
msgid "Show Pads Sketch mode"
msgstr "Afficher pastilles en contour"
#: pcbnew/pcbframe.cpp:441
msgid "Show pads filled mode"
msgstr "Afficher pastilles en mode plein"
#: pcbnew/pcbframe.cpp:447
msgid "Show Tracks Sketch mode"
msgstr "Afficher pistes en contour"
#: pcbnew/pcbframe.cpp:448
msgid "Show Tracks filled mode"
msgstr "Afficher pistes en mode plein"
#: pcbnew/pcbframe.cpp:454
msgid "Normal Contrast Mode Display"
msgstr "Mode d'affichage Contraste normal"
#: pcbnew/pcbframe.cpp:455
msgid "Hight Contrast Mode Display"
msgstr "Mode d'affichage Haut Contraste"
#: pcbnew/pcbnew.cpp:43
msgid "Pcbnew is already running, Continue?"
msgstr "Pcbnew est est cours d'exécution. Continuer ?"
#: pcbnew/pcbplot.cpp:147
#: pcbnew/pcbplot.cpp:272
msgid "Plot"
@ -4368,10 +4276,18 @@ msgstr "Monter le chevelu du module pendant déplacement"
msgid "Enable Auto Del Track"
msgstr "Autoriser l'effacement automatique des pistes"
#: pcbnew/tool_pcb.cpp:355
msgid "Show Zones"
msgstr "Monter Zones"
#: pcbnew/tool_pcb.cpp:364
msgid "Show Tracks Sketch"
msgstr "Afficher Pistes en Contour"
#: pcbnew/tool_pcb.cpp:368
msgid "Hight Contrast Mode Display"
msgstr "Mode d'affichage Haut Contraste"
#: pcbnew/tool_pcb.cpp:377
msgid ""
"Display auxiliary vertical toolbar (tools for micro wave applications)\n"
@ -4551,6 +4467,10 @@ msgstr "Pas de pads ou de points de départ pour remplir ce contour de zone"
msgid "Ok"
msgstr "Ok"
#: pcbnew/pcbnew.cpp:43
msgid "Pcbnew is already running, Continue?"
msgstr "Pcbnew est est cours d'exécution. Continuer ?"
#: pcbnew/specctra_export.cpp:64
msgid "Specctra DSN file:"
msgstr "Fichier Specctra DSN"
@ -4871,6 +4791,86 @@ msgstr "Via Traversantes:"
msgid "Buried Vias:"
msgstr "Via Enterrées:"
#: pcbnew/pcbframe.cpp:280
msgid "Board modified, Save before exit ?"
msgstr "Circuit Imprimé modifiée, Sauver avant de quitter ?"
#: pcbnew/pcbframe.cpp:281
msgid "Confirmation"
msgstr "Confirmation"
#: pcbnew/pcbframe.cpp:383
msgid "DRC Off (Disable !!!), Currently: DRC is active"
msgstr "DRC off (désactivée !!!), actuellement DRC active"
#: pcbnew/pcbframe.cpp:385
msgid "DRC On (Currently: DRC is inactive !!!)"
msgstr "DRC On (Actuellement, DRC désactivée !!!)"
#: pcbnew/pcbframe.cpp:396
msgid "Polar Coords not show"
msgstr "Coord Polaires non affichées"
#: pcbnew/pcbframe.cpp:397
msgid "Display Polar Coords"
msgstr "Affichage coord Polaires"
#: pcbnew/pcbframe.cpp:402
msgid "Grid not show"
msgstr "Grille non montrée"
#: pcbnew/pcbframe.cpp:402
msgid "Show Grid"
msgstr "Afficher grille"
#: pcbnew/pcbframe.cpp:411
msgid "General ratsnest not show"
msgstr "Chevelu général non affiché"
#: pcbnew/pcbframe.cpp:412
msgid "Show General ratsnest"
msgstr "Afficher le chevelu général"
#: pcbnew/pcbframe.cpp:418
msgid "Module ratsnest not show"
msgstr "Ne pas montrer le chevelu du module pendant déplacement"
#: pcbnew/pcbframe.cpp:419
msgid "Show Module ratsnest"
msgstr "Montrer le chevelu du module"
#: pcbnew/pcbframe.cpp:426
msgid "Disable Auto Delete old Track"
msgstr "Ne pas Autoriser l'effacement automatique des pistes"
#: pcbnew/pcbframe.cpp:427
msgid "Enable Auto Delete old Track"
msgstr "Autoriser l'effacement automatique des pistes"
#: pcbnew/pcbframe.cpp:434
msgid "Do not Show Zones"
msgstr "Ne pas monter Zones"
#: pcbnew/pcbframe.cpp:440
msgid "Show Pads Sketch mode"
msgstr "Afficher pastilles en contour"
#: pcbnew/pcbframe.cpp:441
msgid "Show pads filled mode"
msgstr "Afficher pastilles en mode plein"
#: pcbnew/pcbframe.cpp:447
msgid "Show Tracks Sketch mode"
msgstr "Afficher pistes en contour"
#: pcbnew/pcbframe.cpp:448
msgid "Show Tracks filled mode"
msgstr "Afficher pistes en mode plein"
#: pcbnew/pcbframe.cpp:454
msgid "Normal Contrast Mode Display"
msgstr "Mode d'affichage Contraste normal"
#: eeschema/affiche.cpp:22
msgid "Name"
msgstr "Nom"
@ -6553,11 +6553,11 @@ msgstr "Fin ligne"
#: eeschema/libedit_onrightclick.cpp:148
msgid "Line Options"
msgstr "Options"
msgstr "Options pour Ligne"
#: eeschema/libedit_onrightclick.cpp:151
msgid "Delete Line "
msgstr "Efface rLigne"
msgstr "Efface Ligne"
#: eeschema/libedit_onrightclick.cpp:158
msgid "Delete Segment "
@ -7573,27 +7573,6 @@ msgstr "Importer Connecteur de hiérarchie"
msgid "Add Power"
msgstr "Add Alims"
#: eeschema/schframe.cpp:310
msgid "Schematic modified, Save before exit ?"
msgstr "Schematique modifiée, Sauver avant de quitter ?"
#: eeschema/schframe.cpp:422
msgid "No show Hidden Pins"
msgstr "N'affichage pas les pins invisibles"
#: eeschema/schframe.cpp:422
#: eeschema/tool_sch.cpp:267
msgid "Show Hidden Pins"
msgstr "Force affichage des pins invisibles"
#: eeschema/schframe.cpp:426
msgid "Draw lines at any direction"
msgstr "Tracer traits de direction quelconque"
#: eeschema/schframe.cpp:427
msgid "Draw lines H, V or 45 deg only"
msgstr "Tracer traits H, V ou 45 deg seulement"
#: eeschema/selpart.cpp:45
msgid "Select Lib"
msgstr "Sélection librairie"
@ -7635,7 +7614,7 @@ msgstr "Forme Pin de hiérarchie:"
msgid "No New Hierarchal Label found"
msgstr "Pas de nouvea Label Hiérarchique trouvé"
#: eeschema/symbdraw.cpp:793
#: eeschema/symbdraw.cpp:790
#, c-format
msgid "Arc %.1f deg"
msgstr "Arc %.1f deg"
@ -7852,6 +7831,11 @@ msgstr "Place une pin de hierarchie dans la feuille"
msgid "Place the graphic line or polygon"
msgstr "Placer la ligne ou le polygones graphique"
#: eeschema/tool_sch.cpp:267
#: eeschema/schframe.cpp:422
msgid "Show Hidden Pins"
msgstr "Force affichage des pins invisibles"
#: eeschema/tool_sch.cpp:272
msgid "HV orientation for Wires and Bus"
msgstr "Force direction H, V et X pour les fils et bus"
@ -8055,6 +8039,22 @@ msgstr "Emetteur ouv."
msgid "Electrical Type:"
msgstr "Type électrique:"
#: eeschema/schframe.cpp:310
msgid "Schematic modified, Save before exit ?"
msgstr "Schematique modifiée, Sauver avant de quitter ?"
#: eeschema/schframe.cpp:422
msgid "No show Hidden Pins"
msgstr "N'affichage pas les pins invisibles"
#: eeschema/schframe.cpp:426
msgid "Draw lines at any direction"
msgstr "Tracer traits de direction quelconque"
#: eeschema/schframe.cpp:427
msgid "Draw lines H, V or 45 deg only"
msgstr "Tracer traits H, V ou 45 deg seulement"
#: eeschema/component_wizard/ki_component_setup.cpp:141
msgid "Quick KICAD Library Component Builder"
msgstr ""
@ -8068,9 +8068,8 @@ msgid "Component Name"
msgstr "Nom du Composant!"
#: eeschema/component_wizard/ki_component_setup.cpp:156
#, fuzzy
msgid "MyComponent"
msgstr "Composant"
msgstr "MyComponent"
#: eeschema/component_wizard/ki_component_setup.cpp:159
msgid " Symbol Text Size "
@ -8165,44 +8164,6 @@ msgstr "%d équivalences"
msgid "Component %s: Footprint %s not found in libraries"
msgstr "Composant %s: Module %s non trouvé en librairies"
#: cvpcb/cvframe.cpp:176
msgid "Netlist and Cmp list modified, Save before exit ?"
msgstr "Netlist et liste composants modifiés, Sauver avant de quitter ?"
#: cvpcb/cvframe.cpp:199
msgid "Problem when saving files, Exit anyway"
msgstr "Problemes en sauvant les fichiers, quitter quand même"
#: cvpcb/cvframe.cpp:326
msgid "Delete selections"
msgstr "Effacement des associations existantes"
#: cvpcb/cvframe.cpp:340
#: cvpcb/init.cpp:112
#, c-format
msgid "Componants: %d (free: %d)"
msgstr "Composants: %d (libres: %d)"
#: cvpcb/cvframe.cpp:424
msgid "font for dialog boxes"
msgstr "fonte pour boites de dialogue"
#: cvpcb/cvframe.cpp:426
msgid "font for Lists"
msgstr "fonte pour listes"
#: cvpcb/cvframe.cpp:428
msgid "font for Status Line"
msgstr "fonte pour Ligne d'état"
#: cvpcb/cvframe.cpp:431
msgid "&Font selection"
msgstr "Sélection Fonte"
#: cvpcb/cvframe.cpp:433
msgid "Choose font type and size for dialogs, infos and status box"
msgstr "Choisir les fontes et leur taille pour les dialogues, infos et ligne d'état"
#: cvpcb/cvpcb.cpp:41
msgid "Cvpcb is already running, Continue?"
msgstr "Cvpcb est est cours d'exécution. Continuer ?"
@ -8221,6 +8182,11 @@ msgstr "%s %s pin %s : Nets Differents"
msgid "Components: %d (free: %d)"
msgstr "Composants: %d (libres: %d)"
#: cvpcb/init.cpp:112
#, c-format
msgid "Componants: %d (free: %d)"
msgstr "Composants: %d (libres: %d)"
#: cvpcb/init.cpp:142
msgid "Save NetList and Components List files"
msgstr "Sauver Netliste et Cmp Liste"
@ -8445,6 +8411,38 @@ msgstr "Lire Cfg"
msgid "Equiv"
msgstr "Equiv"
#: cvpcb/cvframe.cpp:176
msgid "Netlist and Cmp list modified, Save before exit ?"
msgstr "Netlist et liste composants modifiés, Sauver avant de quitter ?"
#: cvpcb/cvframe.cpp:199
msgid "Problem when saving files, Exit anyway"
msgstr "Problemes en sauvant les fichiers, quitter quand même"
#: cvpcb/cvframe.cpp:326
msgid "Delete selections"
msgstr "Effacement des associations existantes"
#: cvpcb/cvframe.cpp:424
msgid "font for dialog boxes"
msgstr "fonte pour boites de dialogue"
#: cvpcb/cvframe.cpp:426
msgid "font for Lists"
msgstr "fonte pour listes"
#: cvpcb/cvframe.cpp:428
msgid "font for Status Line"
msgstr "fonte pour Ligne d'état"
#: cvpcb/cvframe.cpp:431
msgid "&Font selection"
msgstr "Sélection Fonte"
#: cvpcb/cvframe.cpp:433
msgid "Choose font type and size for dialogs, infos and status box"
msgstr "Choisir les fontes et leur taille pour les dialogues, infos et ligne d'état"
#: kicad/buildmnu.cpp:92
msgid "&Open Project Descr"
msgstr "&Ouvrir Descr de projet"
@ -8656,23 +8654,6 @@ msgstr ""
"\n"
"Créer Archive zippée"
#: kicad/mainframe.cpp:103
#, c-format
msgid ""
"Ready\n"
"Working dir: %s\n"
msgstr ""
"Pret\n"
"Répertoire de travail: %s\n"
#: kicad/mainframe.cpp:339
msgid "Execute Python Script:"
msgstr "Executer le Script Python:"
#: kicad/mainframe.cpp:362
msgid "Load file:"
msgstr "Charger Fichiers:"
#: kicad/preferences.cpp:33
msgid "Prefered Pdf Browser:"
msgstr "Visualisateur PDF préféré:"
@ -8851,6 +8832,23 @@ msgstr "noname"
msgid "Change File Name: "
msgstr "ChangerNom Fichier: "
#: kicad/mainframe.cpp:103
#, c-format
msgid ""
"Ready\n"
"Working dir: %s\n"
msgstr ""
"Pret\n"
"Répertoire de travail: %s\n"
#: kicad/mainframe.cpp:339
msgid "Execute Python Script:"
msgstr "Executer le Script Python:"
#: kicad/mainframe.cpp:362
msgid "Load file:"
msgstr "Charger Fichiers:"
#: gerbview/affiche.cpp:34
msgid "Layer "
msgstr "Couche "
@ -8908,10 +8906,6 @@ msgstr "Fichiers Gerber:"
msgid "D codes files:"
msgstr "Fichiers D-Codes:"
#: gerbview/gerberframe.cpp:183
msgid "Layer modified, Continue ?"
msgstr "Couche modifiée, Continuer ?"
#: gerbview/gerbview.cpp:37
msgid "GerbView is already running. Continue?"
msgstr "Gerbview est est cours d'exécution. Continuer ?"
@ -9204,10 +9198,9 @@ msgstr "Afficher Poiygones en Mode Ccontour"
msgid "Show dcode number"
msgstr "Afficher le n° de DCode"
#: common/basicframe.cpp:239
#, c-format
msgid "Help file %s not found"
msgstr "Fichier d'aide %s non trouvé"
#: gerbview/gerberframe.cpp:183
msgid "Layer modified, Continue ?"
msgstr "Couche modifiée, Continuer ?"
#: common/block_commande.cpp:57
msgid "Block Move"
@ -9249,126 +9242,6 @@ msgstr "Inversion Bloc"
msgid "Block Mirror"
msgstr "Bloc Miroir"
#: common/common.cpp:84
msgid " (\"):"
msgstr " (\"):"
#: common/common.cpp:340
msgid "Copper "
msgstr "Cuivre "
#: common/common.cpp:340
msgid "Inner L1 "
msgstr "Interne 1"
#: common/common.cpp:340
msgid "Inner L2 "
msgstr "Interne 2"
#: common/common.cpp:340
msgid "Inner L3 "
msgstr "Interne 3"
#: common/common.cpp:341
msgid "Inner L4 "
msgstr "Interne 4"
#: common/common.cpp:341
msgid "Inner L5 "
msgstr "Interne 5"
#: common/common.cpp:341
msgid "Inner L6 "
msgstr "Interne 6"
#: common/common.cpp:341
msgid "Inner L7 "
msgstr "Interne 7"
#: common/common.cpp:342
msgid "Inner L8 "
msgstr "Interne 8"
#: common/common.cpp:342
msgid "Inner L9 "
msgstr "Interne 9"
#: common/common.cpp:342
msgid "Inner L10"
msgstr "Interne 10"
#: common/common.cpp:342
msgid "Inner L11"
msgstr "Interne 11"
#: common/common.cpp:343
msgid "Inner L12"
msgstr "Interne 12"
#: common/common.cpp:343
msgid "Inner L13"
msgstr "Interne 13"
#: common/common.cpp:343
msgid "Inner L14"
msgstr "Interne 14"
#: common/common.cpp:344
msgid "Adhes Cop"
msgstr "Adhes Cu "
#: common/common.cpp:344
msgid "Adhes Cmp"
msgstr "Adhe Cmp"
#: common/common.cpp:344
msgid "SoldP Cop"
msgstr "SoldP Cu "
#: common/common.cpp:344
msgid "SoldP Cmp"
msgstr "SoldP Cmp"
#: common/common.cpp:345
msgid "SilkS Cop"
msgstr "Sérigr Cu "
#: common/common.cpp:345
msgid "SilkS Cmp"
msgstr "Sérigr Cmp"
#: common/common.cpp:345
msgid "Mask Cop "
msgstr "Masque Cu "
#: common/common.cpp:345
msgid "Mask Cmp "
msgstr "Masque Cmp"
#: common/common.cpp:346
msgid "Drawings "
msgstr "Drawings "
#: common/common.cpp:346
msgid "Comments "
msgstr "Comments "
#: common/common.cpp:346
msgid "Eco1 "
msgstr "Eco1 "
#: common/common.cpp:346
msgid "Eco2 "
msgstr "Eco2 "
#: common/common.cpp:347
msgid "Edges Pcb"
msgstr "Contour Pcb"
#: common/common.cpp:347
msgid "BAD INDEX"
msgstr "BAD INDEX"
#: common/confirm.cpp:106
msgid "Infos:"
msgstr "Infos:"
@ -9559,48 +9432,6 @@ msgstr "Emplacement des Fichiers des Hotkeys"
msgid "Hotkey config file location selection (home directory or kicad tree)"
msgstr "Selection emplacement des fichiers de config. des hotkeys(\"home\" ou répertoire kicad)"
#: common/infospgm.cpp:33
msgid "Build Version:"
msgstr "Build Version:"
#: common/infospgm.cpp:48
msgid "Author:"
msgstr "Autheur:"
#: common/infospgm.cpp:49
msgid "Based on wxWidgets "
msgstr "Based on wxWidgets "
#: common/infospgm.cpp:54
msgid ""
"\n"
"\n"
"GPL License"
msgstr ""
"\n"
"\n"
"GPL Licence"
#: common/infospgm.cpp:55
msgid ""
"\n"
"\n"
"Author's sites:\n"
msgstr ""
"\n"
"\n"
"Sites Web de l'auteur:\n"
#: common/infospgm.cpp:58
msgid ""
"\n"
"\n"
"International wiki:\n"
msgstr ""
"\n"
"\n"
"International wiki:\n"
#: common/selcolor.cpp:76
msgid "Colors"
msgstr "Couleurs"
@ -9618,59 +9449,188 @@ msgstr "X"
msgid "Y"
msgstr "Y"
#: 3d-viewer/3d_aux.cpp:199
#: common/common.cpp:93
msgid " (\"):"
msgstr " (\"):"
#: common/common.cpp:349
msgid "Copper "
msgstr "Cuivre "
#: common/common.cpp:349
msgid "Inner L1 "
msgstr "Interne 1"
#: common/common.cpp:349
msgid "Inner L2 "
msgstr "Interne 2"
#: common/common.cpp:349
msgid "Inner L3 "
msgstr "Interne 3"
#: common/common.cpp:350
msgid "Inner L4 "
msgstr "Interne 4"
#: common/common.cpp:350
msgid "Inner L5 "
msgstr "Interne 5"
#: common/common.cpp:350
msgid "Inner L6 "
msgstr "Interne 6"
#: common/common.cpp:350
msgid "Inner L7 "
msgstr "Interne 7"
#: common/common.cpp:351
msgid "Inner L8 "
msgstr "Interne 8"
#: common/common.cpp:351
msgid "Inner L9 "
msgstr "Interne 9"
#: common/common.cpp:351
msgid "Inner L10"
msgstr "Interne 10"
#: common/common.cpp:351
msgid "Inner L11"
msgstr "Interne 11"
#: common/common.cpp:352
msgid "Inner L12"
msgstr "Interne 12"
#: common/common.cpp:352
msgid "Inner L13"
msgstr "Interne 13"
#: common/common.cpp:352
msgid "Inner L14"
msgstr "Interne 14"
#: common/common.cpp:353
msgid "Adhes Cop"
msgstr "Adhes Cu "
#: common/common.cpp:353
msgid "Adhes Cmp"
msgstr "Adhe Cmp"
#: common/common.cpp:353
msgid "SoldP Cop"
msgstr "SoldP Cu "
#: common/common.cpp:353
msgid "SoldP Cmp"
msgstr "SoldP Cmp"
#: common/common.cpp:354
msgid "SilkS Cop"
msgstr "Sérigr Cu "
#: common/common.cpp:354
msgid "SilkS Cmp"
msgstr "Sérigr Cmp"
#: common/common.cpp:354
msgid "Mask Cop "
msgstr "Masque Cu "
#: common/common.cpp:354
msgid "Mask Cmp "
msgstr "Masque Cmp"
#: common/common.cpp:355
msgid "Drawings "
msgstr "Drawings "
#: common/common.cpp:355
msgid "Comments "
msgstr "Comments "
#: common/common.cpp:355
msgid "Eco1 "
msgstr "Eco1 "
#: common/common.cpp:355
msgid "Eco2 "
msgstr "Eco2 "
#: common/common.cpp:356
msgid "Edges Pcb"
msgstr "Contour Pcb"
#: common/common.cpp:356
msgid "BAD INDEX"
msgstr "BAD INDEX"
#: common/basicframe.cpp:244
#, c-format
msgid "Help file %s not found"
msgstr "Fichier d'aide %s non trouvé"
#: 3d-viewer/3d_aux.cpp:207
msgid "Vertex "
msgstr "Vertex "
#: 3d-viewer/3d_canvas.cpp:328
#: 3d-viewer/3d_canvas.cpp:329
msgid "Zoom +"
msgstr "Zoom +"
#: 3d-viewer/3d_canvas.cpp:333
#: 3d-viewer/3d_canvas.cpp:334
msgid "Zoom -"
msgstr "Zoom -"
#: 3d-viewer/3d_canvas.cpp:339
#: 3d-viewer/3d_canvas.cpp:340
msgid "Top View"
msgstr "Vue de dessus"
#: 3d-viewer/3d_canvas.cpp:344
#: 3d-viewer/3d_canvas.cpp:345
msgid "Bottom View"
msgstr "Vue de dessous"
#: 3d-viewer/3d_canvas.cpp:350
#: 3d-viewer/3d_canvas.cpp:351
msgid "Right View"
msgstr "Vue a Droite"
#: 3d-viewer/3d_canvas.cpp:355
#: 3d-viewer/3d_canvas.cpp:356
msgid "Left View"
msgstr "Vue à Gauche"
#: 3d-viewer/3d_canvas.cpp:362
#: 3d-viewer/3d_canvas.cpp:363
msgid "Front View"
msgstr "Vue de face"
#: 3d-viewer/3d_canvas.cpp:367
#: 3d-viewer/3d_canvas.cpp:368
msgid "Back View"
msgstr "Vue arrière"
#: 3d-viewer/3d_canvas.cpp:373
#: 3d-viewer/3d_canvas.cpp:374
#: 3d-viewer/3d_toolbar.cpp:77
msgid "Move left <-"
msgstr "Vers la gauche <-"
#: 3d-viewer/3d_canvas.cpp:378
#: 3d-viewer/3d_canvas.cpp:379
#: 3d-viewer/3d_toolbar.cpp:80
msgid "Move right ->"
msgstr "Vers la droite ->"
#: 3d-viewer/3d_canvas.cpp:383
#: 3d-viewer/3d_canvas.cpp:384
#: 3d-viewer/3d_toolbar.cpp:83
msgid "Move Up ^"
msgstr "Vers le haut ^"
#: 3d-viewer/3d_canvas.cpp:388
#: 3d-viewer/3d_canvas.cpp:389
#: 3d-viewer/3d_toolbar.cpp:86
msgid "Move Down"
msgstr "Vers le bas"
#: 3d-viewer/3d_canvas.cpp:641
#: 3d-viewer/3d_canvas.cpp:642
msgid "3D Image filename:"
msgstr "Non fichier Image 3D:"
@ -9706,22 +9666,54 @@ msgstr "Rotation Z <-"
msgid "Rotate Z ->"
msgstr "Rotation Z ->"
#: 3d-viewer/3d_toolbar.cpp:112
#: 3d-viewer/3d_toolbar.cpp:118
msgid "Create Image (png format)"
msgstr "Créer fichier Image (format png)"
#: 3d-viewer/3d_toolbar.cpp:113
#: 3d-viewer/3d_toolbar.cpp:119
msgid "Create Image (jpeg format)"
msgstr "Créer fichier Image (format jpeg)"
#: 3d-viewer/3d_toolbar.cpp:115
#: 3d-viewer/3d_toolbar.cpp:121
msgid "&Exit"
msgstr "&Quitter"
#: 3d-viewer/3d_toolbar.cpp:121
#: 3d-viewer/3d_toolbar.cpp:127
msgid "Choose background color"
msgstr "Choix Couleur du fond"
#: 3d-viewer/3d_toolbar.cpp:130
msgid "3D Axis On/Off"
msgstr "Axes 3D On/Off"
#: 3d-viewer/3d_toolbar.cpp:135
msgid "3D Footprints Shapes On/Off"
msgstr "Modules 3D On/Off"
#: 3d-viewer/3d_toolbar.cpp:139
msgid "PCB place 3D On/off"
msgstr ""
#: 3d-viewer/3d_toolbar.cpp:143
msgid "Zone Filling On/Off"
msgstr " Remplissage de Zone On/Off"
#: 3d-viewer/3d_toolbar.cpp:146
msgid "Comments Layer On/Off"
msgstr "Couche Comments On/Off "
#: 3d-viewer/3d_toolbar.cpp:149
msgid "Drawings Layer On/Off"
msgstr "Couche Drawings On/Off"
#: 3d-viewer/3d_toolbar.cpp:152
msgid "Eco1 Layer On/Off"
msgstr "Couche ECO1 On/Off"
#: 3d-viewer/3d_toolbar.cpp:155
msgid "Eco2 Layer On/Off"
msgstr "Couche ECO2 On/Off"
#: share/dialog_print.cpp:137
msgid "fit in page"
msgstr "Ajustage en page"
@ -10436,6 +10428,36 @@ msgstr "Ajustage opt Page"
msgid "Create SVG file"
msgstr "Créer Fichier SVG"
#~ msgid "Build Version:"
#~ msgstr "Build Version:"
#~ msgid "Author:"
#~ msgstr "Autheur:"
#~ msgid "Based on wxWidgets "
#~ msgstr "Based on wxWidgets "
#~ msgid ""
#~ "\n"
#~ "\n"
#~ "GPL License"
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ "GPL Licence"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ "Author's sites:\n"
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ "Sites Web de l'auteur:\n"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ "International wiki:\n"
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ "International wiki:\n"
#~ msgid "WinEDA_DrillFrame"
#~ msgstr "WinEDA_DrillFrame"
#~ msgid "Spot min"