diff --git a/common/common_plotDXF_functions.cpp b/common/common_plotDXF_functions.cpp index b81ddade9d..ecd08c26d1 100644 --- a/common/common_plotDXF_functions.cpp +++ b/common/common_plotDXF_functions.cpp @@ -319,51 +319,21 @@ void DXF_PLOTTER::flash_pad_rect( wxPoint pos, wxSize padsize, /* * Plot trapezoidal pad. - * pos its center, pos.y - * Dimensions dim X and dimy - * DeltaX and variations deltaY - * Orientation and 0.1 degrees east - * Plot mode (FILLED, SKETCH, WIRED) - * The evidence is that a trapezoid, ie that deltaX or deltaY - * = 0. - * - * The rating of the vertexes are (vis a vis the plotter) - * 0 ------------- 3 - * . . - * . . - * . . - * 1 --- 2 + * aPadPos is pad position, aCorners the corners position of the basic shape + * Orientation aPadOrient in 0.1 degrees + * Plot mode = FILLED, SKETCH (unused) */ - -void DXF_PLOTTER::flash_pad_trapez( wxPoint pos, wxSize size, wxSize delta, - int orient, GRTraceMode trace_mode ) +void DXF_PLOTTER::flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], + int aPadOrient, GRTraceMode aTrace_Mode ) { wxASSERT( output_file ); - wxPoint polygone[4]; /* coord of vertex or center of the pad */ wxPoint coord[4]; /* coord actual corners of a trapezoidal trace */ - int moveX, moveY; /* change pen position by X and Y axis to - * fill the trapezoid */ - moveX = moveY = 0; - - size.x /= 2; - size.y /= 2; - delta.x /= 2; - delta.y /= 2; - - polygone[0].x = -size.x - delta.y; - polygone[0].y = +size.y + delta.x; - polygone[1].x = -size.x + delta.y; - polygone[1].y = -size.y - delta.x; - polygone[2].x = +size.x - delta.y; - polygone[2].y = -size.y + delta.x; - polygone[3].x = +size.x + delta.y; - polygone[3].y = +size.y - delta.x; for( int ii = 0; ii < 4; ii++ ) { - coord[ii].x = polygone[ii].x + pos.x; - coord[ii].y = polygone[ii].y + pos.y; - RotatePoint( &coord[ii], pos, orient ); + coord[ii] = aCorners[ii]; + RotatePoint( &coord[ii], aPadOrient ); + coord[ii] += aPadPos; } // Plot edge: diff --git a/common/common_plotGERBER_functions.cpp b/common/common_plotGERBER_functions.cpp index 311241cb0c..8b58347dc1 100644 --- a/common/common_plotGERBER_functions.cpp +++ b/common/common_plotGERBER_functions.cpp @@ -450,94 +450,53 @@ void GERBER_PLOTTER::flash_pad_rect( wxPoint pos, wxSize size, break; default: /* plot pad shape as polygon */ - flash_pad_trapez( pos, size, wxSize( 0, 0 ), orient, trace_mode ); + { + wxPoint coord[4]; + // coord[0] is assumed the lower left + // coord[1] is assumed the upper left + // coord[2] is assumed the upper right + // coord[3] is assumed the lower right + + /* Trace the outline. */ + coord[0].x = -size.x; // lower left + coord[0].y = size.y; + coord[1].x = -size.x; // upper left + coord[1].y = -size.y; + coord[2].x = size.x; // upper right + coord[2].y = -size.y; + coord[3].x = size.x; //lower right + coord[3].y = size.y; + + flash_pad_trapez( pos, coord, orient, trace_mode ); + } break; } } /* Plot trapezoidal pad. - * Pos is pad center - * Dimensions size.x and size.y - * Changes delta.x and delta.y (1 of at least two must be zero) - * Orientation east to 0.1 degrees - * Plot mode (FILLED, SKETCH, WIRED) - * - * The evidence is that a trapezoid, ie that delta.x or delta.y = 0. - * - * The rating of the vertexes are (vis a vis the plotter) - * - * " 0 ------------- 3 " - * " . . " - * " . O . " - * " . . " - * " 1 ---- 2 " - * - * - * Example delta.y > 0, delta.x = 0 - * " 1 ---- 2 " - * " . . " - * " . O . " - * " . . " - * " 0 ------------- 3 " - * - * - * Example delta.y = 0, delta.x > 0 - * " 0 " - * " . . " - * " . . " - * " . 3 " - * " . . " - * " . O . " - * " . . " - * " . 2 " - * " . . " - * " . . " - * " 1 " + * aPadPos is pad position, aCorners the corners positions of the basic shape + * Orientation aPadOrient in 0.1 degrees + * Plot mode = FILLED or SKETCH */ - void GERBER_PLOTTER::flash_pad_trapez( wxPoint pos, wxSize size, wxSize delta, - int orient, GRTraceMode trace_mode ) + void GERBER_PLOTTER::flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], + int aPadOrient, GRTraceMode aTrace_Mode ) { - wxASSERT( output_file ); - int ii, jj; - int dx, dy; - wxPoint polygon[4]; /* polygon corners */ - int coord[10]; - int ddx, ddy; + wxPoint polygon[5]; // polygon corners list - /* Calculate the optimum size of the spot chosen by 1 / 4 of the - *smallest dimension */ - dx = size.x - abs( delta.y ); - dy = size.y - abs( delta.x ); + for( int ii = 0; ii < 4; ii++ ) + polygon[ii] = aCorners[ii]; - dx = size.x / 2; - dy = size.y / 2; - ddx = delta.x / 2; - ddy = delta.y / 2; - - polygon[0].x = -dx - ddy; - polygon[0].y = +dy + ddx; - polygon[1].x = -dx + ddy; - polygon[1].y = -dy - ddx; - polygon[2].x = +dx - ddy; - polygon[2].y = -dy + ddx; - polygon[3].x = +dx + ddy; - polygon[3].y = +dy - ddx; - - /* Draw the polygon and fill the interior as required. */ - for( ii = 0, jj = 0; ii < 4; ii++ ) + /* Draw the polygon and fill the interior as required. */ + for( int ii = 0; ii < 4; ii++ ) { - RotatePoint( &polygon[ii].x, &polygon[ii].y, orient ); - coord[jj] = polygon[ii].x += pos.x; - jj++; - coord[jj] = polygon[ii].y += pos.y; - jj++; + RotatePoint( &polygon[ii], aPadOrient ); + polygon[ii] += aPadPos; } - - coord[8] = coord[0]; - coord[9] = coord[1]; + // Close the polygon + polygon[4] = polygon[0]; set_current_line_width( -1 ); - poly( 5, coord, trace_mode==FILLED ? FILLED_SHAPE : NO_FILL ); + poly( 5, &polygon[0].x, aTrace_Mode==FILLED ? FILLED_SHAPE : NO_FILL ); } diff --git a/common/common_plotHPGL_functions.cpp b/common/common_plotHPGL_functions.cpp index cd10b68fe2..f9d02f7249 100644 --- a/common/common_plotHPGL_functions.cpp +++ b/common/common_plotHPGL_functions.cpp @@ -440,106 +440,57 @@ void HPGL_PLOTTER::flash_pad_rect( wxPoint pos, wxSize padsize, /* Plot trapezoidal pad. - * Pos is pad center - * Dimensions size.x and size.y - * Changes delta.x and delta.y (1 of at least two must be zero) - * Orientation east to 0.1 degrees - * Plot mode (FILLED, SKETCH, WIRED) - * - * The evidence is that a trapezoid, ie that delta.x or delta.y = 0. - * - * The rating of the vertexes are (vis a vis the plotter) - * - * " 0 ------------- 3 " - * " . . " - * " . O . " - * " . . " - * " 1 ---- 2 " - * - * - * Example delta.y > 0, delta.x = 0 - * " 1 ---- 2 " - * " . . " - * " . O . " - * " . . " - * " 0 ------------- 3 " - * - * - * Example delta.y = 0, delta.x > 0 - * " 0 " - * " . . " - * " . . " - * " . 3 " - * " . . " - * " . O . " - * " . . " - * " . 2 " - * " . . " - * " . . " - * " 1 " + * aPadPos is pad position, aCorners the corners position of the basic shape + * Orientation aPadOrient in 0.1 degrees + * Plot mode FILLED or SKETCH */ -void HPGL_PLOTTER::flash_pad_trapez( wxPoint pos, wxSize size, wxSize delta, - int orient, GRTraceMode trace_mode ) +void HPGL_PLOTTER::flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], + int aPadOrient, GRTraceMode aTrace_Mode ) { wxASSERT( output_file ); - wxPoint polygone[4]; - wxPoint coord[4]; - int moveX, moveY; + wxPoint polygone[4]; // coordinates of corners relatives to the pad + wxPoint coord[4]; // absolute coordinates of corners (coordinates in plotter space) + int move; - moveX = moveY = wxRound( pen_diameter ); - - size.x /= 2; - size.y /= 2; - delta.x /= 2; - delta.y /= 2; - - polygone[0].x = -size.x - delta.y; - polygone[0].y = +size.y + delta.x; - polygone[1].x = -size.x + delta.y; - polygone[1].y = -size.y - delta.x; - polygone[2].x = +size.x - delta.y; - polygone[2].y = -size.y + delta.x; - polygone[3].x = +size.x + delta.y; - polygone[3].y = +size.y - delta.x; - - /* Trace the outline. */ - polygone[0].x += moveX; - polygone[0].y -= moveY; - polygone[1].x += moveX; - polygone[1].y += moveY; - polygone[2].x -= moveX; - polygone[2].y += moveY; - polygone[3].x -= moveX; - polygone[3].y -= moveY; + move = wxRound( pen_diameter ); for( int ii = 0; ii < 4; ii++ ) - { - coord[ii].x = polygone[ii].x + pos.x; - coord[ii].y = polygone[ii].y + pos.y; - RotatePoint( &coord[ii], pos, orient ); - } + polygone[ii] = aCorners[ii]; - // Plot edge: + // polygone[0] is assumed the lower left + // polygone[1] is assumed the upper left + // polygone[2] is assumed the upper right + // polygone[3] is assumed the lower right + + // Plot the outline: + for( int ii = 0; ii < 4; ii++ ) + { + coord[ii] = polygone[ii]; + RotatePoint( &coord[ii], aPadOrient ); + coord[ii] += aPadPos; + } move_to( coord[0] ); line_to( coord[1] ); line_to( coord[2] ); line_to( coord[3] ); finish_to( coord[0] ); - if( trace_mode == FILLED ) + // Fill shape: + if( aTrace_Mode == FILLED ) { + // TODO: replace this par the HPGL plot polygon. int jj; /* Fill the shape */ - moveX = moveY = wxRound( pen_diameter - pen_overlap ); + move = wxRound( pen_diameter - pen_overlap ); /* Calculate fill height. */ - if( delta.y ) /* Horizontal */ + if( polygone[0].y == polygone[3].y ) /* Horizontal */ { - jj = size.y - (int) ( pen_diameter + ( 2 * pen_overlap ) ); + jj = polygone[3].y - (int) ( pen_diameter + ( 2 * pen_overlap ) ); } - else + else // vertical { - jj = size.x - (int) ( pen_diameter + ( 2 * pen_overlap ) ); + jj = polygone[3].x - (int) ( pen_diameter + ( 2 * pen_overlap ) ); } /* Calculation of dd = number of segments was traced to fill. */ @@ -548,14 +499,14 @@ void HPGL_PLOTTER::flash_pad_trapez( wxPoint pos, wxSize size, wxSize delta, /* Trace the outline. */ for( ; jj > 0; jj-- ) { - polygone[0].x += moveX; - polygone[0].y -= moveY; - polygone[1].x += moveX; - polygone[1].y += moveY; - polygone[2].x -= moveX; - polygone[2].y += moveY; - polygone[3].x -= moveX; - polygone[3].y -= moveY; + polygone[0].x += move; + polygone[0].y -= move; + polygone[1].x += move; + polygone[1].y += move; + polygone[2].x -= move; + polygone[2].y += move; + polygone[3].x -= move; + polygone[3].y -= move; /* Test for crossed vertexes. */ if( polygone[0].x > polygone[3].x ) /* X axis intersection on @@ -581,9 +532,9 @@ void HPGL_PLOTTER::flash_pad_trapez( wxPoint pos, wxSize size, wxSize delta, for( int ii = 0; ii < 4; ii++ ) { - coord[ii].x = polygone[ii].x + pos.x; - coord[ii].y = polygone[ii].y + pos.y; - RotatePoint( &coord[ii], pos, orient ); + coord[ii] = polygone[ii]; + RotatePoint( &coord[ii], aPadOrient ); + coord[ii] += aPadPos; } move_to( coord[0] ); diff --git a/common/common_plotPS_functions.cpp b/common/common_plotPS_functions.cpp index 4dadd5a54c..a210a69b1f 100644 --- a/common/common_plotPS_functions.cpp +++ b/common/common_plotPS_functions.cpp @@ -479,75 +479,50 @@ void PS_PLOTTER::flash_pad_rect( wxPoint pos, wxSize size, /* Plot trapezoidal pad. - * Pos is pad center - * Dimensions size.x and size.y - * Changes delta.x and delta.y (1 of at least two must be zero) - * Orientation east to 0.1 degrees - * Plot mode (FILLED, SKETCH, WIRED) - * - * The evidence is that a trapezoid, ie that delta.x or delta.y = 0. - * - * The rating of the vertexes are (vis a vis the plotter) - * - * " 0 ------------- 3 " - * " . . " - * " . O . " - * " . . " - * " 1 ---- 2 " - * - * - * Example delta.y > 0, delta.x = 0 - * " 1 ---- 2 " - * " . . " - * " . O . " - * " . . " - * " 0 ------------- 3 " - * - * - * Example delta.y = 0, delta.x > 0 - * " 0 " - * " . . " - * " . . " - * " . 3 " - * " . . " - * " . O . " - * " . . " - * " . 2 " - * " . . " - * " . . " - * " 1 " + * aPadPos is pad position, aCorners the corners position of the basic shape + * Orientation aPadOrient in 0.1 degrees + * Plot mode FILLED or SKETCH */ -void PS_PLOTTER::flash_pad_trapez( wxPoint centre, wxSize size, wxSize delta, - int orient, GRTraceMode modetrace ) +void PS_PLOTTER::flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], + int aPadOrient, GRTraceMode aTrace_Mode ) { wxASSERT( output_file ); - set_current_line_width( -1 ); - int w = current_pen_width; - int dx, dy; - int ddx, ddy; + wxPoint coord[5]; - dx = ( size.x - w ) / 2; - dy = ( size.y - w ) / 2; - ddx = delta.x / 2; - ddy = delta.y / 2; + for( int ii = 0; ii < 4; ii++ ) + coord[ii] = aCorners[ii]; - int coord[10] = + if( aTrace_Mode == FILLED ) { - -dx - ddy, +dy + ddx, - -dx + ddy, -dy - ddx, - +dx - ddy, -dy + ddx, - +dx + ddy, +dy - ddx, - 0, 0 - }; + set_current_line_width( 0 ); + } + else + { + set_current_line_width( -1 ); + int w = current_pen_width; + // offset polygon by w + // coord[0] is assumed the lower left + // coord[1] is assumed the upper left + // coord[2] is assumed the upper right + // coord[3] is assumed the lower right + + /* Trace the outline. */ + coord[0].x += w; + coord[0].y -= w; + coord[1].x += w; + coord[1].y += w; + coord[2].x -= w; + coord[2].y += w; + coord[3].x -= w; + coord[3].y -= w; + } for( int ii = 0; ii < 4; ii++ ) { - RotatePoint( &coord[ii * 2], &coord[ii * 2 + 1], orient ); - coord[ii * 2] += centre.x; - coord[ii * 2 + 1] += centre.y; + RotatePoint( &coord[ii], aPadOrient ); + coord[ii] += aPadPos; } - coord[8] = coord[0]; - coord[9] = coord[1]; - poly( 5, coord, ( modetrace == FILLED ) ? FILLED_SHAPE : NO_FILL ); + coord[4] = coord[0]; + poly( 5, &coord[0].x, ( aTrace_Mode == FILLED ) ? FILLED_SHAPE : NO_FILL ); } diff --git a/common/drawpanel.cpp b/common/drawpanel.cpp index f5a79baf7d..ead41b6a77 100644 --- a/common/drawpanel.cpp +++ b/common/drawpanel.cpp @@ -832,12 +832,20 @@ void WinEDA_DrawPanel::DrawGrid( wxDC* DC ) break; xpos = org.x + xg; xpos = GRMapX( xpos ); + if( xpos < m_ClipBox.GetOrigin().x) // column not in active screen area. + continue; + if( xpos > m_ClipBox.GetEnd().x) // end of active area reached. + break; for( jj = 0; ; jj++ ) { yg = wxRound( jj * screen_grid_size.y ); if( yg > size.y ) break; ypos = org.y + yg; + if( ypos < m_ClipBox.GetOrigin().y) // column not in active screen area. + continue; + if( ypos > m_ClipBox.GetEnd().y) // end of active area reached. + break; DC->DrawPoint( xpos, GRMapY( ypos ) ); } } @@ -858,7 +866,7 @@ void WinEDA_DrawPanel::DrawGrid( wxDC* DC ) wxMemoryDC tmpDC; wxBitmap tmpBM( 1, screenSize.y ); tmpDC.SelectObject( tmpBM ); - GRSetColorPen( &tmpDC, g_DrawBgColor ); + GRSetColorPen( &tmpDC, WHITE/*g_DrawBgColor*/ ); tmpDC.DrawLine( 0, 0, 0, screenSize.y-1 ); // init background GRSetColorPen( &tmpDC, m_Parent->GetGridColor() ); for( jj = 0; ; jj++ ) // draw grid points @@ -878,6 +886,7 @@ void WinEDA_DrawPanel::DrawGrid( wxDC* DC ) break; xpos = GRMapX( org.x + xg ); if( xpos < m_ClipBox.GetOrigin().x) // column not in active screen area. + continue; if( xpos > m_ClipBox.GetEnd().x) // end of active area reached. break; DC->Blit( xpos, ypos, 1, screenSize.y, &tmpDC, 0, 0 ); diff --git a/include/plot_common.h b/include/plot_common.h index b5bbda8d85..5acb874999 100644 --- a/include/plot_common.h +++ b/include/plot_common.h @@ -115,8 +115,15 @@ public: GRTraceMode trace_mode ) = 0; virtual void flash_pad_rect( wxPoint pos, wxSize size, int orient, GRTraceMode trace_mode ) = 0; - virtual void flash_pad_trapez( wxPoint pos, wxSize size, wxSize delta, - int orient, GRTraceMode trace_mode ) = 0; + /** virtual function flash_pad_trapez + * flash a trapezoidal pad + * @param aPadPos = the position of the shape + * @param aCorners = the list of 4 corners positions, relative to the shape position, pad orientation 0 + * @param aPadOrient = the rotation of the shape + * @param aTrace_Mode = FILLED or SKETCH + */ + virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], + int aPadOrient, GRTraceMode aTrace_Mode ) = 0; /* Convenience functions */ void move_to( wxPoint pos ) @@ -257,8 +264,8 @@ public: GRTraceMode trace_mode ); virtual void flash_pad_rect( wxPoint pos, wxSize size, int orient, GRTraceMode trace_mode ); - virtual void flash_pad_trapez( wxPoint pos, wxSize size, wxSize delta, - int orient, GRTraceMode trace_mode ); + virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], + int aPadOrient, GRTraceMode aTrace_Mode ); protected: void pen_control( int plume ); @@ -306,8 +313,8 @@ public: GRTraceMode trace_mode ); virtual void flash_pad_rect( wxPoint pos, wxSize size, int orient, GRTraceMode trace_mode ); - virtual void flash_pad_trapez( wxPoint pos, wxSize size, wxSize delta, - int orient, GRTraceMode trace_mode ); + virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], + int aPadOrient, GRTraceMode aTrace_Mode ); protected: double plot_scale_adjX, plot_scale_adjY; @@ -364,8 +371,8 @@ public: GRTraceMode trace_mode ); virtual void flash_pad_rect( wxPoint pos, wxSize size, int orient, GRTraceMode trace_mode ); - virtual void flash_pad_trapez( wxPoint pos, wxSize size, wxSize delta, - int orient, GRTraceMode trace_mode ); + virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], + int aPadOrient, GRTraceMode aTrace_Mode ); protected: void select_aperture( const wxSize& size, @@ -424,8 +431,8 @@ public: GRTraceMode trace_mode ); virtual void flash_pad_rect( wxPoint pos, wxSize size, int orient, GRTraceMode trace_mode ); - virtual void flash_pad_trapez( wxPoint pos, wxSize size, wxSize delta, - int orient, GRTraceMode trace_mode ); + virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], + int aPadOrient, GRTraceMode aTrace_Mode ); protected: int current_color; diff --git a/pcbnew/dialog_pad_properties_base.fbp b/pcbnew/dialog_pad_properties_base.fbp index 27b1d242c7..3e24019079 100644 --- a/pcbnew/dialog_pad_properties_base.fbp +++ b/pcbnew/dialog_pad_properties_base.fbp @@ -1,8 +1,8 @@ - + - + C++ 1 UTF-8 @@ -12,66 +12,66 @@ none 1 dialog_pad_properties_base - + . - + 1 1 0 - + wxBOTH - + 1 - - - + + + 0 wxID_DIALOG_EDIT_PAD - - + + DIALOG_PAD_PROPERTIES_BASE - + 733,486 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - + Pad Properties - - - + + + wxSUNKEN_BORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + m_MainSizer wxVERTICAL none @@ -80,7 +80,7 @@ wxEXPAND 1 - + bGeneralSizer wxHORIZONTAL none @@ -89,7 +89,7 @@ wxBOTTOM|wxLEFT|wxEXPAND 0 - + m_LeftBoxSizer wxVERTICAL none @@ -98,50 +98,50 @@ wxTOP|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY Pad Num : - - + + m_PadNumText protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -149,54 +149,54 @@ wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND 0 - - + + 1 - - + + 0 wxID_PADNUMCTRL - + 0 - + m_PadNumCtrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -204,50 +204,50 @@ wxTOP|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY Pad Net Name : - - + + m_PadNameText protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -255,54 +255,54 @@ wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_PADNETNAMECTRL - + 0 - + m_PadNetNameCtrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -312,11 +312,11 @@ wxID_ANY Pad Geometry: - + sbSizer2 wxVERTICAL none - + 5 wxEXPAND @@ -324,10 +324,10 @@ 3 wxBOTH - - + + 0 - + fgSizerGeometry wxFLEX_GROWMODE_SPECIFIED none @@ -338,50 +338,50 @@ wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY Pad pos X - - + + m_staticText4 protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -389,54 +389,54 @@ wxTOP|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_PadPosition_X_Ctrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -444,50 +444,50 @@ wxALIGN_CENTER_VERTICAL|wxRIGHT 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_PadPosX_Unit protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -495,50 +495,50 @@ wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT 0 - - + + 1 - - + + 0 wxID_ANY Pad pos Y - - + + m_staticText41 protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -546,54 +546,54 @@ wxALL 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_PadPosition_Y_Ctrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -601,50 +601,50 @@ wxRIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_PadPosY_Unit protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -652,48 +652,48 @@ wxEXPAND | wxALL 0 - - + + 1 - - + + 0 wxID_ANY - - + + m_staticline7 protected - - + + wxLI_HORIZONTAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -701,48 +701,48 @@ wxEXPAND | wxALL 0 - - + + 1 - - + + 0 wxID_ANY - - + + m_staticline8 protected - - + + wxLI_HORIZONTAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -750,48 +750,48 @@ wxEXPAND | wxALL 0 - - + + 1 - - + + 0 wxID_ANY - - + + m_staticline9 protected - - + + wxLI_HORIZONTAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -799,50 +799,50 @@ wxALIGN_CENTER_VERTICAL|wxLEFT|wxALIGN_RIGHT 0 - - + + 1 - - + + 0 wxID_ANY Pad Drill X - - + + m_textPadDrillX protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -850,54 +850,54 @@ wxALL 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_PadDrill_X_Ctrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -905,50 +905,50 @@ wxRIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_PadDrill_X_Unit protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -956,50 +956,50 @@ wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY Pad Drill Y - - + + m_textPadDrillY protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1007,54 +1007,54 @@ wxALL 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_PadDrill_Y_Ctrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -1062,50 +1062,50 @@ wxALIGN_CENTER_VERTICAL|wxRIGHT 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_PadDrill_Y_Unit protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1113,48 +1113,48 @@ wxEXPAND | wxALL 0 - - + + 1 - - + + 0 wxID_ANY - - + + m_staticline4 protected - - + + wxLI_HORIZONTAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1162,48 +1162,48 @@ wxEXPAND | wxALL 0 - - + + 1 - - + + 0 wxID_ANY - - + + m_staticline5 protected - - + + wxLI_HORIZONTAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1211,48 +1211,48 @@ wxEXPAND | wxALL 0 - - + + 1 - - + + 0 wxID_ANY - - + + m_staticline6 protected - - + + wxLI_HORIZONTAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1260,50 +1260,50 @@ wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT 0 - - + + 1 - - + + 0 wxID_ANY Shape size X - - + + m_staticText12 protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1311,54 +1311,54 @@ wxTOP|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_ShapeSize_X_Ctrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -1366,50 +1366,50 @@ wxALIGN_CENTER_VERTICAL|wxRIGHT 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_PadShapeSizeX_Unit protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1417,50 +1417,50 @@ wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT 0 - - + + 1 - - + + 0 wxID_ANY Shape size Y - - + + m_staticText15 protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1468,54 +1468,54 @@ wxALL 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_ShapeSize_Y_Ctrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -1523,50 +1523,50 @@ wxRIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_PadShapeSizeY_Unit protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1574,50 +1574,50 @@ wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY Shape Offset X - - + + m_staticText17 protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1625,54 +1625,54 @@ wxTOP|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_ShapeOffset_X_Ctrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -1680,50 +1680,50 @@ wxRIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_PadShapeOffsetX_Unit protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1731,50 +1731,50 @@ wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT 0 - - + + 1 - - + + 0 wxID_ANY Shape Offset Y - - + + m_staticText19 protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1782,54 +1782,54 @@ wxALL 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_ShapeOffset_Y_Ctrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -1837,50 +1837,50 @@ wxRIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_PadShapeOffsetY_Unit protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1888,50 +1888,50 @@ wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY Shape delta X - - + + m_staticText21 protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1939,54 +1939,54 @@ wxTOP|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_ShapeDelta_X_Ctrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -1994,50 +1994,50 @@ wxRIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_PadShapeDeltaX_Unit protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2045,50 +2045,50 @@ wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT 0 - - + + 1 - - + + 0 wxID_ANY Shape delta Y - - + + m_staticText23 protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2096,54 +2096,54 @@ wxALL 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_ShapeDelta_Y_Ctrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -2151,50 +2151,50 @@ wxALIGN_CENTER_VERTICAL|wxRIGHT 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_PadShapeDeltaY_Unit protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2208,7 +2208,7 @@ wxEXPAND 1 - + bMiddleSizer wxVERTICAL none @@ -2217,7 +2217,7 @@ wxEXPAND 1 - + bMiddleUpperSizer wxHORIZONTAL none @@ -2226,7 +2226,7 @@ wxBOTTOM 0 - + m_DrillShapeBoxSizer wxVERTICAL protected @@ -2235,53 +2235,53 @@ wxALL|wxEXPAND 0 - + "Circle" "Oval" "Rect" "Trapezoidal" - + 1 - - + + 0 ID_LISTBOX_SHAPE_PAD Pad Shape: 1 - - + + m_PadShape protected - + 0 - + wxRA_SPECIFY_COLS - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + OnPadShapeSelection - - - - - - + + + + + + @@ -2289,53 +2289,53 @@ wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT 0 - + "Circle" "Oval" - + 1 - - + + 0 ID_RADIOBOX_DRILL_SHAPE Drill Shape: 1 - - + + m_DrillShapeCtrl protected - + 0 - + wxRA_SPECIFY_COLS - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + OnDrillShapeSelected - - - - - - + + + + + + @@ -2345,7 +2345,7 @@ wxBOTTOM 0 - + m_MiddleRightBoxSizer wxVERTICAL none @@ -2354,53 +2354,53 @@ wxALL|wxEXPAND 0 - + "0" "90" "-90" "180" "Custom" - + 1 - - + + 0 ID_LISTBOX_ORIENT_PAD Pad Orient: 1 - - + + m_PadOrient protected - + 0 - + wxRA_SPECIFY_COLS - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + PadOrientEvent - - - - - - + + + + + + @@ -2408,50 +2408,50 @@ wxTOP|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY Pad Orient (0.1 deg) - - + + m_PadOrientText protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2459,54 +2459,54 @@ wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_PadOrientCtrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -2517,46 +2517,46 @@ 1 0,0,0 - + 1 - - + + 0 wxID_ANY - - + + m_panelShowPad protected - - - - - - + + + + + + wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER|wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + OnPaintShowPanel - - - - - - + + + + + + @@ -2568,11 +2568,11 @@ wxID_ANY Footprint orientation - + sbSizeModuleInfo wxHORIZONTAL none - + 5 wxEXPAND @@ -2581,9 +2581,9 @@ 2 wxBOTH 1 - + 0 - + fgSizer4 wxFLEX_GROWMODE_SPECIFIED none @@ -2594,50 +2594,50 @@ wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY Rotation: - - + + m_staticTitleModuleRot protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2645,50 +2645,50 @@ wxTOP|wxRIGHT|wxLEFT|wxEXPAND 0 - - + + 1 - - + + 0 wxID_ANY 0 - - + + m_staticModuleRotValue protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2696,50 +2696,50 @@ wxALL|wxALIGN_RIGHT 0 - - + + 1 - - + + 0 wxID_ANY Board side: - - + + m_staticTitleModuleSide protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2747,50 +2747,50 @@ wxALL|wxEXPAND 0 - - + + 1 - - + + 0 wxID_ANY Front side - - + + m_staticModuleSideValue protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2800,50 +2800,50 @@ wxALIGN_CENTER_VERTICAL 0 - - + + 1 - + ,90,92,-1,70,0 0 wxID_ANY Warning: This pad is flipped on board. Back and front layers will be swapped. - - + + m_staticTextWarningPadFlipped protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2855,60 +2855,60 @@ wxID_ANY Clearances: - + sbClearancesSizer wxVERTICAL none - + 5 wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 - + ,90,92,-1,70,0 0 wxID_ANY Set these values to 0 to use Parent footprint or global values - - + + m_staticTextWarning protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2918,10 +2918,10 @@ 3 wxBOTH - - + + 0 - + fgClearancesGridSizer wxFLEX_GROWMODE_SPECIFIED none @@ -2932,50 +2932,50 @@ wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY Net pad clearance - - + + m_staticTextNetClearance protected - - - - + + + + This is the local net clearance for pad. If 0, the footprint local value or the Netclass value is used - - - + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2983,54 +2983,54 @@ wxALL 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_NetClearanceValueCtrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged - - - - + + + + @@ -3038,50 +3038,50 @@ wxRIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_NetClearanceUnits protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -3089,48 +3089,48 @@ wxEXPAND|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY - - + + m_staticline1 protected - - + + wxLI_HORIZONTAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3138,48 +3138,48 @@ wxEXPAND|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY - - + + m_staticline2 protected - - + + wxLI_HORIZONTAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3187,48 +3187,48 @@ wxEXPAND|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY - - + + m_staticline3 protected - - + + wxLI_HORIZONTAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3236,50 +3236,50 @@ wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT 0 - - + + 1 - - + + 0 wxID_ANY Solder mask clearance: - - + + m_MaskClearanceTitle protected - - - - + + + + This is the local clearance between this pad and the solder mask If 0, the footprint local value or the global value is used - - - + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -3287,54 +3287,54 @@ wxALL 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_SolderMaskMarginCtrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3342,50 +3342,50 @@ wxRIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_SolderMaskMarginUnits protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -3393,50 +3393,50 @@ wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY Solder paste clearance: - - + + m_staticTextSolderPaste protected - - - - + + + + This is the local clearance between this pad and the solder paste. If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value ratio A negative value means a smaller mask size than pad size - - - + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -3444,54 +3444,54 @@ wxTOP|wxRIGHT|wxLEFT 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_SolderPasteMarginCtrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3499,50 +3499,50 @@ wxRIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY Inch - - + + m_SolderPasteMarginUnits protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -3550,50 +3550,50 @@ wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT 0 - - + + 1 - - + + 0 wxID_ANY Solder mask ratio clearance: - - + + m_staticTextRatio protected - - - - + + + + This is the local clearance ratio in per cent between this pad and the solder paste. A value of 10 means the clearance value is 10 per cent of the pad size If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value A negative value means a smaller mask size than pad size. - - - + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -3601,54 +3601,54 @@ wxALL 0 - - + + 1 - - + + 0 wxID_ANY - + 0 - + m_SolderPasteMarginRatioCtrl protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3656,50 +3656,50 @@ wxRIGHT|wxALIGN_CENTER_VERTICAL 0 - - + + 1 - - + + 0 wxID_ANY % - - + + m_SolderPasteRatioMarginUnits protected - - - - - - - - + + + + + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -3713,7 +3713,7 @@ wxBOTTOM|wxRIGHT|wxEXPAND 0 - + m_RightBoxSizer wxVERTICAL none @@ -3722,117 +3722,117 @@ wxALL|wxEXPAND 0 - + "Standard" "SMD" "Conn" - + 1 - - + + 0 ID_LISTBOX_TYPE_PAD Pad Type: 1 - - + + m_PadType protected - + 0 - + wxRA_SPECIFY_COLS - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + PadTypeSelected - - - - - - + + + + + + 5 - + 0 wxID_ANY Layers: - + m_LayersSizer wxVERTICAL none - + 5 wxTOP|wxRIGHT|wxLEFT 0 - + 0 - + 1 - - + + 0 wxID_ANY Component layer - - + + m_PadLayerCmp protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -3840,51 +3840,51 @@ wxALL 0 - + 0 - + 1 - - + + 0 wxID_ANY Copper layer - - + + m_PadLayerCu protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -3902,51 +3902,51 @@ wxTOP|wxRIGHT|wxLEFT 0 - + 0 - + 1 - - + + 0 wxID_ANY Adhesive Cmp - - + + m_PadLayerAdhCmp protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -3954,51 +3954,51 @@ wxTOP|wxRIGHT|wxLEFT 0 - + 0 - + 1 - - + + 0 wxID_ANY Adhesive Copper - - + + m_PadLayerAdhCu protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -4006,51 +4006,51 @@ wxTOP|wxRIGHT|wxLEFT 0 - + 0 - + 1 - - + + 0 wxID_ANY Solder paste Cmp - - + + m_PadLayerPateCmp protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -4058,51 +4058,51 @@ wxTOP|wxRIGHT|wxLEFT 0 - + 0 - + 1 - - + + 0 wxID_ANY Solder paste Copper - - + + m_PadLayerPateCu protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -4110,51 +4110,51 @@ wxTOP|wxRIGHT|wxLEFT 0 - + 0 - + 1 - - + + 0 wxID_ANY Silkscreen Cmp - - + + m_PadLayerSilkCmp protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -4162,51 +4162,51 @@ wxTOP|wxRIGHT|wxLEFT 0 - + 0 - + 1 - - + + 0 wxID_ANY Silkscreen Copper - - + + m_PadLayerSilkCu protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -4214,51 +4214,51 @@ wxTOP|wxRIGHT|wxLEFT 0 - + 0 - + 1 - - + + 0 wxID_ANY Solder mask Cmp - - + + m_PadLayerMaskCmp protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -4266,51 +4266,51 @@ wxTOP|wxRIGHT|wxLEFT 0 - + 0 - + 1 - - + + 0 wxID_ANY Solder mask Copper - - + + m_PadLayerMaskCu protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -4318,51 +4318,51 @@ wxTOP|wxRIGHT|wxLEFT 0 - + 0 - + 1 - - + + 0 wxID_ANY Draft layer - - + + m_PadLayerDraft protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -4370,51 +4370,51 @@ wxTOP|wxRIGHT|wxLEFT 0 - + 0 - + 1 - - + + 0 wxID_ANY E.C.O.1 layer - - + + m_PadLayerECO1 protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -4422,51 +4422,51 @@ wxALL 0 - + 0 - + 1 - - + + 0 wxID_ANY E.C.O.2 layer - - + + m_PadLayerECO2 protected - - - - - - - - - + + + + + + + + + OnSetLayer - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -4488,17 +4488,17 @@ 1 0 0 - + m_sdbSizer1 protected - + OnCancelButtonClick - - - + + + PadPropertiesAccept - - + + diff --git a/pcbnew/plot_rtn.cpp b/pcbnew/plot_rtn.cpp index befa22fc52..e7c318b5a3 100644 --- a/pcbnew/plot_rtn.cpp +++ b/pcbnew/plot_rtn.cpp @@ -26,55 +26,37 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( PLOTTER* plotter, int masque_layer, GRTraceMode trace_mode ) { - wxPoint pos, shape_pos; - wxSize size; bool trace_val, trace_ref; - D_PAD* pt_pad; TEXTE_MODULE* pt_texte; EDA_BaseStruct* PtStruct; /* Plot edge layer and graphic items */ - for( PtStruct = m_Pcb->m_Drawings; - PtStruct != NULL; - PtStruct = PtStruct->Next() ) + for( PtStruct = m_Pcb->m_Drawings; PtStruct != NULL; PtStruct = PtStruct->Next() ) { switch( PtStruct->Type() ) { case TYPE_DRAWSEGMENT: - PlotDrawSegment( plotter, - (DRAWSEGMENT*) PtStruct, - masque_layer, - trace_mode ); + PlotDrawSegment( plotter, (DRAWSEGMENT*) PtStruct, masque_layer, trace_mode ); break; case TYPE_TEXTE: - PlotTextePcb( plotter, - (TEXTE_PCB*) PtStruct, - masque_layer, - trace_mode ); + PlotTextePcb( plotter, (TEXTE_PCB*) PtStruct, masque_layer, trace_mode ); break; case TYPE_DIMENSION: - PlotDimension( plotter, - (DIMENSION*) PtStruct, - masque_layer, - trace_mode ); + PlotDimension( plotter, (DIMENSION*) PtStruct, masque_layer, trace_mode ); break; case TYPE_MIRE: - PlotMirePcb( plotter, - (MIREPCB*) PtStruct, - masque_layer, - trace_mode ); + PlotMirePcb( plotter, (MIREPCB*) PtStruct, masque_layer, trace_mode ); break; case TYPE_MARKER_PCB: break; default: - DisplayError( this, - wxT( "Plot_Serigraphie() error: unexpected Type()" ) ); + DisplayError( this, wxT( "Plot_Serigraphie() error: unexpected Type()" ) ); break; } } @@ -85,49 +67,37 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( PLOTTER* plotter, /* Plot pads (creates pads outlines, for pads on silkscreen layers) */ if( g_pcb_plot_options.PlotPadsOnSilkLayer ) { - for( MODULE* Module = m_Pcb->m_Modules; - Module; - Module = Module->Next() ) + for( MODULE* Module = m_Pcb->m_Modules; Module; Module = Module->Next() ) { - for( pt_pad = (D_PAD*) Module->m_Pads; - pt_pad != NULL; - pt_pad = pt_pad->Next() ) + for( D_PAD * pad = Module->m_Pads; pad != NULL; pad = pad->Next() ) { /* See if the pad is on this layer */ - if( (pt_pad->m_Masque_Layer & masque_layer) == 0 ) + if( (pad->m_Masque_Layer & masque_layer) == 0 ) continue; - shape_pos = pt_pad->ReturnShapePos(); - pos = shape_pos; - size = pt_pad->m_Size; + wxPoint shape_pos = pad->ReturnShapePos(); - switch( pt_pad->m_PadShape & 0x7F ) + switch( pad->m_PadShape & 0x7F ) { case PAD_CIRCLE: - plotter->flash_pad_circle( pos, size.x, FILAIRE ); + plotter->flash_pad_circle( shape_pos, pad->m_Size.x, FILAIRE ); break; case PAD_OVAL: - plotter->flash_pad_oval( pos, size, - pt_pad->m_Orient, FILAIRE ); + plotter->flash_pad_oval( shape_pos, pad->m_Size, pad->m_Orient, FILAIRE ); break; case PAD_TRAPEZOID: { - wxSize delta; - delta = pt_pad->m_DeltaSize; - plotter->flash_pad_trapez( pos, size, - delta, pt_pad->m_Orient, - FILAIRE ); + wxPoint coord[4]; + pad->BuildPadPolygon( coord, wxSize(0,0), 0 ); + plotter->flash_pad_trapez( shape_pos, coord, pad->m_Orient, FILAIRE ); break; } case PAD_RECT: default: - plotter->flash_pad_rect( pos, - size, - pt_pad->m_Orient, - FILAIRE ); + plotter->flash_pad_rect( shape_pos, pad->m_Size, pad->m_Orient, FILAIRE ); break; } } @@ -892,12 +862,9 @@ void WinEDA_BasePcbFrame::Plot_Standard_Layer( PLOTTER* aPlotter, case PAD_TRAPEZOID: { - wxSize delta = pad->m_DeltaSize; - aPlotter->flash_pad_trapez( pos, - size, - delta, - pad->m_Orient, - aPlotMode ); + wxPoint coord[4]; + pad->BuildPadPolygon( coord, margin, 0 ); + aPlotter->flash_pad_trapez( pos, coord, pad->m_Orient, aPlotMode ); } break;